3.9 KiB
Gitea 局域网部署实现计划
For agentic workers: REQUIRED: Use superpowers:subagent-driven-development (if subagents available) or superpowers:executing-plans to implement this plan. Steps use checkbox (
- [ ]) syntax for tracking.
Goal: 使用 Docker Compose 部署 Gitea Git 服务,支持 HTTP/SSH 访问、Git LFS 和 PostgreSQL 数据库
Architecture: Gitea + PostgreSQL 双容器部署,宿主机目录挂载持久化数据,通过 .env 文件配置端口和环境变量,Caddy 可选反向代理
Tech Stack: Docker Compose, Gitea 1.25.4, PostgreSQL 16 (alpine), Caddy 2 (可选)
文件结构
| 文件 | 职责 |
|---|---|
docker-compose.yml |
容器编排:Gitea + PostgreSQL + Caddy(可选) |
.env |
可配置参数:版本、端口、时区、数据库、域名 |
.env.example |
环境变量示例(无敏感信息) |
Caddyfile |
Caddy 反向代理配置 |
.gitignore |
忽略数据目录和环境变量文件 |
README.md |
使用说明:启动、访问、备份、迁移 |
Chunk 1: 核心配置文件
Task 1: 创建 .env 环境变量文件
Files:
-
Create:
.env -
Step 1: 创建 .env 文件
# Gitea 版本
GITEA_VERSION=1.25.4
# 端口配置
HTTP_PORT=3000
SSH_PORT=2222
# 时区
TZ=Asia/Shanghai
# SSH 端口配置(告知 Gitea 对外 SSH 端口)
GITEA__server__SSH_PORT=${SSH_PORT}
# Git LFS 配置
GITEA__lfs__START_SERVER=true
GITEA__lfs__PATH=/data/git/lfs
# 禁用公开注册
GITEA__service__DISABLE_REGISTRATION=true
# PostgreSQL 配置
POSTGRES_VERSION=16-alpine
POSTGRES_DB=gitea
POSTGRES_USER=gitea
POSTGRES_PASSWORD=changeme
# 域名配置
DOMAIN=git.example.com
ROOT_URL=http://${DOMAIN}:${HTTP_PORT}/
- Step 2: 验证文件创建成功
Run: cat .env
Expected: 显示上述内容
Task 2: 创建 docker-compose.yml
Files:
-
Create:
docker-compose.yml -
Step 1: 创建 docker-compose.yml 文件
关键配置:
-
Gitea 服务:通过
GITEA__database__*环境变量连接 PostgreSQL -
PostgreSQL 服务:
postgres:16-alpine,健康检查pg_isready -
Gitea
depends_onPostgreSQL(健康检查通过后才启动) -
Caddy 服务:
profiles: [caddy],可选启用 -
Step 2: 验证 Docker Compose 配置语法
Run: docker compose config
Expected: 无错误,显示解析后的配置
Task 3: 创建 .gitignore
Files:
-
Create:
.gitignore -
Step 1: 创建 .gitignore 文件
# 数据目录
data/
# 环境变量(可能包含敏感信息)
.env
# Caddy 数据
caddy_data/
caddy_config/
# macOS
.DS_Store
Task 4: 创建 .env.example
Files:
-
Create:
.env.example -
Step 1: 创建 .env.example 文件
与 .env 结构相同,但密码使用占位值 changeme。
Chunk 2: 文档和验证
Task 5: 创建 README.md 使用说明
Files:
-
Create:
README.md -
Step 1: 创建 README.md 文件
内容包含:
- 架构说明(HTTP 模式 / Caddy 模式)
- 快速开始(配置 → 启动 → 初始设置)
- 访问方式
- Git LFS 使用
- 数据备份(PostgreSQL pg_dump + 数据目录)
- SQLite 迁移到 PostgreSQL 步骤
- 常用命令
Task 6: 最终验证
- Step 1: 检查所有文件已创建
Run: ls -la
Expected: 显示 docker-compose.yml, .env, .env.example, .gitignore, README.md
- Step 2: 验证 Docker Compose 配置
Run: docker compose config
Expected: 无错误输出,显示完整配置(包含 gitea、postgres、caddy 服务)
- Step 3: (可选)启动服务测试
Run: docker compose up -d
Expected: postgres 和 gitea 容器均启动成功
完成标准
- 所有配置文件已创建
docker compose config验证通过- 服务可以正常启动(Gitea + PostgreSQL)
- 可以通过 Web 界面访问安装向导
- 数据库连接正常(安装向导中数据库类型显示为 PostgreSQL)