WEB-UI für go-upper
Go-Upper WEB-UI
Die Go-Upper UI ist die eigenständige Weboberfläche für upper. Sie startet und überwacht Upper-Instanzen, liest deren Resultate ein, bearbeitet Upload-Daten, verwaltet Templates und Mappings und kann konfigurierte Publishing-Ziele aus einer Warteschlange bedienen.
Die UI ersetzt die upper.config.yml nicht. Jede verwaltete Upper-Instanz benötigt weiterhin eine funktionierende Konfiguration, Pfade, Hoster und gegebenenfalls Zugangsdaten.
Inhalt
- Installation und Verzeichnisstruktur
- Start und Zugriff
- Erste Einrichtung im Dashboard
- Config und Logs
- Offene Uploads und Upload-Import
- Upload bearbeiten, Cover und Auto Complete
- Templates, Presets, Mappings und Integrationen
- NFO Suche
- Remote Sources
- Publishing über die UI
- System, Datenbank und Wartung
- Update und Sicherung
- Sicherheit und Fehlerbehebung
- Screenshots im Überblick
Download
Lade die aktuelle Version der Go-Upper UI hier herunter:
Go-Upper UI herunterladen (Latest)
1. Installation und Verzeichnisstruktur
Voraussetzungen
Für den produktiven Betrieb benötigst du:
- eine passende
upper-Binary, zum Beispielupper-linuxoderupper-win.exe, - die separate UI-Binary
upper-ui-linuxoderupper-ui-win.exe, - eine gültige
config/upper.config.yml, - Schreibrechte für
upper-ui/database/,upper-ui/log/und die in der Upper-Config gesetzten Arbeits- und Ergebnisordner, - mindestens einen erreichbaren Ergebnisordner mit JSON-Ausgabe, wenn die Upload-Verwaltung genutzt werden soll.
Empfohlenes Layout
Lege Go-Upper und die Web-UI in einem gemeinsamen Hauptverzeichnis ab. Das Release-Paket verwendet für die UI den Unterordner upper-ui/.
go-upper/
upper-linux # Linux: Upper-Binary
upper-win.exe # Windows: alternativ zur Linux-Binary
upper-ui/
run-upper-ui.bat # Windows: per Doppelklick starten
upper-ui-linux # Linux: Web-UI-Binary
upper-ui-win.exe # Windows: alternativ zur Linux-Binary
database/
upper-ui.db # wird beim ersten UI-Start angelegt
log/
upper-instance-<ID>.log # Logs von Hintergrundstarts
config/
upper.config.yml # aktive Upper-Konfiguration
upper.config.dist.yml # Vorlage
remote.sources.yml # optional: FTP/FTPS/SFTP-Quellen
templates/ # optionale Template-Dateien
mappings/ # optionale Publish-Mappings
database/
remote-sources.db # wird bei Remote Sources verwendet
files/ # Standard-Workdir, falls nicht anders konfiguriert
log/ # Upper- und UI-Instanzlogs
result/ # Standard-Resultordner, falls nicht anders konfiguriert
Wichtig: Starte die UI immer auf demselben Weg aus ihrem Ordner
upper-ui/. Beim ersten Start legt sieupper-ui/database/upper-ui.dbrelativ zum Arbeitsverzeichnis an, sofern keine bestehende Datenbank neben der UI-Binary gefunden wird. Ein Start aus wechselnden Ordnern kann deshalb eine zweite, leere UI-Datenbank erzeugen.
Upper-Konfiguration vorbereiten
Für Dashboard, Upload-Import und Bearbeitung sind insbesondere diese Werte relevant:
result:
json:
enabled: true
path:
scan:
- '/data/upper/incoming/'
work: '/data/upper/work/'
result: '/data/upper/result/'
Unter Windows verwendest du entsprechend Windows-Pfade:
path:
scan:
- 'D:\Uploads\incoming\'
work: 'D:\Uploads\work\'
result: 'D:\Uploads\result\'
result.json.enabled: true ist wichtig: Die Uploads-Seite importiert die von Upper erzeugten JSON-Ergebnisse in die UI-Datenbank.

