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
|
||||
=> 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
|
||||
|
|
|
|||
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
|
||||
Loading…
Add table
Add a link
Reference in a new issue