Домой Гиды / Gitea

Ваш собственный Git сервер с Gitea

Gitea - легкий вес Git-сервис с проблемами, тянуть запросы и CI-хуки — все, что вы ожидаете, работает в несколько сотен мегабайт. На €6,5 VPS он обслуживает целую команду.

1 Установите Docker

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

Полное прохождение, включая основы Compose: Руководство Docker.

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 в брандмауэре, либо подавайте Git через HTTPS.

3. HTTPS с Caddy

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

Caddy получает сертификат автоматически. Сначала наведите запись домена на сервере и закончите мастер настройки в браузере — первая учетная запись, которую вы регистрируете, становится администратором.

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

The gitea dump Команда объединяет базу данных, репозитории и конфигурацию в один архив. Вне сайта: см. путеводитель.

Быстрые ответы

Сколько RAM нужно Gitea?

Контейнер простаивает около 150-250 МБ, PostgreSQL еще 100-200 МБ. Сервер на 2 ГБ удобен для небольшой команды; 4 ГБ, если вы также используете CI-раннеры или много больших репозиториев.

Могу ли я импортировать репозитории из GitHub?

Да. В Gitea выберите New Migration, вставьте URL-адрес репозитория, и он копирует код, выдает и извлекает запросы. Частным хранилищам нужен токен доступа GitHub.

Безопасен ли мой код на VPS?

Это так же безопасно, как и администрирование сервера: ключи SSH, брандмауэр, обновления и свалки за пределами сайта покрывают реалистичные риски. Для многих команд это больше контроль, чем доверие третьей стороне.

Gitea плюс PostgreSQL Buran-2 (€13/мо) С запасом места.

связанный