---
title: Gitea个人Git服务部署指南
created: 2026-03-29
tags:
- 群晖
- Gitea
- FRP
- 内网穿透
- Git
aliases:
- 自建Git服务
- NAS代码仓库
---
# Gitea个人Git服务部署指南
## 项目背景
在群晖NAS上部署Gitea代码仓库服务,通过FRP内网穿透暴露到公网,实现个人代码仓库的远程访问。相比QuickConnect,FRP提供更稳定的连接和更快的访问速度。
---
## 环境信息
### 硬件环境
| 配置项 | 值 |
|--------|-----|
| NAS型号 | Synology DS418play |
| CPU架构 | Intel Celeron J3355 (x86_64) |
| 系统版本 | DSM 7.3.2-86009 Update 3 |
| 域名 | haiguang.xyz |
### 软件版本
| 软件 | 版本 | 说明 |
|------|------|------|
| Gitea | 1.25.5-28 | SynoCommunity套件 |
| FRP | v0.68.0 | 最新版(2026-03-20发布) |
| MariaDB | 10 | 群晖套件(监听3307端口) |
### 网络环境
| 服务 | 地址 |
|------|------|
| FRP服务器 | 82.156.57.104:7000 |
| QuickConnect | hehaiguang.cn4.quickconnect.cn |
| 公网访问 | git.haiguang.xyz |
---
## 部署架构
```mermaid
graph LR
A[开发者] --> B[git.haiguang.xyz]
B --> C[FRP服务器
82.156.57.104]
C --> D[FRP客户端
群晖NAS]
D --> E[Gitea服务
端口8418]
F[SSH访问] --> G[82.156.57.104:10022]
G --> D
D --> H[SSH服务
端口10022]
```
### 流量路径
1. **HTTP访问**: `git.haiguang.xyz` → DNS解析到 `82.156.57.104` → FRP服务器端口13000 → FRP客户端 → Gitea本地端口8418
2. **SSH访问**: `82.156.57.104:10022` → FRP服务器 → FRP客户端 → Gitea SSH端口10022
---
## 部署步骤
### 第一阶段:Gitea服务安装
#### 1. 安装Gitea套件
从SynoCommunity安装Gitea套件:
- 套件中心 → 设置 → 套件来源 → 新增
- 名称: SynoCommunity
- 位置: `https://packages.synocommunity.com/`
- 搜索并安装 Gitea
#### 2. 初始化配置
访问 `http://192.168.123.21:8418` 进行初始化:
**数据库配置**:
```
数据库类型: SQLite3
数据库文件: /var/packages/gitea/var/data/gitea.db
```
> [!tip] 数据库选择建议
> - **SQLite3**: 零配置,适合个人使用(≤50仓库)
> - **MariaDB**: 性能更好,适合团队协作
> - 注意:群晖MariaDB监听 **3307** 端口(非标准3306)
**应用配置**:
```
仓库存储路径: /volume3/gitea-share/gitea-repositories
管理员账号: giteahhg
密码: [你的密码]
```
#### 3. 确认服务状态
```bash
# 查看运行端口
netstat -tuln | grep gitea
# 查看服务状态
synopkg status gitea
```
### 第二阶段:FRP客户端部署
#### 1. 准备部署文件
在本地创建以下文件:
**frpc.toml** (配置文件):
```toml
serverAddr = "82.156.57.104"
serverPort = 7000
auth.method = "token"
auth.token = "deb19f52ac7fa6423efcd1a3fbf9c2b7"
transport.tls.enable = true
log.to = "/var/log/frpc.log"
log.level = "info"
log.maxDays = 7
[[proxies]]
name = "gitea-web"
type = "tcp"
localIP = "127.0.0.1"
localPort = 8418
remotePort = 13000
[[proxies]]
name = "gitea-ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 10022
remotePort = 10022
```
> [!warning] 关键配置说明
> - **type**: 必须使用 `tcp`,HTTP类型需要服务器配置vhost
> - **localPort**: Gitea实际运行端口(非标准3000)
> - **remotePort**: 服务器开放端口,避免使用3000(易冲突)
#### 2. 上传部署包
将以下文件上传到群晖 `/volume1/docker/frpc/`:
- frpc.toml
- frp_0.68.0_linux_amd64.tar.gz (从GitHub下载)
- install-local.sh
- start-frpc.sh
- stop-all-frpc.sh
- status-frpc.sh
#### 3. 执行部署
通过群晖任务计划执行:
```bash
# 安装FRP
bash /volume1/docker/frpc/install-local.sh
# 启动客户端
bash /volume1/docker/frpc/start-frpc.sh
# 检查状态
bash /volume1/docker/frpc/status-frpc.sh
```
> [!danger] 常见错误:脚本执行失败
> **问题**: 任务计划执行后"标准输出/错误无内容"
> **原因**: Windows换行符(CRLF)导致bash无法解析
> **解决**: 使用 `bash` 显式调用脚本,而非直接执行
#### 4. 验证连接
```bash
# 查看FRP进程
ps aux | grep frpc
# 查看日志
tail -f /var/log/frpc.log
# 预期输出
# [gitea-web] start proxy success
# [gitea-ssh] start proxy success
```
### 第三阶段:配置更新
#### 1. 更新ROOT_URL和安全配置
创建更新脚本 `update-gitea-security.sh`:
```bash
#!/bin/bash
CONFIG_FILE="/var/packages/gitea/var/conf.ini"
# 备份配置
cp "$CONFIG_FILE" "${CONFIG_FILE}.backup.$(date +%Y%m%d_%H%M%S)"
# 更新访问URL
sed -i 's|^ROOT_URL.*|ROOT_URL = https://git.haiguang.xyz/|' "$CONFIG_FILE"
sed -i 's|^DOMAIN.*|DOMAIN = git.haiguang.xyz|' "$CONFIG_FILE"
sed -i 's|^SSH_DOMAIN.*|SSH_DOMAIN = git.haiguang.xyz|' "$CONFIG_FILE"
# 安全加固:禁用公开注册
sed -i 's|^DISABLE_REGISTRATION.*|DISABLE_REGISTRATION = true|' "$CONFIG_FILE"
sed -i 's|^ENABLE_OPENID_SIGNUP.*|ENABLE_OPENID_SIGNUP = false|' "$CONFIG_FILE"
# 重启服务
synopkg restart gitea
echo "配置更新完成!访问: https://git.haiguang.xyz/"
```
执行:
```bash
bash /volume1/docker/frpc/update-gitea-security.sh
```
#### 2. 配置DNS解析
在域名服务商添加A记录:
| 类型 | 主机记录 | 记录值 | TTL |
|------|----------|--------|-----|
| A | git | 82.156.57.104 | 600 |
#### 3. 配置开机自启
创建群晖任务计划:
- 控制面板 → 任务计划 → 新增 → 触发的任务 → 用户定义的脚本
- 事件: 开机
- 用户: root
- 脚本: `bash /volume1/docker/frpc/start-frpc.sh`
---
## 关键参数清单
### Gitea配置
> [!important] 重要:配置文件路径
> 群晖Gitea套件的配置文件路径为:**`/var/packages/gitea/var/conf.ini`**
>
> 很多文档错误地认为是 `/var/packages/gitea/var/app.ini`,这是不正确的。
| 参数 | 值 | 文件位置 |
|------|-----|----------|
| 本地端口 | 8418 | `/var/packages/gitea/var/conf.ini` |
| SSH端口 | 10022 | 同上 |
| 数据库 | SQLite3 | `/var/packages/gitea/var/data/gitea.db` |
| 仓库目录 | `/volume3/gitea-share/gitea-repositories` | 初始化时设置 |
| ROOT_URL | `https://git.haiguang.xyz/` | 需手动更新 |
| 运行用户 | sc-gitea | 套件自动创建 |
### FRP配置
| 参数 | 值 | 说明 |
|------|-----|------|
| 服务器地址 | 82.156.57.104 | FRP服务器IP |
| 服务器端口 | 7000 | FRP服务端口 |
| 认证Token | deb19f52ac7fa6423efcd1a3fbf9c2b7 | 服务端配置 |
| TLS加密 | 启用 | 安全传输 |
| Web代理 | 本地8418 → 远程13000 | TCP模式 |
| SSH代理 | 本地10022 → 远程10022 | TCP模式 |
---
## 经验教训
### 问题1:脚本执行失败
**现象**:群晖任务计划执行脚本后无输出,服务未启动
**根本原因**:
- Windows环境创建的脚本使用CRLF换行符
- 群晖bash无法解析CRLF格式
- 直接执行 `./script.sh` 会静默失败
**解决方案**:
```bash
# 错误方式
./install-local.sh
# 正确方式
bash install-local.sh
```
**预防措施**:
- 使用VSCode统一换行符为LF
- 或在脚本开头添加 `#!/bin/bash` 并用bash显式调用
---
### 问题2:HTTP代理不支持
**现象**:FRP日志显示 `type [http] not supported`
**根本原因**:
- FRP服务器未配置 `vhostHTTPPort`
- HTTP类型代理需要服务端支持虚拟主机
**解决方案**:
改用TCP模式:
```toml
[[proxies]]
name = "gitea-web"
type = "tcp" # 原为 "http"
localPort = 8418
remotePort = 13000
```
**对比**:
| 模式 | 优势 | 劣势 | 适用场景 |
|------|------|------|----------|
| HTTP | 支持域名路由,可共享80端口 | 需服务端配置 | 多服务共享域名 |
| TCP | 无需额外配置,通用性强 | 每服务需独立端口 | 单服务部署 |
---
### 问题3:端口冲突
**现象**:Gitea服务无法启动或FRP代理失败
**排查过程**:
1. 检查Gitea实际端口:`netstat -tuln | grep gitea` → 发现8418
2. 检查FRP端口占用:`netstat -tuln | grep 3000` → VPS已占用
3. 检查多实例:`ps aux | grep frpc` → 发现两个进程
**解决方案**:
```bash
# 清理所有frpc进程
kill -9 $(pgrep frpc)
# 修改remotePort为非标准端口
# 3000 → 13000
```
**预防措施**:
- 使用 `netstat` 或 `ss` 提前检查端口占用
- remotePort避免使用常见端口(3000, 8080等)
- 启动前执行清理脚本
---
### 问题4:数据库连接失败
**现象**:`dial tcp 127.0.0.1:3306: connect: connection refused`
**根本原因**:
- 群晖MariaDB套件监听 **3307** 端口(非标准3306)
- Gitea默认尝试连接3306
**解决方案**:
```bash
# 查看MariaDB实际端口
netstat -tuln | grep maria
# 方案1:修改Gitea配置连接3307
DB_TYPE = mysql
HOST = 127.0.0.1:3307
# 方案2:改用SQLite3(推荐个人使用)
DB_TYPE = sqlite3
```
**教训**:
- 群晖套件可能使用非标准端口
- 安装前务必确认服务实际配置
- 个人使用优先选择零配置方案
---
### 问题5:多实例冲突
**现象**:`proxy [gitea-web] already exists`
**原因**:
- 多次启动脚本导致多个frpc进程
- 旧进程未清理干净
**解决方案**:
```bash
# 强制停止所有实例
kill -9 $(pgrep frpc)
# 或使用专用停止脚本
bash stop-all-frpc.sh
```
**预防措施**:
- 启动前先执行停止
- 使用进程管理工具(如supervisor)
- 添加PID文件检查
---
## 安全配置
### 禁用公开注册
> [!warning] 重要安全设置
> 默认情况下,Gitea允许任何人注册账号。对于个人Git服务,必须禁用此功能。
**方法1:通过Web界面**
1. 以管理员登录Gitea
2. 点击右上角头像 → **管理后台**
3. 左侧菜单 → **配置管理** → **服务管理**
4. 找到 **禁止用户自行注册** 并勾选
5. 点击 **保存配置**
**方法2:修改配置文件**
编辑 `/var/packages/gitea/var/conf.ini`:
```ini
[service]
DISABLE_REGISTRATION = true
ENABLE_OPENID_SIGNUP = false
ALLOW_ONLY_EXTERNAL_REGISTRATION = false
```
重启服务:
```bash
synopkg restart gitea
```
---
### Token管理
#### 创建访问令牌
1. 登录Gitea → 右上角头像 → **设置**
2. 左侧菜单 → **应用** → **管理Access Token**
3. 点击 **生成新的Token**
4. 填写信息:
- **令牌名称**:如 `sync-token`
- **权限选择**:只勾选 `repo`(最小权限原则)
- **过期时间**:建议30-90天
5. 点击 **生成令牌**
6. **⚠️ 立即复制Token**(只显示一次)
#### 配置Git使用Token
```bash
cd /path/to/your/repo
git remote set-url origin https://@git.haiguang.xyz/username/repo.git
```
#### Token权限说明
| 权限范围 | 说明 | 个人使用 |
|---------|------|---------|
| `repo` | 仓库读写 | ✅ 必需 |
| `admin` | 管理员权限 | ❌ 不需要 |
| `user` | 用户信息 | ❌ 不需要 |
| `org` | 组织管理 | ❌ 不需要 |
#### Token安全最佳实践
- ✅ **最小权限**:只授予必需的权限
- ✅ **定期更换**:每3-6个月更换一次
- ✅ **环境变量**:不要在脚本中硬编码Token
- ✅ **监控使用**:定期检查Token使用记录
- ❌ **不要分享**:Token相当于密码
- ❌ **不要提交**:不要提交到Git仓库
---
### 自动同步配置
#### 创建同步脚本
**PowerShell版本** (`sync-gitea.ps1`):
```powershell
# Gitea仓库自动同步脚本
param(
[string]$RepoPath = "D:\TC_UP\2023card\projects\openclaw\obsidian_claw",
[string]$LogFile = "D:\TC_UP\2023card\projects\openclaw\obsidian_claw\sync.log",
[switch]$Quiet
)
function Write-Log {
param([string]$Message)
$timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"
$logEntry = "[$timestamp] $Message"
Add-Content -Path $LogFile -Value $logEntry
if (-not $Quiet) { Write-Host $logEntry }
}
try {
Write-Log "开始同步"
Push-Location $RepoPath
# 检查本地更改
$changes = git status --porcelain
if ($changes.Count -gt 0) {
Write-Log "提交本地更改"
git add -A
git commit -m "自动同步: $(Get-Date -Format 'yyyy-MM-dd HH:mm:ss')"
}
# 拉取和推送
Write-Log "拉取远程更改"
git pull
if ($changes.Count -gt 0) {
Write-Log "推送本地更改"
git push
}
Pop-Location
Write-Log "同步完成"
} catch {
Write-Log "错误: $_"
exit 1
}
```
#### 配置Windows任务计划
1. 打开任务计划程序(`taskschd.msc`)
2. 创建基本任务:
- 名称:`Gitea仓库同步`
- 触发器:每天
- 操作:启动程序
- 程序:`powershell.exe`
- 参数:`-ExecutionPolicy Bypass -File "D:\path\to\sync-gitea.ps1" -Quiet`
3. 在属性中设置每小时重复
#### 查看同步日志
```powershell
# 查看最近20条日志
Get-Content sync.log -Tail 20
# 监控日志
Get-Content sync.log -Wait
```
---
## 完整配置示例
### Gitea配置文件(完整版)
```ini
APP_NAME = Gitea: Git with a cup of tea
RUN_USER = sc-gitea
WORK_PATH = /var/packages/gitea/var
RUN_MODE = prod
[repository]
ROOT = /volume3/gitea-share/gitea-repositories
[server]
SSH_DOMAIN = git.haiguang.xyz
DOMAIN = git.haiguang.xyz
ROOT_URL = https://git.haiguang.xyz/
LOCAL_ROOT_URL = http://localhost:8418/
HTTP_PORT = 8418
APP_DATA_PATH = /var/packages/gitea/var/data
DISABLE_SSH = false
SSH_PORT = 10022
LFS_START_SERVER = true
OFFLINE_MODE = true
[lfs]
PATH = /volume3/gitea-share/lfs
[database]
DB_TYPE = sqlite3
PATH = /var/packages/gitea/var/data/gitea.db
[service]
REGISTER_EMAIL_CONFIRM = false
ENABLE_NOTIFY_MAIL = false
DISABLE_REGISTRATION = true # 禁用公开注册
ALLOW_ONLY_EXTERNAL_REGISTRATION = false
ENABLE_CAPTCHA = false
REQUIRE_SIGNIN_VIEW = false
DEFAULT_KEEP_EMAIL_PRIVATE = false
DEFAULT_ALLOW_CREATE_ORGANIZATION = true
DEFAULT_ENABLE_TIMETRACKING = true
[openid]
ENABLE_OPENID_SIGNIN = true
ENABLE_OPENID_SIGNUP = false # 禁用OpenID注册
[security]
INSTALL_LOCK = true
PASSWORD_HASH_ALGO = pbkdf2
[log]
MODE = console
LEVEL = info
ROOT_PATH = /var/packages/gitea/var/log
```
### FRP配置文件(完整版)
```toml
serverAddr = "82.156.57.104"
serverPort = 7000
auth.method = "token"
auth.token = "your-token-here"
transport.tls.enable = true
log.to = "/var/log/frpc.log"
log.level = "info"
log.maxDays = 7
[[proxies]]
name = "gitea-web"
type = "tcp"
localIP = "127.0.0.1"
localPort = 8418
remotePort = 13000
[[proxies]]
name = "gitea-ssh"
type = "tcp"
localIP = "127.0.0.1"
localPort = 10022
remotePort = 10022
```
---
## 使用指南
### 日常操作
#### 启动FRP服务
```bash
bash /volume1/docker/frpc/start-frpc.sh
```
#### 停止FRP服务
```bash
bash /volume1/docker/frpc/stop-all-frpc.sh
```
#### 检查服务状态
```bash
bash /volume1/docker/frpc/status-frpc.sh
```
#### 查看日志
```bash
tail -f /var/log/frpc.log
```
#### 重启Gitea
```bash
synopkg restart gitea
```
---
### Git使用
#### HTTP克隆
```bash
git clone https://git.haiguang.xyz/username/repo.git
```
#### SSH克隆
```bash
git clone ssh://git@82.156.57.104:10022/username/repo.git
```
#### 配置SSH密钥
1. 生成密钥对:
```bash
ssh-keygen -t ed25519 -C "your_email@example.com"
```
2. 复制公钥到Gitea:
```bash
cat ~/.ssh/id_ed25519.pub
# 在 Gitea → 设置 → SSH/GPG密钥 → 添加密钥
```
3. 配置SSH客户端(`~/.ssh/config`):
```
Host gitea-haiguang
HostName 82.156.57.104
Port 10022
User git
IdentityFile ~/.ssh/id_ed25519
```
4. 简化克隆:
```bash
git clone gitea-haiguang:username/repo.git
```
---
### 维护任务
#### 定期备份
创建群晖任务计划,每周执行:
```bash
#!/bin/bash
BACKUP_DIR="/volume1/backup/gitea"
DATE=$(date +%Y%m%d)
# 备份数据库
sqlite3 /var/packages/gitea/var/data/gitea.db ".backup ${BACKUP_DIR}/gitea-${DATE}.db"
# 备份配置
cp /var/packages/gitea/var/app.ini ${BACKUP_DIR}/app.ini.${DATE}
# 备份仓库(增量)
rsync -av /volume3/gitea-share/gitea-repositories/ ${BACKUP_DIR}/repos/
# 清理30天前的备份
find ${BACKUP_DIR} -name "*.db" -mtime +30 -delete
```
#### 监控脚本
创建 `check-gitea-health.sh`:
```bash
#!/bin/bash
# 检查Gitea服务
if ! synopkg status gitea | grep -q "start"; then
synopkg restart gitea
echo "$(date) Gitea服务重启" >> /var/log/gitea-health.log
fi
# 检查FRP客户端
if ! pgrep -x "frpc" > /dev/null; then
bash /volume1/docker/frpc/start-frpc.sh
echo "$(date) FRP客户端重启" >> /var/log/gitea-health.log
fi
```
配置cron每5分钟执行:
```bash
*/5 * * * * bash /volume1/docker/frpc/check-gitea-health.sh
```
---
## 故障排查
### 无法访问git.haiguang.xyz
**排查步骤**:
1. 检查DNS解析:
```bash
nslookup git.haiguang.xyz
# 应返回 82.156.57.104
```
2. 检查FRP客户端状态:
```bash
ps aux | grep frpc
tail -f /var/log/frpc.log
```
3. 检查服务器端口:
```bash
telnet 82.156.57.104 13000
```
4. 检查Gitea服务:
```bash
synopkg status gitea
curl http://127.0.0.1:8418
```
---
### SSH连接失败
**排查步骤**:
1. 检查SSH服务:
```bash
netstat -tuln | grep 10022
```
2. 检查SSH密钥:
```bash
ssh -v git@82.156.57.104 -p 10022
```
3. 检查Gitea SSH配置:
```ini
[server]
START_SSH_SERVER = true
SSH_PORT = 10022
```
---
### 推送超时
**可能原因**:
- 网络带宽不足
- 仓库过大
- FRP超时配置过短
**解决方案**:
```toml
# frpc.toml 增加超时时间
transport.dialTimeout = 30
transport.poolCount = 5
```
---
## 参考资源
### 官方文档
- [[Gitea官方文档]](https://docs.gitea.io/)
- [[FRP官方文档]](https://gofrp.org/docs/)
- [[SynoCommunity套件源]](https://github.com/SynoCommunity/spksrc)
### 相关笔记
- [[群晖NAS配置指南]]
- [[FRP内网穿透原理]]
- [[Git最佳实践]]
---
## 变更记录
| 日期 | 版本 | 变更内容 |
|------|------|----------|
| 2026-03-29 | 1.0 | 初始版本,记录完整部署流程 |
| 2026-03-29 | 1.1 | 新增内容:
- 修正配置文件路径(conf.ini而非app.ini)
- 添加安全配置章节(禁用注册、Token管理)
- 添加自动同步脚本配置
- 完善配置示例和故障排查清单
- 新增关键配置路径对照表 |
---
## 附录
### A. 部署文件清单
```
/volume1/docker/frpc/
├── frp_0.68.0_linux_amd64/ # FRP程序目录
│ ├── frpc # 客户端程序
│ └── frpc.toml # 配置文件
├── frp_0.68.0_linux_amd64.tar.gz # 安装包
├── install-local.sh # 安装脚本
├── start-frpc.sh # 启动脚本
├── stop-all-frpc.sh # 停止脚本
├── status-frpc.sh # 状态检查
├── check-gitea-health.sh # 健康检查
└── update-gitea-security.sh # 配置更新
/var/packages/gitea/var/
├── conf.ini # Gitea配置文件(重要)
├── data/
│ └── gitea.db # SQLite数据库
└── log/ # 日志目录
本地Windows仓库(obsidian_claw)/
├── sync-gitea.bat # 同步脚本(BAT版)
├── sync-gitea.ps1 # 同步脚本(PowerShell版)
├── 同步脚本使用说明.md # 同步脚本文档
└── sync.log # 同步日志
```
### B. 服务端口映射表
| 服务 | 本地地址 | 远程地址 | 协议 |
|------|----------|----------|------|
| Gitea Web | 127.0.0.1:8418 | 82.156.57.104:13000 | TCP |
| Gitea SSH | 127.0.0.1:10022 | 82.156.57.104:10022 | TCP |
### C. 常用命令速查
```bash
# Gitea相关
synopkg status gitea # 查看状态
synopkg restart gitea # 重启服务
synopkg stop gitea # 停止服务
synopkg start gitea # 启动服务
# FRP相关
ps aux | grep frpc # 查看进程
kill -9 $(pgrep frpc) # 强制停止
tail -f /var/log/frpc.log # 查看日志
# 网络诊断
netstat -tuln | grep 8418 # 检查端口
telnet 82.156.57.104 13000 # 测试连通性
curl -I https://git.haiguang.xyz/ # 测试HTTP
# 数据库操作(SQLite3)
sqlite3 /var/packages/gitea/var/data/gitea.db ".tables"
sqlite3 /var/packages/gitea/var/data/gitea.db ".backup /tmp/gitea.db.bak"
# Git Token配置
git remote set-url origin https://@git.haiguang.xyz/username/repo.git
git remote -v # 验证配置
# Windows同步脚本
powershell -ExecutionPolicy Bypass -File sync-gitea.ps1
Get-Content sync.log -Tail 20 # 查看日志
```
### D. 故障排查清单
| 问题 | 检查命令 | 解决方案 |
|------|---------|---------|
| 无法访问仓库 | `curl -I https://git.haiguang.xyz/` | 检查DNS、FRP、Gitea服务 |
| Git推送失败 | `git remote -v` | 检查Token是否有效 |
| FRP连接失败 | `tail -f /var/log/frpc.log` | 检查服务器状态、Token |
| 脚本执行失败 | 使用 `bash script.sh` | 检查换行符(LF vs CRLF) |
| 端口冲突 | `netstat -tuln | grep ` | 修改端口号 |
| 配置不生效 | `synopkg restart gitea` | 重启服务 |
### E. 关键配置路径对照表
| 配置项 | 路径 | 说明 |
|--------|------|------|
| Gitea配置 | `/var/packages/gitea/var/conf.ini` | ⚠️ 不是app.ini |
| 数据库文件 | `/var/packages/gitea/var/data/gitea.db` | SQLite3 |
| FRP配置 | `/volume1/docker/frpc/frpc.toml` | TOML格式 |
| FRP日志 | `/var/log/frpc.log` | 按maxDays轮转 |
| 仓库目录 | `/volume3/gitea-share/gitea-repositories/` | 初始化时设置 |
| LFS文件 | `/volume3/gitea-share/lfs/` | 大文件存储 |
---
> [!quote] 总结
> 本次部署从零开始搭建了完整的个人Git服务,涵盖了Gitea安装、FRP内网穿透、域名配置、SSH密钥管理等核心环节。通过群晖任务计划实现了无SSH的远程部署,解决了Windows换行符、端口冲突、数据库配置等实际问题。最终实现了稳定的公网访问,为个人代码管理提供了可靠的基础设施。