2. Start und Zugriff
Linux
Wechsle in den UI-Unterordner und starte die UI-Binary:
cd /opt/go-upper/upper-ui
./upper-ui-linux
Windows
Unter Windows öffnest du im entpackten Go-Upper-Paket den Ordner upper-ui und startest per Doppelklick:
run-upper-ui.bat
Die Batchdatei startet die passende upper-ui-win.exe; ein Terminalbefehl ist für den normalen Windows-Start nicht erforderlich.
Adresse im Browser
Standardmäßig lauscht die UI nur lokal unter:
http://127.0.0.1:3001
Falls Port 3001 bereits belegt ist, kannst du die Adresse über UPPER_UI_ADDR ändern.
Linux:
UPPER_UI_ADDR=127.0.0.1:3002 ./upper-ui-linux
Windows PowerShell:
cd C:\go-upper\upper-ui
$env:UPPER_UI_ADDR = '127.0.0.1:3002'
.\run-upper-ui.bat
Die UI legt beim Start die SQLite-Datenbank an, aktualisiert ihr Schema und importiert lesbare Config-Templates in die Template-Verwaltung.
3. Erste Einrichtung im Dashboard
Nach dem Öffnen landest du im Dashboard. Dort siehst du:
- Anzahl und Status der konfigurierten Upper-Instanzen,
- aggregierte Upload-Zahlen aus Resultaten,
- offene Imports,
- Lizenzstatus der geladenen Config,
- Diagramme zu Uploads und Hostern.
Erste Upper-Instanz hinzufügen
- Klicke auf Upper Instanz hinzufügen.
- Trage den vollständigen Pfad zur eigentlichen
upper-Binary ein. - Vergib einen lesbaren Namen, zum Beispiel
Upper Main. - Speichere die Instanz.
Beispiele für den Binary-Pfad:
/opt/go-upper/upper-linux
C:\go-upper\upper-win.exe
Die UI sucht die Config einer Instanz relativ zum Ordner ihrer Binary. Das empfohlene Layout mit upper-linux beziehungsweise upper-win.exe direkt neben config/ stellt sicher, dass die richtige config/upper.config.yml gefunden wird.
Instanz starten und stoppen
Pro Instanz stehen diese Aktionen zur Verfügung:
- Starten (mit Terminal) öffnet ein Browser-Terminal und startet Upper interaktiv.
- Starten (im Hintergrund) startet Upper ohne Terminal und schreibt die Prozessausgabe in ein Instanzlog.
- Stoppen beendet eine laufende Instanz.
- Debug ergänzt beim nächsten Hintergrundstart
--debug=true. - Config und Logs öffnen die instanzbezogenen Detailseiten.
UI-Starts übergeben automatisch --disable-licence-prompt=1, damit ein Lizenzablaufhinweis keinen unbeaufsichtigten Prozess blockiert.

4. Config und Logs
Config-Seite
Über das Config-Symbol einer Instanz öffnest du deren upper.config.yml. Die Seite zeigt:
- geladene Config-Datei und Lizenzstatus,
- Workmode, Intervalle und Linkcrypter,
- aktive und inaktive Module,
- wichtige Boolean-Optionen,
- geprüfte Pfade mit Status und Dateizahlen.
Mit Config bearbeiten öffnest du den YAML-Editor. Beim Speichern wird geprüft, ob der Inhalt gültiges YAML ist; anschließend wird die Datei atomar ersetzt.
Speichere Zugangsdaten nur in deiner lokalen
upper.config.yml. Veröffentliche weder diese Datei noch Screenshots, auf denen API-Keys, Passwörter oder Tokens sichtbar sind.
Logs-Seite
Die Logs-Seite zeigt Log-Ausschnitte für die gewählte Instanz. Bei einem Hintergrundstart schreibt die UI außerdem nach:
upper-ui/log/upper-instance-<ID>.log
Ein Start über das Browser-Terminal zeigt die Ausgabe direkt in der Terminalansicht. Terminals bleiben beim Wechsel zwischen UI-Seiten erhalten und können minimiert oder wieder geöffnet werden.

