内容 /指南/吉特语a

您自己的 Git 服务器 与 Gitea

吉他是轻量级的 Git服务涉及问题,拉请求和CI钩——你所期望的一切,以几百兆字节的速度运行. 以6.5VPS欧元的价格,它为整个团队服务.

1. 安装嵌入器

apt update && apt install -y docker.io docker-compose-v2 git
systemctl enable --now docker

包括 Compose 基本内容在内的全程: 嵌入向导.

2. Compose文件

mkdir -p /opt/gitea && cd /opt/gitea
cat > docker-compose.yml <<'EOF'
services:
  db:
    image: postgres:16-alpine
    restart: unless-stopped
    environment:
      POSTGRES_USER: gitea
      POSTGRES_PASSWORD: change-me-db
      POSTGRES_DB: gitea
    volumes:
      - ./db:/var/lib/postgresql/data
  gitea:
    image: gitea/gitea:1
    restart: unless-stopped
    depends_on: [db]
    environment:
      GITEA__database__DB_TYPE: postgres
      GITEA__database__HOST: db:5432
      GITEA__database__NAME: gitea
      GITEA__database__USER: gitea
      GITEA__database__PASSWD: change-me-db
    volumes:
      - ./data:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "127.0.0.1:3000:3000"
      - "2222:22"
EOF
docker compose up -d

注意绑定:网络用户界面仅在本地主机上监听,而SSH用于 git push 2222号港 使端口可以到达——要么在防火墙上打开2222,要么在后期通过HTTPS服务Git.

3. 带Caddy的HTTPS

apt install -y caddy
cat > /etc/caddy/Caddyfile <<'EOF'
git.example.com {
    reverse_proxy 127.0.0.1:3000
}
EOF
systemctl reload caddy

Caddy自动获取证书。 将域名的A记录先指向服务器,并完成浏览器中的设置向导——您注册的第一个账户成为管理员.

4. 推码

git remote add origin ssh://[email protected]:2222/you/project.git
git push -u origin main

在 Gitea 的设置中添加一次您的公钥, 之后的每次推入都是无密码的 。

5. 实际恢复的备份

docker compose exec -u git gitea gitea dump -c /data/gitea/conf/app.ini
# the dump lands in /opt/gitea/data/gitea, then ship it off-site:
restic backup /opt/gitea/data --exclude-caches

这个 gitea dump 命令将数据库、仓库和配置捆绑到一个归档中。 场外复制件:见 静态向导.

快速回答

Gitea需要多少内存?

该容器闲置了约150–250 MB,PostgreSQL 和另外100–200 MB. 一个2GB服务器对于一个小团队来说是舒适的;如果同时运行CI跑取器或许多大型寄存器,则4GB.

我能从GitHub进口寄存器吗?

对 在"Gitea"中选择了"新迁移",粘贴寄存器URL,并复制了代码,发行和拉取请求. 私人寄存器需要 GitHub 访问符 。

我的密码安全吗?

它与您的服务器管理一样安全:SSH密钥,防火墙,更新和场外垃圾堆覆盖现实的风险. 对于许多比信任第三方更能控制一切的球队来说.

齿轮加 PostgreSQL 适应 Buran-2(13欧元/分) 还有空闲的空间

相关