Ответ
Я разворачивал и администрировал self-hosted инстансы Gitea для внутренних команд разработки, где использование публичных SaaS-решений (GitHub, GitLab) было ограничено политиками безопасности.
Основные задачи и настройки:
- Развертывание и обслуживание: Установка Gitea на собственные серверы с использованием Docker и Docker Compose для простоты управления и обновлений. Настройка резервного копирования репозиториев и базы данных.
- Интеграция CI/CD: Настройка вебхуков из Gitea для запуска пайплайнов в Jenkins и Drone CI. Конфигурация SSH-ключей для автоматизированного доступа.
- Управление доступом: Создание организаций, команд и тонкая настройка прав доступа к репозиториям (чтение/запись/администрирование).
- Сравнение с другими решениями:
- Плюсы: Очень легковесный, быстрый, прост в установке и обслуживании, имеет низкие требования к ресурсам, полностью совместим с Git CLI.
- Минусы: Меньше встроенных функций (например, нет нативного CI/CD как в GitLab), экосистема плагинов и интеграций скромнее.
Пример docker-compose.yml для развертывания Gitea:
version: '3'
services:
gitea:
image: gitea/gitea:latest
container_name: gitea
restart: unless-stopped
environment:
- USER_UID=1000
- USER_GID=1000
- DB_TYPE=postgres
- DB_HOST=db:5432
- DB_NAME=gitea
- DB_USER=gitea
- DB_PASSWD=gitea
volumes:
- ./gitea_data:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "2222:22"
depends_on:
- db
db:
image: postgres:15-alpine
restart: unless-stopped
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=gitea
- POSTGRES_DB=gitea
volumes:
- ./postgres_data:/var/lib/postgresql/data