5. Offene Uploads und Upload-Import
Offene Uploads
Die Seite Offene Uploads liest die path.scan-Ordner aller eingetragenen Instanzen. Sie zeigt noch nicht abgeschlossene Kandidaten und berücksichtigt Config-Regeln wie Filter, skip.incomplete, Modified-After und Folder-Ready-Prüfungen.
Mit Go-Upper starten und abarbeiten öffnet die Seite für jede bereite hinterlegte Instanz ein Browser-Terminal und startet Upper genauso wie die Dashboard-Aktion Starten (mit Terminal). Bereits laufende Instanzen werden nicht doppelt gestartet.
Mögliche Status sind unter anderem:
- bereit: kann beim nächsten Upper-Lauf verarbeitet werden,
- in Arbeit: im Resultordner liegt eine passende
*.progress.json, - wartet oder gefiltert: eine Config-Regel verhindert aktuell die Verarbeitung.
Für einen hängen gebliebenen Eintrag mit Status in Arbeit gibt es Reset. Stoppe zuvor die zugehörige Upper-Instanz. Der Reset entfernt die Progress-Datei und, falls eindeutig zuordenbar, kopierte Arbeitsordner.
Uploads importieren
Die Seite Uploads liest Result-JSON-Dateien aus den Resultordnern der konfigurierten Instanzen ein:
- Autoimport läuft alle 10 Sekunden,
- der Button Import startet den Import sofort,
- Alles als erledigt markieren setzt alle noch nicht erledigten importierten Uploads auf den grünen Veröffentlichungsstatus,
- pro Resultdatei werden Roh-JSON, Quelle, Hoster, Links und Status in
upper-ui/database/upper-ui.dbgespeichert, - bereits importierte Einträge bleiben in der Datenbank, auch wenn die ursprüngliche JSON-Datei später fehlt.
Die Liste unterstützt Suche, Filter nach Typ, Hoster, Instanz und Publishing-Status, Sortierung und Pagination. Sobald die Tabelle tatsächlich horizontal überlaufen würde, werden zuerst Importiert, danach Crypter, Hoster und zuletzt Groesse ausgeblendet. Die Optionsspalte bleibt dabei am rechten Tabellenrand sichtbar. Die Suche und Filter bleiben im Browser gespeichert, bis du sie mit Clear zuruecksetzt. Der blaue Button Veröffentlichen (alle mit Ziel) legt alle datenbankweit im Status Ziel gewählt stehenden Uploads ohne vorherige Auswahl in die Publishing-Warteschlange und ist deaktiviert, solange kein passender Upload vorhanden ist. Markierte Uploads können weiterhin per Hauptbutton einzeln vorgemerkt werden; weitere Massenaktionen wie Aus Warteschlange entfernen, als Veröffentlicht markieren und auf Unveröffentlicht zurücksetzen liegen im Drei-Punkte-Menü. Das Zurücksetzen entfernt die gespeicherten Publishing-Ziele, damit der Listenstatus tatsächlich wieder Unveröffentlicht lautet. Dieselbe Aktion steht im Drei-Punkte-Menü jeder Upload-Zeile bereit. Über die Zeilenaktionen kannst du außerdem die gespeicherte Original-JSON ansehen, bearbeiten, herunterladen oder den UI-Datensatz dauerhaft inklusive Publishing-Zielen und History löschen.

