# Gitea + OpenGist docker environment Подробности: https://axenov.dev/gitea-to-docker Стек: - gitea (latest) + mariadb 10.6 - opengist (latest) + mariadb 10.6 ## Порядок действий ## Для переноса сервисов 1. Клонировать репозиторий 2. Выполнить `cp .env.example .env` и указать корректные данные для подключения 3. Перенос Gitea с рабочего сервера: 1. Потушить сервер 2. Конфиг скопировать в `./gitea/app.ini` и скорректировать по необходимости 3. Снять дамп mysql и положить в `./gitea/dump.sql.gz` 4. Директорию с данными скопировать в `./gitea/data` 4. Перенос OpenGist с рабочего сервера: 1. Потушить сервер 2. Конфиг скопировать в `./opengist/opengist.yml` и скорректировать по необходимости 3. Снять дамп mysql и положить в `./opengist/dump.sql.gz` 4. Директорию с данными скопировать в `./opengist/data` 5. Убедиться, что `git` рекурсивно является владельцем `./`, если не -- `cd ..; chown -R git: gitea; cd -` 6. Запустить через `docker compose up -d --build` 7. Проверить логи через `docker logs -f ...` 8. Проверить веб-морды через `curl -i localhost:...` Опционально, если есть домены: 9. Настроить nginx на хосте как реверс-прокси из внешки в контейнеры: (поменять `server_name` и порты на свои) 1. `/etc/nginx/sites-available/gitea.conf` ``` server { listen 80; listen [::]:80; server_name git.example.com access_log /var/log/nginx/gitea-access.log; error_log /var/log/nginx/gitea-error.log; client_max_body_size 100M; location / { proxy_pass http://127.0.0.1:8080; } } ``` 2. `/etc/nginx/sites-available/opengist.conf` ``` server { listen 80; listen [::]:80; server_name gist.example.com access_log /var/log/nginx/opengist-access.log; error_log /var/log/nginx/opengist-error.log; client_max_body_size 100M; location / { proxy_pass http://127.0.0.1:8081; } } ``` 3. Сделать линки и перезапустить `nginx` ```shell ln -s /etc/nginx/sites-available/gitea.conf /etc/nginx/sites-enabled/gitea.conf ln -s /etc/nginx/sites-available/opengist.conf /etc/nginx/sites-enabled/opengist.conf unlink /etc/nginx/sites-enabled/default systemctl restart nginx ``` 10. Проверить веб-морды по доменам через `curl -i ...` 11. Настроить SSL через `certbot`