add install-ergo-irc-server-in-linux.gmi

This commit is contained in:
postscriptum 2026-03-14 03:21:20 +02:00
parent 1bb9c527a8
commit aea6fd9ce1
2 changed files with 84 additions and 0 deletions

View file

@ -0,0 +1,83 @@
# Встановлення IRC сервера Ergo в Linux
Віднедавна запустив сервер, багато писати не буду - бо тут все просто і детально розжовано в коментах файлу конфігурації.
Сервер Ergo написано мовою Go, тому при збірці останньої версії з репозиторію, починати потрібно з актуалізації останньої версії:
=> install-latest-golang-version-on-debian-linux.gmi Встановлення останньої версії Go в Debian
Далі виконується `make` і отримується бінарник `ergo`, який в свою чергу переміщується до канонічного розташування:
``` bash
sudo install ./ergo /usr/local/bin
```
Оскільки доки я не читав, systemd в мене виглядає так:
```
[Unit]
Description=Ergo IRC server
After=network.target
[Service]
Type=simple
User=ergo
Group=ergo
WorkingDirectory=/var/lib/ergo
ExecStart=/usr/local/bin/ergo run --conf /etc/ergo.yaml
StandardOutput=file:///var/log/ergo/debug.log
StandardError=file:///var/log/ergo/error.log
Restart=on-failure
[Install]
WantedBy=multi-user.target
```
* тут ключовим моментом є `WorkingDirectory`, де по суті зберігається база даних рушія `ircd.db`
* файл `/etc/ergo.yaml` створюється на базі `./default.yaml` і правиться під свої потреби
* `StandardOutput` пишеться в `StandardError` - тут може варто поставити на перший `null`
Юзера створив командою, без домашньої теки і племені:
``` bash
useradd -s /usr/sbin/nologin -Mr ergo
```
Для коректної роботи системного сервісу, руками додано такі розташування:
``` bash
mkdir /var/lib/ergo
mkdir /var/log/ergo
```
І виставлено права:
``` bash
chown ergo:ergo /var/lib/ergo
chown ergo:ergo /var/log/ergo
chown ergo:ergo /etc/ergo.yaml
chmod +x /usr/local/bin/ergo
```
Керування сервісом стандартно:
* `systemctl restart ergo` - (пере) запуск
* `systemctl enable ergo` - авт-запуск при старті системи
* `systemctl status ergo` - перевірка статусу
Не забуваємо про фаєрвол, для мереж Yggdrasil і Mycelium, команда `ufw` в мене виглядає так:
``` bash
ufw allow from 0200::/7 to 202:68d0:f0d5:b88d:1d1a:555e:2f6b:3148 port 6667 proto tcp
ufw allow from 0400::/7 to 505:6847:c778:61a1:5c6d:e802:d291:8191 port 6667 proto tcp
```
## Посилання
=> https://github.com/ergochat/ergo
### Дивіться також
=> ukrainian-irc.gmi Локальні канали IRC
=> connecting-znc-bouncer-to-libera-chat-irc-via-tor.gmi Підключення баунсера ZNC до Libera.Chat/IRC через Tor
=> custom-proxy-option-per-server-in-the-halloy-irc.gmi Реалізував опцію вибіркового проксі в IRC-клієнті Halloy
=> soju-irc-bouncer-setup.gmi Встановлення та базове налаштування IRC-баунсера soju в Linux
=> znc-irc-bouncer-setup.gmi Встановлення та налаштування IRC-баунсера ZNC в Linux