Установите и защитите собственный Git-сервер на Gitea
Лёгкий, быстрый и бесплатный: установка Gitea через Docker Compose, HTTPS, доступ по SSH, закрытая регистрация и резервные копии.
Руководства · 1 мин чтения
Gitea — лёгкий Git-сервис, работающий на вашем сервере: репозитории, трекер задач, pull request’ы и (по желанию) CI. Ему хватает нескольких сотен МБ памяти, так что достаточно небольшого облачного сервера. Код остаётся у вас, а платить за пользователей не нужно.
Требования
- Docker и Compose (см. Установка Docker).
- Домен (например,
git.yourdomain.com) и HTTPS через Caddy.
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-ключ
- Добавьте открытый SSH-ключ в Настройки › SSH/GPG-ключи.
- Создайте репозиторий и клонируйте:
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 комфортно работает на небольшом облачном сервере; повышайте тариф по мере роста команды.