Docs
部署指南

部署指南

使用本地源码和 Docker Compose 构建运行。

English

简体中文

克隆 GitLab main

准备 Git、Docker、Docker Compose V2,并确认拥有 GitLab 仓库访问权限。

git clone --branch main --single-branch https://gitlab.vetoedkkb.com/short-links/web.git wr.do
cd wr.do
cp .env.example .env

已有部署请保留原 .env。编辑配置,为 POSTGRES_PASSWORD 和 AUTH_SECRET 分别填写独立随机值,可运行两次 openssl rand -hex 32 生成。

APP_PORT=3100
POSTGRES_PASSWORD=replace-with-a-random-database-password
AUTH_SECRET=replace-with-another-random-secret
NEXT_PUBLIC_APP_URL=http://localhost:3100
AUTH_URL=http://localhost:3100

.env 是私有配置,不应提交。默认 Compose 会配置到 postgres 服务的数据库连接。可选服务配置见 安装说明。

构建并启动

docker compose build
docker compose up -d
docker compose ps -a

Dockerfile 从本地源码构建应用和迁移服务,只使用官方 Node.js 基础镜像和 PostgreSQL 数据库镜像,不使用 WR.DO 预构建镜像。

postgres 健康后,migrate 执行 prisma migrate deploy。它的正常结束状态是 Exited (0),迁移成功后应用才会启动。

访问 http://localhost:3100。初始化管理员为 [email protected] / 123456,首次登录后修改密码。

端口与服务配置

默认应用仅绑定 127.0.0.1:3100,数据库不向宿主机公开端口。修改端口时同时修改 APP_PORT、NEXT_PUBLIC_APP_URL、AUTH_URL,然后重新构建。对外访问需配置反向代理和自己的访问地址。

NEXT_PUBLIC_* 在构建时进入浏览器代码,修改后需要重新构建。GitHub OAuth、Google、LinuxDO、Cloudflare DNS、邮件和 S3 存储需要各自配置。账号密码登录无需这些外部服务;未配置的登录方式可在后台关闭。

日志、备份与更新

docker compose logs --tail=100 app migrate postgres
 
# 备份保存在 Git 仓库外
mkdir -p ../wrdo-backups
docker compose exec -T postgres pg_dump -U wrdo wrdo > ../wrdo-backups/wrdo-backup-$(date +%Y%m%d-%H%M%S).sql
 
# 停止服务,保留数据库
docker compose down

数据库保存在 postgres-data 命名卷中,docker compose down -v 会删除它。备份包含业务数据,请妥善保存。本地修改先保存,再按 GitLab main 更新指南 更新。