Was ist go-upper?

go-upper ist unser klassisches Upload-Tool für Video- und Filehoster.
Es fokussiert sich auf durchgängige Upload-Workflows:

  • Ordner scannen
  • Dateien ggf. entpacken / neu packen
  • RAR‑Archive erstellen
  • Archive zu konfigurierten Filehostern hochladen
  • Links über einen Linkcrypter sammeln

go-upper ist vollwertig und stabil. Wenn du neu starten willst oder Reupload-first brauchst, schau dir zusätzlich go-reupper an – beide Produkte ergänzen sich.

Für wen ist go-upper gedacht?

go-upper eignet sich besonders, wenn:

  • du Upload-Pipelines mit vielen Hostern/Linkcryptern betreibst,
  • du bestehende go-upper-Konfigurationen weiterverwenden willst,
  • du mit Contentgrabber, Trailer/Mediainfo, Templates/Publish arbeitest,
  • du stabile, feste Workflows hast, die nicht umgebaut werden sollen.

Wenn du komplett neu einsteigst und eher Reuploads/Checks brauchst, ist go-reupper oft passender. Diese Doku hilft dir, go-upper für Upload-Szenarien sauber aufzusetzen.

Kurzfassung für Eilige

  • Du brauchst eine Lizenz für go-upper.
  • Du kopierst config/upper.config.dist.yml nach config/upper.config.yml.
  • Du trägst Lizenz, Scan‑Pfad, WinRAR‑Pfad und mindestens einen Hoster ein.
  • Du startest das Tool über:
./upper

Unter Windows:

run-upper.bat
  • go-upper läuft dann in einem Intervall (z. B. alle X Minuten), scannt deine Ordner und lädt neue Inhalte hoch.

Grundprinzip von go-upper

go-upper arbeitet in einer Endlosschleife:

  1. Konfiguration prüfen (Lizenz, Pfade, Hoster, Workmode, usw.).
  2. Scan‑Ordner durchsuchen und passende Ordner/Jobs sammeln.
  3. Dateien (je nach Einstellungen) entpacken, neu packen oder direkt verwenden.
  4. RAR‑Archive erstellen (oder bestehende Archives nutzen).
  5. Upload zu den gewählten Hostern durchführen.
  6. Links in einem Linkcrypt‑Ordner ablegen.
  7. Ergebnisse als JSON/TXT speichern oder weitergeben.
  8. Aufräumen (Workdir leeren, alte Einträge entfernen – je nach Einstellungen).
  9. Warten bis zum nächsten Durchlauf.

Du steuerst dieses Verhalten komplett über die Datei config/upper.config.yml.

Weboberfläche: upper-ui

go-upper kann zusätzlich über upper-ui überwacht und gestartet werden.
Die UI ist eine eigene kleine Webapp und benötigt keinen Frontend-Build.
Sie nutzt CDN-Assets für Oberfläche, Icons, Terminal und Charts.

Die vollständige Einrichtung und Bedienung ist im eigenen Menüpunkt „WEB-UI“ dokumentiert.

upper-ui zeigt dir unter anderem:

  • aktive und gespeicherte go-upper-Instanzen,
  • Start/Stop und ein Browser-Terminal pro Instanz,
  • wichtige Einstellungen aus upper.config.yml,
  • YAML-Editor zum Bearbeiten der aktiven upper.config.yml,
  • eigene Config- und Log-Seiten pro Instanz unter /instance/{id}/config und /instance/{id}/logs,
  • Systemseite mit lokaler SQLite-Datenbankinfo, Download und VACUUM-Aktion,
  • aktive/inaktive Module und Optionen auf der Instanz-Config,
  • Scan-, Work-, Result- und Backup-Pfade,
  • eigene Seite Offene Uploads fuer noch nicht hochgeladene Ordner aus den konfigurierten Scan-Pfaden,
  • Terminal-Start auf Offene Uploads, um alle bereiten hinterlegten Go-Upper-Instanzen wie im Dashboard abarbeiten zu lassen,
  • eigene Seite Integrationen fuer Contentgrabber, Imagehoster und Publishing-Services ueber alle gefundenen Upper-Configs,
  • Upload-Importstatus mit importierten und offenen JSON-Dateien,
  • Suche, Typ-/Hoster-/Instanz-/Publishing-Filter, sortierbare Spalten und 50er-Pagination auf der Uploads-Seite,
  • Veröffentlichungsstatus je Upload aus den gespeicherten Publishing-Zielen,
  • Metadaten-Bearbeitung fuer importierte Uploads inklusive Groesse, editierbarer Mirror-/Crypter-Links, Cover-Vorschau, manuellem Imagehoster-Upload und Autocomplete,
  • gruppierte und nummerierte Crypter-Links auf der Uploads-Seite,
  • Löschen importierter Upload-Zeilen aus der UI-Datenbank,
  • SQLite-Speicherung der kompletten Upload-JSON,
  • Anzeige, Download und Bearbeitung der gespeicherten Original-JSON pro Upload,
  • Log-Ausschnitte aus log/success.log, log/errors.log und dem passenden Instanz-Log.

