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-
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/modNimm einen neuen Ausgabeordner außerhalb des Checkouts. Du solltest ein Archiv pro Ziel und eine Datei
SHA256SUMSsehen. -
Prüfe das Archiv gegen
SHA256SUMS. -
Entpacke es in einen neuen Ordner. Halte das Programm und die Konfiguration in getrennten Ordnern.
-
Starte es mit deinem eigenen Konfigurationspfad:
Terminal window ./holyarrs -config /srv/holyarrs/config -addr :6262In der Windows PowerShell:
Terminal window .\holyarrs.exe -config 'C:\HolyArrs\config' -addr ':6262' -
Ö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.
Optionen
Link zu OptionenWelcher Benutzer es ausführt
Link zu Welcher Benutzer es ausführtFühre HolyArrs unter einem eigenen Konto aus, das nur auf die Konfiguration und deine Medien Schreibzugriff hat.
- Als root außerhalb eines Containers, ohne
PUIDundPGID, stoppt es mit „started as root outside a container“ (als root außerhalb eines Containers gestartet). - Wenn
PUIDundPGIDgesetzt 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 LimitsDas 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- Prüfe das neue Archiv, bevor du die App stoppst.
- Stoppe HolyArrs und kopiere den ganzen Konfigurationsordner, samt Hauptschlüssel. Oder erstelle in der App ein Backup und bewahre dessen Schlüssel getrennt auf.
- Entpacke das neue Programm in einen anderen Ordner. Behalte das alte Programm und die alte Kopie der Konfiguration.
- Starte das neue Programm mit deiner Konfiguration. Du solltest dich anmelden können, und
/healthsollte 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 FortgeschritteneBuild-Optionen
| Option | Was sie tut | Standard |
|---|---|---|
--targets |
Durch Kommas getrennte Auswahl der Ziele, die gebaut werden | linux-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 SeitenHolyArrs ist kostenlos. Wenn es dir Zeit gespart hat, gib ihm einen Stern auf GitHub, unterstütze es als Sponsor oder spendier mir einen Kaffee.