gitea

官方文档 | 开源地址 | runner地址

Gitea 是轻量级代码托管服务,适合个人、家庭服务器或小团队使用。相比 GitLab,它的资源占用更低,部署和维护成本也更小。

如果只需要 Git 仓库、Issue、Pull Request 和简单 CI Runner,Gitea 通常比 GitLab 更适合低配置机器。

启动

docker-compose.yml
version: "3"

networks:
  gitea:
    external: false

services:
  server:
    image: gitea/gitea:1.26.0
    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
      - ./bak:/bak
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3030:3000"
    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

备份和恢复

备份前建议先确认数据目录、数据库类型和附件存储位置。下面命令会调用 Gitea 自带的 dump 功能导出数据。

备份

docker exec -u git -it -w /bak $(docker ps -qf 'name=^gitea$') bash -c '/usr/local/bin/gitea dump -c /data/gitea/conf/app.ini'

恢复

官方暂时没有提供完全自动化的恢复流程。迁移时建议先准备同版本 Gitea,再按官方文档恢复数据库、仓库、附件和 app.ini 配置。