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

GitHub免费开源!World Monitor:开源全球情报仪表盘

GitHub免费开源!World Monitor:开源全球情报仪表盘

一、项目定位:AI驱动的全域态势感知平台 在全球化浪潮与地缘政治格局加速演变的当下,分散的新闻资讯、碎片化的地缘数据、割裂的基础设施监控渠道,让全球局势的洞察者面临“信息过载却又不全”的困境。由开发者cn620主导的开源项目World Monitor,正是为解决这一痛点而生——它是一款基于AI驱动的实时全球情报仪表盘,通过统一的态势感知界面,整合新闻聚合、地缘政治监控、基础设施跟踪三大核心能力,为用户提供一站式、高精度的全球局势洞察工具。 开源地址获取:World Monitor:https://www.gegeblog.top/article/87 二、核心功能模块:三重维度的全球情报覆盖 (一)AI驱动的智能新闻聚合 不同于传统新闻客户端的“被动推送”,World Monitor的新闻聚合能力核心在于AI的深度介入: 1. 多源实时采集:项目通过AI爬虫框架同步抓取全球百余家权威新闻源,包括路透社、美联社、BBC等国际媒体,以及各国官方机构公报、专业地缘政治数据库(如CSIS全球冲突数据库),覆盖英文、中文、阿拉伯文等多语种内容;

By Ne0inhk
ClawPanel — 开源 OpenClaw 智能管理面板,20+ 通道接入 / 多模型配置 / Docker 一键部署

ClawPanel — 开源 OpenClaw 智能管理面板,20+ 通道接入 / 多模型配置 / Docker 一键部署

🐾 一个比官方控制台更强大的 OpenClaw 可视化管理工具,支持 QQ、微信、Telegram、Discord 等 20+ 通道统一管理,多 AI 模型提供商配置,技能中心,版本管理,环境检测,Docker 一键部署。 📌 项目简介 ClawPanel 是一个基于 React + TypeScript + Express 的 OpenClaw 智能管理面板,旨在为 OpenClaw 用户提供一个比官方控制台更强大、更直观的可视化管理工具。 项目前身是 openclaw-im-manager(一个简单的 QQ 机器人管理后台),经过 4 个大版本迭代,现已进化为功能完整的 OpenClaw 全能管理面板。 GitHub 地址:https://github.com/zhaoxinyi02/ClawPanel

By Ne0inhk
【AI大模型前沿】XVERSE-Ent:元象开源的泛娱乐中英双语底座大模型

【AI大模型前沿】XVERSE-Ent:元象开源的泛娱乐中英双语底座大模型

系列篇章💥 No.文章1【AI大模型前沿】深度剖析瑞智病理大模型 RuiPath:如何革新癌症病理诊断技术2【AI大模型前沿】清华大学 CLAMP-3:多模态技术引领音乐检索新潮流3【AI大模型前沿】浙大携手阿里推出HealthGPT:医学视觉语言大模型助力智能医疗新突破4【AI大模型前沿】阿里 QwQ-32B:320 亿参数推理大模型,性能比肩 DeepSeek-R1,免费开源5【AI大模型前沿】TRELLIS:微软、清华、中科大联合推出的高质量3D生成模型6【AI大模型前沿】Migician:清华、北大、华科联手打造的多图像定位大模型,一键解决安防监控与自动驾驶难题7【AI大模型前沿】DeepSeek-V3-0324:AI 模型的全面升级与技术突破8【AI大模型前沿】BioMedGPT-R1:清华联合水木分子打造的多模态生物医药大模型,开启智能研发新纪元9【AI大模型前沿】DiffRhythm:西北工业大学打造的10秒铸就完整歌曲的AI歌曲生成模型10【AI大模型前沿】R1-Omni:阿里开源全模态情感识别与强化学习的创新结合11【AI大模型前沿】Qwen2.5-Omni:

By Ne0inhk
开源协同∞智算赋能:GitCode+昇腾NPU部署CodeLlama全流程实践

开源协同∞智算赋能:GitCode+昇腾NPU部署CodeLlama全流程实践

作者简介:华为HCIP,昇腾NPU机构专业用户。 一.引言 最近在项目里用昇腾NPU部署CodeLlama-7B,踩了不少坑,也总结了一些经验。CodeLlama在代码生成这块确实好用,昇腾NPU的算力也够用,就是部署过程需要折腾一下。整个流程从环境搭建到性能调优,中间遇到的问题不少,比如模型格式转换、内存优化、推理速度提升等等。这篇文章主要记录一下实际部署CodeLlama-7B-hf的完整过程,包括环境配置、模型适配、性能优化和常见问题处理,希望能帮到有同样需求的开发者。 二.环境搭建和基本配置 1. 测试平台选择 我们选择 GitCode 作为代码托管平台。GitCode 是 ZEEKLOG 和华为云 CodeArts 联合推出的国内开源平台,主要优势是访问速度快,适合国内开发者使用。 主要功能包括: 1. Git 版本控制、仓库管理、WebIDE 在线开发 2. 分支管理、代码审查、Issue 管理等协作功能 3. GPG

By Ne0inhk