Status Page Dokumentation


Einführung

Dieses Produkt erfordert ein gewisses Level an Expertise. Bei Fragen sind wir über Ticket oder E-Mail erreichbar.


Danke für den Kauf dieses Produkts. Du bist super!
Du hast eine Lebenslange Lizenz des Produkts erhalten und direkt Support der Entwickler

Diese Dokumentation soll dir helfen, das Produkt zu installieren und passend für dich einzurichten

Voraussetzungen

Du brauchst die folgenden Sachen um das Produkt zu installieren:

  1. Web Browser for testing (eg: Google Chrome or Mozilla Firefox)
  2. Einen Server:
    1. Basis-Server: (s.h. Anleitung hier)

Installation #nach oben

Lass uns Anfangen das System zu installieren. In dieser Anleitung nutzen wir einen Server mit Debian 10, es sollte aber mit möglicherweise kleinen Änderungen auch auf anderen Betriebssystemen funktionieren.

Wir werden die folgenden Schritte ausführen:

  1. Runterladen und entpacken
  2. Datenbank importieren
  3. Config bearbeiten
  4. Abhängigkeiten installieren

Runterladen und entpacken

Wir gehen in den /var/www/html-Order (nutze cd). Deinen Download-code findest du im CIS unter dem Reiter "Produkte" (https://bennetgallein.de/cis/products)

                                    root@server:/var/www/html# wget --prefer-family=IPv4 https://bennetgallein.de/api/download-key/...
                                

Nach dem runterladen, bennene die Datei um:

                                    root@server:/var/www/html# mv <file> web.zip
                                

Und entpacke sie:

                                    root@server:/var/www/html# unzip web.zip
                                

Datenbank importieren

Durch die Basiseinrichtung haben wir bereits einen Nutzer für die Seite erstellt.

Wir gehen jetzt wieder über das Terminal in die mysql shell.

                                    root@server:/# mysql -u root
                                

Wenn du in der Basiseinrichtung ein Passwort für den root-Nutzer gesetzt hast, nutze diesen Befehl und gib das Passwort ein wenn gefordert:

                                    root@server:/# mysql -u root -p
                                

Du solltest jetzt soetwas sehen:

                                    MariaDB [(none)]>
                                

Jetzt können wir die Datenbank erstellen:

                                    MariaDB [(none)]> CREATE DATABASE status;
                                    Query OK, 1 row affected (0.01 sec)

                                    MariaDB [(none)]>
                                

Das war's auch schon. Nutze exit; um die Datenbank wieder zu verlassen.
Als nächstes importieren wir die Datenbank mit dem folgenden Befehl

                                    root@server:/# mysql -u root -p status < /var/www/html/database.sql
                                

Abhängigkeiten installieren

Jetzt installieren wir die Abhängigkeiten, indem wir das mitgelieferte Installations-script ausführen

                                    root@server:/var/www/html/# chmod +x ./bin/install.sh && sudo ./bin/install.sh
                                

Dies wird alle Abhängigkeiten installieren, welche die Seite benötigt. Wenn nach einem Nutzernamen gefragt wird, stelle sicher, dass die IP-Adresse des Servers in der Lizenz im CIS steht.

Config bearbeiten

Als nächtes wollen wir die config bearbeiten. Du hast im Stamm-order jetzt eine Datei config.json. Diese kannst du mit nano config.json öffnen und bearbeiten. Zum speichern verlasse nano mit ctrl + x und bestätige Änderungen mit Y.

Die folgende Tabelle erklärt die einzelnen Einstellungen und deren Werte.

Schlüssel Beispiel Wert
APP_URL "/" Dies ist die Basis-URL der App. Wenn du es auf yourdomain.com/ laufen haben möchtest, gib / ein, andernfalls einen Pfad wie z.B. /TS3ABCP/. Das würde heißen, dass das CP in dem Ordner /var/www/html/TS3ABCP/ liegt.
DB_HOST "localhost" Der Datenbank Server. localhost oder 127.0.0.1 wenn du das Tutorial befolgt hast.
DB_USER "root" Der Datenbank Nutzer.
DB_PASSWORD "root" Das Passwort zu dem Datenbanknutzer in DB_USER. "" wenn kein Passwort bei der Installation gesetzt wurde
DB_NAME "status" Der Datenbank Name. Wenn du das Tutorial befolgt hast, gib status an

Vergiss nicht deine Änderungen zu speichern!

Jetzt kannst du deine IP + APP_URL in einem Browser öffnen. Du solltest jetzt die Startseite des Systems sehen. Navigiere auf /admin/login und du kannst dir einen Nutzer erstellen.

Wenn du das geschafft hast wirst du zum Login geleitet. Dort kannst du dich nun mit deinem Account anmelden.

Lass uns jetzt eine Komponente anlegen.

In der Übersicht, klicke auf "+ Komponente" um eine neue Komponente zu erstellen.

Gebe hier die Daten deiner Komponente an und bestätige mit Speichern. Nach einem Seitenneuladen siehst du nun die Komponente in der Liste und kannst sie bearbeiten.

cachet-monitor anbinden

Lade die cachet-monitor binary runter und kopiere sie in deinen bin-Ordner

                                    root@server:/home/root# wget https://github.com/CastawayLabs/cachet-monitor/releases/download/v3.0/cachet_monitor_linux_amd64
                                    root@server:/home/root# mv cachet_monitor_linux_amd64 /usr/bin/cachet-monitor
                                

Erstelle jetzt eine config.yaml. Diese folgt dem standard-format und kann in etwa so aussehen:

                                    api:
                                        # cachet url
                                        url: http://preview.bennetgallein.de/status-page/api/v1
                                        # cachet api token
                                        token: qPVFF1ZSuKrzY62LPa2J
                                        insecure: true
                                        # https://golang.org/src/time/format.go#L57
                                        date_format: 02/01/2006 15:04:05 MST
                                        monitors:
                                        # http monitor example
                                        - name: website
                                            # test url
                                            target: http://preview.bennetgallein.de/status-page/sim
                                            # strict certificate checking for https
                                            strict: true
                                            # HTTP method
                                            method: GET
                                            
                                            # set to update component (either component_id or metric_id are required)
                                            component_id: 1
                                            # set to post lag to cachet metric (graph)
                                            metric_id: 1

                                            # custom templates (see readme for details)
                                            # leave empty for defaults
                                            template:
                                            investigating:
                                                subject: "{{ .Monitor.Name }} - {{ .SystemName }}"
                                                message: "{{ .Monitor.Name }} check **failed** (server time: {{ .now }})\n\n{{ .FailReason }}"
                                            fixed:
                                                subject: "I HAVE BEEN FIXED"
                                            
                                            # seconds between checks
                                            interval: 5
                                            # seconds for timeout
                                            timeout: 5
                                            # If % of downtime is over this threshold, open an incident
                                            threshold: 20

                                            expected_status_code: 200
                                            # regex to match body
                                        - name: google
                                            target: https://google.com
                                            strict: true
                                            method: GET
                                            component_id: 2
                                            metric_id: 2
                                            template:
                                            investigating:
                                                subject: "{{ .Monitor.Name }} - {{ .SystemName }}"
                                                message: "{{ .Monitor.Name }} check **failed** (server time: {{ .now }})\n\n{{ .FailReason }}"
                                            fixed:
                                                subject: "I HAVE BEEN FIXED"

                                            # seconds between checks
                                            interval: 5
                                            # seconds for timeout
                                            timeout: 5
                                            # If % of downtime is over this threshold, open an incident
                                            threshold: 20

                                            expected_status_code: 200

                                

Wichtig ist hier, dass die api.url auf die gerade installiere Seite mit einem /api/v1 zeigt.

component_id Felder sind die IDs der Komponenten aus dem Admin-Bereich.