Files
gitea/docs/superpowers/plans/2026-03-20-gitea-lan-deployment.md

4.0 KiB
Raw Blame History

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_on PostgreSQL健康检查通过后才启动

  • 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 的安全入口说明,链接到 docs/sqlite-to-postgres-migration.md
  • 常用命令

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