diff --git a/public/uk/radicle-web-service-deployment.gmi b/public/uk/radicle-web-service-deployment.gmi index 6458c09..afe5dfe 100644 --- a/public/uk/radicle-web-service-deployment.gmi +++ b/public/uk/radicle-web-service-deployment.gmi @@ -11,7 +11,7 @@ У даному матеріалі описане розгортання публічного Веб-інтерфейсу для користувачів оверлейних IPv6 мереж Yggdrasil і Mycelium. Мотивація - зробити сідуючий сервер доступним для локальних користувачів, які бажають переглядати репозиторії "всередині" оверлейної мережі та мати можливість забирати код як з `rad clone` так і через шлюз HTTP звичною командою `git clone`. -Веб-інфраструктура Radicle ділиться на дві основні частини: бекенд JSON/API (за яку відповідає пакунок radicle-httpd) і асинхронний фронтенд (на базі технологій HTML і JavaScript). Обидва рішення є частиною репозиторію `radicle-explorer`. +Веб-інфраструктура Radicle ділиться на дві основні частини: бекенд JSON/API (за яку відповідає пакунок `radicle-httpd`) і статичний асинхронний фронтенд (на базі технологій HTML і JavaScript). Обидва рішення є частиною репозиторію `radicle-explorer`. ## Отримання початкового коду @@ -152,9 +152,9 @@ sudo ufw allow from 0400::/7 to 505:6847:c778:61a1:5c6d:e802:d291:8191 port 8788 "nodes": { "fallbackPublicExplorer": "https://app.radicle.xyz/nodes/$host/$rid$path", "requiredApiVersion": "~0.18.0", - "defaultHttpdPort": 8788, - "defaultLocalHttpdPort": 8788, - "defaultHttpdScheme": "http" + "defaultHttpdPort": 443, + "defaultLocalHttpdPort": 8080, + "defaultHttpdScheme": "https" }, "source": { "commitsPerPage": 30 @@ -185,7 +185,17 @@ sudo ufw allow from 0400::/7 to 505:6847:c778:61a1:5c6d:e802:d291:8191 port 8788 ] } ``` -* `fallbackPublicExplorer` - це сервер-заглушка, куди у разі помилки підключення `preferredSeeds` буде перенаправлено запити JSON/API (radicle-httpd) + +Стандартні поля секції `nodes` - свідомо не зміню, бо в коді клієнта є такі упороті моменти: + +``` radicle-explorer/src/views/repos/Header/CloneButton.svelte +$: portFragment = + baseUrl.scheme === config.nodes.defaultHttpdScheme && + baseUrl.port === config.nodes.defaultHttpdPort + ? "" + : `:${baseUrl.port}`; +``` +* через що може не працювати внутрішня навігація по сідам а також приклади команд типу `git clone`, виключаючи з URL не типовий для HTTP/80 порт (`8788`) якщо той використовується ### Компіляція @@ -246,13 +256,4 @@ sudo ufw allow from 0400::/7 to 505:6847:c778:61a1:5c6d:e802:d291:8191 port 8780 В рамках цього прикладу, перевірити роботу можна за адресами: => http://[202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148]:8780 -=> http://[505:6847:c778:61a1:5c6d:e802:d291:8191]:8780 - -### Помічені проблеми - -Окрім вище згаданих проблем (з міксуванням декількох мереж в рамках спільного для всіх експлорера) можу виділити ще наступні: - -* схоже, що реалізація заточена під використання DNS: наприклад в Yggdrasil прийнято користуватись IPv6, але у такому випадку будуть проблеми при прямому переході за посиланням на такі сіди (при навігації засобами JS воно як-ні-як працює) - мабуть, тут як завжди не передбачена проблема з кодуванням квадратних дужок -* порт в налаштуваннях сіда чомусь ігнорується, тому з віджета не можливо отримати правильний приклад команди `git clone`; якщо ви повісите `80` порт на піддомен, то проблему можна обійти, хоча це важко назвати рішенням - -Підсумовуючи, саме Веб-експлорер я вважаю сирим для публікації його для широкого загалу, хоча JSON/API та вузол Radicle - виглядають цілком собі готовими до продакшну. Фронтенд я б все-таки поставив на локалхост і підключився до віддаленого сіда, налаштувавши потрібні мені псевдоніми в `/etc/hosts`. Свій інстанс триматиму публічно лише для відкритого тестування цього продукту в рамках подальшої розробки. \ No newline at end of file +=> http://[505:6847:c778:61a1:5c6d:e802:d291:8191]:8780 \ No newline at end of file