4.4 KiB
4.4 KiB
title, tags, type, created, aliases
| title | tags | type | created | aliases | |||||
|---|---|---|---|---|---|---|---|---|---|
| Gitea |
|
article | 2026-11-03 |
|
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)
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