up
This commit is contained in:
@@ -93,8 +93,10 @@ make venue
|
|||||||
```
|
```
|
||||||
|
|
||||||
Сайт доступен по `https://evening-detective.crabs-games.art`; API и материалы
|
Сайт доступен по `https://evening-detective.crabs-games.art`; API и материалы
|
||||||
обслуживаются тем же прокси. Для подключения по LAN задайте постоянный IP ноутбука
|
обслуживаются тем же прокси. Интерфейс и API также можно открыть без локального
|
||||||
в `VENUE_BIND_IP` в `venue/.env` и настройте локальный DNS, как описано ниже.
|
DNS по `http://<VENUE_BIND_IP>:<VENUE_PORT>`. Ссылки на материалы, QR-коды и
|
||||||
|
билеты при этом остаются на прежнем HTTPS-домене. Для подключения по LAN задайте
|
||||||
|
постоянный IP ноутбука в `VENUE_BIND_IP` в `venue/.env`.
|
||||||
|
|
||||||
Приложение, база и RustFS подключены только к внутренней Docker-сети.
|
Приложение, база и RustFS подключены только к внутренней Docker-сети.
|
||||||
Прокси дополнительно подключён к сети публикации порта.
|
Прокси дополнительно подключён к сети публикации порта.
|
||||||
@@ -261,7 +263,8 @@ localStorage создаёт новое устройство. История по
|
|||||||
двух доменов должны приходить на локальный DNS, а клиенты — достигать ноутбука.
|
двух доменов должны приходить на локальный DNS, а клиенты — достигать ноутбука.
|
||||||
Скрипты проекта не меняют роутер и не прошивают его.
|
Скрипты проекта не меняют роутер и не прошивают его.
|
||||||
5. В `venue/.env` задайте `VENUE_BIND_IP=<постоянный-IP-ноутбука>` и разрешите
|
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`:
|
`VENUE_BIND_IP` должен быть конкретным IPv4-адресом ноутбука, не `0.0.0.0`:
|
||||||
он используется и для публикации портов, и для DNS-ответов. Порты должны быть свободны.
|
он используется и для публикации портов, и для DNS-ответов. Порты должны быть свободны.
|
||||||
Для HTTPS менять `APP_BASE_URL` в `.env` не нужно: Compose-дополнение задаёт
|
Для HTTPS менять `APP_BASE_URL` в `.env` не нужно: Compose-дополнение задаёт
|
||||||
@@ -280,8 +283,9 @@ localStorage создаёт новое устройство. История по
|
|||||||
|
|
||||||
Интерфейс открывается по `https://evening-detective.crabs-games.art`, API — по
|
Интерфейс открывается по `https://evening-detective.crabs-games.art`, API — по
|
||||||
`https://evening-detective-api.crabs-games.art`. Интерфейс использует свой `/api/`;
|
`https://evening-detective-api.crabs-games.art`. Интерфейс использует свой `/api/`;
|
||||||
прежний API-домен также обслуживается локально. HTTP на портах 80 и прежнем
|
прежний API-домен также обслуживается локально. На `VENUE_PORT` интерфейс и API
|
||||||
`VENUE_PORT` перенаправляется на HTTPS с сохранением пути и параметров.
|
доступны по IP через HTTP без редиректа; запросы по доменным именам на порту 80
|
||||||
|
перенаправляются на HTTPS с сохранением пути и параметров.
|
||||||
|
|
||||||
CoreDNS публикуется только на `VENUE_BIND_IP:53` по UDP/TCP. Оба домена получают
|
CoreDNS публикуется только на `VENUE_BIND_IP:53` по UDP/TCP. Оба домена получают
|
||||||
этот IPv4 локально; AAAA-запросы не получают внешние адреса. Для них интернет
|
этот 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(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(ui, "/team-story/1?password=test") == (200, None, "spa:/team-story/1?password=test")
|
||||||
assert request(api, "/docs/") == (200, None, "api:/docs/")
|
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", "restart", proxy)
|
||||||
run("docker", "exec", proxy, "nginx", "-t")
|
run("docker", "exec", proxy, "nginx", "-t")
|
||||||
assert request(ui, "/games") == (200, None, "spa:/games")
|
assert request(ui, "/games") == (200, None, "spa:/games")
|
||||||
|
|||||||
+30
-7
@@ -9,15 +9,38 @@ proxy_set_header X-Forwarded-Proto $scheme;
|
|||||||
proxy_read_timeout 120s;
|
proxy_read_timeout 120s;
|
||||||
|
|
||||||
server {
|
server {
|
||||||
listen 80;
|
listen 80 default_server;
|
||||||
server_name evening-detective.crabs-games.art;
|
server_name _;
|
||||||
return 308 https://evening-detective.crabs-games.art$request_uri;
|
|
||||||
|
if ($host ~ ^(evening-detective\.crabs-games\.art|evening-detective-api\.crabs-games\.art)$) {
|
||||||
|
return 308 https://$host$request_uri;
|
||||||
}
|
}
|
||||||
|
|
||||||
server {
|
location = /api/games/import {
|
||||||
listen 80;
|
client_max_body_size 1g;
|
||||||
server_name evening-detective-api.crabs-games.art;
|
client_body_timeout 1800s;
|
||||||
return 308 https://evening-detective-api.crabs-games.art$request_uri;
|
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 {
|
server {
|
||||||
|
|||||||
Reference in New Issue
Block a user