Files

4.4 KiB
Raw Permalink Blame History

title, tags, type, created, aliases
title tags type created aliases
Gitea
devops
git
self-host
docker
article 2026-11-03
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)

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-уведомления.

Полезные ссылки


#tags: #devops #git #self-host #docker #gitea #ci-cd