林菲菲-知识库
将内网服务映射到公网域名-教程
林菲菲-待办事项
工作日志
服务器
内网服务器
基础设施搭建
虚拟机模版-初始化脚本
Chatwoot v4.6.0 部署文档
1Panel
一键部署脚本
Gitea部署
内网服务器 172.16.72.252
测试用例
外网服务器 202.79.167.21/25/31
多Agents
多Agent
外网服务器 202.79.167.19/22/23
迁移202.61.130.102服务器至202.79.167.25
刷单台子
需求迭代1
VIP等级功能 - 修改文件清单(最终版)
文件迁移脚本
天天vip新客户
外网服务器 202.61.130.102/130/233
wifi
矿池Bugs
Kt-后台系统
工单记录
Kt001 -内网配置
KT-后台业务流程
Kt前台业务流程
KT基建
本文档使用 MrDoc 发布
-
+
首页
Gitea部署
# Gitea 服务器部署指南 ## 部署环境 - **操作系统**: Ubuntu 24.04 LTS - **服务器**: 8核CPU, 16GB内存, 100GB数据盘 - **Gitea版本**: 1.24.6 (二次开发版) ## 一、环境准备 ### 1.1 更新系统并安装基础依赖 ```bash apt update apt install -y git curl wget build-essential ``` ### 1.2 安装 Go 语言环境 ```bash cd /tmp wget https://go.dev/dl/go1.23.5.linux-amd64.tar.gz tar -C /usr/local -xzf go1.23.5.linux-amd64.tar.gz rm go1.23.5.linux-amd64.tar.gz # 配置环境变量 echo 'export PATH=$PATH:/usr/local/go/bin' >> /etc/profile echo 'export GOPATH=/data/go' >> /etc/profile mkdir -p /data/go source /etc/profile ``` ### 1.3 安装数据库和缓存服务 ```bash # 安装 PostgreSQL, Redis, Nginx apt install -y postgresql postgresql-contrib redis-server nginx # 启动并设置自启动 systemctl start postgresql systemctl enable postgresql systemctl start redis-server systemctl enable redis-server ``` ### 1.4 创建数据库 ```bash # 创建Gitea数据库用户和数据库 sudo -u postgres psql -c "CREATE USER gitea WITH PASSWORD 'gitea123456';" sudo -u postgres psql -c "CREATE DATABASE giteadb OWNER gitea;" sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE giteadb TO gitea;" ``` ## 二、部署 Gitea ### 2.1 创建目录结构 ```bash # 创建Gitea主目录 mkdir -p /data/gitea mkdir -p /data/gitea/custom/conf mkdir -p /data/gitea/data/gitea-repositories mkdir -p /data/gitea/data/avatars mkdir -p /data/gitea/data/repo-avatars mkdir -p /data/gitea/data/attachments mkdir -p /data/gitea/data/sessions mkdir -p /data/gitea/data/queues mkdir -p /data/gitea/data/indexers mkdir -p /data/gitea/log ``` ### 2.2 上传并部署Gitea ```bash # 如果有源码包,解压到 /data/gitea cd /data tar -xzf gitea.tar.gz # 使用预编译的二进制文件 cp /data/gitea/gitea-linux /data/gitea/gitea chmod +x /data/gitea/gitea ``` ### 2.3 创建系统用户 ```bash # 创建gitea用户(Gitea不允许以root运行) useradd -m -s /bin/bash -d /home/gitea gitea chown -R gitea:gitea /data/gitea ``` ## 三、配置文件 ### 3.1 创建 app.ini 配置文件 ```bash cat > /data/gitea/custom/conf/app.ini << 'EOF' APP_NAME = Gitea: Git with a cup of tea RUN_USER = gitea RUN_MODE = prod WORK_PATH = /data/gitea [server] HTTP_ADDR = 0.0.0.0 HTTP_PORT = 3000 ROOT_URL = https://gitea.ktai.im/ # 根据实际域名修改 DISABLE_SSH = false SSH_PORT = 2222 START_SSH_SERVER = true OFFLINE_MODE = false [database] DB_TYPE = postgres HOST = 127.0.0.1:5432 NAME = giteadb USER = gitea PASSWD = gitea123456 SSL_MODE = disable [repository] ROOT = /data/gitea/data/gitea-repositories [security] INSTALL_LOCK = true SECRET_KEY = $(openssl rand -hex 32) INTERNAL_TOKEN = $(openssl rand -hex 32) [service] DISABLE_REGISTRATION = false REQUIRE_SIGNIN_VIEW = false ENABLE_NOTIFY_MAIL = false ENABLE_CAPTCHA = false DEFAULT_ENABLE_DEPENDENCIES = true ENABLE_USER_HEATMAP = true [log] MODE = file LEVEL = Info ROOT_PATH = /data/gitea/log [picture] AVATAR_UPLOAD_PATH = /data/gitea/data/avatars REPOSITORY_AVATAR_UPLOAD_PATH = /data/gitea/data/repo-avatars [attachment] PATH = /data/gitea/data/attachments [session] PROVIDER = file PROVIDER_CONFIG = /data/gitea/data/sessions [cache] ENABLED = true ADAPTER = memory INTERVAL = 60 HOST = [queue] TYPE = level DATADIR = /data/gitea/data/queues [indexer] ISSUE_INDEXER_PATH = /data/gitea/data/indexers/issues.bleve REPO_INDEXER_ENABLED = true REPO_INDEXER_PATH = /data/gitea/data/indexers/repos.bleve EOF ``` ### 3.2 生成安全密钥 ```bash # 生成并替换安全密钥 SECRET_KEY=$(openssl rand -hex 32) INTERNAL_TOKEN=$(openssl rand -hex 32) sed -i "s/\$(openssl rand -hex 32)/$SECRET_KEY/" /data/gitea/custom/conf/app.ini sed -i "s/\$(openssl rand -hex 32)/$INTERNAL_TOKEN/" /data/gitea/custom/conf/app.ini # 设置权限 chown -R gitea:gitea /data/gitea ``` ## 四、服务管理 ### 4.1 创建 systemd 服务 ```bash cat > /etc/systemd/system/gitea.service << 'EOF' [Unit] Description=Gitea (Git with a cup of tea) After=syslog.target After=network.target Wants=postgresql.service Wants=redis-server.service [Service] RestartSec=2s Type=simple User=gitea Group=gitea WorkingDirectory=/data/gitea ExecStart=/data/gitea/gitea web --config /data/gitea/custom/conf/app.ini Restart=always Environment=USER=gitea HOME=/home/gitea GITEA_WORK_DIR=/data/gitea [Install] WantedBy=multi-user.target EOF ``` ### 4.2 启动服务 ```bash # 重载systemd配置 systemctl daemon-reload # 启用并启动Gitea systemctl enable gitea systemctl start gitea # 检查服务状态 systemctl status gitea ``` ## 五、访问配置 ### 5.1 直接访问(内网) - **内网地址**: `http://内网IP:3000/` - **SSH克隆**: `ssh://git@内网IP:2222/用户名/仓库名.git` ### 5.2 域名访问(通过Cloudflare) 如果使用Cloudflare进行域名映射: 1. **配置Cloudflare**: - 将域名指向服务器IP - 设置端口转发规则:443 → 3000 2. **修改ROOT_URL**: ```bash # 对于HTTPS访问 sed -i 's|ROOT_URL = .*|ROOT_URL = https://你的域名/|' /data/gitea/custom/conf/app.ini # 对于HTTP访问 sed -i 's|ROOT_URL = .*|ROOT_URL = http://你的域名/|' /data/gitea/custom/conf/app.ini # 重启服务 systemctl restart gitea ``` ## 六、常用管理命令 ```bash # 查看服务状态 systemctl status gitea # 查看日志 journalctl -u gitea -f tail -f /data/gitea/log/gitea.log # 重启服务 systemctl restart gitea # 停止服务 systemctl stop gitea # 编辑配置 nano /data/gitea/custom/conf/app.ini ``` ## 七、故障排查 ### 7.1 ROOT_URL 不匹配警告 **问题**: 页面显示 "Your ROOT_URL in app.ini is xxx, it's unlikely matching the site you are visiting" **解决方案**: ```bash # 确保ROOT_URL与实际访问地址完全一致 # 例如:通过 https://gitea.example.com 访问 sed -i 's|ROOT_URL = .*|ROOT_URL = https://gitea.example.com/|' /data/gitea/custom/conf/app.ini systemctl restart gitea ``` ### 7.2 无法以root用户运行 **问题**: "Gitea is not supposed to be run as root" **解决方案**: ```bash # 创建专用用户 useradd -m gitea chown -R gitea:gitea /data/gitea # 修改配置文件 sed -i 's/RUN_USER = root/RUN_USER = gitea/' /data/gitea/custom/conf/app.ini # 更新systemd服务的User和Group为gitea ``` ### 7.3 端口被占用 ```bash # 检查端口占用 netstat -tlpn | grep :3000 # 修改端口(如改为3001) sed -i 's/HTTP_PORT = 3000/HTTP_PORT = 3001/' /data/gitea/custom/conf/app.ini systemctl restart gitea ``` ## 八、备份与恢复 ### 8.1 备份 ```bash # 备份数据库 sudo -u postgres pg_dump giteadb > /backup/gitea_db_$(date +%Y%m%d).sql # 备份Gitea数据 tar -czf /backup/gitea_data_$(date +%Y%m%d).tar.gz /data/gitea ``` ### 8.2 恢复 ```bash # 恢复数据库 sudo -u postgres psql giteadb < /backup/gitea_db_20240101.sql # 恢复数据文件 tar -xzf /backup/gitea_data_20240101.tar.gz -C / ``` ## 九、性能优化建议 1. **启用Redis缓存**(已配置) 2. **启用仓库索引**(已配置) 3. **定期清理日志**: ```bash # 添加到crontab 0 2 * * 0 find /data/gitea/log -name "*.log" -mtime +30 -delete ``` ## 十、安全建议 1. **定期更新安全密钥** 2. **配置防火墙规则**: ```bash # 只开放必要端口 ufw allow 3000/tcp # Gitea Web ufw allow 2222/tcp # Gitea SSH ``` 3. **定期备份数据** 4. **监控服务状态和日志** --- ## 附录:实际部署信息 ### 服务器信息 - **外网IP**: 202.79.167.25 - **内网IP**: 10.23.73.251 - **SSH端口**: 16624 - **操作系统**: Ubuntu 24.04.3 LTS ### 服务访问地址 - **域名访问**: https://gitea.ktai.im/ - **内网访问**: http://10.23.73.251:3000/ - **外网IP访问**: http://202.79.167.25:3000/ ### 数据存储路径 - **主目录**: `/data/gitea/` - **仓库存储**: `/data/gitea/data/gitea-repositories/` - **日志文件**: `/data/gitea/log/` - **配置文件**: `/data/gitea/custom/conf/app.ini` ### 服务端口 - **Gitea Web**: 3000 - **Gitea SSH**: 2222 - **PostgreSQL**: 5432 - **Redis**: 6379 ### 数据库信息 - **数据库类型**: PostgreSQL - **数据库名**: giteadb - **数据库用户**: gitea - **数据库密码**: gitea123456 --- **部署完成后**,通过配置的域名或IP地址访问Gitea,首次访问需要创建管理员账户。 **技术支持**: 如遇到问题,可查看日志文件 `/data/gitea/log/gitea.log` 或使用 `journalctl -u gitea -f` 查看实时日志。
arise
2025年10月20日 23:22
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
PDF文档(打印)
分享
链接
类型
密码
更新密码