Dieses Tutorial beschreibt, wie du Sentry selbst hosten kannst – unter Ubuntu 20.04 und mit Caddy als Reverse-Proxy, der die Caddy-Oberfläche per HTTPS zur Verfügung stellt.
Im ersten Schritt wird Ubuntu 18.04 aufgesetzt. Ich nutze dafür einen Cloud Server von Hetzer. Dein Server sollte über mindestens 4GB Ram verfügen, da das Setup prüft, ob mindestens 2,5GB RAM für Docker verfügbar sind. Aus diesem Grund habe ich mich für einen CX21-Server entschieden.
Nun wird das System aktualisiert:
apt-get update
apt-get full-upgrade
reboot
Im nächsten Schritt wird Docker installiert:
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io
Um zu prüfen, ob Docker erfolgreich installiert wurde, folgenden Befehl ausführen:
sudo docker run hello-world
Nun sollte als Ausgabe Hello World
erscheinen. Wenn dem so ist, funktioniert alles, wie es soll.
Docker Compose
Um Docker Compose zu installieren, den nachfolgenden Befehl ausführen. Vermutlich gibt es aber zwischenzeitlich eine neuere Version, das kannst du hier überprüfen.:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Optional: Sofern Docker Compose nach der Installation nicht funktioniert, musst du diesen Symlink anlegen:
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
Sentry installieren
Um Sentry selbst zu installieren, folgenden Befehl ausführen:
git clone https://github.com/getsentry/onpremise.git
Vor der eigentlichen Installation, prüfe bitte hier die Konfigurations-Parameter. Nach Prüfung der Seite und dem Setzen der entsprechenden Einstellungen (z.B. Mail), führe folgenden Befehl aus:
./install.sh
Nachdem der Installationsprozess durchlaufen ist kannst du über folgenden Befehl Sentry starten:
docker-compose up -d
Wenn alles geklappt hat, sollte Sentry nun über die Server-IP oder den entsprechenden DNS-Namen über den Port 9000 aufrufbar sein.
Caddy installieren
Im nächsten Schritt wird Caddy als Reverse Proxy installiert. Um Caddy zu installieren, folgende Befehle ausführen:
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo tee /etc/apt/trusted.gpg.d/caddy-stable.asc
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
Anschließend muss Caddy konfiguriert werden. Dazu folgende Config-Datei bearbeiten:
sudo nano /etc/caddy/Caddyfile
Den Inhalt der Datei durch folgenden Inhalt ersetzen:
sentry.example.com
reverse_proxy 127.0.0.1:9000
sentry.example.com
muss dabei durch die gewünschte Domain / Subdomain ersetzt werden, unter der die Sentry-Oberfläche später erreicht werden soll.
Anschließend kann man über folgenden Befehl die Konfiguration durch Caddy neu einlesen lassen (alternativ kann man den Server auch einfach durchbooten):
caddy reload --config /etc/caddy/Caddyfile
Dadurch sollte Sentry über den entsprechenden HTTPS-Link aufgerufen werden können.
Sentry konfigurieren
In der Sentry-Konfiguration muss dann beispielsweise noch der Mail-Server für den Versand von E-Mails konfiguriert werden. Dazu einfach die Konfiguration entsprechend editieren:
nano sentry/config.yml
Damit Sentry die geänderte Konfiguration übernimmt, folgenden Befehl ausführen:
docker-compose restart web worker cron sentry-cleanup
Alternativ kann man Sentry auch komplett neustarten, nicht nur die betroffenen Container:
docker-compose restart
Firewall einrichten
Um den Server etwas besser abzusichern wird nun noch die Firewall konfiguriert. Zunächst wird der Status geprüft:
sudo ufw status
Füge nun die für Nginx und ssh erforderlichen Regeln hinzu:
sudo ufw allow ssh
sudo ufw allow 'Nginx Full'
Und aktiviere anschließend die Firewall:
sudo ufw enable
Abschluss
Der Setup-Prozess ist nun abgeschlossen. Aber Achtung, es handelt sich um ein sehr rudimentäres Setup. Im nächsten Schritt solltest du beispielsweise den SSH-Zugriff für den root-User deaktivieren und auf Authentifizierung mittels Zertifikat umsteigen. Aber das ist nicht Bestandteil dieses Tutorials. Das eigentliche Ziel, eine eigene Instanz von Sentry zum Laufen zu bekommen, ist nun erreicht.