6. Upload bearbeiten, Cover und Auto Complete
Klicke in der Upload-Liste auf einen importierten Upload. Die Bearbeitungsseite besteht aus den Tabs Item, Publishing und History Log.
Item-Daten bearbeiten
Im Tab Item bearbeitest du direkt die gespeicherte Upload-JSON:
- Release-Name, Inhaltstyp, Titel, Jahr, Größe, Genre und Beschreibung,
- Movie-Daten wie IMDB, TMDB und Trailer,
- Game-Daten aus Steam,
- NFO-Pfad und NFO-Inhalt,
- direkte Mirror-Links und Crypter-Links.
Auto Complete
Wenn die zugehörigen Module in contentgrabber aktiviert sind, kannst du Daten erneut abfragen:
- xREL,
- PreDB,
- TMDB,
- IMDB,
- Steam,
- YouTube,
- NFO beziehungsweise SRRDB-Fallback.
Mehrere oder abweichende Treffer werden als Vorschläge angezeigt, bevor du sie übernimmst.
PreDB ergänzt exakte Scene-Release-Daten und schlägt anhand der Section außerdem einen passenden Upper-Inhaltstyp vor.
Cover hochladen
Im Cover-Bereich kannst du eine Cover-URL eintragen und auf den in contentgrabber.imageHoster konfigurierten Imagehoster laden. Die neue gehostete URL wird direkt in der gespeicherten Upload-JSON aktualisiert.
Voraussetzung ist ein eingerichteter Imagehoster, zum Beispiel:
contentgrabber:
enabled: true
imageHoster:
service: 'pixelfox.cc'
user: ''
pw: 'DEIN_API_KEY'
Bei PixelFox berücksichtigt die Upper-UI automatisch die Berechtigungen des API-Kontos. Ein Free-Konto lädt das Cover mit einer erlaubten Original-Variante hoch; WebP und AVIF werden nur für Konten angefordert, die diese Formate laut PixelFox-Profil verwenden dürfen.

History Log
Der Tab History Log zeigt die wichtigsten Ereignisse zum Upload:
- wann die Result-JSON in die UI importiert wurde,
- wann Metadaten, Links, Cover oder die gespeicherte Raw-JSON bearbeitet wurden,
- wann Publishing-Ziele gespeichert oder entfernt wurden,
- wann Ziele in die Warteschlange gelegt oder wieder entfernt wurden,
- wann Publishing erfolgreich war, manuell als veröffentlicht markiert wurde oder mit Fehler abgebrochen ist.
7. Templates, Presets, Mappings und Integrationen
Im linken Menü erreichst du Templates, Presets, Mappings, Integrationen, Remote Sources und System über das Aufklappmenü Einstellungen.
Templates
Die Seite Templates verwaltet Inhalte, die beim Publishing gerendert werden können:
- Dateien aus
template.templateswerden beim UI-Start importiert, - importierte Template-Dateien werden nicht bei jedem Start überschrieben,
- neue UI-Templates können angelegt und bestehende bearbeitet werden,
- Template-Typen umfassen neben Movie, TV, Game, Music und XXX auch EBook und Software,
- Formate wie HTML, BBCode, XML und Plaintext können gespeichert werden,
- eine Vorschau rendert ein Template mit einer importierten Upload-JSON,
- Templates können exportiert werden.
Ausführliche Template-Variablen findest du unter Einstellungen > Templates.
Presets
Die Seite Presets speichert Ziel- und Template-Auswahlen pro Instanz in der UI-Datenbank. Du waehlst eine konkrete Instanz, legst Name, Inhaltstyp und Auto-Verhalten fest und aktivierst die gewuenschten Publishing-Seiten mit Target und optionalem Template.
Beim Target gibt es zwei Modi: Automatisch anhand Upload speichert keine feste Zielkategorie und berechnet beim Anwenden auf einen Upload den passenden Target mit derselben Mapping-Logik wie das Publishing selbst. Dadurch koennen z.B. SD-, 1080p- und UHD-Filme trotz gleichem Typ movie in unterschiedliche Kategorien laufen. Eine feste Target-Auswahl ist fuer Spezialfaelle gedacht, in denen eine Seite immer in dieselbe Kategorie posten soll.
Mappings
Die Seite Mappings zeigt Publish-Mapping-Dateien aus allen gefundenen upper.config.yml-Dateien, zusätzlich nutzbare Dateien aus den passenden config/mappings-Ordnern und die in der UI eingebetteten Standard-Mappings.
- dieselbe physische Mapping-Datei wird nur einmal angezeigt, auch wenn mehrere Instanzen sie verwenden,
- getrennte Config-/Instanzordner mit eigener Mapping-Datei erscheinen getrennt,
- Standard-Mappings funktionieren auch ohne Datei neben der Upper-Instanz; lokale Anpassungen werden als Override unter
config/mappingsgespeichert, - angepasste Mappings koennen auf den eingebetteten Standard zurueckgesetzt werden,
- Mapping-Dateien können als YAML bearbeitet und validiert gespeichert werden,
- ein Match-Test zeigt für einen Titel und optionalen Typ die Kategorie, die auch das Publishing wählen würde.
Integrationen
Die Seite Integrationen fasst die Konfiguration aus dem UI-Arbeitsverzeichnis und allen eingetragenen Instanzen zusammen. Sie zeigt:
- Contentgrabber wie xREL, TMDB, IMDB, Steam, YouTube und NFO,
- Imagehoster für Cover,
- Publishing-Services und deren Mapping- oder Endpoint-Konfiguration,
- ob erforderliche Zugangsdaten gesetzt sind, ohne sie im Klartext auszugeben.
Wenn mehrere Instanzen dieselbe upper.config.yml verwenden, werden sie in der Integrationsübersicht gemeinsam dargestellt.

