Всем привет!!!
В этом материале я расскажу как установить 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:
| Параметр | GitLab | Gitea |
|---|---|---|
| Потребление RAM | 4+ GB | 200-500 MB |
| Запуск | 5-10 минут | 30 секунд |
| Диск | 5+ GB | 200 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:
| Критерий | SQLite3 | PostgreSQL |
|---|---|---|
| Контейнеры | 1 | 2 |
| RAM | 200 MB | 400-500 MB |
| Диск | 200 MB | 500 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:
- В Gitea создай репозиторий (кнопка «+» вверху справа)
- Скопируй HTTP URL:
http://ip-твоего-synology:3000/username/repo.git - В 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

