Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sora

Sora

Sora 意为「穹」,象征着无限的可能性、广阔的空间和创造力

若君喜欢这个主题,欢迎 🌟Star!

Sora 是一个可自行部署的全栈博客系统,视觉与信息结构参考 halo-theme-sora,运行时不依赖 Halo。公开站点、管理后台与 API 均由 Next.js 提供,文章、评论和站点配置保存到 SQLite,上传文件保存在本地持久化目录中。

技术栈

  • Next.js 16、React 19、TypeScript 6、Tailwind CSS 4
  • SQLite、Drizzle ORM、Better Auth
  • ByteMD、Marked、sanitize-html

运行环境需要 Node.js 22 或更高版本。生产 Docker 镜像支持 linux/amd64linux/arm64

Docker Compose 部署

服务器需要安装 Docker Engine 与 Docker Compose 插件。下载仓库中的 compose.yaml,在同级目录执行:

docker compose up -d app

Compose 会将 ./data 挂载为持久化目录。Linux bind mount 需要允许容器用户 1001:1001 写入该目录。默认端口为 3000:3000,建议使用 Caddy、Nginx 等反向代理提供 HTTPS。

首次启动会自动创建 SQLite 数据库、应用全部迁移,并生成认证所需的密钥。随后访问 /admin/setup 创建管理员账号,初始化完成后通过 /admin 登录后台。

升级

docker compose pull
docker compose up -d app

容器启动时会自动应用新增数据库迁移。升级前建议在管理后台下载完整备份。

配置

生产环境通常只需使用后台设置。环境变量适合固定部署策略,并且优先于后台运行配置。

变量 用途 默认行为
APP_URL 公开站点地址、Cookie 与规范链接基础地址 回退到后台运行配置
TRUSTED_ORIGINS 允许提交认证及公开写请求的来源,逗号分隔 回退到后台运行配置
DATABASE_PATH SQLite 数据库路径 ./data/blog.db
UPLOAD_DIR 上传文件目录 ./data/uploads
AUTH_SECRET 认证会话签名密钥 生产环境首次启动自动生成
VISITOR_HASH_SECRET 访客标识 HMAC 密钥 生产环境首次启动自动生成
LOG_LEVEL 日志级别 info
DATA_ARCHIVE_MAX_* 数据归档文件的安全限制 .env.example

本地开发

准备 Node.js 22 和可用的 pnpm:

cp .env.example .env.local
corepack enable
pnpm install
pnpm db:migrate:runtime
pnpm dev

Windows PowerShell 使用:

Copy-Item .env.example .env.local

开发服务默认位于 http://127.0.0.1:3000,后台入口为 /admin

常用命令

pnpm dev          # 执行迁移并启动开发服务器
pnpm check        # 格式、Lint 和类型检查
pnpm build        # 生产构建

About

An independent blog project

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages