diff --git a/post/rozhortannia-veb-infrastruktury-radicle-na-prykladi-overleynykh-merez.md b/post/rozhortannia-veb-infrastruktury-radicle-na-prykladi-overleynykh-merez.md index 4e7549b..663aa55 100644 --- a/post/rozhortannia-veb-infrastruktury-radicle-na-prykladi-overleynykh-merez.md +++ b/post/rozhortannia-veb-infrastruktury-radicle-na-prykladi-overleynykh-merez.md @@ -83,23 +83,24 @@ sudo systemctl enable --now radicle-httpd ``` /etc/nginx/sites-available/default server { - listen [202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148]:8788; - listen [505:6847:c778:61a1:5c6d:e802:d291:8191]:8788; + listen [202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148]:8788; + listen [505:6847:c778:61a1:5c6d:e802:d291:8191]:8788; - # поки не визначився - # server_name _; + # Поки не визначився + # server_name _; - access_log /var/log/nginx/radicle.access.log; + access_log /var/log/nginx/radicle.access.log; - location / { - proxy_pass http://[::1]:8788; + location / { + proxy_pass http://[::1]:8788; - 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; - proxy_redirect off; - } + proxy_http_version 1.1; + proxy_set_header Connection ""; + + proxy_set_header Host $host; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + proxy_set_header X-Forwarded-Proto $scheme; + } } ``` * для мереж Yggdrasil і Mycelium - HTTPs звичайно не використовується, тому приклад налаштування спрощено @@ -137,7 +138,7 @@ sudo ufw allow from 0400::/7 to 505:6847:c778:61a1:5c6d:e802:d291:8191 port 8788 ### Налаштування підключення до бекенду -Перед тим, як збирати оптимізований білд, важливо спочатку вказати актуальні налаштування підключення до серверів JSON/API - власних або сторонніх. Робиться це у файлі `config/default.json`. Після збірки, ці налаштування будуть "вбудовані" в компонент `build/assets/components-xxx.js` і при наступних оновленнях конфігу, особисто я перезбираю клієнт видаливши попередню теку `build`. +Перед тим, як збирати оптимізований білд, важливо спочатку вказати актуальні налаштування підключення до серверів JSON/API - власних або сторонніх. Робиться це у файлі `config/default.json`. Після збірки, ці налаштування будуть "вбудовані" в компонент `build/assets/components-xxx.js` і при наступних оновленнях конфігу, особисто я перезбираю клієнт видаливши попередню теку `build`, хоча в останніх версіях можна скопіювати до кореню статичний файл (див. коментар Nginx). У своїй конфігурації, поки використовую два інтерфейси: Yggdrasil і Mycelium свого сіда. По аналогії, до масиву об'єктів `preferredSeeds` додаються й альтернативні DNS, тунелі I2P або приховані сервіси Tor. @@ -220,18 +221,42 @@ sudo chown www-data:www-data /var/www/radicle ``` /etc/nginx/sites-available/default server { - listen [202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148]:8780; - listen [505:6847:c778:61a1:5c6d:e802:d291:8191]:8780; + listen [202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148]:8780; + listen [505:6847:c778:61a1:5c6d:e802:d291:8191]:8780; - # поки не визначився - # server_name _; + # Ще не визначився + # server_name _; - access_log /var/log/nginx/radicle.access.log; - root /var/www/radicle; + access_log /var/log/nginx/radicle.access.log; + root /var/www/radicle; - location / { - try_files $uri $uri/ /index.html; - } + location / { + try_files $uri $uri/ /index.html; + } + + # При збірці radicle-explorer з репозиторію, публічна тека `build` не міститиме файлу `config.json` + # тому я скопіював `config/default.json` до `/config.json` на сервері + # https://app.radicle.xyz/nodes/iris.radicle.xyz/rad%3Az4V1sjrXqjvFdnCUbxPFqd5p4DtH5/tree/README.md#run-time-configuration + # + # location = /config.json { + # root /; + # try_files /etc/radicle-explorer/config.json /usr/share/radicle-explorer/config.json =404; + # } + + # Цей блок є опціональним і дозволяє публікувати `radicle-httpd` і `radicle-explorer` + # на одному інтерфейсі одночасно (на прикладі це може спільний порт `8780`) + # таким чином, індексна сторінка API буде заміщена користувацьким Веб-інтерфейсом + # + # location ~ "^/(raw|api|[a-zA-Z0-9]{28,29}(\.git)?)(/|$)" { + # proxy_pass http://[::1]:8788; + # + # proxy_http_version 1.1; + # proxy_set_header Connection ""; + # + # proxy_set_header Host $host; + # proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; + # proxy_set_header X-Forwarded-Proto $scheme; + # } } ```