diff --git a/public/uk/index.gmi b/public/uk/index.gmi index 4117298..47eb2b8 100644 --- a/public/uk/index.gmi +++ b/public/uk/index.gmi @@ -12,6 +12,7 @@ ### Нотатки +=> soju-irc-bouncer-setup.gmi 2025-11-17 Встановлення та базове налаштування IRC-баунсера soju => radicle-is-decentralized-p2p-git-dvcs.gmi 2025-11-16 Radicle: децентралізований P2P хостинг Git/DVCS => porting-koreader-on-pocketbook-602.gmi 2025-11-13 Спроба портування KoReader на PocketBook 602 => gemini-dl-is-batch-downloader-for-gemini-protocol.gmi 2025-11-11 gemini-dl: CLI-утиліта для завантаження ресурсів Geminispace diff --git a/public/uk/soju-irc-bouncer-setup.gmi b/public/uk/soju-irc-bouncer-setup.gmi new file mode 100644 index 0000000..8354ecc --- /dev/null +++ b/public/uk/soju-irc-bouncer-setup.gmi @@ -0,0 +1,166 @@ +# Встановлення та базове налаштування IRC-баунсера soju + +soju - це відносно сучасний баунсер IRC, написаний мовою Go: + +=> https://soju.im + +* Я почав писати цей гайд з наміром запустити soju через проксі I2P, але з цим виникли труднощі і матеріал не було завершено. Публікую те, що вже занотував. Якщо вам потрібне рішення, що працюватиме через HTTP/SOCKS - гортайте вниз до посилань: там є інструкція з налаштування альтернативного баунсера ZNC у зв'язці з proxychains. + +## Сервер + +У прикладах нижче, використовуються умовні адреси: + +* a.a.a.a - адреса клієнта (desktop, mobile, etc) +* b.b.b.b - адреса баунсера soju +* usoju - користувач баунсера soju (не плутати з акаунтом linux, irc, тощо) +* xxxxx - ваш пароль + +### Системні залежності + +Перш як продовжити, переконайтесь, що у вас встановлено останню версію Go: +=> install-latest-golang-version-on-debian-linux.gmi Встановлення останньої версії Go в Debian + +Також, знадобиться пакунок scdoc: + +``` bash +sudo apt install scdoc +``` + +### Збірка з вихідного коду + +``` bash +git clone https://codeberg.org/emersion/soju.git +cd soju +make +sudo make install +``` + +### Ініціалізація + +Сервер soju буде пускатись від окремого користувача: + +``` bash +useradd -m soju +``` + +Логінимось і продовжуємо наступні кроки вже від нього: + +``` bash +su soju +``` + +Створюємо окремий конфіг в домашній теці: + +``` bash +cp /etc/soju/config /home/soju/config +``` + +``` /home/soju/config +# шлях до бази користувача unix (створюється автоматично при першому запуску) +db sqlite3 /home/soju/main.db + +# схема `irc+insecure` та порт 6667 - використовується конфігурація без SSL/TLS +# вона є відносно безпечною для підключення до баунсера в локальній мережі +listen irc+insecure://b.b.b.b:6667 + +# умовна назва хосту, інакше буде використовуватись системний +hostname soju +``` + +Тепер, потрібно проініціалізувати локальну базу і створити в ній обліковий запис для віддаленого керування: + +``` bash +sojudb create-user usoju -admin +``` +* usoju - це юзернейм облікового запису адміністратора soju + +На облікові файли, для запобігання траверсивного доступу, бажано поставити права 0600: + +``` bash +chown soju:soju /home/soju/main.db && chmod 0600 /home/soju/main.db +chown soju:soju /home/soju/config && chmod 0600 /home/soju/config +``` + +### Фаєрвол + +Оскільки звичайно, баунсери пускаються віддалено, потрібно також відкрити порт для дозволених хостів: + +``` bash +sudo ufw allow from a.a.a.a to b.b.b.b port 6667 proto tcp +``` + +Або для всього і всіх: + +``` bash +ufw allow 6667/tcp +``` + +### Запуск + +З командного рядка, сервер запускається наступним чином: + +``` bash +soju -debug -config /home/soju/config +``` +* при першому запуску задаю аргумент `-debug` - його можна прибрати згодом + +Для systemd, є готовий приклад: + +=> https://codeberg.org/emersion/soju/src/branch/master/contrib/soju.service + +## Клієнт + +Оскільки в soju немає Веб-адмінки, керування відбувається через командний рядок клієнта IRC. + +### Halloy + +Пам'ятка з налаштування клієнта Halloy, яким зараз користуюсь. Актуалізований гайд можна знайти на офіційній сторінці: +=> https://halloy.chat/guides/connect-with-soju.html#connect-with-soju + +Моя конфігурація виглядає приблизно так: + +``` ~/.config/halloy/config.toml +[servers.soju] +nickname = "soju" +server = "b.b.b.b" +port = 6667 +use_tls = false +[servers.soju.sasl.plain] +username = "usoju" +password = "xxxxx" +``` + +* Порада: якщо пускаєте halloy в анонімному режимі, додатково зверніть увагу на опцію: + +``` ~/.config/halloy/config.toml +[preview] +enabled = false +``` + +### Віддалене керування баунсером через клієнт IRC + +Підключившись вперше, можна побачити вітання сервера soju відповідно до наших налаштувань: + +> SASL authentication successful +> Welcome to soju, usoju +> Your host is soju + +Тепер можна взаємодіяти з сервером через створений раніше обліковий запис адміна (usoju) - наприклад, додати нову мережу: + +``` irc +/msg BouncerServ network create -name some_name -addr ircs://irc.host.org +``` +* аргумент `-name` - опціональний, але варто його вказати, щоб зручно керувати мережею за цим ідентифікатором (інакше замість імені доведеться вказувати адресу) +* саме цей сервер використовує сертифікат TLS і стандартний порт 6697, тому вказується схема ircs:// + +## Посилання + +=> https://soju.im/doc/soju.1.html General Commands Manual +=> https://codeberg.org/emersion/soju/src/branch/master/doc/getting-started.md Getting started +=> https://codeberg.org/emersion/soju/src/branch/master/contrib/README.md User-contributed resources +=> https://todo.sr.ht/~emersion/soju/230 Problems connecting over tor (feature request?: support SOCKS5) + +### Дивіться також + +=> znc-irc-bouncer-setup.gmi Встановлення та налаштування IRC-баунсера ZNC в Linux +=> enhancing-privacy-in-linux-apps.gmi Підвищення рівня приватності в застосунках Linux \ No newline at end of file diff --git a/public/uk/znc-irc-bouncer-setup.gmi b/public/uk/znc-irc-bouncer-setup.gmi index d1613fc..ebe72d5 100644 --- a/public/uk/znc-irc-bouncer-setup.gmi +++ b/public/uk/znc-irc-bouncer-setup.gmi @@ -199,4 +199,5 @@ password = "" ### Дивіться також +=> soju-irc-bouncer-setup.gmi Встановлення та базове налаштування IRC-баунсера soju => https://devzone.org.ua/post/vstanovlennia-ta-nalashtuvannia-irc-baunsera-znc-v-linux Веб-адаптація цього матеріалу з коментарями на DevZone \ No newline at end of file