8. NFO Suche
Unter Tools > NFO Suche kannst du ohne zusaetzliche Konfiguration nach einem Titel oder einem vollstaendigen Release-Namen suchen. Die UI fragt SRRDB, PreDB und xREL parallel ab und fuehrt die Treffer in einer Tabelle zusammen.
Die Ergebnisliste zeigt:
- den vollstaendigen Release-Namen,
- die NFO-Quelle,
- Section und Release-Gruppe, sofern die Quelle diese Daten liefert,
- NFO View fuer die Textansicht in einem grossen Layer,
- NFO Download fuer den direkten Download als
.nfo-Datei.
Wenn eine Quelle voruebergehend nicht erreichbar ist, bleiben Treffer der anderen Quellen sichtbar und die Seite zeigt einen entsprechenden Hinweis. xREL stellt bei einigen Eintraegen nur ein gerendertes NFO-Bild bereit. Solche Eintraege bleiben als Suchtreffer sichtbar, melden beim Textabruf aber gezielt, dass kein Text-NFO verfuegbar ist.
9. Remote Sources
Die Seite Remote Sources verwaltet FTP-, FTPS- und SFTP-Quellen. Du erreichst sie über Einstellungen > Remote Sources. Sie eignet sich, wenn Releases nicht in lokalen path.scan-Ordnern liegen, sondern von einem Remote-Server übernommen werden sollen.
Bei mehreren verwalteten Go-Upper-Instanzen waehlt die Instanz-Auswahl oben rechts aus, welche upper.config.yml oder externe remoteConfig gelesen, getestet und gespeichert wird.
Remote-Datei vorbereiten
Für eine externe Remote-Konfiguration setze in config/upper.config.yml:
remoteConfig: 'remote.sources.yml'
Die Datei liegt dann unter:
config/remote.sources.yml
Alternativ kann remoteConfig leer bleiben; dann schreibt die UI den remote:-Block direkt in upper.config.yml.
Server über die UI anlegen
- Öffne Remote Sources.
- Klicke auf FTP hinzufügen.
- Wähle FTP, FTPS oder SFTP.
- Trage Host, Port und Anmeldung ein.
- Nutze Verbindung testen, bevor du speicherst.
- Öffne anschließend den Browser, navigiere zum Remote-Ordner und speichere ihn als Section.
- Aktiviere die Section bewusst über den Schalter.
Der erste Scan einer Section legt nur eine Baseline an. Bereits vorhandene Releases werden dabei nicht sofort geladen. Neue Remote-Releases werden unter path.work/remote/... materialisiert; Teiltransfers liegen in .partial/<release-id> und können fortgesetzt werden.

