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

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

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

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

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

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

安装依赖

    • 推荐使用 MariaDB(也可选择 MySQL、PostgreSQL)。

安装 certbot(用于后续 SSL):

sudoaptinstall-y certbot 

安装数据库:

sudoaptinstall-y mariadb-server sudo systemctl enable--now mariadb 

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

sudoapt update sudoaptinstall-ygitcurlwgetvim ufw 

创建 Gitea 系统用户与目录

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

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

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

sudomkdir-p /var/lib/gitea/{custom,data,log}sudochown-R git:git /var/lib/gitea sudochmod-R750 /var/lib/gitea sudomkdir /etc/gitea sudochown root:git /etc/gitea sudochmod770 /etc/gitea 

下载与安装 Gitea 二进制

验证:

gitea --version

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

安装至系统可执行路径:

sudomv gitea /usr/local/bin/gitea sudochmod +x /usr/local/bin/gitea 

拉取最新版 Gitea(参考 官方下载页面):

wget-O gitea https://dl.gitea.io/gitea/1.20.2/gitea-1.20.2-linux-amd64 

切换至临时目录:

cd /tmp 

配置数据库

  1. 记录下数据库名称、用户名与密码,后续 Gitea 安装时需要使用。

创建数据库与专用用户:

CREATEDATABASE gitea CHARACTERSET utf8mb4 COLLATE utf8mb4_general_ci;CREATEUSER'gitea'@'localhost' IDENTIFIED BY'你的安全密码';GRANTALLPRIVILEGESON gitea.*TO'gitea'@'localhost'; FLUSH PRIVILEGES;EXIT;

登录 MariaDB:

sudo mysql 

配置 Gitea 应用

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

[database] DB_TYPE = mysql HOST = 127.0.0.1:3306 NAME = gitea USER = gitea PASSWD = 你的安全密码 SSL_MODE = disable [server] DOMAIN = git.example.com HTTP_PORT = 3000 ROOT_URL = https://git.example.com/ DISABLE_SSH = false SSH_PORT = 22 LFS_START_SERVER = true LFS_CONTENT_PATH = /var/lib/gitea/data/lfs [security] INSTALL_LOCK = true SECRET_KEY = 一个随机长密钥,使用 `openssl rand -hex 16` 生成 [log] MODE = file LEVEL = Info ROOT_PATH = /var/lib/gitea/log 

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

sudochown root:git /etc/gitea/app.ini sudochmod660 /etc/gitea/app.ini 

设置 systemd 服务

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

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

使能并启动服务:

sudo systemctl daemon-reload sudo systemctl enable--now gitea sudo systemctl status gitea 

防火墙与域名、SSL 配置

在 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; } } 

使用 certbot 获取并自动续期免费 SSL:

sudo certbot certonly --standalone-d git.example.com 

开启 UFW 并允许常用端口:

sudo ufw allow OpenSSH sudo ufw allow 3000/tcp sudo ufw enable

首次启动与初始化

  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. 定期备份
    • 考虑使用 cron 自动化。

仓库文件:

tar czvf /backup/gitea-repos-$(date +%F).tar.gz /var/lib/gitea/data 

数据库:

mysqldump -u gitea -p gitea > /backup/gitea-db-$(date +%F).sql 

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

sudoaptinstall-y fail2ban 

常见问题与排查

  • 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; 公众号:猫头虎技术团队; 万粉变现经纪人:ZEEKLOGWF ↩︎

Read more

Git BASH安装教程

什么是 Git Bash? 简单来说,Git Bash 是为 Windows 系统提供的模拟 Linux 风格的 Bash 命令行环境,主要用于运行 Git 命令。Bash 是 Linux 和 macOS 用户常用的命令行工具,而 Windows 自带的命令提示符与它不兼容。因此,Git for Windows 软件包中包含了 Git Bash,让你可以在 Windows 上使用熟悉的 Bash 语法来操作 Git 和进行文件管理 第一步:下载 Git for Windows Git Bash 是 Git for Windows

By Ne0inhk
《开源圈聚焦的技术新作:讯飞 Astron Agent 的 “工作流编排 + MCP 工具集”,如何降低企业智能体开发门槛》

《开源圈聚焦的技术新作:讯飞 Astron Agent 的 “工作流编排 + MCP 工具集”,如何降低企业智能体开发门槛》

前引:今天我们不谈趣味互动类的小智能体,而是聚焦又一个开源的企业级智能体 “基建”—— 讯飞星辰推出的 Astron Agent。作为讯飞首个开源的企业级智能体平台,它把 AI 工作流编排、RPA 自动化、MCP 工具集打包成了可直接复用的基座,刚上线 GitHub 就拿下 6k+ Star,连科技圈都在讨论它怎么降低企业做智能体的门槛! 本文将聚焦于:与其同时开源的RPA介绍及智能体平台Astron Agent 中各个工具的详细使用                                    不是广告!不是广告!不是广告!真心推荐! 目录  【一】Astron智能体平台介绍 【二】RPA介绍 【三】Astron部署登录 (2)登录过程 (2)全程体验 【四】几个重要工具详解 (1)什么是系统/用户提示词 (2)代码节点 (3)什么时候用知识库 (4)

By Ne0inhk
2026 年最值得关注的开源低代码 / 零代码平台推荐

2026 年最值得关注的开源低代码 / 零代码平台推荐

无论是零代码小白还是资深开发者,都能在这些平台上找到适合自己的解决方案。今天,我们就来盘点一下 2026 年最值得关注的开源低代码 / 零代码平台,帮助您找到最适合的工具。 一、敲敲云 - 永久免费开源零代码平台 2026 年 1 月 12 日,敲敲云全新版本 v2.3.0 正式发布! 这一版本最大的亮点是正式宣布永久免费开放,彻底打破了传统零代码平台的用户数、应用数、表单数等多重限制,实现真正的零门槛、零成本使用。 敲敲云专注于为企业快速构建应用和工作流,是一款强大且易用的零代码平台。用户无需编写任何代码,即可通过丰富的组件库轻松创建各类应用,真正做到了 "人人都是开发者"。 产品特点: * 免费零代码使用,快速上手,无需开发背景 * 丰富的组件库和模板,满足多样化应用需求 * 可视化流程设计器,支持拖放式工作流设计 * 强大的工作流引擎,支持复杂流程逻辑与条件判断 * 优秀的团队协作功能,支持资源共享和协同开发 * 数据收集能力强,

By Ne0inhk