> 技术文档 > Gitea 服务器搭建:如何在公司服务器搭建 Gitea 环境实现代码仓库私有化托管_gitea服务器搭建

Gitea 服务器搭建:如何在公司服务器搭建 Gitea 环境实现代码仓库私有化托管_gitea服务器搭建


Gitea 服务器搭建:如何在公司服务器搭建 Gitea 环境实现代码仓库私有化托管

在当今软件开发高速迭代的时代,企业对「私有化代码仓库托管」的需求愈发迫切。通过在公司服务器部署 Gitea,不仅可以实现“Git 私有化托管”与“代码安全隔离”,还能够结合 CI/CD 流水线快速交付,彻底摆脱公有云成本与权限风控的双重烦恼。本教程将手把手教您在 Ubuntu 20.04 环境下,完成从服务器准备、依赖安装到域名配置、SSL 加密、自动化运维的一整套 “Gitea 服务器搭建” 方案,确保您能够快速上手 “Gitea 安装教程” 并实现“企业级 Git 自托管”最佳实践。
本文详细介绍在公司服务器上从零开始部署 Gitea 服务的全流程。全程使用 Ubuntu 20.04 LTS 作为示例操作系统,其他 Linux 发行版亦可参照操作。

作者✍️
猫头虎微信号:Libin9iOak
公众号:猫头虎技术团队
万粉变现经纪人:CSDNWF


Gitea 服务器搭建:如何在公司服务器搭建 Gitea 环境实现代码仓库私有化托管_gitea服务器搭建


目录

  1. 前置准备
  2. 安装依赖
  3. 创建 Gitea 系统用户与目录
  4. 下载与安装 Gitea 二进制
  5. 配置数据库
  6. 配置 Gitea 应用
  7. 设置 systemd 服务
  8. 防火墙与域名、SSL 配置
  9. 首次启动与初始化
  10. 安全加固与备份
  11. 常见问题与排查

前置准备

  • 一台干净的 Ubuntu 20.04 LTS 服务器,至少 2 GB 内存、20 GB 磁盘空间。
  • 拥有 sudo 权限的用户。
  • 已绑定并解析好域名(如 git.example.com)指向本机 IP。
  • 公司网络允许对 HTTP(80)和 HTTPS(443)端口访问。1

安装依赖

  1. 更新系统包列表并安装基础工具:

    sudo apt updatesudo apt install -y git curl wget vim ufw
  2. 安装数据库:

    • 推荐使用 MariaDB(也可选择 MySQL、PostgreSQL)。
    sudo apt install -y mariadb-serversudo systemctl enable --now mariadb
  3. 安装 certbot(用于后续 SSL):

    sudo apt install -y certbot

创建 Gitea 系统用户与目录

为了安全隔离,建议单独为 Gitea 创建系统用户:

sudo adduser \\ --system \\ --shell /bin/bash \\ --gecos \'Gitea git user\' \\ --group \\ --disabled-password \\ --home /home/git \\ git

创建存放 Git 仓库及配置的目录,并赋予权限:

sudo mkdir -p /var/lib/gitea/{custom,data,log}sudo chown -R git:git /var/lib/giteasudo chmod -R 750 /var/lib/giteasudo mkdir /etc/giteasudo chown root:git /etc/giteasudo chmod 770 /etc/gitea

下载与安装 Gitea 二进制

  1. 切换至临时目录:

    cd /tmp
  2. 拉取最新版 Gitea(参考 官方下载页面):

    wget -O gitea https://dl.gitea.io/gitea/1.20.2/gitea-1.20.2-linux-amd64
  3. 安装至系统可执行路径:

    sudo mv gitea /usr/local/bin/giteasudo chmod +x /usr/local/bin/gitea
  4. 验证:

    gitea --version

    若能正确输出版本号,则安装成功。


配置数据库

  1. 登录 MariaDB:

    sudo mysql
  2. 创建数据库与专用用户:

    CREATE DATABASE gitea CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;CREATE USER \'gitea\'@\'localhost\' IDENTIFIED BY \'你的安全密码\';GRANT ALL PRIVILEGES ON gitea.* TO \'gitea\'@\'localhost\';FLUSH PRIVILEGES;EXIT;
  3. 记录下数据库名称、用户名与密码,后续 Gitea 安装时需要使用。


