选择免费的本地Git服务器——Gitea胜出!

尝试选择一个好的开源Git服务器

目录

想要将项目从开放云Git提供商迁移到本地自托管的内部Git服务器吗?

gitea-site

选择服务器

运行自己的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

访问 http://localhost:3000/

要关闭:

docker-compose down

卷数据将保留

资源使用情况

Resource containers stats

显示容器占用260MB内存和一些CPU。

Docker images stats

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

备份-恢复测试。

有用的链接