Dashboard, Offene Uploads und Uploads sind die Hauptseiten im linken Menü.
Templates, Mappings, Integrationen und Remote Sources liegen dort im Aufklappmenü
Einstellungen. Config und Logs öffnest du über die Buttons der jeweiligen
Instanz oder über die passende Aktionsschaltfläche. Die UI wechselt Seiten
intern, damit offene oder minimierte Terminals beim Navigieren nicht geschlossen
werden.

Die Integrationen-Seite liest das UI-Arbeitsverzeichnis und alle konfigurierten
Upper-Instanzen. Mehrere Instanzen, die dieselbe upper.config.yml verwenden,
werden zusammengefasst. Oben zeigt die Seite eine Gesamtmatrix fuer
Contentgrabber-Module wie xREL, PreDB, TMDB, IMDB, Steam, YouTube und NFO, den
konfigurierten Imagehoster sowie Publishing-Services. Darunter folgen die
Details je eindeutiger Config-Datei. Zugangsdaten werden nur als Status
(gesetzt, fehlt, geplant) angezeigt und nicht im Klartext ausgegeben.

Offene Uploads zeigt, welche Ordner aus den konfigurierten Scan-Pfaden noch
nicht durch Result-JSON oder Result-TXT als erledigt gelten. Ordner mit
*.progress.json im Result-Ordner werden als in Arbeit markiert; bekannte
Config-Regeln wie Ignore-/Contains-Filter, skip.incomplete, Modified-After
und Folder-Ready-Blocker werden als Status oder Grund angezeigt. Die Seite hat
Suche, Status-/Instanzfilter, sortierbare Spalten und 50er-Pagination. Ein als
in Arbeit markiertes Item kann nach dem Stoppen der Upper-Instanz per
Reset wieder freigegeben werden: Die UI entfernt die zugehörige
*.progress.json und bei Copy-Mode eindeutig passende kopierte
Arbeitscontainer aus dem konfigurierten Work-Verzeichnis. Der Button
Go-Upper starten und abarbeiten öffnet fuer jede bereite hinterlegte Instanz
ein Browser-Terminal und nutzt denselben Start wie die Dashboard-Aktion
Starten (mit Terminal).

Die Uploads-Seite scannt die Result-Ordner aller konfigurierten Instanzen alle
10 Sekunden und importiert nur JSON-Dateien, die noch nicht in der UI-Datenbank
vorhanden sind. Der Import speichert die jeweilige Quellinstanz und kann
zusätzlich manuell gestartet werden. Bereits gespeicherte DB-Einträge bleiben in
der Tabelle sichtbar, auch wenn die ursprüngliche Result-JSON-Datei nicht mehr
existiert; die UI markiert diese Zeilen als Datei fehlt.
Mehrere importierte Uploads kannst du per Checkbox auswählen und über
Veröffentlichen (zu Warteschlange) alle bereits gespeicherten Publishing-Ziele
dieser Uploads in den Warteschlangenstatus setzen. Über den Publishing-Filter
kannst du gezielt nach Warteschlangen-Einträgen filtern und markierte Uploads
auch wieder aus der Warteschlange entfernen.
Fehlgeschlagene Publishing-Ziele erscheinen als eigener Fehlerstatus mit
sichtbarem Fehlertext und eigenem Filter.
Die Crypter-Spalte wird aus kompakten SQLite-Metadaten gelesen; das komplette
Original-JSON wird nur geladen, wenn du es im Zeilenmenü ansiehst oder
herunterlädst. Über dasselbe Menü kannst du importierte Upload-Einträge aus der
UI-Datenbank löschen. Liegt die originale Result-JSON weiterhin im
Result-Ordner, kann der Autoimport sie später erneut importieren.

