Epicyon – Installation auf Arch Linux

➤ Martin Döring, 1. Dezember 2022

Diese Notizen erläutern, wie ich den ActivityPub-Server Epicyon auf Arch-Linux installiert habe. Die Installation unterscheidet sich insbesondere in den Kommandos und den Paketnamen sehr von der Installation auf Debian-Systemen.

Zunächst sollte das System auf den allerneuesten Stand gebracht werden:

pacman -Sy archlinux-keyring && pacman -Syu

Jetzt Klonen wir das Git-Repository von Epicyon:

cd /opt
git clone https://gitlab.com/bashrc2/epicyon

Nun legen wir den User **epicyon** an. Da wir durch das Klonen schon ein Home-Directory haben, benötigen wir keine Option **-m**, die sonst dafür sorgt, dass es angelegt wird:

useradd -d /opt/epicyon -s /bin/bash -c "Epicyon" epicyon
chown -R epicyon:epicyon /opt/epicyon

Damit das Ganze funktionieren kann, werden nun eine ganze Menge Python-Pakete benötigt. Die Namen wurden so angepasst, dass sie statt für Debian für Arch Linux passend sind:

pacman -S python-socks imagemagick python-setuptools python-cryptography python-dateutil python-idna python-requests flake8 python-pyqrcode python-pypng bandit perl-image-exiftool certbot

Ein Paket muss händisch aus dem Arch User Repository (AUR) erzeugt werden, da es nicht in den üblichen Repositories enthalten ist

su - epicyon
cd /tmp
git clone https://aur.archlinux.org/python-django-timezone-field.git
cd python-django-timezone-field.git
makepkg-sir
exit

Nun kopieren wir den folgenden Text in ein Service-File, welches liegt unter: /etc/systemd/system/epicyon.service

Dabei ist **YOUR_DOMAIN** durch die eigene Domain zu ersetzen, unter welcher der Server laufen soll:

[Unit]
Description=epicyon
After=syslog.target
After=network.target

[Service]
Type=simple
User=epicyon
Group=epicyon
WorkingDirectory=/opt/epicyon
ExecStart=/usr/bin/python /opt/epicyon/epicyon.py --port 443 --proxy 7156 --domain YOUR_DOMAIN --registration open --log_login_failures
Environment=USER=epicyon
Environment=PYTHONUNBUFFERED=true
Restart=always
StandardError=syslog
CPUQuota=80%
ProtectHome=true
ProtectKernelTunables=true
ProtectKernelModules=true
ProtectControlGroups=true
ProtectKernelLogs=true
ProtectHostname=true
ProtectClock=true
ProtectProc=invisible
ProcSubset=pid
PrivateTmp=true
PrivateUsers=true
PrivateDevices=true
PrivateIPC=true
MemoryDenyWriteExecute=true
NoNewPrivileges=true
LockPersonality=true
RestrictRealtime=true
RestrictSUIDSGID=true
RestrictNamespaces=true
SystemCallArchitectures=native

[Install]
WantedBy=multi-user.target 

Anschließend integrieren wir als User root den Service in das System:

systemctl daemon-reload
systemctl start epicyon.service
systemctl enable epicyon.service

Die Konfiguration eines Reverse-Proxy mit **nginx** und **certbot** erfolgt so, wie in der Original-Dokumentation weiter unten unter "Create a web server configuration":

https://epicyon.net/#install


➤ Zurück
➤ Datenschutzinformation