mirror of
https://codeberg.org/postscriptum/gemlog.git
synced 2026-02-19 06:22:41 +00:00
add soju-irc-bouncer-setup.gmi
This commit is contained in:
parent
cfc65a00d1
commit
a5560f855f
3 changed files with 168 additions and 0 deletions
|
|
@ -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
|
=> 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
|
=> 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
|
=> gemini-dl-is-batch-downloader-for-gemini-protocol.gmi 2025-11-11 gemini-dl: CLI-утиліта для завантаження ресурсів Geminispace
|
||||||
|
|
|
||||||
166
public/uk/soju-irc-bouncer-setup.gmi
Normal file
166
public/uk/soju-irc-bouncer-setup.gmi
Normal file
|
|
@ -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
|
||||||
|
|
@ -199,4 +199,5 @@ password = "<your-password>"
|
||||||
|
|
||||||
### Дивіться також
|
### Дивіться також
|
||||||
|
|
||||||
|
=> soju-irc-bouncer-setup.gmi Встановлення та базове налаштування IRC-баунсера soju
|
||||||
=> https://devzone.org.ua/post/vstanovlennia-ta-nalashtuvannia-irc-baunsera-znc-v-linux Веб-адаптація цього матеріалу з коментарями на DevZone
|
=> https://devzone.org.ua/post/vstanovlennia-ta-nalashtuvannia-irc-baunsera-znc-v-linux Веб-адаптація цього матеріалу з коментарями на DevZone
|
||||||
Loading…
Add table
Add a link
Reference in a new issue