Files

5.9 KiB
Raw Permalink Blame History

服务器部署Gitea

环境:Debian 12.0, 服务器:腾讯云

1. 安装基础依赖并创建专用 git 用户

apt update && apt install -y git curl wget
id git &>/dev/null || useradd -r -m -d /home/git -s /bin/bash git

useradd -r 创建一个系统用户,确保它的操作权限限制在专属目录中,既无法改动系统核心配置,也碰不到服务器上其他服务的数据。

2. 安装Gitea 文件

Gitea 文件下载 查找最新稳定版;

uname -r 

查看框架之后,x86_64 选择 gitea-版本号-linux-amd64;aarch64选择 gitea-版本号-linux-arm64

下载之后,拖拽到/usr/local/bin 文件夹下,并重命名为 gitea

chmod +x /usr/local/bin/gitea
/usr/local/bin/gitea --version

3. 创建工作目录并分配权限

mkdir -p /var/lib/gitea/{custom,data,log}
chown -R git:git /var/lib/gitea/
chmod -R 750 /var/lib/gitea/

mkdir -p /etc/gitea
chown root:git /etc/gitea
chmod 770 /etc/gitea
目录 / 命令 类别 属主与权限 具体用途与作用说明
/var/lib/gitea/data 核心业务数据目录 git:git (750) 存放所有 Git 代码仓库、SQLite3 数据库(gitea.db)、用户头像及附件(备份优先级最高,迁移服务器时必须完整保留)。
/var/lib/gitea/custom 个性化定制目录 git:git (750) 存放自定义网页主题、Logo 图标、自定义 HTML 模板等覆盖文件(默认安装初期为空)。
/var/lib/gitea/log 运行日志目录 git:git (750) 存放 Gitea 服务启动日志、HTTP 访问记录与报错信息,用于日常故障排查(可定期清理)。
/etc/gitea 系统配置目录 root:git (770 → 750) 存放主配置文件 app.ini(记录端口、公网 IP/域名、数据库及密钥设置)。
chown -R git:git & chmod -R 750 数据目录赋权命令 针对 /var/lib/gitea/ 将数据目录完全交给 git 系统账号管理(读写执行 7),同组用户只读(5),其他无关用户禁止访问(0),防止代码泄露。
chown root:git & chmod 770 配置目录赋权命令 针对 /etc/gitea 属主设为 root、所属组设为 git 并临时赋予组写入权限(770),确保网页初始化点击“立即安装”时能自动写入 app.ini(安装后需收紧为 750)。

4. 配置systemd系统服务实现后台常驻

4.1 写入配置文件

vim /etc/systemd/system/gitea.service
[Unit]
Description=Gitea (Git with a cup of tea)
After=syslog.target network.target

[Service]
RestartSec=2s
Type=simple
User=git
Group=git
WorkingDirectory=/var/lib/gitea/
ExecStart=/usr/local/bin/gitea web --config /etc/gitea/app.ini
Restart=always
Environment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea

[Install]
WantedBy=multi-user.target

4.2 重新加载服务配置并设置开机自启

systemctl daemon-reload
systemctl enable --now gitea

4.3 确认 Gitea 已正常运行

systemctl status gitea

5. 开启公网访问

开启3000端口防火墙之后,然后访问 http:公网IP:3000进行配置

2ec1e0d1-dd64-403e-a1f2-1e8833afe97c

6. 收紧配置文件权限

chmod 750 /etc/gitea
chmod 640 /etc/gitea/app.ini

这种情况下只能登录到服务器,使用root权限修改,并systemctl restart gitea重新启动

7. 配置域名

7.1 域名解析

将域名解析到服务器的公网IP

7.2 放行 80/443 端口并安装Nginx与Certbot

apt update && apt install -y nginx certbot python3-certbot-nginx

7.3 配置反向代理

vim /etc/nginx/sites-available/gitea
server {
    listen 80;
    server_name git.你的域名.com;

    # 调大请求体上限,防止推送较大提交时出现 413 报错
    client_max_body_size 512M;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

创建快捷方式,并激活反向代理

ln -sf /etc/nginx/sites-available/gitea /etc/nginx/sites-enabled/gitea
nginx -t && systemctl reload nginx

出现以下提示信息时,表示配置成功!

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

7.4 申请免费 SSL 证书开启 HTTPS

certbot --nginx -d git.你的域名.com

出现Congratulations! You have successfully enabled HTTPS on https://git.你的域名.com表示配置成功

7.5 修改Gitea配置文件并重启

vim /etc/gitea/app.ini

修改server段落

[server]
DOMAIN           = git.你的域名.com
ROOT_URL         = https://git.你的域名.com/
HTTP_ADDR        = 127.0.0.1

重启生效

systemctl restart gitea

! 至此,配置完成