10. Publishing über die UI
Publishing ist optional und muss in upper.config.yml eingeschaltet werden. Für ein Setup, bei dem nur die UI published:
publish:
enabled: true
publishCli: false
publishUi: true
services:
- service: 'darklight.to'
enabled: true
headless: true
mappingPath: 'darklightto.mapping'
credentials:
username: 'DEIN_BENUTZER'
password: 'DEIN_PASSWORT'
Je nach Ziel werden Mapping-Dateien aus config/mappings/ oder ein JSON-Endpoint benötigt. Unterstützte UI-Abläufe umfassen XenForo-Ziele, uCMS-Ziele wie byte.to und JSON-Endpoint-Services.
Publishing-Ablauf
- Importiere eine Result-JSON auf der Seite Uploads.
- Öffne den Upload und wechsle in den Tab Publishing.
- Aktiviere pro Seite höchstens ein Ziel und wähle gegebenenfalls ein Template.
- Speichere den Upload. Mit Alle Aktive wählen + Speichern aktiviert die UI alle nicht ausgegrauten Seiten, speichert die Auswahl und springt zur Upload-Liste zurück.
- Markiere ihn in der Upload-Liste und klicke Veröffentlichen (zu Warteschlange). Alternativ legt Veröffentlichen (alle mit Ziel) alle Uploads mit dem Status Ziel gewählt gemeinsam in die Warteschlange.
- Nach mindestens 30 Sekunden verarbeitet der UI-Prozess den Queue-Eintrag im Hintergrund.
Der Status wechselt zu Veröffentlicht oder Fehler; Fehlertexte erscheinen in der Upload-Liste, in der Bearbeitungsseite und im History Log des Uploads.
Wenn du einen Upload mit gemischten Ziel-Status erneut in die Warteschlange setzt, bleiben bereits veroeffentlichte Ziele unveraendert und nur fehlerhafte oder offene Ziele werden erneut versucht.
In der Upload-Liste zeigt die Veröffentlichungsspalte für vorgemerkte und laufende Jobs einen Fortschrittsbalken mit Prozentwert. Der Fortschritt bezieht sich auf die gespeicherten Publishing-Ziele: ein laufendes Ziel zählt als halber Zielschritt, ein erfolgreich veröffentlichtes Ziel vollständig. Während der Verarbeitung steht darunter beispielsweise Veröffentliche auf darklight.to · Filme. Die Anzeige wird ohne kompletten Seitenreload aktualisiert, damit Suche, Filter, Auswahl und Pagination erhalten bleiben. Bei nur einem Ziel springt der Wert deshalb nachvollziehbar von 0 % über 50 % auf 100 %; ein Byte- oder Browser-Transferfortschritt wird nicht vorgetäuscht.
Publishing-Seiten mit fehlenden Zugangsdaten in der aktiven Config werden im Tab Publishing ausgegraut, zeigen den Hinweis Zugangsdaten fehlen und koennen nicht als Ziel gespeichert werden.
Die automatische Zielvorauswahl verwendet dieselben match-, exclude-, priority- und fallback-Regeln wie das CLI-Publishing. Fehlt der Inhaltstyp in der Result-JSON oder wurde er als - importiert, nutzt die UI zuerst den konfigurierten Quellpfad und danach konservative Film-/Serien-Merkmale im Releasenamen. Bleibt der Typ unbekannt, wird ein explizites Mapping-Fallback statt der ersten Kategorie verwendet. Eine bereits in der UI gespeicherte manuelle Zielwahl bleibt erhalten.
Publishing-Presets verwaltest du unter Einstellungen > Presets fuer eine konkrete Instanz. Im Publishing-Tab erscheinen gespeicherte Presets oben nur als Buttons; ein Klick setzt die definierte Ziel- und Template-Auswahl erneut. Ist ein Preset fuer den Upload-Typ als Auto gespeichert, wird es bei neuen Uploads dieses Typs automatisch vorselektiert, solange fuer den Upload noch keine Publishing-Auswahl gespeichert wurde. Preset-Ziele mit Automatisch anhand Upload werden dabei pro Upload neu ueber Typ, Release-Titel, Match-/Exclude-Regeln, Prioritaet und Fallback aufgeloest.
Bei XenForo-Zielen wie boersecx, darklight.to und data-load.me sendet die UI-Warteschlange den gerenderten BBCode direkt als Formularwert. Der Browser bleibt fuer Login, Suche und Formular-Kontext im Einsatz, der BBCode wird aber nicht mehr in den Rich-Text-Editor getippt. Liefert data-load.me voruebergehend weder Treffer noch eine bestaetigte No-Result-Meldung, laedt der Browser die Seite einmal neu und wiederholt die vollstaendige Themensuche. Bleibt die Antwort ungeprueft, bricht das Publishing weiterhin ab, damit nicht versehentlich ein doppelter Thread angelegt wird. Ein kompletter Browser-Publishing-Lauf ist auf fünf Minuten begrenzt; danach wird das Ziel als Fehler markiert und der Worker fährt mit der Warteschlange fort.
Für Browser-Publishing kannst du zur Diagnose ein sichtbares Chrome-Fenster erlauben:
publish:
services:
- service: 'darklight.to'
headless: false

