Привет, кодеры и self-хостеры! 👋 Представь свой личный GitHub без подписок, слежки и лимитов. В 2025 году self-hosting взрывается — рынок растёт на 18.5% ежегодно, а Gitea лидирует как лёгкая альтернатива GitHub (1.66% dev-сайтов уже на нём!). Почему? GitHub тренировал Copilot на твоих приватных репах без спроса. Хватит кормить корпорации — запусти свой Git-сервер за чашкой чая! ☕
Устали от ограничений и политики конфиденциальности публичных Git-хостингов? Пришло время запустить собственный, полностью контролируемый сервер для репозиториев. Gitea — это легкое и мощное решение с открытым исходным кодом, которое станет вашей личной заменой GitHub.
В этом руководстве мы развернем Gitea на Ubuntu 24.04 с использованием Docker Compose. Это займет не более 15 минут.
Что вам понадобится
- Сервер с Ubuntu 24.04 (Рекомендую этот хостинг).
- Установленные Docker и Docker Compose (процесс установки описан ниже).
- Базовые знания работы с командной строкой.
- Доменное имя (рекомендуется для настройки SSL).
- Удобный браузер (на усмотрение)
Шаг 1: Подготовка сервера и настройка безопасности
Для начала подключитесь к вашему серверу по SSH.
Обновите системные пакеты:
sudo apt update && sudo apt upgrade -y Создайте нового пользователя (работа от root не рекомендуется):
adduser gituser
usermod -aG sudo gituser Настройте базовый фаервол UFW, разрешив необходимые порты:
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw allow 222/tcp # SSH для Gitea (альтернативный порт)
sudo ufw enable Шаг 2: Установка Docker и Docker Compose
Установим Docker из официальных репозиториев.
# Устанавливаем необходимые пакеты
sudo apt install apt-transport-https ca-certificates curl software-properties-common -y
# Добавляем официальный GPG-ключ Docker
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
# Добавляем репозиторий Docker
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
# Устанавливаем Docker Engine
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io -y
# Добавляем вашего пользователя в группу docker
sudo usermod -aG docker $USER
newgrp docker
# Устанавливаем Docker Compose Plugin
sudo apt install docker-compose-plugin -y Проверьте установку: docker compose version.
Шаг 3: Запуск Gitea с помощью Docker Compose
Создадим директорию для проекта и файл docker-compose.yml.
Создайте структуру папок и перейдите в нее:
mkdir ~/gitea && cd ~/gitea Создайте файл docker-compose.yml
nano docker-compose.yml со следующим содержимым. Это стандартная конфигурация с PostgreSQL в качестве базы данных.
version: "3"
networks:
gitea:
external: false
services:
server:
image: docker.gitea.com/gitea:1.25.0
container_name: gitea
environment:
- USER_UID=1000
- USER_GID=1000
- GITEA__database__DB_TYPE=postgres
- GITEA__database__HOST=db:5432
- GITEA__database__NAME=gitea
- GITEA__database__USER=gitea
- GITEA__database__PASSWD=gitea # Обязательно смените этот пароль!
restart: always
networks:
- gitea
volumes:
- ./gitea:/data
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
ports:
- "3000:3000"
- "222:22"
depends_on:
- db
db:
image: docker.io/library/postgres:14
restart: always
environment:
- POSTGRES_USER=gitea
- POSTGRES_PASSWORD=gitea # Обязательно смените этот пароль!
- POSTGRES_DB=gitea
networks:
- gitea
volumes:
- ./postgres:/var/lib/postgresql/data Запустите стек командой:
docker compose up -d Проверить логи можно так:
docker compose logs -f Теперь Gitea доступен по адресу http://ВАШ_IP_СЕРВЕРА:3000.
Шаг 4: Первоначальная настройка и SSL
Перейдите по адресу в браузере, и откроется мастер первоначальной настройки.
- База данных: Выберите PostgreSQL. Настройки подключения уже подставлены из
docker-compose.yml(хостdb, имя базыgiteaи т.д.). - Общие настройки: Укажите домен вашего сервера (если есть) и SSH-порт
222. - Администратор: Задайте логин и пароль для учетной записи администратора.
Важно: Настройка HTTPS
Для работы по безопасному соединению обязательно настройте SSL. Самый простой способ — использовать обратный прокси, например, Nginx с Certbot для получения бесплатного сертификата от Let’s Encrypt.
Шаг 5: Тестирование
Создайте новый репозиторий в веб-интерфейсе Gitea. Затем выполните на своей локальной машине:
git clone http://ВАШ_IP_СЕРВЕРА:3000/ваш_пользователь/ваш_репозиторий.git
cd ваш_репозиторий
echo "# Мой первый репозиторий на Gitea" > README.md
git add README.md
git commit -m "Добавлен README"
git push -u origin main Обновите страницу в браузере — вы должны увидеть ваш коммит.
Резервное копирование
Не пренебрегайте бэкапами! Для создания резервной копии достаточно архивировать папки gitea и postgres в вашей рабочей директории.
# Остановите сервисы
docker compose down
# Создайте архив
tar -czf gitea-backup-$(date +%s).tar.gz ./gitea ./postgres
# Запустите сервисы снова
docker compose up -d Настройте регулярное выполнение этого скрипта через cron.
Поздравляем! Вы только что развернули свой собственный, быстрый и приватный Git-хостинг. Теперь вы полностью контролируете свои репозитории и данные.
Если у вас остались вопросы — задавайте их в комментариях!

