Files
deploy-ops/06-Wiki和Gitea部署.md
T

3.9 KiB
Raw Blame History

Wiki.js 和 Gitea 部署记录(2026-08-05

架构

https://suyushi.top       → LobeHub   (Nginx → :3210)
https://wiki.suyushi.top   → Wiki.js   (Nginx → :3000)
https://git.suyushi.top    → Gitea     (Nginx → :3001)

三服务共用同一个 Postgres 实例(lobe-postgres 容器),各自独立数据库。


Wiki.js 部署

容器参数

docker run -d \
  --name wikijs \
  --network lobehub_lobe-network \
  --restart unless-stopped \
  -p 3000:3000 \
  -e DB_TYPE=postgres \
  -e DB_HOST=postgresql \
  -e DB_PORT=5432 \
  -e DB_USER=postgres \
  -e DB_PASS="$DB_PASS" \
  -e DB_NAME=wiki \
  ghcr.io/requarks/wiki:2

数据库

  • 实例:现有 lobe-postgres 容器
  • 数据库名:wiki
  • 创建命令:docker compose -f /lobehub/docker-compose.yml exec -T postgresql psql -U postgres -c 'CREATE DATABASE wiki;'

Nginx 配置

server {
    listen 80;
    server_name wiki.suyushi.top;
    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

DNS

  • 类型:A 记录
  • 主机:wiki
  • 值:8.210.128.95

SSL

certbot --nginx -d wiki.suyushi.top --non-interactive --agree-tos --email panghusys2025@gmail.com --redirect

Gitea 部署

容器参数

docker run -d \
  --name gitea \
  --network lobehub_lobe-network \
  --restart unless-stopped \
  -p 3001:3000 -p 2222:22 \
  -e GITEA__database__DB_TYPE=postgres \
  -e GITEA__database__HOST=postgresql:5432 \
  -e GITEA__database__NAME=gitea \
  -e GITEA__database__USER=postgres \
  -e GITEA__database__PASSWD="$DB_PASS" \
  -e GITEA__server__DOMAIN=git.suyushi.top \
  -e GITEA__server__ROOT_URL=https://git.suyushi.top \
  -e GITEA__server__SSH_DOMAIN=git.suyushi.top \
  -e GITEA__server__SSH_PORT=2222 \
  -e GITEA__server__REVERSE_PROXY_TRUSTED_PROXIES=127.0.0.1 \
  -e GITEA__service__DISABLE_REGISTRATION=true \
  -v /lobehub/gitea:/data \
  gitea/gitea:latest

数据库

  • 实例:现有 lobe-postgres 容器
  • 数据库名:gitea
  • 创建命令:docker compose -f /lobehub/docker-compose.yml exec -T postgresql psql -U postgres -c 'CREATE DATABASE gitea;'

Nginx 配置

server {
    listen 80;
    server_name git.suyushi.top;
    client_max_body_size 100M;
    location / {
        proxy_pass http://127.0.0.1:3001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

DNS

  • 类型:A 记录
  • 主机:git
  • 值:8.210.128.95

SSL

certbot --nginx -d git.suyushi.top --non-interactive --agree-tos --email panghusys2025@gmail.com --redirect

管理员设置

# 注册账号后通过 CLI 查看用户
docker exec -u git gitea gitea admin user list

# 管理员:suyushi

SSH Clone 地址格式

git clone ssh://git@git.suyushi.top:2222/用户名/仓库名.git

注意事项

项目 注意
容器网络 三服务都在 lobehub_lobe-network 上,通过容器名互相访问
Nginx 配置路径 /etc/nginx/conf.d/ 下各自独立 conf 文件
端口映射 3000(Wiki.js)、3001(Gitea)、3210(LobeHub) — 只对内,Nginx 对外
DNS 新增子域名 Namesilo API 调不通时从服务器端 curl 调用
DNS A 记录 vs CNAME Let's Encrypt 验证需要 A 记录,子域名不用 CNAME