mirror of
https://codeberg.org/postscriptum/gemlog.git
synced 2026-04-01 21:25:27 +00:00
83 lines
No EOL
3.5 KiB
Text
83 lines
No EOL
3.5 KiB
Text
# Встановлення 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 |