11. System, Datenbank und Wartung
Die Seite Einstellungen > System zeigt Details zur lokalen SQLite-Datenbank der Upper UI:
- den vollstaendigen Pfad zur aktiven
upper-ui.db, - Dateigroesse, Aenderungszeit, Rechte sowie WAL-/SHM-Sidecars,
- SQLite-Version, Journal-Modus, Page Count, Page Size und freie Pages,
- Schema- und Tabellenuebersicht mit Zeilen, Spalten und Indexen.
Wenn die Datenbank als Datei vorliegt, bietet die Seite DB herunterladen fuer einen direkten Download. Der Button VACUUM fuehrt den SQLite-Befehl auf der aktiven UI-Datenbank aus, kompaktiert die Datei und zeigt danach die neue Groesse sowie freigebbaren Speicher an.
In der Tabellenuebersicht leert Truncate die jeweilige Tabelle vollstaendig und setzt die SQLite-Sequenz dieser Tabelle zurueck. Die Aktion betrifft nur die ausgewaehlte Tabelle.
12. Update und Sicherung
UI aktualisieren
In der Kopfleiste zeigt die UI ihre eigene Version getrennt von der Go-Upper-Version. Über Update:
- lädt die UI die aktuelle Release-Information,
- zeigt Zielversion und Release-Text,
- lädt bei Bestätigung das Update,
- prüft eine im Manifest angegebene SHA256-Prüfsumme,
- installiert das Update und startet die UI neu.
Mit Force kannst du dieselbe UI-Version erneut installieren, wenn eine bestehende Installation repariert werden soll.
Datenbank sichern
Die Datei upper-ui/database/upper-ui.db enthält unter anderem:
- gespeicherte Instanzen,
- importierte Result-JSONs und bearbeitete Upload-Daten,
- UI-Templates,
- Publishing-Ziele und Queue-Status.
Sichere diese Datei vor Updates, Migrationen oder größeren manuellen Änderungen. Stoppe die UI vorher, damit die SQLite-Datei konsistent kopiert wird.
Falls du Remote Sources nutzt, sichere zusätzlich:
database/remote-sources.db
config/remote.sources.yml
13. Sicherheit und Fehlerbehebung
Sicherheit
Die UI ist standardmäßig nur an 127.0.0.1 gebunden. Behalte diese Einstellung, sofern du keinen abgesicherten Zugriff eingerichtet hast.
Sicherheitshinweis: Die Weboberfläche kann Konfigurationen bearbeiten, Upper-Prozesse starten und Publishing auslösen. Der Link Login in der Kopfleiste führt zum Kundenbereich und schützt die lokale UI nicht. Wenn du
UPPER_UI_ADDRauf eine Netzwerkadresse bindest, sichere den Zugriff extern, zum Beispiel durch Reverse Proxy, TLS und Authentifizierung.
UI zeigt keine Config
- Starte die UI aus dem Go-Upper-Hauptverzeichnis.
- Prüfe, ob
config/upper.config.ymlvorhanden und gültiges YAML ist. - Prüfe bei einer Instanz, ob der Binary-Pfad auf den Ordner mit der passenden
config/-Struktur zeigt.
Uploads erscheinen nicht
- Prüfe, ob
result.json.enabled: truegesetzt ist. - Prüfe
path.resultund ob dort Result-JSON-Dateien liegen. - Prüfe die Config der eingetragenen Instanz, nicht nur die Config im UI-Arbeitsverzeichnis.
- Nutze auf Uploads einmal den Button Import.
Eine Instanz startet nicht
- Prüfe, ob der eingetragene Binary-Pfad existiert und ausführbar ist.
- Prüfe die Logseite und
upper-ui/log/upper-instance-<ID>.log. - Starte testweise mit aktiviertem Debug.
Offener Upload bleibt in Arbeit
- Stoppe die zugehörige Instanz.
- Prüfe, ob der Job tatsächlich abgebrochen ist.
- Nutze erst dann auf Offene Uploads die Aktion Reset.
Remote-Verbindung schlägt fehl
- Teste Host, Port, Protokoll und Zugangsdaten im Setup-Dialog.
- Prüfe bei FTPS den TLS-Modus und bei SFTP die Host-Key- und Key-Datei-Einstellungen.
- Aktiviere eine erkannte Section erst nach erfolgreichem Test.
Publishing läuft nicht
- Prüfe
publish.enabled: trueundpublish.publishUi: true. - Prüfe, ob der konkrete Service
enabled: trueist. - Prüfe, ob Ziel und gegebenenfalls Template im Publishing-Tab gespeichert wurden.
- Beachte die Mindestwartezeit von 30 Sekunden in der Warteschlange.
- Prüfe den angezeigten Fehlertext bei einem fehlgeschlagenen Target.
- Browserbasierte XenForo-Ziele werden nach fünf Minuten mit einem Timeout beendet, statt die restliche Warteschlange dauerhaft zu blockieren.
14. Screenshots im Überblick
Die folgenden Screenshots sind in den passenden Abschnitten dieser Seite eingebunden:
| Datei | Inhalt |
|---|---|
/documentation/assets/images/upper-ui/01-installationsordner.png |
Installationslayout mit upper, upper-ui, config und database |
/documentation/assets/images/upper-ui/02-dashboard-instanz.png |
Dashboard nach dem Anlegen einer Instanz |
/documentation/assets/images/upper-ui/03-config-logs.png |
Config-Editor oder Logs |
/documentation/assets/images/upper-ui/04-uploads-import.png |
Offene Uploads oder Result-Import |
/documentation/assets/images/upper-ui/05-upload-edit.png |
Item-Bearbeitung, Cover und Auto Complete |
/documentation/assets/images/upper-ui/06-templates-integrationen.png |
Template-Verwaltung oder Integrationsübersicht |
/documentation/assets/images/upper-ui/07-remote-sources.png |
Remote-Server-Dialog und Sections |
/documentation/assets/images/upper-ui/08-publishing-queue.png |
Publishing-Tab und Queue-Status |