Installation und Betrieb

GoProject installieren

Die Lieferdateien, die Serveranforderungen, der Zugang zur Container-Registry, die Konfiguration und der erste Start.

Sie können GoProject mit Docker Compose auf Ihrem eigenen Linux-Server installieren. Das System besteht aus zwei Containern: app (die GoProject-Anwendung) und db (die PostgreSQL-18-Datenbank). Diese Anleitung beschreibt die Installation Schritt für Schritt: von der Vorbereitung der nötigen Dateien bis zur ersten Anmeldung.

Bitte beachten Sie: Die Ausgaben der Skripte und die Einträge des Anwendungsprotokolls sind auf Englisch.

Das Lieferpaket

Für die Installation brauchen Sie drei Dateien:

  • compose.yml - die Docker-Compose-Konfiguration beider Container;
  • .env.example - die Konfigurationsvorlage mit einer Erklärung zu jeder Einstellung;
  • verify-install.sh - ein Skript, das das installierte System prüft und nichts verändert.

Bewahren Sie alle drei Dateien in einem Ordner auf. Diese Anleitung verwendet den Pfad /data/goproject, Sie können aber auch einen anderen Ort wählen.

Serveranforderungen

  • Betriebssystem: Linux mit installierter Docker Engine und dem Docker-Compose-v2-Plugin. Verwenden Sie den Befehl docker compose, nicht docker-compose.
  • Prozessorarchitektur: Das GoProject-Container-Image wird nur für die Architektur des GoProject-Build-Servers veröffentlicht. Prüfen Sie vor der Installation die Architektur des Images in der Registry, wie im nächsten Abschnitt beschrieben.
  • Prozessor und Arbeitsspeicher: Der Container app ist auf 2 CPU und 2 GB RAM begrenzt, db auf 1,5 CPU und 1 GB RAM. Der Server braucht insgesamt mindestens 4 GB RAM, einschließlich des Bedarfs des Betriebssystems.
  • Systemzeit: Die Uhr des Servers muss per NTP synchron gehalten werden. Anmeldecodes und die SLA-Zeiterfassung brauchen die genaue Zeit.
  • Speicherplatz: Platz für die Datenbank im Docker-Volume goproject_pg_data und für den Ordner storage, in dem Anhänge, Dokumentdateien und Benutzer-Avatare liegen. Der Platzbedarf wächst mit der Datenmenge.
  • Netzzugang: Der Server muss eine ausgehende HTTPS-Verbindung zu registry.brivs.lv aufbauen können, um das Container-Image herunterzuladen. Eine Verbindung zu goproject.lv ist nur nötig, wenn Sie die Portalverbindung einschalten oder Verbindung prüfen verwenden. Die Container selbst brauchen keinen Zugang von außen: Den öffentlichen Zugang stellt Ihr Reverse Proxy bereit.

Anmeldung an der Container-Registry

Das GoProject-Container-Image liegt in einer privaten Registry. Melden Sie sich auf dem Server mit dem Benutzernamen und dem Zugangstoken an, die Sie im GoProject-Kundenportal auf der Seite Versionen unter Container-Images erhalten:

docker login registry.brivs.lv

Docker speichert die Anmeldung an der Registry im Benutzerkonto, das den Befehl ausgeführt hat. Führen Sie daher auch die weiteren docker compose-Befehle mit demselben Benutzerkonto aus.

Prüfen Sie, bevor Sie fortfahren, die Prozessorarchitektur der gewählten Version. Ersetzen Sie X.Y.Z durch die Nummer der jeweiligen GoProject-Version:

docker buildx imagetools inspect registry.brivs.lv/brivs/goproject:X.Y.Z

Der Wert Platform in der Ausgabe muss zur Architektur des Servers passen. Diese prüfen Sie mit dem Befehl uname -m:

  • x86_64 entspricht linux/amd64;
  • aarch64 entspricht linux/arm64.

Installationsordner und Konfiguration

Legen Sie den Installationsordner an, legen Sie die Lieferdateien hinein und erstellen Sie die Konfigurationsdatei .env aus der Vorlage:

mkdir -p /data/goproject
cd /data/goproject
cp .env.example .env
chmod 640 .env

Die Datei .env enthält auch das Datenbankpasswort, daher dürfen nur Eigentümer und Gruppe sie lesen.