Importierte Upload-Namen sind verlinkt und öffnen eine Bearbeitungsseite. Dort
kannst du zentrale Movie- und Game-Felder wie Typ, Titel, Jahr, Groesse,
Beschreibung, Genre, IMDB/TMDB- oder Steam-Daten, Cover und NFO prüfen oder ändern. Die Seite zeigt außerdem gespeicherte
Mirror-Hoster, direkte Mirror-Links und Crypter-Links als editierbare Felder;
bei Crypter-Links bleiben Hoster, Crypter und URL getrennt sichtbar. Oben
kannst du über die Tabs Item und Publishing zwischen Metadatenpflege und
den Publishing-Zielen wechseln; lange Release-Namen bleiben im kompakten Kopf
einzeilig. Im Item-Tab
kannst du Contentgrabber-Integrationen wie xREL, PreDB, TMDB, IMDB, Steam oder NFO
auswählen und per Auto Complete erneut abfragen. NFO nutzt vorhandene lokale
NFO-Daten und lädt bei aktivem fetchIfNotExist über SRRDB nach. Leere Felder werden direkt
befüllt, sofern nur ein eindeutiger Vorschlag existiert; liefern mehrere
Integrationen unterschiedliche Werte, zeigt die UI darunter alle Vorschläge zum
Auswählen. Wenn ein Feld bereits einen anderen Wert hat, zeigt die UI ebenfalls
eine kleine Vorschau zum Übernehmen oder Verwerfen. Bildtreffer erscheinen als
Cover-Auswahl. Mit Upload in der Coverbox laedt die UI die aktuell eingetragene
Cover-URL auf den in contentgrabber.imageHoster konfigurierten Dienst und
speichert die zurueckgelieferte URL direkt im Upload-JSON. Unten speicherst du pro Upload je Publishing-Seite genau ein
Target, zum Beispiel den Forum-Bereich, und das dazugehörige Template. Alle Aktive wählen + Speichern waehlt alle nicht deaktivierten Publishing-Seiten aus, speichert und fuehrt zur Upload-Liste zurueck. Nach dem
Speichern zeigt die UI eine sichtbare Bestätigung.
Die Queue-Verarbeitung läuft im Upper-UI-Prozess im Hintergrund. Sie nimmt
Targets mit Status Warteschlange, sobald sie mindestens 30 Sekunden in der
Queue liegen, sendet JSON-Endpunkte mit der fertigen Upload-JSON oder postet
Forum- und uCMS-Ziele mit gespeichertem Target und Template, und schreibt danach
Veröffentlicht oder Fehler zurück in die UI-Datenbank.
Browser-basierte XenForo-Ziele werden dabei standardmaessig headless, also ohne
sichtbares Chrome-Fenster, verarbeitet. Fuer einen beobachtbaren Testlauf kann
beim betroffenen Service in upper.config.yml headless: false gesetzt werden.
Die Queue läuft nur, wenn in upper.config.yml publish.enabled: true und
publish.publishUi: true gesetzt sind oder publishUi für das alte Verhalten
weggelassen wurde. Soll der normale upper CLI-Lauf nicht automatisch posten,
setzt du zusätzlich publish.publishCli: false.

Die Config-Seite kann die aktive upper.config.yml direkt bearbeiten. Vor dem
Speichern wird die YAML-Syntax geprüft. Über den Config-Button einer Instanz
öffnest du dieselbe Ansicht für die Config aus dem jeweiligen Instanz-Ordner.
Über den Logs-Button öffnest du die Logansicht derselben Instanz.

Standardmäßig läuft upper-ui auf:

http://127.0.0.1:3001

Arbeitsmodi (Workmodes)

Auch go-upper kennt den Eintrag workmode in der Konfiguration:

  • normal

    • Standardmodus.
    • Ordner werden kopiert, RAR‑Archive erstellt, hochgeladen und per Linkcrypter gesammelt.
  • lite

    • Vereinfachter Modus.
    • Gut, wenn schon fertige RAR‑Archive in den Scan‑Ordnern liegen.
    • go-upper spart sich dann manche Schritte und arbeitet schneller.

Wenn du unsicher bist, starte mit normal.
Du kannst später jederzeit auf lite umstellen und testen, ob es zu deinem Setup passt.

Wichtige Konfigurationsbereiche

In config/upper.config.yml findest du (ähnlich wie bei go-reupper) mehrere große Blöcke:

  • license – dein Lizenzschlüssel.
  • workmodenormal oder lite.
  • general – allgemeine Einstellungen: Intervall, Retry‑Anzahl, Aufräumverhalten usw.
  • bandwidth – Traffic‑Limit, damit du nicht zu viel Up‑/Download verbrauchst.
  • path – Scan‑Ordner, Workdir, Result‑Ordner, WinRAR‑Pfad.
  • result – JSON/TXT-Ausgabe und optionales HTTP‑Senden (sendTo).
  • backup – optionales Sichern deiner Dateien/Archive.
  • linkcrypter – Anbindung an Filecrypt, ToLink oder Hide.cx.
  • archive – RAR‑Modus, Partgröße, Passwort, Zusatzoptionen.
  • filehoster – aktivierte Filehoster und zugehörige Zugangsdaten.
  • streamhoster – zusätzliche Video‑Hoster für Stream-Uploads.
  • contentgrabber – externe Metadaten (xREL/PreDB/IMDB/TMDB/Steam/YouTube).
  • template – automatische Ausgabe von BBCode/XML/Text nach dem Upload.

Für einen einfachen Start reicht es, wenn:

  1. license korrekt gesetzt ist,
  2. workmode passend eingestellt ist,
  3. path.scan auf deine Eingangsordner zeigt,
  4. path.winrar gesetzt ist,
  5. mindestens ein Hoster aktiviert ist.

Nächste Schritte

Weiter geht es auf der Seite „Erste Schritte mit go-upper“ – dort führen wir dich durch:

  • das Anlegen der Konfigurationsdatei,
  • das Setzen der wichtigsten Pfade,
  • einen ersten Testlauf,
  • sowie ein paar typische Fehlerbilder.

Sobald der Changelog gepflegt wird, findest du alle Änderungen auf der Seite „Changelog (go-upper)“.