选择免费的本地Git服务器——Gitea胜出!
尝试选择一个好的开源Git服务器
想要将项目从开放云Git提供商迁移到本地自托管的内部Git服务器吗?
选择服务器
运行自己的Git服务器不应该太困难,对吧?
现在从非常短的选项列表中选择一个免费的Git服务器。 Bonobo Gogs vs Gitea vs Gitlab.
Bonobo虽然是免费的,但仅适用于Windows,没有Linux版本。
Gitlab功能丰富但资源消耗大,需要动手操作。它是一个商业产品,但 也有免费版本 。
Gogs非常轻量,我试过它,运行良好,但它缺少容器注册表。
在比较中,我认为Gitea更胜一筹。
使用Docker部署Gitea和PostgreSQL
https://docs.gitea.com/next/installation/install-with-docker
cd ~
mkdir gitea
cd gitea
docker-compose.yml:
version: "3"
networks:
gitea:
external: false
services:
server:
image: gitea/gitea:latest
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=db:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=gitea
restart: always
networks:
- gitea
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "222:22"
depends_on:
- db
db:
image: postgres:14
restart: always
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=gitea
- POSTGRES_DB=gitea
networks:
- gitea
volumes:
- ./postgres:/var/lib/postgresql/data
然后执行:
docker-compose up -d
要关闭:
docker-compose down
卷数据将保留
资源使用情况
显示容器占用260MB内存和一些CPU。
Docker镜像总大小为583MB。 其中422MB是postgres:14镜像。 如果资源受限,postgres:14-alpine镜像占用239MB,也可能适用。
PS. 迁移10多个仓库到Gitea后,仅克隆Gitea容器现在使用420MB内存。 需要留意这一点。
同步两个仓库
https://docs.gitea.com/next/usage/repo-mirror
可以执行 推送 和 拉取。
拉取
- 在顶部右侧的“创建…”菜单中选择“新建迁移”。
- 选择远程仓库服务。
- 输入仓库URL。
- 如果仓库需要认证,请填写认证信息。
- 勾选“此仓库将作为镜像”。
- 选择“迁移仓库”以保存配置。
仓库现在会定期从远程仓库镜像同步。 您可以通过在仓库设置中选择“立即同步”来强制同步。
只能为尚未存在于您实例上的仓库设置拉取镜像。 一旦仓库创建,就无法再将其转换为拉取镜像。
HTTPS配置
SSL配置中还有更多内容:https://docs.gitea.com/next/administration/https-setup
但我们现在先尝试这个(来自Gitea网站):
使用内置服务器
启用HTTPS之前,请确保您有有效的SSL/TLS证书。您可以使用自签名证书进行评估和测试。 请运行
gitea cert --host [HOST]
以生成自签名证书。
如果服务器上使用的是Apache或nginx,建议查看反向代理指南。
要使用Gitea内置的HTTPS支持,您必须更改app.ini文件:
[server]
PROTOCOL = https
ROOT_URL = https://git.example.com:3000/
HTTP_PORT = 3000
CERT_FILE = cert.pem
KEY_FILE = key.pem
请注意,如果证书是由第三方证书颁发机构(即非自签名)签署的,那么cert.pem应包含证书链。服务器证书必须是cert.pem中的第一个条目,后跟中间证书(如果有)。根证书不需要包含在内,因为连接客户端必须已经拥有它以建立信任关系。有关配置值的更多信息,请查看配置速查表。
对于CERT_FILE或KEY_FILE字段,如果文件路径是相对路径,则相对于GITEA_CUSTOM环境变量;也可以是绝对路径。
设置HTTP重定向 Gitea服务器只能监听一个端口;要将HTTP请求重定向到HTTPS端口,您需要启用HTTP重定向服务:
[server]
REDIRECT_OTHER_PORT = true
; 重定向服务应监听的端口
PORT_TO_REDIRECT = 3080
如果使用Docker,请确保在docker-compose.yml文件中配置了此端口。
使用反向代理
在这篇帖子中:Gitea-ssl,我正在配置Apache作为TLS终止反向代理。
待办事项
SSH配置:https://docs.gitea.com/next/installation/install-with-docker
备份-恢复测试。