自托管 Git 站点 之前公司内部都是采用 Gitea 做自己平台的内网脱管, 但是自从 Gitea 被其他公司收购后为了避免后续的商业纷争, 原版本 Gitea 额外分出 Forgejo 这个开源分支.
Forgejo
这里还是需要说明下个人的 Git 自托管服务系统配置:
系统: 主流 Linux 发行版(Ubuntu 22.04/Debian 12/CentOS Stream 9 以上版本等) 硬件: 最低 1GB 内存, 1 CPU 核心, 10GB 磁盘(生产环境建议 2GB+ 内存,当然内存越大越好) 网络: 服务器需开放 22(SSH, 可以自定义端口设定), 80(HTTP)|443(HTTPS),3000(Forgejo 默认端口)端口 依赖: Git(必须), 数据库(可选,SQLite/MySQL/MariaDB/PostgreSQL), Docker(采用容器部署才需要) 这里采用 debian/ubuntu 系统搭建, redhat 系的搭建方式可能有所不同
首先是必须要的组件, 我这里采用的 MariaDB 数据库配置:
# 安装 Git 是必须, 我这边后续默认内网采用 http, 然后 nginx 转发到内网处理 # 暴露在外网的时候建议采用 nginx 代理一下, 方便识别 nginx 日志之后直接封禁一些非法IP # git-lfs 是做大文件托管时候要用到的组件 sudo apt install git git-lfs wget # 首先创建系统托管用户 # 这个托管用户需要支持 shell 操作并且关闭密码处理 sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' \ --group --disabled-password --home /home/git git # 需要注意, 建议采用外部扩展硬盘来管理空间, 避免提交文件过大把系统空间拥爆 # 这里我是托管到 /repository 目录下, 所以都是基于这个扩展外部硬盘目录来处理 # 首先目录权限需要赋予给他处理 sudo chown git:git /repository && sudo chmod 750 /repository # 之后的配置文件的目录管理 sudo mkdir /etc/forgejo sudo chown root:git /etc/forgejo && sudo chmod 770 /etc/forgejo # 需要注意, 如果配置 MariaDB/PostgreSQL 之类数据库, 需要去官方处理SQL配置 # SQL: https://forgejo.