Обзор развертывания Gitea на сервере¶
Предварительные требования¶
Для корректной работы приложения должны быть соблюдены следующие условия:
-
Операционная система: Ubuntu.
-
Права доступа: Права суперпользователя (root) для установки пакетов и управления контейнерами.
-
Порты:
-
3000— внутренний порт приложения. -
222— SSH порт для Git-операций. -
443— внешний HTTPS порт.
FDQN итоговой панели на домене hostkey.in¶
Для доступа к приложению по защищенному протоколу используется следующий шаблон доменного имени:
| Параметр | Значение |
|---|---|
| Префикс | gitea |
| Домен | hostkey.in |
| Полный шаблон | gitea{Server_ID_from_Invapi}.hostkey.in |
Структура файлов и каталогов¶
В системе используются следующие директории для хранения данных и конфигураций:
-
/opt/gitea— рабочая директория приложения и файл конфигурации Docker Compose. -
/srv/gitea— основное хранилище данных Gitea. -
/root/nginx— конфигурация прокси-сервера для управления SSL-сертификатами. -
/data/nginx/user_conf.d— пользовательские конфигурационные файлы Nginx.
Процесс установки приложения¶
Процесс развертывания включает в себя несколько этапов:
-
Подготовка системы: Установка Docker и Docker Compose через пакетный менеджер
apt. -
Настройка окружения:
-
Создание необходимых директорий (
/opt/gitea,/srv/gitea). -
Настройка часового пояса сервера на
Europe/Moscow(через создание символьной ссылки в/etc/localtimeи обновление/etc/timezone). -
Развертывание контейнера: Запуск основного сервиса Gitea с использованием Docker Compose.
-
Настройка проксирования: Создание конфигурации Nginx для автоматического получения SSL-сертификатов через Certbot и перенаправление трафика на внутренний порт приложения.
Версия приложения: 1.22.2.
Права доступа и безопасность¶
-
Все данные в директории
/srv/giteaпринадлежат пользователюroot. -
Контейнер Gitea запускается с параметрами пользователя
UID 1000иGID 1000внутри среды выполнения. -
Директория конфигураций Nginx имеет права доступа
0755.
Базы данных¶
Приложение использует встроенные механизмы хранения данных, которые монтируются в объем (volume) по пути /data внутри контейнера и физически располагаются на хосте в директории /srv/gitea.
Контейнеры Docker и их запуск¶
В системе работают два основных компонента:
Gitea Server¶
-
Имя образа:
gitea/gitea:1.22.2 -
Имя контейнера:
gitea -
Порты:
-
3000 -> 3000(HTTP) -
222 -> 22(SSH) -
Тома (volumes):
-
/srv/gitea:/data -
/etc/timezone:/etc/timezone:ro -
/etc/localtime:/etc/localtime:ro -
Переменные окружения:
USER_UID=1000,USER_GID=1000 -
Политика перезапуска:
always
Nginx Certbot Proxy¶
-
Имя образа:
jonasal/nginx-certbot:latest -
Режим сети:
host -
Тома (volumes):
-
nginx_secrets:/etc/letsencrypt -
/data/nginx/user_conf.d:/etc/nginx/user_conf.d -
Переменные окружения:
CERTBOT_EMAIL=hkadm@hostkey.com -
Политика перезапуска:
unless-stopped
Инструкция по обновлению приложения¶
Для обновления основного приложения Gitea необходимо выполнить следующие действия:
-
Перейти в рабочую директорию:
cd /opt/gitea. -
Выполнить обновление образов и перезапуск контейнера: