Zum Inhalt springen

Portabler Build

Einrichtung

Betreibe HolyArrs als gewöhnliches Programm unter Linux oder Windows, ohne Docker. Docker bleibt der Hauptweg, es zu betreiben.

Bevor du beginnst

Link zu Bevor du beginnst
  • Python 3, Git und Docker auf dem Build-Rechner.
  • Ein gefüllter Go-Modul-Cache aus einem normalen Build des Projekts, und Frontend-Abhängigkeiten, installiert aus app/frontend/package-lock.json.
  • Die gebaute Web-App ist committet. Der Build nutzt nur committeten Quellcode; nicht committete Änderungen bleiben außen vor.

Bauen und starten

Link zu Bauen und starten
  1. Baue die Archive aus dem Checkout:

    Terminal window
    python deploy/release/package.py --ref HEAD --version 1.0.0 --output /srv/holyarrs-archives/1.0.0 --web-node-modules app/frontend/node_modules --module-cache /home/you/go/pkg/mod

    Nimm einen neuen Ausgabeordner außerhalb des Checkouts. Du solltest ein Archiv pro Ziel und eine Datei SHA256SUMS sehen.

  2. Prüfe das Archiv gegen SHA256SUMS.

  3. Entpacke es in einen neuen Ordner. Halte das Programm und die Konfiguration in getrennten Ordnern.

  4. Starte es mit deinem eigenen Konfigurationspfad:

    Terminal window
    ./holyarrs -config /srv/holyarrs/config -addr :6262

    In der Windows PowerShell:

    Terminal window
    .\holyarrs.exe -config 'C:\HolyArrs\config' -addr ':6262'
  5. Öffne http://your-server:6262. Du solltest den Assistenten für den ersten Start sehen. Lege das Besitzerkonto sofort an; der erste Besucher wird zum Besitzer.

Welcher Benutzer es ausführt

Link zu Welcher Benutzer es ausführt

Führe HolyArrs unter einem eigenen Konto aus, das nur auf die Konfiguration und deine Medien Schreibzugriff hat.

  • Als root außerhalb eines Containers, ohne PUID und PGID, stoppt es mit „started as root outside a container“ (als root außerhalb eines Containers gestartet).
  • Wenn PUID und PGID gesetzt sind, übergibt es den Konfigurationsordner an diesen Benutzer und wechselt zu ihm.
  • Unter Windows schützt du den Konfigurationsordner mit einer NTFS-Berechtigung für dieses Konto.

Neustarts und Limits

Link zu Neustarts und Limits

Das Archiv installiert keinen Dienst. Richte den automatischen Neustart und harte Limits für den Arbeitsspeicher in deiner eigenen Dienstverwaltung ein (systemd, NSSM, Aufgabenplanung). Der Neustart aus der App und die Wiederherstellung eines Backups beenden beide das Programm und erwarten, dass es wieder gestartet wird.

Aktualisieren und zur vorherigen Version zurückkehren

Link zu Aktualisieren und zur vorherigen Version zurückkehren
  1. Prüfe das neue Archiv, bevor du die App stoppst.
  2. Stoppe HolyArrs und kopiere den ganzen Konfigurationsordner, samt Hauptschlüssel. Oder erstelle in der App ein Backup und bewahre dessen Schlüssel getrennt auf.
  3. Entpacke das neue Programm in einen anderen Ordner. Behalte das alte Programm und die alte Kopie der Konfiguration.
  4. Starte das neue Programm mit deiner Konfiguration. Du solltest dich anmelden können, und /health sollte running zeigen.

Siehe Backups.

Wenn es nicht funktioniert

Link zu Wenn es nicht funktioniert
Symptom Ursache Lösung
„started as root outside a container“ Als root gestartet Führe es als eigenen Benutzer aus oder setze PUID und PGID.
Die App beendet sich nach einer Wiederherstellung Eine Wiederherstellung legt die Daten bereit und beendet sich mit Code 75 Starte sie erneut, damit sie angewendet wird. Stelle deine Dienstverwaltung so ein, dass sie die App neu startet.
HTTPS-Aufrufe schlagen unter Linux fehl Keine CA-Zertifikate im System Installiere sie.
Der Build meldet, dass die Ausgabe schon existiert Vorhandene Ausgabeordner werden abgelehnt Wähle einen neuen Ordner.

Für Fortgeschrittene

Link zu Für Fortgeschrittene
Build-Optionen
Option Was sie tut Standard
--targets Durch Kommas getrennte Auswahl der Ziele, die gebaut werden linux-amd64,linux-arm64,linux-armv7,windows-amd64
--low-resource Jeder Build-Container bekommt 1 CPU, 2 GiB und 256 Prozesse; Go baut ein Paket nach dem anderen. Das Packen läuft weiter auf dem Host, außerhalb dieser Limits. aus

Der Build läuft im festgelegten Go-Builder-Image des Projekts mit ausgeschaltetem Netzwerk, er lädt also nichts herunter. Der Modul-Cache ist schreibgeschützt eingebunden. Wenn ein Ziel fehlschlägt, bleibt kein Ausgabeordner zurück. Der Commit wird an die Versionsnummer angehängt und in das Programm eingebaut; die App und ihre Backups geben ihn an.

Was ein Archiv enthält

Das Programm, die Lizenz, Hinweise zu Drittanbietern, Anleitungen, ein Quell-Manifest und die Paketkennung. Ein eigenes Quellarchiv enthält den Quellcode des Projekts und die Go-Abhängigkeiten; bewahre es neben den Binärdateien auf.

SHA256SUMS belegt, dass die Dateien übereinstimmen. Es ist keine Signatur. Derselbe Commit, dieselbe Version und dieselben Eingaben ergeben dieselben Archive, du kannst also zur Kontrolle neu bauen.

Hinweise zum Betrieb
Thema Detail
Konfigurationspfad Standard /config. Gib immer -config an, auf einem lokalen Datenträger.
Ziel für den Arbeitsspeicher 384 MiB ohne GOMEMLIMIT. Setze es auf etwa 80 Prozent des Arbeitsspeichers, den du gibst. Ein Ziel, kein hartes Limit.
Modus für wenig Arbeitsspeicher Unter Linux bei etwa 2.5 GiB oder weniger von selbst an; das Ziel sinkt auf ein Viertel des Arbeitsspeichers, zwischen 192 und 384 MiB. HOLYARRS_LOW_MEMORY=1 oder 0 entscheidet.
Node Zum Ausführen nicht nötig.
Hardlinks Halte Downloads und Bibliotheksordner auf einem Dateisystem.

Verwandte Seiten

Link zu Verwandte Seiten

HolyArrs ist kostenlos. Wenn es dir Zeit gespart hat, gib ihm einen Stern auf GitHub, unterstütze es als Sponsor oder spendier mir einen Kaffee.