Trim DEPLOY.md: reverse proxy is managed separately, out of scope here
Some checks failed
CI/CD / build-test-deploy (push) Has been cancelled
Some checks failed
CI/CD / build-test-deploy (push) Has been cancelled
This commit is contained in:
@@ -6,10 +6,8 @@ CI/CD (`.gitea/workflows/ci-cd.yml`) берёт на себя все после
|
|||||||
Все команды ниже выполняются на самой целевой машине (по SSH/консоли хостера) — не на машине
|
Все команды ниже выполняются на самой целевой машине (по SSH/консоли хостера) — не на машине
|
||||||
разработки.
|
разработки.
|
||||||
|
|
||||||
## 0. Предварительные условия
|
Реверс-прокси (nginx, TLS, домен) уже настроен отдельно и обслуживается не отсюда — этот документ
|
||||||
|
покрывает только сам стек, который должен подняться и слушать `127.0.0.1:8081`.
|
||||||
- DNS-запись `ruvdstest.danamir.site` уже указывает на IP этой машины (проверить: `dig +short ruvdstest.danamir.site`).
|
|
||||||
- Открыты порты 80 и 443 (для HTTP-01 challenge certbot и самого HTTPS).
|
|
||||||
|
|
||||||
## 1. Установить Docker
|
## 1. Установить Docker
|
||||||
|
|
||||||
@@ -48,7 +46,8 @@ sed -i "s|^POSTGRES_PASSWORD=.*|POSTGRES_PASSWORD=$(openssl rand -base64 24 | tr
|
|||||||
|
|
||||||
# Публичный origin — на этом этапе это скорее формальность (клиент теперь
|
# Публичный origin — на этом этапе это скорее формальность (клиент теперь
|
||||||
# ходит на /api того же origin, кросс-доменных запросов не будет), но
|
# ходит на /api того же origin, кросс-доменных запросов не будет), но
|
||||||
# выставить правильно не помешает:
|
# выставить правильно не помешает. Подставить сюда тот адрес, по которому
|
||||||
|
# сайт реально открывается через ваш внешний реверс-прокси.
|
||||||
echo "CLIENT_ORIGIN=https://ruvdstest.danamir.site" >> .env
|
echo "CLIENT_ORIGIN=https://ruvdstest.danamir.site" >> .env
|
||||||
|
|
||||||
cat .env # свериться, что все три значения на месте
|
cat .env # свериться, что все три значения на месте
|
||||||
@@ -70,49 +69,14 @@ curl -s http://127.0.0.1:8081/api/login -X POST \
|
|||||||
# ожидается {"Ok":{"Token":"...", ...}}
|
# ожидается {"Ok":{"Token":"...", ...}}
|
||||||
```
|
```
|
||||||
|
|
||||||
## 5. Установить nginx + получить сертификат
|
## 5. Подключить в существующий реверс-прокси
|
||||||
|
|
||||||
```bash
|
Внешний nginx настраивается отдельно (не входит в этот репозиторий) — ему нужен один
|
||||||
sudo apt update && sudo apt install -y nginx certbot python3-certbot-nginx
|
`proxy_pass http://127.0.0.1:8081;` на весь сайт. Клиентский контейнер уже сам умеет
|
||||||
```
|
проксировать `/api/*` на сервер (см. `src/Client/nginx.conf`), поэтому отдельный location для
|
||||||
|
`/api` во внешнем nginx не нужен — один `location / { proxy_pass ...; }` покрывает всё.
|
||||||
|
|
||||||
Создать `/etc/nginx/sites-available/ruvdstest`:
|
## 6. Раннер CI/CD
|
||||||
|
|
||||||
```nginx
|
|
||||||
server {
|
|
||||||
listen 80;
|
|
||||||
server_name ruvdstest.danamir.site;
|
|
||||||
|
|
||||||
location / {
|
|
||||||
proxy_pass http://127.0.0.1:8081;
|
|
||||||
proxy_set_header Host $host;
|
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
Клиентский контейнер уже сам умеет проксировать `/api/*` на сервер (см. `src/Client/nginx.conf`),
|
|
||||||
поэтому хостовому nginx достаточно одного `proxy_pass` на весь сайт целиком — отдельный location
|
|
||||||
для `/api` тут не нужен.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
sudo ln -s /etc/nginx/sites-available/ruvdstest /etc/nginx/sites-enabled/
|
|
||||||
sudo nginx -t && sudo systemctl reload nginx
|
|
||||||
|
|
||||||
sudo certbot --nginx -d ruvdstest.danamir.site
|
|
||||||
```
|
|
||||||
|
|
||||||
`certbot --nginx` сам допишет `listen 443 ssl`, сертификат и редирект с 80 на 443 в тот же файл.
|
|
||||||
|
|
||||||
## 6. Проверить снаружи
|
|
||||||
|
|
||||||
Открыть `https://ruvdstest.danamir.site` в браузере — должен появиться экран логина, залогиниться
|
|
||||||
демо-пользователем, убедиться что запросы в Network идут на `https://ruvdstest.danamir.site/api/...`
|
|
||||||
(не на `localhost`).
|
|
||||||
|
|
||||||
## 7. Раннер CI/CD
|
|
||||||
|
|
||||||
См. `docs/CI-CD.md` — регистрируется на этой же машине, деплой-шаг пайплайна выполняет
|
См. `docs/CI-CD.md` — регистрируется на этой же машине, деплой-шаг пайплайна выполняет
|
||||||
`docker compose up -d` прямо здесь же (поверх уже поднятого в шаге 4 стека).
|
`docker compose up -d` прямо здесь же (поверх уже поднятого в шаге 4 стека).
|
||||||
|
|||||||
Reference in New Issue
Block a user