up
This commit is contained in:
@@ -93,8 +93,10 @@ make venue
|
||||
```
|
||||
|
||||
Сайт доступен по `https://evening-detective.crabs-games.art`; API и материалы
|
||||
обслуживаются тем же прокси. Для подключения по LAN задайте постоянный IP ноутбука
|
||||
в `VENUE_BIND_IP` в `venue/.env` и настройте локальный DNS, как описано ниже.
|
||||
обслуживаются тем же прокси. Интерфейс и API также можно открыть без локального
|
||||
DNS по `http://<VENUE_BIND_IP>:<VENUE_PORT>`. Ссылки на материалы, QR-коды и
|
||||
билеты при этом остаются на прежнем HTTPS-домене. Для подключения по LAN задайте
|
||||
постоянный IP ноутбука в `VENUE_BIND_IP` в `venue/.env`.
|
||||
|
||||
Приложение, база и RustFS подключены только к внутренней Docker-сети.
|
||||
Прокси дополнительно подключён к сети публикации порта.
|
||||
@@ -261,7 +263,8 @@ localStorage создаёт новое устройство. История по
|
||||
двух доменов должны приходить на локальный DNS, а клиенты — достигать ноутбука.
|
||||
Скрипты проекта не меняют роутер и не прошивают его.
|
||||
5. В `venue/.env` задайте `VENUE_BIND_IP=<постоянный-IP-ноутбука>` и разрешите
|
||||
входящие TCP 80/443 и TCP/UDP 53 из LAN в межсетевом экране ноутбука.
|
||||
входящие TCP 80/443, TCP `VENUE_PORT` и TCP/UDP 53 из LAN в межсетевом экране
|
||||
ноутбука.
|
||||
`VENUE_BIND_IP` должен быть конкретным IPv4-адресом ноутбука, не `0.0.0.0`:
|
||||
он используется и для публикации портов, и для DNS-ответов. Порты должны быть свободны.
|
||||
Для HTTPS менять `APP_BASE_URL` в `.env` не нужно: Compose-дополнение задаёт
|
||||
@@ -280,8 +283,9 @@ localStorage создаёт новое устройство. История по
|
||||
|
||||
Интерфейс открывается по `https://evening-detective.crabs-games.art`, API — по
|
||||
`https://evening-detective-api.crabs-games.art`. Интерфейс использует свой `/api/`;
|
||||
прежний API-домен также обслуживается локально. HTTP на портах 80 и прежнем
|
||||
`VENUE_PORT` перенаправляется на HTTPS с сохранением пути и параметров.
|
||||
прежний API-домен также обслуживается локально. На `VENUE_PORT` интерфейс и API
|
||||
доступны по IP через HTTP без редиректа; запросы по доменным именам на порту 80
|
||||
перенаправляются на HTTPS с сохранением пути и параметров.
|
||||
|
||||
CoreDNS публикуется только на `VENUE_BIND_IP:53` по UDP/TCP. Оба домена получают
|
||||
этот IPv4 локально; AAAA-запросы не получают внешние адреса. Для них интернет
|
||||
|
||||
+1
-1
Submodule prod updated: f827e32809...1400500d50
@@ -236,6 +236,8 @@ with tempfile.TemporaryDirectory(prefix="venue-https-") as directory:
|
||||
assert request(domain, "/api/games/import", method="POST", body=b"test ZIP") == (200, None, "api:/api/games/import")
|
||||
assert request(ui, "/team-story/1?password=test") == (200, None, "spa:/team-story/1?password=test")
|
||||
assert request(api, "/docs/") == (200, None, "api:/docs/")
|
||||
assert request("192.0.2.10", "/api/test/ping?value=1", tls=False) == (200, None, "api:/api/test/ping?value=1")
|
||||
assert request("192.0.2.10", "/team-story/1?password=test", tls=False) == (200, None, "spa:/team-story/1?password=test")
|
||||
run("docker", "restart", proxy)
|
||||
run("docker", "exec", proxy, "nginx", "-t")
|
||||
assert request(ui, "/games") == (200, None, "spa:/games")
|
||||
|
||||
+31
-8
@@ -9,15 +9,38 @@ proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_read_timeout 120s;
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
server_name evening-detective.crabs-games.art;
|
||||
return 308 https://evening-detective.crabs-games.art$request_uri;
|
||||
}
|
||||
listen 80 default_server;
|
||||
server_name _;
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
server_name evening-detective-api.crabs-games.art;
|
||||
return 308 https://evening-detective-api.crabs-games.art$request_uri;
|
||||
if ($host ~ ^(evening-detective\.crabs-games\.art|evening-detective-api\.crabs-games\.art)$) {
|
||||
return 308 https://$host$request_uri;
|
||||
}
|
||||
|
||||
location = /api/games/import {
|
||||
client_max_body_size 1g;
|
||||
client_body_timeout 1800s;
|
||||
proxy_read_timeout 1800s;
|
||||
proxy_send_timeout 1800s;
|
||||
proxy_request_buffering off;
|
||||
proxy_pass http://evening_detective_server:8090;
|
||||
}
|
||||
|
||||
location ~ ^/api/games/[0-9]+/results-package/(apply|download)$ {
|
||||
client_max_body_size 1g;
|
||||
client_body_timeout 1800s;
|
||||
proxy_read_timeout 1800s;
|
||||
proxy_send_timeout 1800s;
|
||||
proxy_request_buffering off;
|
||||
proxy_pass http://evening_detective_server:8090;
|
||||
}
|
||||
|
||||
location /api/ {
|
||||
proxy_pass http://evening_detective_server:8090;
|
||||
}
|
||||
|
||||
location / {
|
||||
proxy_pass http://evening_detective_frontend:8080;
|
||||
}
|
||||
}
|
||||
|
||||
server {
|
||||
|
||||
Reference in New Issue
Block a user