Installation
Dependencies
| CPAN module | FreeBSD pkg | Debian pkg | |--------------------------------------|-----------------|----------------------| | App::Cmd | p5-App-Cmd | libapp-cmd-perl | | Error::Helper | p5-Error-Helper | (cpanm) | | JSON::MaybeXS | p5-JSON-MaybeXS | libjson-maybexs-perl | | Net::Firewall::BlockerHelper | (cpanm) | (cpanm) | | Net::Server (Net::Server::Daemonize) | p5-Net-Server | libnet-server-perl | | POE | p5-POE | libpoe-perl | | POE::Component::Server::JSONUnix | (cpanm) | (cpanm) | | Regexp::IPv4 | (cpanm) | (cpanm) | | Regexp::IPv6 | p5-Regexp-IPv6 | libregexp-ipv6-perl | | TOML::Tiny | (cpanm) | libtoml-tiny-perl |
Package names are current as of writing. Anything marked (cpanm) —
or missing from your release — installs cleanly from CPAN via
cpanminus.
From source
From a checkout or an unpacked release tarball...
cpanm --installdeps .
perl Makefile.PL
make
make test
make install
FreeBSD
pkg install p5-App-Cmd p5-Error-Helper p5-JSON-MaybeXS p5-Net-Server \
p5-POE p5-Regexp-IPv6 p5-App-cpanminus
cpanm TOML::Tiny Regexp::IPv4 Net::Firewall::BlockerHelper \
POE::Component::Server::JSONUnix
Debian
apt-get install libapp-cmd-perl libjson-maybexs-perl libnet-server-perl \
libpoe-perl libregexp-ipv6-perl libtoml-tiny-perl cpanminus \
build-essential
cpanm Error::Helper Regexp::IPv4 Net::Firewall::BlockerHelper \
POE::Component::Server::JSONUnix
First run
Write a config (see configuration — the
dummy backend is good for a first try), then...
ereshkigal start
ereshkigal status
start reads /usr/local/etc/ereshkigal.toml, daemonizes, and raises
the underworlds. The firewall backends need root; see
security for what that implies.
Running at boot
ereshkigal start daemonizes itself and writes
/var/run/ereshkigal/pid, so it fits both worlds easily. Ready-made
startup scripts ship in the source tree's rc/ directory —
make install does not install them, so copy the one for your system
into place.
FreeBSD rc.d
The rc.d script ships at rc/freebsd/ereshkigal...
cp rc/freebsd/ereshkigal /usr/local/etc/rc.d/ereshkigal
chmod 555 /usr/local/etc/rc.d/ereshkigal
sysrc ereshkigal_enable=YES
service ereshkigal start
# to use a config file other than the default
sysrc ereshkigal_config=/usr/local/etc/foo.toml
Debian systemd
The unit ships at rc/systemd/ereshkigal.service...
cp rc/systemd/ereshkigal.service /etc/systemd/system/
systemctl daemon-reload
systemctl enable --now ereshkigal
It is Type=forking against /var/run/ereshkigal/pid; edit the
ExecStart line for a non-default config path.
On systems where /var/run is a tmpfs, /var/run/ereshkigal is
created automatically at startup — but if you point run_base_dir
somewhere deeper, make sure the parents exist at boot (a
RuntimeDirectory= line or a tmpfiles.d entry does it on systemd).
Unix socket paths are limited to roughly 104 characters on the BSDs,
so keep run_base_dir short.