mirror of
https://codeberg.org/postscriptum/gemlog.git
synced 2026-02-18 22:12:40 +00:00
minor corrections
This commit is contained in:
parent
aaeaa7ff5e
commit
ede9b73a9d
1 changed files with 25 additions and 22 deletions
|
|
@ -3,19 +3,13 @@
|
|||
В попередньому гайді серії про децентралізований Git-хостинг Radicle, було розглянуто приклад налаштування публічного сіда для поширення персональних репозиторіїв в оверлейному режимі з політикою "Selective":
|
||||
=> radicle-multi-network-seed-deployment.gmi Розгортання сіда Radicle в мульти-мережному середовищі
|
||||
|
||||
Варіанти Веб-сервісу можуть різнитися, в залежності від сфери використання:
|
||||
|
||||
* локальний хост в браузері
|
||||
* десктоп-застосунок
|
||||
* публічний сервіс
|
||||
|
||||
У даному матеріалі описане розгортання публічного Веб-інтерфейсу для користувачів оверлейних 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`.
|
||||
|
||||
## Отримання початкового коду
|
||||
|
||||
У попередньому гайді, на сервері вже було створено користувача `radicle`, тож спочатку залогінимось і продовжимо від нього:
|
||||
У попередньому гайді, на сервері вже було створено користувача `radicle`, тож спочатку залогінимось від нього:
|
||||
|
||||
``` bash
|
||||
su radicle
|
||||
|
|
@ -33,7 +27,7 @@ rad clone rad:z4V1sjrXqjvFdnCUbxPFqd5p4DtH5 radicle-explorer
|
|||
git clone https://iris.radicle.xyz/z4V1sjrXqjvFdnCUbxPFqd5p4DtH5.git radicle-explorer
|
||||
```
|
||||
|
||||
## Бекенд JSON/API (radicle-httpd)
|
||||
## Сервер JSON/API (radicle-httpd)
|
||||
|
||||
Інструкції з розгортання описані в офіційній документації:
|
||||
=> https://radicle.xyz/guides/seeder#running-the-http-daemon Radicle Seeder Guide: Running the HTTP Daemon
|
||||
|
|
@ -88,14 +82,12 @@ sudo systemctl enable --now radicle-httpd
|
|||
|
||||
### Nginx
|
||||
|
||||
Сервіс вище - "слухатиме" на локальному сокеті `[::1]:8788`, на який потрібно перекинути публічний проксі Nginx для актуальних мереж:
|
||||
|
||||
``` /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;
|
||||
|
||||
# поки не використовується, але згодом створю для нього Alfis DNS
|
||||
# поки не визначився
|
||||
# server_name _;
|
||||
|
||||
access_log /var/log/nginx/radicle.access.log;
|
||||
|
|
@ -133,19 +125,24 @@ sudo ufw allow from 0400::/7 to 505:6847:c778:61a1:5c6d:e802:d291:8191 port 8788
|
|||
=> http://[202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148]:8788
|
||||
=> http://[505:6847:c778:61a1:5c6d:e802:d291:8191]:8788
|
||||
|
||||
По аналогії, на бекенд можна легко причепити тунелі I2P і Tor (чого не скажеш про Веб-експлорер).
|
||||
Якщо встановлено Alfis DNS:
|
||||
|
||||
## Фронтенд (radicle-explorer)
|
||||
=> http://ygg.ua.srv:8788
|
||||
=> http://myc.ua.srv:8788
|
||||
|
||||
По суті, це статичний Веб-клієнт на базі HTML/JavaScript що звертається до вказаного в налаштуваннях бекенду. Він збирається засобами пакетного менеджера `npm`, після чого статичні файли копіюються до публічного простору Nginx: `/var/www/radicle`.
|
||||
По аналогії, на бекенд можна легко причепити тунелі I2P і Tor.
|
||||
|
||||
## Клієнт (radicle-explorer)
|
||||
|
||||
По суті, це статичний Веб-компонент на базі HTML/JavaScript, що звертається до вказаного в його налаштуваннях сервера (який ми налаштували вище). Оптимізована статика збирається засобами пакетного менеджера `npm`, після чого отримані файли з теки `build` копіюються до публічного простору, наприклад Nginx: `/var/www/radicle`.
|
||||
|
||||
### Налаштування підключення до бекенду
|
||||
|
||||
Перед тим, як збирати оптимізований білд, важливо спочатку вказати актуальні налаштування підключення до серверів JSON/API - власних або сторонніх. Робиться це у файлі `config/default.json`. Після збірки, налаштування будуть "вбудовані" в компонент `build/assets/components-xxx.js` і при оновленнях цього конфігу, особисто я перезбираю клієнт видаливши попередню теку `build`.
|
||||
Перед тим, як збирати оптимізований білд, важливо спочатку вказати актуальні налаштування підключення до серверів JSON/API - власних або сторонніх. Робиться це у файлі `config/default.json`. Після збірки, ці налаштування будуть "вбудовані" в компонент `build/assets/components-xxx.js` і при наступних оновленнях конфігу, особисто я перезбираю клієнт видаливши попередню теку `build`.
|
||||
|
||||
У своїй конфігурації, я поки використовую два інтерфейси: Yggdrasil і Mycelium свого сіда. По аналогії, до масиву об'єктів `preferredSeeds` додаються й альтернативні DNS, тунелі I2P або приховані сервіси Tor.
|
||||
У своїй конфігурації, поки використовую два інтерфейси: Yggdrasil і Mycelium свого сіда. По аналогії, до масиву об'єктів `preferredSeeds` додаються й альтернативні DNS, тунелі I2P або приховані сервіси Tor.
|
||||
|
||||
Важливим є той факт, що поточна версія `radicle-explorer` ніяк не проксує через бекенд `preferredSeeds` і тому якщо в клієнта не встановлено роутер Mycelium, то перебуваючи на хості Yggdrasil - він не зможе відкрити сід `0400::/7` з меню `0200::/7`. Більше того, там є баг, який при відсутності зв'язку з сідом буде зависати на його сесії, допоки руками не почистити Локальне сховище. Навожу приклад міксованого з'єднання, хоча рекомендую на практиці користуватись одним сімейством адрес для одного фронтенду.
|
||||
Важливим є той факт, що поточна версія `radicle-explorer` ніяк не проксує через бекенд `preferredSeeds` і тому якщо в клієнта не встановлено роутер Mycelium, то перебуваючи на хості Yggdrasil - він не зможе з меню `0200::/7` відкрити сід `0400::/7`. Більше того, там є баг, який при відсутності зв'язку з сідом буде зависати на його сесії, допоки руками не почистити Локальне сховище. Навожу приклад міксованого з'єднання, але рекомендую користуватись одним сімейством адрес для одного фронтенду.
|
||||
|
||||
``` config/default.json
|
||||
{
|
||||
|
|
@ -199,7 +196,7 @@ $: portFragment =
|
|||
|
||||
### Компіляція
|
||||
|
||||
Після завершення конфігурації, на локальній машині збираємо оптимізовану статику та для зручності передачі на сервер запаковуємо отриману теку `build` до архіву `radicle-explorer.tar.gz`:
|
||||
Після завершення конфігурації, на локальній машині збираємо оптимізовану статику і для зручності передачі на сервер, запаковуємо отриману теку `build` до архіву `radicle-explorer.tar.gz`:
|
||||
|
||||
``` bash
|
||||
cd radicle-explorer
|
||||
|
|
@ -209,7 +206,7 @@ tar -czvf radicle-explorer.tar.gz -C build .
|
|||
|
||||
### Встановлення
|
||||
|
||||
Отриманий архів `radicle.tar.gz` копіюємо на сервер до якоїсь тимчасової теки і розпаковуємо вміст архіву за призначенням `/var/www/radicle`, оновивши за одно права для доступу Nginx:
|
||||
Отриманий архів `radicle.tar.gz` копіюємо на сервер до якоїсь тимчасової теки і розпаковуємо вміст архіву за призначенням `/var/www/radicle`, оновивши за одно права для доступу служби Nginx:
|
||||
|
||||
``` bash
|
||||
sudo mkdir -p /var/www/radicle
|
||||
|
|
@ -227,7 +224,8 @@ server {
|
|||
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;
|
||||
|
|
@ -256,4 +254,9 @@ 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
|
||||
=> http://[505:6847:c778:61a1:5c6d:e802:d291:8191]:8780
|
||||
|
||||
Якщо встановлено Alfis DNS:
|
||||
|
||||
=> http://ygg.ua.srv:8780
|
||||
=> http://myc.ua.srv:8780
|
||||
Loading…
Add table
Add a link
Reference in a new issue