Переработка ssh
This commit is contained in:
@@ -5,7 +5,7 @@ GITEA_DB_NAME=
|
|||||||
|
|
||||||
GITEA_HOST_DB_PORT=3306
|
GITEA_HOST_DB_PORT=3306
|
||||||
GITEA_HOST_WEB_PORT=8080
|
GITEA_HOST_WEB_PORT=8080
|
||||||
GITEA_HOST_SSH_PORT=22
|
GITEA_HOST_SSH_PORT=222
|
||||||
|
|
||||||
OG_DB_ROOT_PASSWORD=
|
OG_DB_ROOT_PASSWORD=
|
||||||
OG_DB_USER=
|
OG_DB_USER=
|
||||||
@@ -17,4 +17,4 @@ OG_DB_NAME=
|
|||||||
|
|
||||||
OG_HOST_DB_PORT=3307
|
OG_HOST_DB_PORT=3307
|
||||||
OG_HOST_WEB_PORT=8081
|
OG_HOST_WEB_PORT=8081
|
||||||
OG_HOST_SSH_PORT=23
|
OG_HOST_SSH_PORT=223
|
||||||
|
|||||||
44
README.md
44
README.md
@@ -8,21 +8,21 @@
|
|||||||
|
|
||||||
## Порядок действий
|
## Порядок действий
|
||||||
|
|
||||||
## Для переноса сервисов
|
## Для переноса сервисов с другого сервера
|
||||||
|
|
||||||
1. Клонировать репозиторий
|
1. Клонировать репозиторий
|
||||||
2. Выполнить `cp .env.example .env` и указать корректные данные для подключения
|
2. Выполнить `cp .env.example .env` и указать корректные данные для подключения
|
||||||
3. Перенос Gitea с рабочего сервера:
|
3. Перенос Gitea:
|
||||||
1. Потушить сервер
|
1. Потушить сервис (не сервер)
|
||||||
2. Конфиг скопировать в `./gitea/app.ini` и скорректировать по необходимости
|
2. Конфиг скопировать в `./gitea/app.ini` и скорректировать по необходимости
|
||||||
3. Снять дамп mysql и положить в `./gitea/dump.sql.gz`
|
3. Снять дамп mysql и положить в `./gitea/dump.sql.gz`
|
||||||
4. Директорию с данными скопировать в `./gitea/data`
|
4. Директории с данными скопировать в `./gitea/data`
|
||||||
4. Перенос OpenGist с рабочего сервера:
|
4. Перенос OpenGist:
|
||||||
1. Потушить сервер
|
1. Потушить сервис (не сервер)
|
||||||
2. Конфиг скопировать в `./opengist/opengist.yml` и скорректировать по необходимости
|
2. Конфиг скопировать в `./opengist/opengist.yml` и скорректировать по необходимости
|
||||||
3. Снять дамп mysql и положить в `./opengist/dump.sql.gz`
|
3. Снять дамп mysql и положить в `./opengist/dump.sql.gz`
|
||||||
4. Директорию с данными скопировать в `./opengist/data`
|
4. Директории с данными скопировать в `./opengist/data`
|
||||||
5. Убедиться, что `git` рекурсивно является владельцем `./`, если не -- `cd ..; chown -R git: gitea; cd -`
|
5. Убедиться, что владельцем `./` является юзер с `UID`=`1000`, если не -- `cd ..; chown -R 1000:1000 gitea; cd -`
|
||||||
6. Запустить через `docker compose up -d --build`
|
6. Запустить через `docker compose up -d --build`
|
||||||
7. Проверить логи через `docker logs -f ...`
|
7. Проверить логи через `docker logs -f ...`
|
||||||
8. Проверить веб-морды через `curl -i localhost:...`
|
8. Проверить веб-морды через `curl -i localhost:...`
|
||||||
@@ -70,5 +70,29 @@
|
|||||||
unlink /etc/nginx/sites-enabled/default
|
unlink /etc/nginx/sites-enabled/default
|
||||||
systemctl restart nginx
|
systemctl restart nginx
|
||||||
```
|
```
|
||||||
10. Проверить веб-морды по доменам через `curl -i ...`
|
10. Переключить DNS на новый IP
|
||||||
11. Настроить SSL через `certbot`
|
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`
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ services:
|
|||||||
- ./gitea/data:/var/lib/gitea
|
- ./gitea/data:/var/lib/gitea
|
||||||
ports:
|
ports:
|
||||||
- ${GITEA_HOST_WEB_PORT:-8080}:3000
|
- ${GITEA_HOST_WEB_PORT:-8080}:3000
|
||||||
- ${GITEA_HOST_SSH_PORT:-22}:22
|
- ${GITEA_HOST_SSH_PORT:-222}:22
|
||||||
depends_on:
|
depends_on:
|
||||||
- gitea-db
|
- gitea-db
|
||||||
|
|
||||||
@@ -61,7 +61,7 @@ services:
|
|||||||
OG_DB_URI: mysql://${OG_DB_USER:?check your .env file}:${OG_DB_PASSWORD:?check your .env file}@opengist-db:3306/${OG_DB_NAME:-opengist}
|
OG_DB_URI: mysql://${OG_DB_USER:?check your .env file}:${OG_DB_PASSWORD:?check your .env file}@opengist-db:3306/${OG_DB_NAME:-opengist}
|
||||||
ports:
|
ports:
|
||||||
- ${OG_HOST_WEB_PORT:-8081}:6157
|
- ${OG_HOST_WEB_PORT:-8081}:6157
|
||||||
- ${OG_HOST_SSH_PORT:-23}:2222
|
- ${OG_HOST_SSH_PORT:-223}:2222
|
||||||
volumes:
|
volumes:
|
||||||
# copy backup files first to pass them inside
|
# copy backup files first to pass them inside
|
||||||
- ./opengist/data:/opengist
|
- ./opengist/data:/opengist
|
||||||
|
|||||||
10
gitea/gitea.sh
Executable file
10
gitea/gitea.sh
Executable file
@@ -0,0 +1,10 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# https://docs.gitea.com/installation/install-with-docker-rootless
|
||||||
|
if [ $(docker ps | grep -wc 'gitea') -le 1 ]; then
|
||||||
|
echo "============================================" >&2
|
||||||
|
echo "Gitea is currently offline. Try again later." >&2
|
||||||
|
echo "============================================" >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
docker exec -i --env SSH_ORIGINAL_COMMAND="$SSH_ORIGINAL_COMMAND" gitea sh "$@"
|
||||||
Reference in New Issue
Block a user