Git сервер на Synology в docker на базе Gitea

Всем привет!!!

В этом материале я расскажу как установить Git сервер на Synology в docker контейнер на базе Gitea. Вы узнаете почему Gitea лучше GitLab и развернете локальный сервер контроля версий в замен GitHUB.

Введение

Git — это система контроля версий, инструмент для отслеживания изменений в файлах. Он работает локально на твоём компьютере, позволяет сохранять историю правок, откатываться к старым версиям и работать с ветками кода. Это основа, без которой невозможна современная разработка.

GitHub и GitLab — это веб-сервисы, которые используют Git. Они хранят твои репозитории в облаке, добавляя интерфейс для командной работы: Issue Tracker, Pull Requests, Wiki и CI/CD. Разница в том, что GitHub — это популярный публичный хостинг (принадлежит Microsoft), а GitLab можно бесплатно установить на свой сервер (на Synology) и он имеет более мощные встроенные инструменты для DevOps.

Gitea — это «лёгкий GitLab» в 10 раз легче, который можно поставить на любом сервер (вроде Synology)

🎯 Почему Gitea лучше для Synology:

ПараметрGitLabGitea
Потребление RAM4+ GB200-500 MB
Запуск5-10 минут30 секунд
Диск5+ GB200 MB
Нагрузка на CPUВысокаяМинимальная
Для домаИзбыточноВ самый раз

Итог: Gitea делает 95% того, что GitLab, но в 20 раз легче.

Установка Gitea

Создайте в папке Docker каталог Gitea, а в нем еще два config и data. Затем откройте и Container Manager и создайте новый проект, в котором укажите файл docker-compose следующего содержимого:

Не забудьте проверить и при необходимости заменить на свои значения UID и GID: Как узнать свой UID и GID в Synology NAS

services:
  server:
    image: gitea/gitea:latest
    container_name: gitea
    environment:
      - USER_UID=1026
      - USER_GID=100
      - GITEA__database__DB_TYPE=sqlite3
    restart: unless-stopped
    volumes:
      - ./data:/data
      - ./config:/etc/gitea
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3003:3000"
      - "2002:22"

📁 Структура папок после запуска:

gitea/
├── docker-compose.yml
├── data/ # Данные Gitea (репозитории, загрузки)
└── config/ # Конфиги Gitea

Если у вас большая компания больше 10 человек, то рекомендую создать проект с использование базы данных

📊 Сравнение на Synology:

КритерийSQLite3PostgreSQL
Контейнеры12
RAM200 MB400-500 MB
Диск200 MB500 MB +
СкоростьДо 10 пользователейМного пользователей
Настройка1 строка в конфиге10+ строк
БекапСкопировать файлДамп БД

Для запуска проекта с базой данных понадобится три папки: config, data и postgres. Дальше все будет тоже самое.

version: "3"

services:
  gitea:
    image: gitea/gitea:latest
    container_name: gitea
    environment:
      - USER_UID=1026
      - USER_GID=100
      - GITEA__database__DB_TYPE=postgres
      - GITEA__database__HOST=postgres:5432
      - GITEA__database__NAME=gitea
      - GITEA__database__USER=gitea
      - GITEA__database__PASSWD=gitea_password  # поменяй!
    restart: unless-stopped
    volumes:
      - ./gitea:/data
      - ./config:/etc/gitea
      - /etc/localtime:/etc/localtime:ro
    ports:
      - "3003:3000"
      - "2002:22"
    depends_on:
      - postgres

  postgres:
    image: docker.io/library/postgres:14
    container_name: gitea_postgres
    environment:
      - POSTGRES_USER=gitea
      - POSTGRES_PASSWORD=gitea_password  # такой же как выше
      - POSTGRES_DB=gitea
    restart: unless-stopped
    volumes:
      - ./postgres:/var/lib/postgresql/data

📁 Структура папок после запуска:

gitea/
├── docker-compose.yml
├── data/          # Данные Gitea (репозитории, загрузки)
├── config/        # Конфиги Gitea
└── postgres-data/ # База данных PostgreSQL

Обратный прокси

Для работы сервера Gitea по доменному имени нужно настроить обратный прокси в Synology. Откройте панель управления в DSM, портал для входа, дополнительно и обратный прокси. Создайте новое правило. Придумайте название правила. В источнике укажите https, имя домена, например git.XXX.synology.me и 443 порт. В месте назначения укажите http, localhost и порт 3003. Затем на вкладке пользовательский заголовок включите websocket. Если вы собираетесь использовать большие файлы в git, то на вкладке дополнительных настройки нужно увеличить таймера с 60 секунд до 600.

Первоначальная настройка

После успешного создания проекта откройте http:\\IP-NAS:3003 или домен указанный в обратном прокси https:\\git.ВАШ-Домен и пройдите процедуру первоначальной настройки. Придумайте название проекта, логин, поту и пароль администратора. Не забудьте указать верные домены для подключения, они пригодятся далее.

После чего вы увидите веб интерфейс своего Git на базе Gitea и можно создавать первый проект. В создании проекта нет ничего сложного, к тому же там все на Русском языке, а после создания можно скопировать ссылку на ваш проект для следующего этапа.

GitHub Desktop

GitHub Desktop — это графический интерфейс (GUI) для работы с Git и GitHub. Это программа для компьютера (Windows/macOS), которая позволяет управлять репозиториями без командной строки.

🔗 Подключение GitHub Desktop:

  1. В Gitea создай репозиторий (кнопка «+» вверху справа)
  2. Скопируй HTTP URLhttp://ip-твоего-synology:3000/username/repo.git
  3. В GitHub Desktop:
    • File → Clone Repository → URL
    • Вставь URL
    • При первом пуше спросит логин/пароль от Gitea

Учтите, что с файлами вы работаете через проводник, а программа GitHub Desktop нужна только для взаимодействия с сервером Gitea

Всё. Работает.

🔍 Где и как GitHub Desktop хранит логины/пароли:

1. Для Windows:

  • Диспетчер учётных данных Windows:
    Панель управления → Учётные записи → Диспетчер учётных данных → Учётные данные Windows
  • Ищи записи типа:
    • git:http://ваш-synology-ip:3003

2. Для macOS:

  • Связка ключей (Keychain):
    Приложение Связка ключей → ищи github или gitea

3. Для Linux:

  • Git Credential Manager: обычно в ~/.git-credentials

Теперь вы знаете как установить Git сервер на Synology в docker на базе Gitea

Подписаться
Уведомить о
guest
5 Комментарий
Старые
Новые
Межтекстовые Отзывы
Посмотреть все комментарии