diff --git a/README.md b/README.md index 1c9a074..f551dd0 100644 --- a/README.md +++ b/README.md @@ -5,9 +5,9 @@ Ниже краткая выжимка этого поста. Стек: -- git, ssh, scp, nginx, certbot, docker, docker-compose-plugin, любой текстовый редактор - gitea (latest) + mariadb 10.6 - opengist (latest) + mariadb 10.6 +- git, docker, docker-compose-plugin; могут понадобиться ssh, scp, nginx, certbot, любой текстовый редактор ## Порядок действий @@ -15,20 +15,23 @@ 1. Клонировать репозиторий 2. Выполнить `cp .env.example .env` и указать корректные данные для подключения -3. Перенос Gitea: +3. (Необязательно) Для переноса инстанса Gitea: 1. Потушить сервис (не сервер) - 2. Скопировать существующий конфиг в `./gitea/app.ini` и скорректировать по необходимости - 3. Снять дамп mysql и положить в `./gitea/dump.sql.gz` - 4. Директории с данными скопировать в `./gitea/data` -4. Перенос Gitea Runner: + 2. Выполнить `cp compose.override.yml.example compose.override.yml` + 3. Скопировать существующий конфиг в `./gitea/app.ini` и скорректировать по необходимости + 4. Снять дамп mysql и положить в `./gitea/dump.sql.gz` + 5. Директории с данными скопировать в `./gitea/data` +4. (Необязательно) Для переноса инстанса Gitea Runner: + * Выполнить `cp compose.override.yml.example compose.override.yml`, если ещё не * Скопировать старый конфиг в `./runner/config.yaml` и скорректировать по необходимости ИЛИ * Выполнить `cp ./runner/config.example.yaml ./runner/config.yaml` и скорректировать по необходимости -5. Перенос OpenGist: +5. (Необязательно) Для переноса инстанса OpenGist: 1. Потушить сервис (не сервер) - 2. Скопировать существующий конфиг скопировать в `./opengist/opengist.yml` и скорректировать по необходимости - 3. Снять дамп mysql и положить в `./opengist/dump.sql.gz` - 4. Директории с данными скопировать в `./opengist/data` + 2. Выполнить `cp compose.override.yml.example compose.override.yml` + 3. Скопировать существующий конфиг скопировать в `./opengist/opengist.yml` и скорректировать по необходимости + 4. Снять дамп mysql и положить в `./opengist/dump.sql.gz` + 5. Директории с данными скопировать в `./opengist/data` 6. Убедиться, что владельцем `./` является юзер с `UID`=`1000`, если не -- `cd ..; chown -R 1000:1000 gitea; cd -` 7. Запустить через `docker compose up -d --build` 8. Проверить логи через `docker logs -f ...` @@ -89,18 +92,20 @@ systemctl restart nginx ### Для деплоя с нуля -Всё то же, но шаги 3 и 5 можно опустить. +Всё то же, но шаги 3-5 можно полностью пропустить. ## Gitea + ssh через хост -Проблема в том, что порт openssh на хосте занят (по дефолту 22), пробросить порт напрямую из докера не получится. +Если порт openssh на хосте занят (по дефолту 22), то пробросить порт напрямую из докера не получится. 1. Запомнить абсолютный путь до скрипта [./gitea/gitea.sh](./gitea/gitea.sh) (например, `/home/user/gitea/gitea/gitea.sh`) -2. Назначить его оболочкой для юзера `git` +2. Назначить его оболочкой для системного юзера `git` + ```shell usermod -s /home/user/gitea/gitea/gitea.sh git ``` -3. Создать конфиг `/etc/ssh/sshd_config.d/gitea.conf` следующее: + +4. Создать конфиг `/etc/ssh/sshd_config.d/gitea.conf` следующее: ```shell Match User git @@ -108,7 +113,7 @@ systemctl restart nginx AuthorizedKeysCommand /usr/bin/docker exec -i gitea /usr/local/bin/gitea keys -e git -u %u -t %t -k %k ``` -4. Перезапустить демона через `systemctl restart sshd` +5. Перезапустить демона через `systemctl restart sshd` ## Настройка Gitea Actions (runner) @@ -154,5 +159,6 @@ container: ``` Доп. информация: +* https://axenov.dev/gitea-to-docker * https://docs.gitea.com/usage/actions/quickstart * https://docs.gitea.com/usage/actions/act-runner