From b5921292db1bc1720a27fd0e3658f7ab62830adb Mon Sep 17 00:00:00 2001 From: danamir Date: Thu, 6 Aug 2026 14:46:58 +0300 Subject: [PATCH] Trim DEPLOY.md: reverse proxy is managed separately, out of scope here --- docs/DEPLOY.md | 56 +++++++++----------------------------------------- 1 file changed, 10 insertions(+), 46 deletions(-) diff --git a/docs/DEPLOY.md b/docs/DEPLOY.md index d47ecdf..51653a9 100644 --- a/docs/DEPLOY.md +++ b/docs/DEPLOY.md @@ -6,10 +6,8 @@ CI/CD (`.gitea/workflows/ci-cd.yml`) берёт на себя все после Все команды ниже выполняются на самой целевой машине (по SSH/консоли хостера) — не на машине разработки. -## 0. Предварительные условия - -- DNS-запись `ruvdstest.danamir.site` уже указывает на IP этой машины (проверить: `dig +short ruvdstest.danamir.site`). -- Открыты порты 80 и 443 (для HTTP-01 challenge certbot и самого HTTPS). +Реверс-прокси (nginx, TLS, домен) уже настроен отдельно и обслуживается не отсюда — этот документ +покрывает только сам стек, который должен подняться и слушать `127.0.0.1:8081`. ## 1. Установить Docker @@ -48,7 +46,8 @@ sed -i "s|^POSTGRES_PASSWORD=.*|POSTGRES_PASSWORD=$(openssl rand -base64 24 | tr # Публичный origin — на этом этапе это скорее формальность (клиент теперь # ходит на /api того же origin, кросс-доменных запросов не будет), но -# выставить правильно не помешает: +# выставить правильно не помешает. Подставить сюда тот адрес, по которому +# сайт реально открывается через ваш внешний реверс-прокси. echo "CLIENT_ORIGIN=https://ruvdstest.danamir.site" >> .env cat .env # свериться, что все три значения на месте @@ -70,49 +69,14 @@ curl -s http://127.0.0.1:8081/api/login -X POST \ # ожидается {"Ok":{"Token":"...", ...}} ``` -## 5. Установить nginx + получить сертификат +## 5. Подключить в существующий реверс-прокси -```bash -sudo apt update && sudo apt install -y nginx certbot python3-certbot-nginx -``` +Внешний 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`: - -```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 +## 6. Раннер CI/CD См. `docs/CI-CD.md` — регистрируется на этой же машине, деплой-шаг пайплайна выполняет `docker compose up -d` прямо здесь же (поверх уже поднятого в шаге 4 стека).