Home » Установка Gitea на Ubuntu с помощью Docker
Установка Gitea на Ubuntu с помощью Docker

Установка Gitea на Ubuntu с помощью Docker

В этой статье разберём, как развернуть Gitea на Ubuntu с использованием Docker. Если вы когда-нибудь задумывались: «Чем поднять свой Git без боли и адских зависимостей?» — эта инструкция для вас. Gitea — простой, легковесный и очень быстрый способ получить свой self-hosted git-сервер, а Docker в связке с Ubuntu снимает головную боль с настройкой окружения и обновлениями. Под катом — только практика, минимальный булшит и максимум рабочих команд.

Как это работает?

Gitea — это легковесная альтернатива GitLab и GitHub, которую можно развернуть буквально за пару минут. Работает на Go, запускается практически на чем угодно и идеально подходит для небольших команд и личных проектов. Docker здесь решает всё: один контейнер — и у вас уже готовый сервер с веб-интерфейсом, API и всеми фишками git-хостинга. Классика DevOps — инфраструктура как код, и всё это под контролем.

  • Запускается одной командой — не нужно возиться с зависимостями.
  • Изолировано — контейнер не лезет в ваш основной софт.
  • Масштабируемо — можно быстро перенести, обновить, или даже откатить сервис.

Быстрый старт: установка и настройка Gitea через Docker


# 1. Устанавливаем Docker (если ещё не стоит)
sudo apt update
sudo apt install -y docker.io
sudo systemctl enable --now docker

# 2. (Рекомендуется) Добавить себя в группу docker для запуска без sudo
sudo usermod -aG docker $USER
# <-- После этого лучше перелогиниться! # 3. Создадим директории для хранения данных Gitea и базы mkdir -p ~/gitea/{data,db} # 4. Запуск Gitea и PostgreSQL (можно через Docker Compose, но покажу на примере docker run) ## Запускаем PostgreSQL docker run -d --name gitea-db \ -e POSTGRES_USER=gitea \ -e POSTGRES_PASSWORD=supersecretpass \ -e POSTGRES_DB=giteadb \ -v ~/gitea/db:/var/lib/postgresql/data \ --restart=always \ postgres:16 ## Запускаем Gitea docker run -d --name gitea \ -p 3000:3000 -p 222:22 \ -e USER_UID=1000 -e USER_GID=1000 \ -e GITEA__database__DB_TYPE=postgres \ -e GITEA__database__HOST=gitea-db:5432 \ -e GITEA__database__NAME=giteadb \ -e GITEA__database__USER=gitea \ -e GITEA__database__PASSWD=supersecretpass \ -v ~/gitea/data:/data \ --link gitea-db:db \ --restart=always \ gitea/gitea:latest

Теперь заходим на http://your-server-ip:3000 и заполняем финальные настройки через веб-интерфейс. Если хочется хардкорнее — поднимаем всё через docker-compose (см. примеры ниже).

Примеры и типовые кейсы

Давайте разберём, где Gitea на Docker особенно заходит, а где могут быть нюансы:

Кейс Плюсы Минусы Рекомендации
Личный git-сервер / pet-проекты Минимум ресурсов, 5 мин на развёртывание Рутовые права, если не продумал данные заранее Используй отдельного пользователя, хранение данных вне контейнера
Командная разработка (10-30 чел) Быстрая интеграция, CI/CD через Actions, LDAP Без продвинутых инструментов (kanban, registry) Смотри в сторону Gitea Actions, интеграции через webhooks
Корпоративная инфраструктура Open Source, легко автоматизировать Нет продвинутой RBAC и аудита как у GitLab Сопровождай скриптами и мониторингом, бэкапь данные

Сравнение: Gitea vs другие решения

Параметр Gitea Gogs GitLab CE Gerrit
Память (минимум) <200 Мб ~100 Мб >2 Гб >1 Гб
Время установки 3-5 мин 2-4 мин 30-60 мин 20-40 мин
Интерфейс Веб, API Веб, API Веб, API Веб, REST API
CI/CD Actions (бета) Нет GitLab CI (топ) Плагины

Скрипты и автоматизация: что можно сделать крутого?

  • Автобэкапы через cron и docker cp (или volumerize).
  • Интеграция с Telegram/Slack через webhooks.
  • Мониторинг контейнеров через Prometheus + Grafana.
  • Автоматическая выдача прав через API.
  • Переезд между серверами — вытащил volume, воткнул на новый — и всё работает.
  • Инфраструктура как код: весь деплой зашит в docker-compose.yml и пару ansible-ролей.

Альтернативные команды и примеры для Docker Compose

Если хочется по-красивому:


# docker-compose.yml для Gitea + Postgres
version: "3"

services:
db:
image: postgres:16
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=supersecretpass
- POSTGRES_DB=giteadb
volumes:
- ./db:/var/lib/postgresql/data
restart: always

gitea:
image: gitea/gitea:latest
depends_on:
- db
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=db:5432
- GITEA__database__NAME=giteadb
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=supersecretpass
volumes:
- ./gitea:/data
ports:
- "3000:3000"
- "222:22"
restart: always


# Запуск
docker-compose up -d

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

Интересные факты и нестандартные сценарии

  • Можно использовать Gitea не только как git-сервер, а ещё как приватный pastebin или markdown-блог — прямо через wiki.
  • Гибкая интеграция с внешними CI/CD (Drone, Jenkins, GitHub Actions runner) позволяет строить full-stack пайплайны для любых языков.
  • Скрипты миграции с GitHub и GitLab в комплекте — прощай, lock-in!
  • Via API можно автоматически админить репозитории, управлять командами, даже комментировать тикеты из скриптов.
  • Запуск на ARM — спокойно заводится даже на Raspberry Pi.

Вывод: стоит ли использовать Gitea на Docker?

Если нужен свой git-сервер без избыточных килотонн зависимостей и PHP/Java в проде — Gitea на Docker идеальный выбор. Простой деплой, автообновление, лёгкий перенос, дружелюбный API и вся нужная базовая функциональность. Для pet-проектов, небольших команд и even продакшн — мастхэв!

  • Запускается за минуты, не требует танцев с бубном.
  • Всё — как сервис, весь стек изолирован.
  • Легко автоматизировать и бэкапить.

Если хочется стабильную и дешёвую площадку — смотри VPS или выделенный сервер под свои нужды — ставь Gitea и экономь нервы!


В этой статье собрана информация и материалы из различных интернет-источников. Мы признаем и ценим работу всех оригинальных авторов, издателей и веб-сайтов. Несмотря на то, что были приложены все усилия для надлежащего указания исходного материала, любая непреднамеренная оплошность или упущение не являются нарушением авторских прав. Все упомянутые товарные знаки, логотипы и изображения являются собственностью соответствующих владельцев. Если вы считаете, что какой-либо контент, использованный в этой статье, нарушает ваши авторские права, немедленно свяжитесь с нами для рассмотрения и принятия оперативных мер.

Данная статья предназначена исключительно для ознакомительных и образовательных целей и не ущемляет права правообладателей. Если какой-либо материал, защищенный авторским правом, был использован без должного упоминания или с нарушением законов об авторском праве, это непреднамеренно, и мы исправим это незамедлительно после уведомления. Обратите внимание, что переиздание, распространение или воспроизведение части или всего содержимого в любой форме запрещено без письменного разрешения автора и владельца веб-сайта. Для получения разрешений или дополнительных запросов, пожалуйста, свяжитесь с нами.

Leave a reply

Your email address will not be published. Required fields are marked