配置 Gitea 应用

/etc/gitea/app.ini 中添加基础配置:

[database]DB_TYPE = mysqlHOST = 127.0.0.1:3306NAME = giteaUSER = giteaPASSWD = 你的安全密码SSL_MODE = disable[server]DOMAIN  = git.example.comHTTP_PORT = 3000ROOT_URL = https://git.example.com/DISABLE_SSH = falseSSH_PORT = 22LFS_START_SERVER = trueLFS_CONTENT_PATH = /var/lib/gitea/data/lfs[security]INSTALL_LOCK = trueSECRET_KEY = 一个随机长密钥,使用 `openssl rand -hex 16` 生成[log]MODE = fileLEVEL = InfoROOT_PATH = /var/lib/gitea/log

确保文件属主为 root:git 并且权限为 660

sudo chown root:git /etc/gitea/app.inisudo chmod 660 /etc/gitea/app.ini

设置 systemd 服务

创建 /etc/systemd/system/gitea.service

[Unit]Description=Gitea (Git with a cup of tea)After=syslog.targetAfter=network.targetAfter=mariadb.service[Service]User=gitGroup=gitWorkingDirectory=/var/lib/gitea/ExecStart=/usr/local/bin/gitea web -c /etc/gitea/app.iniRestart=alwaysEnvironment=USER=git HOME=/home/git GITEA_WORK_DIR=/var/lib/gitea[Install]WantedBy=multi-user.target

使能并启动服务:

sudo systemctl daemon-reloadsudo systemctl enable --now giteasudo systemctl status gitea

防火墙与域名、SSL 配置

  1. 开启 UFW 并允许常用端口:

    sudo ufw allow OpenSSHsudo ufw allow 3000/tcpsudo ufw enable
  2. 使用 certbot 获取并自动续期免费 SSL:

    sudo certbot certonly --standalone -d git.example.com
  3. 在 Nginx 或 Apache 中反向代理 Gitea,并配置 SSL。例如,Nginx 配置片段:

    server { listen 80; server_name git.example.com; return 301 https://$host$request_uri;}server { listen 443 ssl; server_name git.example.com; ssl_certificate /etc/letsencrypt/live/git.example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/git.example.com/privkey.pem; location / { proxy_pass http://127.0.0.1:3000; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_set_header X-Forwarded-Proto $scheme; }}

首次启动与初始化

  1. 在浏览器中访问 https://git.example.com

  2. 在安装向导中填写:

    • Database Settings:与前面创建的数据库信息一致。
    • Application General Settings:站点标题、管理员账号(如 admin )、邮箱、密码。
    • Server and SSH Settings:确保 SSH 模块开启,SSH 端口为 22。
  3. 点击“Install Gitea”完成初始化。


安全加固与备份

  1. 更换默认端口:将 SSH 服务端口改为非 22 端口,修改 /etc/ssh/sshd_config 并重启。

  2. 开启 Fail2Ban:安装并配置防爆破:

    sudo apt install -y fail2ban
  3. 定期备份

    • 数据库:

      mysqldump -u gitea -p gitea > /backup/gitea-db-$(date +%F).sql
    • 仓库文件:

      tar czvf /backup/gitea-repos-$(date +%F).tar.gz /var/lib/gitea/data
    • 考虑使用 cron 自动化。


常见问题与排查

  • Gitea 无法启动?

    • 查看日志:sudo journalctl -u gitea -f
    • 检查 app.ini 配置文件格式与权限。
  • SSH 克隆报错 Permission denied

    • 确认服务器 SSH 配置允许 git 用户登录。
    • 检查 git 用户家目录 .ssh/authorized_keys 是否存在并正确。
  • SSL 证书续期失败?

    • 手动执行:sudo certbot renew --dry-run,根据报错信息排查。

  1. 作者✍️ 猫头虎微信号:Libin9iOak; 公众号:猫头虎技术团队; 万粉变现经纪人:CSDNWF ↩︎