Sentry mit HTTPS unter Ubuntu 20.04 installieren

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.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.