init commit
This commit is contained in:
16
.env.example
Normal file
16
.env.example
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
# Gitea 版本
|
||||||
|
GITEA_VERSION=1.25.4
|
||||||
|
|
||||||
|
# 端口配置
|
||||||
|
HTTP_PORT=3000
|
||||||
|
SSH_PORT=2222
|
||||||
|
|
||||||
|
# 时区
|
||||||
|
TZ=Asia/Shanghai
|
||||||
|
|
||||||
|
# Git LFS 配置
|
||||||
|
GITEA__lfs__START_SERVER=true
|
||||||
|
GITEA__lfs__PATH=/data/git/lfs
|
||||||
|
|
||||||
|
# 禁用公开注册(仅管理员可创建账号)
|
||||||
|
GITEA__service__DISABLE_REGISTRATION=true
|
||||||
8
.gitignore
vendored
Normal file
8
.gitignore
vendored
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
# 数据目录
|
||||||
|
data/
|
||||||
|
|
||||||
|
# 环境变量(可能包含敏感信息)
|
||||||
|
.env
|
||||||
|
|
||||||
|
# macOS
|
||||||
|
.DS_Store
|
||||||
91
README.md
Normal file
91
README.md
Normal file
@@ -0,0 +1,91 @@
|
|||||||
|
# Gitea 局域网部署
|
||||||
|
|
||||||
|
使用 Docker Compose 部署的 Gitea Git 服务。
|
||||||
|
|
||||||
|
## 快速开始
|
||||||
|
|
||||||
|
### 1. 配置环境变量
|
||||||
|
|
||||||
|
复制并编辑 `.env` 文件:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cp .env.example .env
|
||||||
|
```
|
||||||
|
|
||||||
|
修改端口等配置:
|
||||||
|
|
||||||
|
```env
|
||||||
|
HTTP_PORT=3000 # Web 界面端口
|
||||||
|
SSH_PORT=2222 # SSH 端口
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. 启动服务
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. 初始配置
|
||||||
|
|
||||||
|
首次访问 `http://<服务器IP>:3000` 会进入安装向导:
|
||||||
|
|
||||||
|
1. 设置管理员账户
|
||||||
|
2. 配置服务器域名(可选)
|
||||||
|
3. 数据库已默认使用 SQLite
|
||||||
|
|
||||||
|
## 访问方式
|
||||||
|
|
||||||
|
| 方式 | 地址 |
|
||||||
|
|-----|------|
|
||||||
|
| Web 界面 | `http://<IP>:3000` |
|
||||||
|
| HTTP 克隆 | `git clone http://<IP>:3000/<用户>/<仓库>.git` |
|
||||||
|
| SSH 克隆 | `git clone ssh://git@<IP>:2222/<用户>/<仓库>.git` |
|
||||||
|
|
||||||
|
## Git LFS
|
||||||
|
|
||||||
|
已启用 Git LFS 支持,使用方法:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git lfs install
|
||||||
|
git lfs track "*.psd"
|
||||||
|
git add .gitattributes
|
||||||
|
git commit -m "Track PSD files with LFS"
|
||||||
|
git push
|
||||||
|
```
|
||||||
|
|
||||||
|
## 数据备份
|
||||||
|
|
||||||
|
备份 `data/` 目录:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 备份
|
||||||
|
tar -czvf gitea-backup-$(date +%Y%m%d).tar.gz data/
|
||||||
|
|
||||||
|
# 恢复
|
||||||
|
tar -xzvf gitea-backup-20260320.tar.gz
|
||||||
|
```
|
||||||
|
|
||||||
|
重要文件:
|
||||||
|
- `data/gitea/gitea.db` - 用户和配置数据
|
||||||
|
- `data/git/repositories/` - 仓库数据
|
||||||
|
- `data/git/lfs/` - LFS 文件
|
||||||
|
|
||||||
|
## 常用命令
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 启动
|
||||||
|
docker compose up -d
|
||||||
|
|
||||||
|
# 停止
|
||||||
|
docker compose down
|
||||||
|
|
||||||
|
# 查看日志
|
||||||
|
docker compose logs -f
|
||||||
|
|
||||||
|
# 重启
|
||||||
|
docker compose restart
|
||||||
|
|
||||||
|
# 更新版本
|
||||||
|
# 修改 .env 中的 GITEA_VERSION 后
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
19
docker-compose.yml
Normal file
19
docker-compose.yml
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
services:
|
||||||
|
gitea:
|
||||||
|
image: gitea/gitea:${GITEA_VERSION}
|
||||||
|
container_name: gitea
|
||||||
|
environment:
|
||||||
|
- TZ=${TZ}
|
||||||
|
- GITEA__lfs__START_SERVER=${GITEA__lfs__START_SERVER}
|
||||||
|
- GITEA__lfs__PATH=${GITEA__lfs__PATH}
|
||||||
|
- GITEA__service__DISABLE_REGISTRATION=${GITEA__service__DISABLE_REGISTRATION}
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- ./data:/data
|
||||||
|
ports:
|
||||||
|
- "${HTTP_PORT}:3000"
|
||||||
|
- "${SSH_PORT}:22"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
driver: bridge
|
||||||
282
docs/superpowers/plans/2026-03-20-gitea-lan-deployment.md
Normal file
282
docs/superpowers/plans/2026-03-20-gitea-lan-deployment.md
Normal file
@@ -0,0 +1,282 @@
|
|||||||
|
# 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
|
||||||
|
|
||||||
|
**Architecture:** 单容器部署,SQLite 数据库,宿主机目录挂载持久化数据,通过 .env 文件配置端口和环境变量
|
||||||
|
|
||||||
|
**Tech Stack:** Docker Compose, Gitea 1.25.4, SQLite
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 文件结构
|
||||||
|
|
||||||
|
| 文件 | 职责 |
|
||||||
|
|-----|------|
|
||||||
|
| `docker-compose.yml` | 容器编排配置:镜像、端口、卷、环境变量 |
|
||||||
|
| `.env` | 可配置参数:版本、端口、时区、LFS 配置 |
|
||||||
|
| `.gitignore` | 忽略数据目录和环境变量文件 |
|
||||||
|
| `README.md` | 使用说明:启动、访问、备份 |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Chunk 1: 基础配置文件
|
||||||
|
|
||||||
|
### Task 1: 创建 .env 环境变量文件
|
||||||
|
|
||||||
|
**Files:**
|
||||||
|
- Create: `.env`
|
||||||
|
|
||||||
|
- [ ] **Step 1: 创建 .env 文件**
|
||||||
|
|
||||||
|
```env
|
||||||
|
# Gitea 版本
|
||||||
|
GITEA_VERSION=1.25.4
|
||||||
|
|
||||||
|
# 端口配置
|
||||||
|
HTTP_PORT=3000
|
||||||
|
SSH_PORT=2222
|
||||||
|
|
||||||
|
# 时区
|
||||||
|
TZ=Asia/Shanghai
|
||||||
|
|
||||||
|
# Git LFS 配置
|
||||||
|
GITEA__lfs__START_SERVER=true
|
||||||
|
GITEA__lfs__PATH=/data/git/lfs
|
||||||
|
```
|
||||||
|
|
||||||
|
- [ ] **Step 2: 验证文件创建成功**
|
||||||
|
|
||||||
|
Run: `cat .env`
|
||||||
|
Expected: 显示上述内容
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Task 2: 创建 docker-compose.yml
|
||||||
|
|
||||||
|
**Files:**
|
||||||
|
- Create: `docker-compose.yml`
|
||||||
|
|
||||||
|
- [ ] **Step 1: 创建 docker-compose.yml 文件**
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
services:
|
||||||
|
gitea:
|
||||||
|
image: gitea/gitea:${GITEA_VERSION}
|
||||||
|
container_name: gitea
|
||||||
|
environment:
|
||||||
|
- TZ=${TZ}
|
||||||
|
- GITEA__lfs__START_SERVER=${GITEA__lfs__START_SERVER}
|
||||||
|
- GITEA__lfs__PATH=${GITEA__lfs__PATH}
|
||||||
|
restart: always
|
||||||
|
volumes:
|
||||||
|
- ./data:/data
|
||||||
|
- /etc/timezone:/etc/timezone:ro
|
||||||
|
- /etc/localtime:/etc/localtime:ro
|
||||||
|
ports:
|
||||||
|
- "${HTTP_PORT}:3000"
|
||||||
|
- "${SSH_PORT}:22"
|
||||||
|
|
||||||
|
networks:
|
||||||
|
default:
|
||||||
|
driver: bridge
|
||||||
|
```
|
||||||
|
|
||||||
|
- [ ] **Step 2: 验证 Docker Compose 配置语法**
|
||||||
|
|
||||||
|
Run: `docker compose config`
|
||||||
|
Expected: 无错误,显示解析后的配置
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Task 3: 创建 .gitignore
|
||||||
|
|
||||||
|
**Files:**
|
||||||
|
- Create: `.gitignore`
|
||||||
|
|
||||||
|
- [ ] **Step 1: 创建 .gitignore 文件**
|
||||||
|
|
||||||
|
```gitignore
|
||||||
|
# 数据目录
|
||||||
|
data/
|
||||||
|
|
||||||
|
# 环境变量(可能包含敏感信息)
|
||||||
|
.env
|
||||||
|
|
||||||
|
# macOS
|
||||||
|
.DS_Store
|
||||||
|
```
|
||||||
|
|
||||||
|
- [ ] **Step 2: 验证文件创建成功**
|
||||||
|
|
||||||
|
Run: `cat .gitignore`
|
||||||
|
Expected: 显示上述内容
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Task 4: 创建 README.md 使用说明
|
||||||
|
|
||||||
|
**Files:**
|
||||||
|
- Create: `README.md`
|
||||||
|
|
||||||
|
- [ ] **Step 1: 创建 README.md 文件**
|
||||||
|
|
||||||
|
```markdown
|
||||||
|
# Gitea 局域网部署
|
||||||
|
|
||||||
|
使用 Docker Compose 部署的 Gitea Git 服务。
|
||||||
|
|
||||||
|
## 快速开始
|
||||||
|
|
||||||
|
### 1. 配置环境变量
|
||||||
|
|
||||||
|
复制并编辑 `.env` 文件:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cp .env.example .env
|
||||||
|
```
|
||||||
|
|
||||||
|
修改端口等配置:
|
||||||
|
|
||||||
|
```env
|
||||||
|
HTTP_PORT=3000 # Web 界面端口
|
||||||
|
SSH_PORT=2222 # SSH 端口
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. 启动服务
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. 初始配置
|
||||||
|
|
||||||
|
首次访问 `http://<服务器IP>:3000` 会进入安装向导:
|
||||||
|
|
||||||
|
1. 设置管理员账户
|
||||||
|
2. 配置服务器域名(可选)
|
||||||
|
3. 数据库已默认使用 SQLite
|
||||||
|
|
||||||
|
## 访问方式
|
||||||
|
|
||||||
|
| 方式 | 地址 |
|
||||||
|
|-----|------|
|
||||||
|
| Web 界面 | `http://<IP>:3000` |
|
||||||
|
| HTTP 克隆 | `git clone http://<IP>:3000/<用户>/<仓库>.git` |
|
||||||
|
| SSH 克隆 | `git clone ssh://git@<IP>:2222/<用户>/<仓库>.git` |
|
||||||
|
|
||||||
|
## Git LFS
|
||||||
|
|
||||||
|
已启用 Git LFS 支持,使用方法:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git lfs install
|
||||||
|
git lfs track "*.psd"
|
||||||
|
git add .gitattributes
|
||||||
|
git commit -m "Track PSD files with LFS"
|
||||||
|
git push
|
||||||
|
```
|
||||||
|
|
||||||
|
## 数据备份
|
||||||
|
|
||||||
|
备份 `data/` 目录:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 备份
|
||||||
|
tar -czvf gitea-backup-$(date +%Y%m%d).tar.gz data/
|
||||||
|
|
||||||
|
# 恢复
|
||||||
|
tar -xzvf gitea-backup-20260320.tar.gz
|
||||||
|
```
|
||||||
|
|
||||||
|
重要文件:
|
||||||
|
- `data/gitea/gitea.db` - 用户和配置数据
|
||||||
|
- `data/git/repositories/` - 仓库数据
|
||||||
|
- `data/git/lfs/` - LFS 文件
|
||||||
|
|
||||||
|
## 常用命令
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 启动
|
||||||
|
docker compose up -d
|
||||||
|
|
||||||
|
# 停止
|
||||||
|
docker compose down
|
||||||
|
|
||||||
|
# 查看日志
|
||||||
|
docker compose logs -f
|
||||||
|
|
||||||
|
# 重启
|
||||||
|
docker compose restart
|
||||||
|
|
||||||
|
# 更新版本
|
||||||
|
# 修改 .env 中的 GITEA_VERSION 后
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
```
|
||||||
|
|
||||||
|
- [ ] **Step 2: 验证文件创建成功**
|
||||||
|
|
||||||
|
Run: `cat README.md`
|
||||||
|
Expected: 显示上述内容
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Chunk 2: 创建示例配置和验证
|
||||||
|
|
||||||
|
### Task 5: 创建 .env.example 示例文件
|
||||||
|
|
||||||
|
**Files:**
|
||||||
|
- Create: `.env.example`
|
||||||
|
|
||||||
|
- [ ] **Step 1: 创建 .env.example 文件**
|
||||||
|
|
||||||
|
```env
|
||||||
|
# Gitea 版本
|
||||||
|
GITEA_VERSION=1.25.4
|
||||||
|
|
||||||
|
# 端口配置
|
||||||
|
HTTP_PORT=3000
|
||||||
|
SSH_PORT=2222
|
||||||
|
|
||||||
|
# 时区
|
||||||
|
TZ=Asia/Shanghai
|
||||||
|
|
||||||
|
# Git LFS 配置
|
||||||
|
GITEA__lfs__START_SERVER=true
|
||||||
|
GITEA__lfs__PATH=/data/git/lfs
|
||||||
|
```
|
||||||
|
|
||||||
|
- [ ] **Step 2: 验证文件创建成功**
|
||||||
|
|
||||||
|
Run: `cat .env.example`
|
||||||
|
Expected: 显示上述内容
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 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: 无错误输出,显示完整配置
|
||||||
|
|
||||||
|
- [ ] **Step 3: (可选)启动服务测试**
|
||||||
|
|
||||||
|
Run: `docker compose up -d`
|
||||||
|
Expected: 容器启动成功
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## 完成标准
|
||||||
|
|
||||||
|
- [ ] 所有配置文件已创建
|
||||||
|
- [ ] `docker compose config` 验证通过
|
||||||
|
- [ ] 服务可以正常启动
|
||||||
|
- [ ] 可以通过 Web 界面访问安装向导
|
||||||
122
docs/superpowers/specs/2026-03-20-gitea-lan-deployment-design.md
Normal file
122
docs/superpowers/specs/2026-03-20-gitea-lan-deployment-design.md
Normal file
@@ -0,0 +1,122 @@
|
|||||||
|
# Gitea 局域网部署设计
|
||||||
|
|
||||||
|
## 概述
|
||||||
|
|
||||||
|
使用 Docker Compose 在局域网中部署 Gitea Git 服务,支持 HTTP 和 SSH 访问,启用 Git LFS 支持。
|
||||||
|
|
||||||
|
## 需求
|
||||||
|
|
||||||
|
- 仅局域网使用
|
||||||
|
- Docker Compose 容器化部署
|
||||||
|
- 数据库:SQLite(简单可靠)
|
||||||
|
- 访问方式:HTTP + SSH
|
||||||
|
- 端口配置:通过 `.env` 文件灵活配置
|
||||||
|
- 数据存储:宿主机目录挂载
|
||||||
|
- 支持 Git LFS
|
||||||
|
- 镜像版本:固定版本(避免 latest)
|
||||||
|
|
||||||
|
## 技术选型
|
||||||
|
|
||||||
|
| 组件 | 选择 | 说明 |
|
||||||
|
|-----|------|-----|
|
||||||
|
| Gitea 版本 | 1.25.4 | 当前最新稳定版 |
|
||||||
|
| 数据库 | SQLite | 零配置,适合小规模使用 |
|
||||||
|
| 容器镜像 | gitea/gitea:1.25.4 | 官方镜像,固定版本 |
|
||||||
|
|
||||||
|
## 目录结构
|
||||||
|
|
||||||
|
```
|
||||||
|
gitea/
|
||||||
|
├── docker-compose.yml # 容器编排配置
|
||||||
|
├── .env # 环境变量(端口等配置)
|
||||||
|
├── .gitignore # 忽略数据目录和敏感文件
|
||||||
|
└── data/ # Gitea 数据(挂载目录)
|
||||||
|
├── git/ # Git 仓库数据
|
||||||
|
│ ├── repositories/ # 仓库存储
|
||||||
|
│ └── lfs/ # LFS 文件存储
|
||||||
|
├── gitea/ # Gitea 配置和数据库
|
||||||
|
│ ├── gitea.db # SQLite 数据库(用户数据)
|
||||||
|
│ └── conf/app.ini # 配置文件
|
||||||
|
└── ssh/ # SSH 密钥
|
||||||
|
```
|
||||||
|
|
||||||
|
## 配置文件
|
||||||
|
|
||||||
|
### .env - 环境变量
|
||||||
|
|
||||||
|
```env
|
||||||
|
# 镜像版本
|
||||||
|
GITEA_VERSION=1.25.4
|
||||||
|
|
||||||
|
# 端口配置
|
||||||
|
HTTP_PORT=3000
|
||||||
|
SSH_PORT=2222
|
||||||
|
|
||||||
|
# 时区
|
||||||
|
TZ=Asia/Shanghai
|
||||||
|
|
||||||
|
# Git LFS 配置
|
||||||
|
GITEA__lfs__START_SERVER=true
|
||||||
|
GITEA__lfs__PATH=/data/git/lfs
|
||||||
|
```
|
||||||
|
|
||||||
|
### docker-compose.yml
|
||||||
|
|
||||||
|
- 镜像:`gitea/gitea:${GITEA_VERSION}`
|
||||||
|
- 端口映射:
|
||||||
|
- `${HTTP_PORT}:3000` - Web 界面和 HTTP Git 操作
|
||||||
|
- `${SSH_PORT}:22` - SSH Git 操作
|
||||||
|
- 数据卷挂载:`./data:/data`
|
||||||
|
- 环境变量:从 `.env` 文件读取
|
||||||
|
- 重启策略:`always`
|
||||||
|
- 网络:bridge 模式
|
||||||
|
|
||||||
|
### .gitignore
|
||||||
|
|
||||||
|
忽略 `data/` 目录和 `.env` 文件(避免敏感信息提交)
|
||||||
|
|
||||||
|
## 数据存储说明
|
||||||
|
|
||||||
|
| 数据类型 | 容器内路径 | 宿主机路径 |
|
||||||
|
|---------|-----------|-----------|
|
||||||
|
| 用户账户、权限 | /data/gitea/gitea.db | ./data/gitea/gitea.db |
|
||||||
|
| Git 仓库 | /data/git/repositories/ | ./data/git/repositories/ |
|
||||||
|
| SSH 密钥 | /data/git/.ssh/ | ./data/git/.ssh/ |
|
||||||
|
| LFS 文件 | /data/git/lfs/ | ./data/git/lfs/ |
|
||||||
|
| 配置文件 | /data/gitea/conf/app.ini | ./data/gitea/conf/app.ini |
|
||||||
|
|
||||||
|
## 使用方式
|
||||||
|
|
||||||
|
### 启动服务
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose up -d
|
||||||
|
```
|
||||||
|
|
||||||
|
### 访问方式
|
||||||
|
|
||||||
|
- Web 界面:`http://<服务器IP>:3000`
|
||||||
|
- HTTP 克隆:`git clone http://<服务器IP>:3000/用户/仓库.git`
|
||||||
|
- SSH 克隆:`git clone ssh://git@<服务器IP>:2222/用户/仓库.git`
|
||||||
|
|
||||||
|
### 初始配置
|
||||||
|
|
||||||
|
首次访问 Web 界面会进入安装向导,需要:
|
||||||
|
1. 设置管理员账户
|
||||||
|
2. 配置服务器域名等基本信息
|
||||||
|
3. 数据库已使用 SQLite,无需额外配置
|
||||||
|
|
||||||
|
### 备份
|
||||||
|
|
||||||
|
备份 `./data/` 目录即可,特别是:
|
||||||
|
- `./data/gitea/gitea.db` - 用户和配置数据
|
||||||
|
- `./data/git/repositories/` - 仓库数据
|
||||||
|
- `./data/git/lfs/` - LFS 文件
|
||||||
|
|
||||||
|
## 文件清单
|
||||||
|
|
||||||
|
需要创建的文件:
|
||||||
|
1. `docker-compose.yml` - Docker Compose 配置
|
||||||
|
2. `.env` - 环境变量配置
|
||||||
|
3. `.gitignore` - Git 忽略规则
|
||||||
|
4. `README.md` - 使用说明文档
|
||||||
Reference in New Issue
Block a user