下面给出一份「开箱即用」的 Docker Compose 安装脚本,整合官方与社区最佳实践,支持 SSH 克隆、数据持久化,并可一键启动。全部内容复制到同一目录即可使用。
1. 创建目录并赋权
```bash
mkdir -p gitea/data gitea/config
sudo chown -R 1000:1000 gitea
cd gitea
```
2. 新建 `docker-compose.yml`
```yaml
version: "3.8"
services:
gitea:
image: gitea/gitea:1.23.7 # 2025-09 官方最新稳定版
container_name: gitea
restart: always
environment:
- USER_UID=1000 # 与宿主机用户保持一致
- USER_GID=1000
- SSH_DOMAIN=<你的IP或域名> # 生成 clone 地址用,必填
- SSH_PORT=2222 # 宿主机映射端口
- DB_TYPE=sqlite3 # 单节点直接用 SQLite,免额外容器
ports:
- "3000:3000" # Web 界面
- "2222:22" # SSH 克隆端口
volumes:
- ./data:/data # 仓库、数据库、配置全持久化
- /etc/timezone:/etc/timezone:ro # 时区同步
- /etc/localtime:/etc/localtime:ro
networks:
- gitea-net
networks:
gitea-net:
driver: bridge
```
3. 启动
```bash
docker compose up -d
```
4. 首次配置
浏览器访问 `http://<服务器IP>:3000`,会进入安装向导:
- 数据库选 SQLite3(已自动映射到 `./data`)
- 基础 URL 填 `http://<服务器IP>:3000`
- 管理员账号随意创建即可。
5. 创建管理员(可选命令行)
```bash
docker compose exec gitea bash
gitea admin user create --username root --password 12345678 --email root@example.com --admin
```
完成后即可通过 `http://<服务器IP>:3000` 正常使用,SSH 克隆地址示例:
```bash
git clone ssh://git@<服务器IP>:2222/用户名/仓库名.git
```
该方案资源占用极低,1C1G 云主机即可流畅运行;如日后规模扩大,只需把 `DB_TYPE` 改为 `mysql` 或 `postgres` 并新增对应数据库容器即可平滑迁移 。