--- title: Gitea tags: - devops - git - self-host - docker type: article created: 2026-11-03 aliases: [Gitea] --- # Gitea **Gitea** — легковесный, самодостаточный self-hosted сервис для хранения Git-репозиториев и совместной разработки. Писается как единый Go-бинарник (без внешних зависимостей, только БД), поэтому занимает минимум ресурсов и разворачивается за минуты. > _Коротко:_ «свой собственный GitHub» с минимальным footprint и богатым функционалом. ## Ключевые характеристики ### Что это - Самохостинг Git-репозиториев (аналог GitHub / GitLab). - Единый Go-бинарник + опциональная БД (MySQL/Postgres/MariaDB/SQLite). - Open-source (MIT), активная разработка (v28+). ### Функционал | Категория | Возможности | |-----------|-------------| | **Репозитории** | Git + LFS, приватные/публичные, форки, миграции, шаблоны | | **Веб-интерфейс** | Просмотр кода, diffs, tree, вайфай-ревью (file review) | | **Issue tracker** | Issues, майлстоны, метки, assigned, канбан-доски | | **Pull Requests** | PR/merge-запросы, ревью, squash/rebase/merge, авто-обфуска | | **CI/CD** | Gitea Actions (аналог GitHub Actions), YAML-воркфлоу | | **Пакеты** | Registry: containers, goproxy, maven, npm, pypi | | **Users** | Орги, teams, OAuth2, LDAP/Active Directory, 2FA | | **Безопасность** | Deploy keys (SSH/HTTP), 2FA, rate-limiting | | **Интеграции** | Webhooks, Telegram/Discord/Slack, issue sync | ### Плюсы - 🪶 **Легкий** — ~50-100 МБ ОЗУ в простое, один бинарник. - ⚡ **Быстрый** — быстрый отклик, простая установка. - 🔧 **Простое управление** — один `.ini`-файл конфига, easy backup (БД + data). - 🎯 ** Богатый функционал при минимализме** — нет перегрузки как у GitLab. - 🐳 **Docker-first** — официальный образ, compose-примеры, s6-overlay авто-перезапуск под `git:git`. ### Минусы - ❗ Меньше enterprise-фич, чем у GitLab (проект-менеджмент, большие CI-кластеры). - 📦 Монотеистическая архитектура — масштабирование сложнее GitLab. - 🧩 Иногда ломается в Edge-версиях (v28+ меняли API ключей, авто-запуск под root). ## Типичный стек (self-host на VPS) ``` Gitea (gitea/gitea:latest) ├── БД: MySQL 8 / MariaDB (контейner gitea-db) ├── DNS: gitea.example.ru → IP ├── SSH-прокси: :2222 → Gitea ssh ├── Прокси: nginx-proxy-manager / openresty (HTTPS, доменные имена) └── Auth: Authelia (SSO для всего стека) ``` ## Установка (compose) ```yaml services: gitea: image: gitea/gitea:latest ports: - "3002:3000" # веб - "2222:22" # ssh volumes: - ./data:/data restart: unless-stopped gitea-db: image: mysql:8 environment: MYSQL_DATABASE: gitea MYSQL_USER: gitea MYSQL_PASSWORD: *** в compose-секретах/~/.gitea-creds MYSQL_ROOT_PASSWORD: root restart: unless-stopped ``` ## Чек-лист развёртывания - [ ] 1. Запустить compose-стек (Gitea + БД). - [ ] 2. Открыть веб-установщик (инициализация БД, `INSTALL_LOCK`). - [ ] 3. Создать admin-аккаунт. - [ ] 4. Настроить домен + SSL (через прокси). - [ ] 5. Настроить SSH-прокси и деплой-ключи. - [ ] 6. (Опц.) Подключить Authelia / LDAP / Telegram-уведомления. ## Полезные ссылки - Официальный сайт: https://gitea.com - Док: https://docs.gitea.com - GitHub: https://github.com/gitea/gitea --- #tags: #devops #git #self-host #docker #gitea #ci-cd