1Panel 安装 Gitea 及基础配置
1 安装
1.1 准备工作
域名:
Web:
git.example.com(Cloudflare 橙云,用于 80/443 反代访问)SSH:
ssh.example.com(Cloudflare 灰云,仅 DNS,直接连 2222)
端口:开放
80/443(Web)与2222(SSH 对外映射)。证书:建议在 1Panel 中为
git.example.com申请 Let’s Encrypt 证书。目录:准备 Gitea 数据与日志目录(默认:
/data/gitea)。
1.2 通过 1Panel 安装 Gitea
打开 1Panel → 应用商店,搜索 Gitea,点击 安装。
数据卷:将容器的数据目录挂载到主机的
/data/gitea(示例)。端口映射:
HTTP:容器
3000→ 仅内网访问或临时对外;后续建议通过 1Panel 站点反代到https://git.example.com/。SSH:容器
22→ 映射主机2222(对外)。
启动容器,确认运行正常。

1.3 首次启动与初始化向导
访问临时地址(如
http://服务器IP:3000)进入 Gitea 初始化向导:数据库:生产建议
MySQL/PostgreSQL。站点 URL:暂可先留默认,完成安装后我们会在
app.ini里设置ROOT_URL=https://git.example.com/。SSH设置:先启用,具体端口/域名稍后在
app.ini里统一调整。
2 配置
2.1 关闭注册
Gitea 支持在 app.ini 里关闭匿名注册,这样仓库只对已邀请用户开放:
[service]
DISABLE_REGISTRATION = true
REQUIRE_SIGNIN_VIEW = false
REGISTER_EMAIL_CONFIRM = false
ENABLE_NOTIFY_MAIL = false
ALLOW_ONLY_EXTERNAL_REGISTRATION = false
ENABLE_CAPTCHA = false
DEFAULT_KEEP_EMAIL_PRIVATE = true
DEFAULT_ALLOW_CREATE_ORGANIZATION = true
DEFAULT_ENABLE_TIMETRACKING = true
NO_REPLY_ADDRESS = noreply.localhost2.2 在配置文件中修改配置
1Panel 安装的 Gitea 通常将配置放在
/data/gitea/conf/app.ini。修改后重启容器生效:1Panel → 容器 → 重启。
小贴士:不要只改环境变量忘了改
app.ini;另外ROOT_URL与反向代理一致性非常重要(见下一节)。
2.3 站点与 URL
1Panel 建站反代:
在 1Panel 的 网站 → 站点创建
git.example.com;颁发 Let’s Encrypt 证书;
反向代理到容器
http://127.0.0.1:3000;开启 强制 HTTPS。
app.ini 对齐 ROOT_URL:
反代生效后,将
ROOT_URL设置为 公开访问的 HTTPS 地址:
[server]
APP_DATA_PATH = /data/gitea
DOMAIN = git.example.com
HTTP_PORT = 3000
ROOT_URL = https://git.example.com/
LFS_START_SERVER = true
OFFLINE_MODE = true说明:
DOMAIN用于生成链接;ROOT_URL决定 Web 端重定向与回调,必须与外部访问一致(协议/域名/路径)。

2.4 常见坑位排查
“关掉橙云后不是 HTTPS”:
橙云(Cloudflare 代理)提供边缘 HTTPS;关掉后如果你本地没有配置证书/反代,自然退回 HTTP。
解决:在 1Panel 上启用 Let’s Encrypt 证书 + 反代 3000。
ROOT_URL与反代不一致:登录跳转异常、OAuth 回调失败,多半是
ROOT_URL写错协议或域名。
混合内容/子资源失败:
浏览器报不安全,多半是某些链接还是
http://。统一改用https://,必要时清缓存。
3 SSH 连接
3.1 Cloudflare DNS 记录
git.example.com→ 橙云(Proxied):给 Web 反代用。ssh.example.com→ 灰云(DNS only):Cloudflare 不代理这个 2222 端口,灰云直连你的服务器。

3.2 Gitea SSH 配置与端口映射
在 app.ini 配置 SSH 专用域名与端口:
[server]
APP_DATA_PATH = /data/gitea
DOMAIN = git.kixyu9527.com
SSH_DOMAIN = ssh.kixyu9527.com
HTTP_PORT = 3000
ROOT_URL = https://git.kixyu9527.com/
DISABLE_SSH = false
SSH_PORT = 2222
SSH_LISTEN_PORT = 22
LFS_START_SERVER = true
LFS_JWT_SECRET = 默认
OFFLINE_MODE = true端口映射:Gitea默认会做,修改配置文件后重启即可。
防火墙:放行
2222/TCP。
3.3 客户端测试
上传公钥到 Gitea 个人设置 → SSH Keys。
终端测试:
ssh -T -p 2222 [email protected]出现类似 Hi <username>! You’ve successfully authenticated... 即成功。
Git 远程地址示例:
git remote add origin ssh://[email protected]:2222/<owner>/<repo>.git若出现
Permission denied (publickey,password):
检查 本机私钥权限 与 公钥是否已添加;
确认连接的确是
ssh.kixyu9527.com:2222(别误连到git.域名的 443/80);服务器防火墙、端口映射是否生效;
DISABLE_SSH=false且SSH_LISTEN_PORT=22。

附:示例 app.ini 片段
以下为文中出现的两段关键配置,集中列出便于复制:
关闭注册
[service]
DISABLE_REGISTRATION = true
REQUIRE_SIGNIN_VIEW = false
REGISTER_EMAIL_CONFIRM = false
ENABLE_NOTIFY_MAIL = false
ALLOW_ONLY_EXTERNAL_REGISTRATION = false
ENABLE_CAPTCHA = false
DEFAULT_KEEP_EMAIL_PRIVATE = true
DEFAULT_ALLOW_CREATE_ORGANIZATION = true
DEFAULT_ENABLE_TIMETRACKING = true
NO_REPLY_ADDRESS = noreply.localhostServer/SSH
[server]
APP_DATA_PATH = /data/gitea
DOMAIN = git.kixyu9527.com
SSH_DOMAIN = ssh.kixyu9527.com
HTTP_PORT = 3000
ROOT_URL = https://git.kixyu9527.com/
DISABLE_SSH = false
SSH_PORT = 2222
SSH_LISTEN_PORT = 22
LFS_START_SERVER = true
LFS_JWT_SECRET = 默认
OFFLINE_MODE = true本文为原创内容,遵循 CC BY-NC-ND 4.0 协议。转载请注明来源 kixyu,禁止商业使用及修改演绎。