Перейти к содержимому
Melinhost

Установите и защитите собственный Git-сервер на Gitea

Лёгкий, быстрый и бесплатный: установка Gitea через Docker Compose, HTTPS, доступ по SSH, закрытая регистрация и резервные копии.

Руководства · 1 мин чтения

gitea-self-hosted-git

Gitea — лёгкий Git-сервис, работающий на вашем сервере: репозитории, трекер задач, pull request’ы и (по желанию) CI. Ему хватает нескольких сотен МБ памяти, так что достаточно небольшого облачного сервера. Код остаётся у вас, а платить за пользователей не нужно.

Требования

1. Файл Compose

mkdir -p ~/gitea && cd ~/gitea

compose.yaml:

services:
  gitea:
    image: gitea/gitea:latest
    container_name: gitea
    restart: unless-stopped
    environment:
      - USER_UID=1000
      - USER_GID=1000
      - GITEA__server__DOMAIN=git.yourdomain.com
      - GITEA__server__ROOT_URL=https://git.yourdomain.com/
      - GITEA__service__DISABLE_REGISTRATION=true
      - GITEA__service__REQUIRE_SIGNIN_VIEW=true
    volumes:
      - ./data:/data
      - /etc/timezone:/etc/timezone:ro
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "127.0.0.1:3000:3000"
      - "2222:22"

Веб-интерфейс привязан только к локальному порту 3000; наружу его отдаёт обратный прокси. Порт 2222 открыт для SSH-доступа Git (собственный SSH сервера остаётся на 22). DISABLE_REGISTRATION закрывает регистрацию новых пользователей, а REQUIRE_SIGNIN_VIEW запрещает просмотр репозиториев без входа.

2. Запустите и завершите настройку

docker compose up -d
sudo ufw allow 2222/tcp

Откройте https://git.yourdomain.com (сначала направьте Caddy) и в мастере установки оставьте SQLite в качестве базы данных (для небольших команд достаточно) и создайте учётную запись администратора. После установки настройки и app.ini находятся в ./data/gitea/conf.

3. Первый репозиторий и SSH-ключ

  1. Добавьте открытый SSH-ключ в Настройки › SSH/GPG-ключи.
  2. Создайте репозиторий и клонируйте: git clone ssh://git@git.yourdomain.com:2222/user/repo.git

4. Чек-лист защиты

  • Регистрация закрыта: добавляйте пользователей со стороны администратора.
  • Двухфакторная аутентификация: включите для всех, включая администратора (Настройки › Безопасность).
  • Надёжные пароли и, по возможности, только SSH-ключи.
  • Обновляйтесь: docker compose pull && docker compose up -d; читайте заметки к релизам.
  • Брандмауэр: открыты только 22 (SSH сервера), 80/443 (Caddy) и 2222 (SSH Git) (см. чек-лист безопасности).
  • Секреты: не коммитьте пароли и ключи; используйте секретные переменные CI.

Резервные копии

Папка ./data содержит репозитории, базу данных и настройки. Для согласованной копии можно использовать собственную команду Gitea:

docker exec -u git gitea gitea dump -c /data/gitea/conf/app.ini -f /data/gitea-dump.zip

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

Начните с Melinhost

Gitea комфортно работает на небольшом облачном сервере; повышайте тариф по мере роста команды.

Похожие записи

err-ssl-version-or-cipher-mismatch

· Руководства

Ошибка ERR_SSL_VERSION_OR_CIPHER_MISMATCH: причины и решение

Браузер не может установить защищённое соединение: как найти и исправить устаревшие версии TLS, несовместимые шифры, отсутствие сертификата и неверные настройки виртуального хоста.

Читать далее →

Настройки cookie

Мы используем необходимые cookie. Аналитические и маркетинговые cookie включаются только с вашего согласия. Политика использования cookie