Переработка ssh

This commit is contained in:
2025-02-20 09:57:49 +08:00
parent 6832d0979d
commit 164e880821
4 changed files with 48 additions and 14 deletions

View File

@@ -8,21 +8,21 @@
## Порядок действий
## Для переноса сервисов
## Для переноса сервисов с другого сервера
1. Клонировать репозиторий
2. Выполнить `cp .env.example .env` и указать корректные данные для подключения
3. Перенос Gitea с рабочего сервера:
1. Потушить сервер
3. Перенос Gitea:
1. Потушить сервис (не сервер)
2. Конфиг скопировать в `./gitea/app.ini` и скорректировать по необходимости
3. Снять дамп mysql и положить в `./gitea/dump.sql.gz`
4. Директорию с данными скопировать в `./gitea/data`
4. Перенос OpenGist с рабочего сервера:
1. Потушить сервер
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 -`
4. Директории с данными скопировать в `./opengist/data`
5. Убедиться, что владельцем `./` является юзер с `UID`=`1000`, если не -- `cd ..; chown -R 1000:1000 gitea; cd -`
6. Запустить через `docker compose up -d --build`
7. Проверить логи через `docker logs -f ...`
8. Проверить веб-морды через `curl -i localhost:...`
@@ -70,5 +70,29 @@
unlink /etc/nginx/sites-enabled/default
systemctl restart nginx
```
10. Проверить веб-морды по доменам через `curl -i ...`
11. Настроить SSL через `certbot`
10. Переключить DNS на новый IP
11. Проверить веб-морды по доменам через `curl -i ...`
12. Настроить SSL через `certbot`
## Для деплоя с нуля
Шаги 3-4 можно опустить.
## Gitea + ssh через хост
Проблема в том, что порт openssh на хосте занят (по дефолту 22), пробросить порт напрямую из докера не получится.
1. Запомнить абсолютный путь до скрипта [./gitea/gitea.sh](./gitea/gitea.sh) (например, `/home/user/gitea/gitea/gitea.sh`)
2. Назначить его оболочкой для юзера `git`
```shell
usermod -s /home/user/gitea/gitea/gitea.sh git
```
3. Создать конфиг `/etc/ssh/sshd_config.d/gitea.conf` следующее:
```shell
Match User git
AuthorizedKeysCommandUser git
AuthorizedKeysCommand /usr/bin/docker exec -i gitea /usr/local/bin/gitea keys -e git -u %u -t %t -k %k
```
4. Перезапустить демона через `systemctl restart sshd`