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

  1. Installation und Verzeichnisstruktur
  2. Start und Zugriff
  3. Erste Einrichtung im Dashboard
  4. Config und Logs
  5. Offene Uploads und Upload-Import
  6. Upload bearbeiten, Cover und Auto Complete
  7. Templates, Presets, Mappings und Integrationen
  8. NFO Suche
  9. Remote Sources
  10. Publishing über die UI
  11. System, Datenbank und Wartung
  12. Update und Sicherung
  13. Sicherheit und Fehlerbehebung
  14. 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 Beispiel upper-linux oder upper-win.exe,
  • die separate UI-Binary upper-ui-linux oder upper-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 sie upper-ui/database/upper-ui.db relativ 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

  1. Klicke auf Upper Instanz hinzufügen.
  2. Trage den vollständigen Pfad zur eigentlichen upper-Binary ein.
  3. Vergib einen lesbaren Namen, zum Beispiel Upper Main.
  4. 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.db gespeichert,
  • 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.templates werden 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/mappings gespeichert,
  • 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

  1. Öffne Remote Sources.
  2. Klicke auf FTP hinzufügen.
  3. Wähle FTP, FTPS oder SFTP.
  4. Trage Host, Port und Anmeldung ein.
  5. Nutze Verbindung testen, bevor du speicherst.
  6. Öffne anschließend den Browser, navigiere zum Remote-Ordner und speichere ihn als Section.
  7. 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

  1. Importiere eine Result-JSON auf der Seite Uploads.
  2. Öffne den Upload und wechsle in den Tab Publishing.
  3. Aktiviere pro Seite höchstens ein Ziel und wähle gegebenenfalls ein Template.
  4. 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.
  5. 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.
  6. 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:

  1. lädt die UI die aktuelle Release-Information,
  2. zeigt Zielversion und Release-Text,
  3. lädt bei Bestätigung das Update,
  4. prüft eine im Manifest angegebene SHA256-Prüfsumme,
  5. 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_ADDR auf 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.yml vorhanden 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: true gesetzt ist.
  • Prüfe path.result und 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: true und publish.publishUi: true.
  • Prüfe, ob der konkrete Service enabled: true ist.
  • 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