Öffnen Sie .env und tragen Sie die nötigen Werte ein. Docker Compose kann das System nicht starten, solange eine dieser Einstellungen leer ist: TAG, APP_PORT, DB_DATABASE, DB_USERNAME oder DB_PASSWORD.

  • TAG: die Nummer der zu installierenden GoProject-Version im Format X.Y.Z, zum Beispiel 1.4.2. Ein beweglicher Tag wie latest wird nicht verwendet. Um das System zu aktualisieren, tragen Sie hier die Nummer der neuen Version ein.
  • APP_PORT: der Port des Servers, an den Ihr Reverse Proxy die Anfragen weiterleitet.
  • DB_DATABASE und DB_USERNAME: Name und Benutzername der Datenbank. Für beide passt goproject.
  • DB_PASSWORD: ein sicheres, zufällig erzeugtes Datenbankpasswort. PostgreSQL verwendet es beim ersten Anlegen der Datenbank. Ändern Sie diesen Wert später nur in .env, kann sich die Anwendung nicht mehr mit der Datenbank verbinden.
  • SITE_URL: die öffentliche Adresse des Systems, die auch in den Links der E-Mail-Benachrichtigungen verwendet wird, zum Beispiel https://goproject.example.com. Setzen Sie keinen Schrägstrich ans Ende.
  • INITIAL_ADMIN_EMAIL: die E-Mail-Adresse des ersten Administrators. Das Administratorkonto wird beim ersten Start des Systems angelegt.
  • INITIAL_ADMIN_PASSWORD: das Passwort des ersten Administrators. Lassen Sie es leer, erzeugt das System das Passwort selbst (siehe Erster Start).
  • TZ: die Zeitzone der geplanten Aufgaben, zum Beispiel Europe/Riga.

Ein sicheres Datenbankpasswort erzeugen Sie mit dem Befehl:

openssl rand -base64 24

Die GoProject-Anwendung läuft mit der Benutzer- und Gruppen-ID 10001 und schreibt Dateien nur in den Ordner storage. Legen Sie diesen Ordner mit den passenden Besitzrechten an:

install -d -o 10001 -g 10001 -m 750 storage

Im Ordner storage liegt auch die Datei secret.key, mit der die Geheimnisse der Zwei-Faktor-Authentifizierung verschlüsselt werden. Sichern Sie bei Backups und beim Umzug der Installation sowohl die Datenbank als auch den ganzen Ordner storage.

Erster Start

Laden Sie die Container-Images herunter und starten Sie das System:

cd /data/goproject
docker compose pull
docker compose up -d

Beim ersten Start legt das System die Datenbanktabellen an. Das kann bis zu zwei Minuten dauern.

Prüfen Sie dann, ob beide Container laufen und GoProject auf die Gesundheitsprüfung antwortet. Ersetzen Sie im Befehl 9400 durch den Wert APP_PORT aus .env:

docker compose ps
curl -fsS http://localhost:9400/healthz

Haben Sie INITIAL_ADMIN_PASSWORD leer gelassen, steht das erzeugte Administratorpasswort einmal im Anwendungsprotokoll. Um es zu finden, führen Sie aus:

docker compose logs app | grep -i "initial administrator"

Melden Sie sich bei GoProject mit der E-Mail-Adresse aus INITIAL_ADMIN_EMAIL und dem Administratorpasswort an. Ändern Sie das Passwort sofort nach der ersten Anmeldung.

Haben Sie das Administratorpasswort selbst festgelegt, entfernen Sie den Wert INITIAL_ADMIN_PASSWORD nach der ersten erfolgreichen Anmeldung aus .env.

Nächste Schritte

Fahren Sie nach dem ersten Start mit den weiteren Anleitungen zu Installation und Betrieb fort:

  • Reverse Proxy und HTTPS: Richten Sie einen sicheren öffentlichen Zugang zu GoProject ein.
  • Lizenz und Portalverbindung: Aktivieren Sie die Lizenz und verbinden Sie die Installation bei Bedarf mit dem Kundenportal.
  • Installation prüfen und Protokolle: Prüfen Sie, ob das System läuft, und erfahren Sie, wo Sie Diagnoseinformationen finden.
GoProject installieren | GoProject