Changelog UI (go-reupper)
Changelog UI (go-reupper)
Dieser Verlauf dokumentiert ausschließlich die eigenständige Go-Reupper UI. Änderungen am Reupper-Worker stehen im separaten Go-Reupper-Changelog.
v0.21.0
Live seit 11. August 2026.
- feature:
- Dashboard-KPIs: Reuploads heute, Erfolgsquote (7 Tage), Warteschlange (pending/in Arbeit), Traffic heute, Priority Queue (offen/geclaimed) und Linkcrypter-Snapshot (Offline/Partial/Online)
- Chart „Reuploads letzte N Tage“ als gestapeltes Success/Failed-Diagramm; neues Traffic-Chart (Download/Upload in GiB); Zeitraum-Dropdown steuert beide Charts
GET /api/stats/daysliefert zusätzlichsuccess,failed,download,uploadund füllt fehlende Tage im Fenster mit 0 (Response bleibt rückwärtskompatibel viadata)- Favicon im Browser-Tab: 64×64 PNG aus dem Header-Logo (
logo.webp), eingebunden im Layout unter/reupper-ui/ui/public/img/favicon.png - Dashboard: gelbes Config-Icon pro Instanz öffnet direkt den YAML-Editor-Layer für
reupper.config.yml(CodeMirror, analog zur Upper UI) GET/PUT /api/instance/:id/configliest und speichert die Instanz-Config (YAML-Validierung, atomares Schreiben)
v0.20.1
- bugfix:
- History-Tabelle: Die sticky Spalte Aktionen hat Reuploads und Status überdeckt (Header wirkte wie
REUPI, Werte unsichtbar). Tabellen-min-widthauf 1480px erhöht, Name-Spalte begrenzt, feste Mindestbreiten für Link/Reuploads/Status.
- History-Tabelle: Die sticky Spalte Aktionen hat Reuploads und Status überdeckt (Header wirkte wie
v0.20.0
- feature:
- Smart-Jobs in Queue und History: Badge
smart, stabile Job-ID, Hoster-Badges, Target-Fortschritt und aufklappbare Targetliste. - Neue Felder
workmode,hosters,targets(JSON, rückwärtskompatibel). - Suche findet Smart-Jobs über Job-ID, Titel, Target-FolderID und Crypter-Link.
- Stats zählen Target-Erfolge und -Fehler count-fähig.
- Smart-Jobs in Queue und History: Badge
v0.19.0
- feature:
- Reupper-Instanzen lassen sich im Dashboard aktualisieren: die Spalte Version zeigt die aus der Binary gelesene Version; daneben prüft die UI automatisch auf eine neuere Release. Ein Update-Button öffnet den Dialog (installierte/neue Version, Release-Text, Force). Download von
latest.zip/latest.jsonaushttps://go-toolz.com/dl/reupper/, Entpacken, Binaries/Tools und*.dist.ymlüberschreiben; Nutzer-Configs (reupper.config.yml,remote.sources.yml),files/,log/undreupper-ui/bleiben unangetastet. Nur bei gestoppter Instanz. - Die Binary-Spalte ist wie in der Upper UI schmaler.
- Reupper-Instanzen lassen sich im Dashboard aktualisieren: die Spalte Version zeigt die aus der Binary gelesene Version; daneben prüft die UI automatisch auf eine neuere Release. Ein Update-Button öffnet den Dialog (installierte/neue Version, Release-Text, Force). Download von
v0.18.0
- feature:
- Die History-Tabelle unter
/reupper/historyhat jetzt sortierbare Spalten. Klick auf den Spaltenkopf wechselt zwischen auf- und absteigend; die Sortierung läuft serverseitig über die gesamte Historie (nicht nur die aktuelle Seite) und bleibt über Pagination und URL (?sort=/?order=) erhalten. Sortierbar sind Name, Size, Hoster, Crypter erstellt/bearbeitet, Zuletzt abgeschlossen, Reuploads und Status. Link und Aktionen bleiben unsortierbar. Der erste Klick auf Reuploads (und andere numerische/Zeit-Spalten) startet absteigend.
- Die History-Tabelle unter
v0.17.1
Live seit 3. August 2026 zusammen mit Go-Reupper v2026.11.1.
- refactor:
- Das bisherige, mehr als 2.000 Zeilen große
app.jsist jetzt in native ES-Module für Navigation, UI-Helfer und die einzelnen Funktionsbereiche aufgeteilt. Fachlicher Zustand und Event-Bindings bleiben dadurch lokal; ein Embed-Test prüft alle relativen Modulimporte.
- Das bisherige, mehr als 2.000 Zeilen große
- bugfix:
- Die eingebetteten HTTP-, Hoster-, Crypter-, Content-, Download- und Zoom-Clients verwenden jetzt
reqv3.60.0 direkt; das internereqcompat-Paket wurde vollständig entfernt und Multipart-Dateien werden beim Upload gestreamt statt vollständig gepuffert.
- Die eingebetteten HTTP-, Hoster-, Crypter-, Content-, Download- und Zoom-Clients verwenden jetzt
v0.17.0
Live seit 24. Juli 2026.
- feature:
- Das Dashboard bietet jetzt pro Instanz eine Debug-Checkbox vor Prio only. Sie wird bei Web-, CMD- und Background-Starts als
--debug=truean den Reupper-Prozess weitergereicht und kann mit Prio only kombiniert werden. - Unter Einstellungen > Remote Sources steht jetzt derselbe FTP/FTPS/SFTP-Manager wie in der Upper UI bereit: Reupper-Instanzauswahl, Status und Release-Zähler, Verbindungsdialog mit sicherem Secret-Handling, Verbindungstest, Remote-Browser sowie Section-Aktivierung und -Speicherung.
- Die neuen Reupper-Endpunkte unter
/api/reupper/remote/*lesen und schreiben ausschließlich die ausgewähltego-reupper-Instanz. Eine gesetzte externeremoteConfigwird genauso wie in Upper aufgelöst und aktualisiert. - Neuer Menüpunkt Priority Queue: Reuploads lassen sich per vollständigem Titel oder exakter Ordner-ID vormerken, bearbeiten und löschen. Ein Titel priorisiert alle aktuell offline gefundenen Ordner mit diesem Titel. Die Einträge werden persistent in
reupper-ui.dbgespeichert und dem aus der UI gestarteten Reupper über/api/priority-queuebereitgestellt. - Das Dashboard bietet pro Instanz die Checkbox Prio only. Ist sie aktiviert, starten Web, CMD und Background ausschließlich einen einmaligen Lauf für die aktuell passenden Einträge der Priority Queue.
- Die Reupper UI kann mit
REUPPER_UI_ADDRauf eine alternative Listen-Adresse gelegt werden; der gestartete Worker verwendet automatisch dieselbe Adresse für seine UI-API-Aufrufe. Ohne Variable bleibt der bisherige Standard:3000bestehen.
- Das Dashboard bietet jetzt pro Instanz eine Debug-Checkbox vor Prio only. Sie wird bei Web-, CMD- und Background-Starts als
- bugfix:
- Die Instanzen-Tabelle nutzt jetzt wie die Upper UI eine automatische Spaltenbreite. Dadurch kann die Binary-Spalte schrumpfen und die Debug-/Priority- sowie Start-Aktionen bleiben vollständig sichtbar.
- Die Remote-Sources-Seite übernimmt jetzt auch die fehlenden Upper-Basisstyles für Statusraster, Instanz-Auswahl, Status-Kacheln und Modaltexte. Damit entspricht die Anordnung im Reupper wieder der Upper-Ansicht und bricht auf kleinen Displays kontrolliert auf eine Spalte um.
- Priority-Einträge werden vor der Verarbeitung atomar mit einer Lease geclaimt, damit parallele UI-Worker denselben priorisierten Container nicht doppelt starten. Überlappende Titel-/Ordner-ID-Einträge werden gemeinsam abgeschlossen, HTTP-Fehler bleiben sichtbar, und PATCH-Fehler erscheinen direkt im Bearbeiten-Modal.
v0.16.0
Live seit 13. Juli 2026.
feature:
- Die Queue-Seite bietet jetzt den Button Aufräumen. Er verschiebt alle Einträge mit Status
doneodererrortransaktional in die containerbasierte History;pendingundprogresssowie die zugehörigen Workdirs bleiben unberührt. - Neben Starten (Web) steht jetzt der kontrastreichere Button Starten (CMD) zur Verfügung. Der Endpoint
GET /api/instance/:id/start-legacyverwendet unter Windows wieder den früheren Start übercmd /k start /wait cmd.exe /k .... Starten (Background) nutzt weiterhinGET /api/instance/:id/startund befindet sich im Drei-Punkte-Menü. - Neue System-Seite unter Einstellungen > System (Sidebar, klappbar wie in der Upper UI): zeigt Größe/Freelist/Tabellen/Zeilen der lokalen
reupper-ui.db, dazu VACUUM, DB-Download (GET /api/reupper/system/database/download) und per-Tabelle Truncate (POST /api/reupper/system/database/tables/:table/truncate) sowie Datei-/SQLite-/Schema-Details. RouteGET /reupper/system, API unter/api/reupper/system/database/*. Seite läuft komplett über die SPA-Nav (kein Reload) und wird nicht vom 30s-Auto-Refresh getriggert. - Datenbank-Sektion (Reset/Vacuum) vom Dashboard entfernt — die Wartung lebt jetzt gebündelt auf der System-Seite. Die alten
/reupper/db/reset- und/reupper/db/vacuum-Routen bleiben als Redirect-Compat erhalten, derconfirmDBReset/Reset-Button-JS ist ersatzlos gestrichen.
- Die Queue-Seite bietet jetzt den Button Aufräumen. Er verschiebt alle Einträge mit Status
refactor:
upper_system.go: SQLite-Pfad-Auflösung in generischen HelperresolveSQLiteDatabasePath(db, fallbackFile)extrahiert;BuildUpperDatabaseInfodelegiert anbuildDatabaseInfo. Neuesreupper_system.gonutzt dieselben generischen SQLite-Diagnostik-Helfer mitdatabase/reupper-ui.dbals Fallback.- Vier neue Tests für
BuildReupperDatabaseInfo,VacuumReupperDatabaseundTruncateReupperDatabaseTable(happy path + unknown/internal-table-Guards), analog zu den Upper-Tests. Bestehende Upper-Tests bleiben unangetastet grün.
bugfix:
- Die breite History-Tabelle bleibt jetzt innerhalb des Panels horizontal scrollbar; die Aktionen-Spalte ist rechts fixiert, sodass der Lösch-Button auch auf kleineren Monitoren vollständig sichtbar und erreichbar bleibt.
- Die History wird jetzt über
container_idzusammengeführt: Jeder Container erscheint nur einmal, weitere erfolgreiche Reuploads aktualisieren die Metadaten und erhöhen den bestehendenreuploads-Zähler. Beim Start werden vorhandene Dubletten konsolidiert und ein partieller Unique-Index verhindert neue aktive Dubletten; Einträge ohne Container-ID bleiben aus Sicherheitsgründen getrennt. - Verwaiste Queue-Einträge mit
status=progresskönnen jetzt gelöscht werden, sobald keine Reupper-Instanz mehr aktiv ist. Solange eine Instanz läuft, bleibt der Schutz vor dem Löschen eines gerade bearbeiteten Workdirs bestehen. - Das Web-Terminal startet mit einer sicheren PTY-Größe von 80x24 und passt Zeilen sowie Spalten danach dynamisch an das skalierbare Browserfenster an. Linux-PTY und Windows-ConPTY erhalten jede Größenänderung, sodass Terminal-Anwendungen wie Curl-Upload-Fortschrittsbalken sichtbar bleiben und die verfügbare Fläche vollständig nutzen.
- Automatisch abgeschlossene Reuploads werden über
POST /api/queue/:id/completeohne Dateisystem-Cleanup archiviert. Workdir-Cleanup bleibt dem Worker beziehungsweise ausdrücklichen manuellen Queue-Löschungen vorbehalten; bei einem DB-Fehler wird vor dem manuellen Cleanup abgebrochen. - Erfolgreiche Reuploads werden beim Abschluss automatisch und transaktional von der Queue in die History verschoben. Die History zeigt Crypter-Zeitpunkte formatiert und zusätzlich den tatsächlichen Abschluss-/Archivierungszeitpunkt an.
- Die History-Seite zeigt jetzt alle in der History-Tabelle gespeicherten Einträge an. Der bisherige Statusfilter blendete insbesondere archivierte Einträge mit
pending,progressoder fehlendem Status aus; Zähler, Suche und Pagination verwenden nun konsistent den vollständigen History-Bestand. - “Starten (mit Terminal)” startete unter Windows nichts: der WS-Handler nutzte
creack/pty’spty.Start, das auf WindowsErrUnsupportedliefert. Neues Packageinternal/pkg/termprockapselt den Prozessstart plattformübergreifend — Unix bleibt beicreack/pty, Windows verwendet die native ConPTY-API (CreatePseudoConsole+CreateProcessmitPROC_THREAD_ATTRIBUTE_PSEUDOCONSOLE). Beide UIs (reupper-ui + upper-ui) nutzen jetzttermproc.Startstattpty.Start. - Windows-ConPTY-Start nachgeschaerft:
EXTENDED_STARTUPINFO_PRESENTwird jetzt korrekt alsCreateProcess-Flag gesetzt, undtermproc.Wait()meldet non-zero Exit-Codes auch unter Windows als Fehler. - Reupper-UI startet Windows-Instanzen beim Web-Terminal-Start jetzt mit einem sichtbaren Windows-Konsolenfenster als Fallback, falls ConPTY/Web-Terminal nicht initialisiert werden kann. Der Fallback setzt
active/pidweiter in der UI und überwacht den Prozess wie der normale Start. Terminal-Fehler bleiben im Browserfenster sichtbar, statt das Fenster direkt zu minimieren. - Queue-/History-Add-Endpoints (
POST /api/queue,POST /api/history) konnten den UI-Server crashen: bei fehlgeschlagenem DB-Createwurdeerr.Error()auf nil aufgerufen (nil-pointer-Panic), und da kein Recover-Middleware registriert war, riss das den ganzen reupper-ui-Prozess mit sich — danach schlug jederPostQueuedes Workers mit “connection refused” fehl und die Queue wurde nicht mehr befüllt. Fix: saubere Fehlerbehandlung ohne nil-Deref,Create(&queue)aufCreate(queue)(kein**mehr), plusrecover.New()-Middleware als erste Schicht in reupper-ui und upper-ui, sodass Panics künftig als 500 antworten statt den Server zu beenden. - Der Reupper-Worker hat sämtliche UI-API-Fehler (
PostQueue,PatchQueue, Stats) mit_ =still ignoriert — bei einem UI-Ausfall oder DB-Fehler blieb die Queue einfach leer, ohne dass eine Zeile geloggt wurde. AlleAPIService-Aufrufe inreupper_handler.gologgen Fehler jetzt über den Logger, sodass “Queue wird nicht befüllt” diagnostizierbar wird. - Queue- und History-Seite verwenden für Count, Revision-Header und Tabellenzeilen jetzt getrennte GORM-Query-Ketten. Dadurch kann der Revision-Scan (
MAX(updated_at)) die anschließende Page-Abfrage nicht mehr verunreinigen; der Eintragszähler kann nicht mehr hochzählen, während die Tabelle leer bleibt.
feature:
- Reupper-Instanzen können jetzt nachträglich bearbeitet werden: neuer Menüpunkt “Bearbeiten” im Dropdown der Instanz-Tabelle (zwischen “Starten/Stoppen” und “Löschen”) öffnet ein Modal mit
name+path, der viaPATCH /api/instance/:idpersistiert wird InstanceUpdateAPIHandlervalidiert Pfad-Existenz und verweigert Updates an laufenden Instanzen (active=true) mit HTTP 400, damit der Worker nicht auf einen weggeänderten Binary-Pfad läuft; Pfad-Duplikate mit anderen Instanzen liefern HTTP 409- Lizenz-Check im Dashboard läuft jetzt asynchron über
LicenseCache(ininternal/app/handler/license_cache.go): der erste Request nach Start blockiert maximalLicenseFirstTimeout(10 s) viaDoFastRequestToEliteLicenserLiteLicense; danach wird der Snapshot 6 h aus dem Cache geliefert und ein Background-Refresh aktualisiert das Ergebnis singleflight-geschützt. Bei Fehlern im Background-Refresh bleibt der zuletzt bekannteExpire-Wert erhalten, sodass das Dashboard selbst bei längerer Lizenzserver-Pause responsive bleibt - Bugfix:
GET /api/stats/dayshat dendays-Parameter überc.Params("days", "7")gelesen — die Route hat aber keinen:days-Pfad-Slot, der Aufruf fiel also immer auf den Default 7 zurück. Jetztc.Query("days", "7"); zusätzlich Validierung (1-365, sonst HTTP 400) und Echo des effektivendays-Werts in der Response - Dashboard-Chart “Reuploads letzte N Tage” hat jetzt ein Dropdown (7/30/90 Tage) im Panel-Header; die Auswahl triggert
GET /api/stats/days?days=N, baut die Chart neu auf und aktualisiert den Panel-Titel automatisch aus demdays-Feld der Response - Queue und History haben jetzt Bulk-Löschen: Checkbox-Spalte links, “Select all” im Header, eine sticky Bulk-Bar mit Counter, “Auswahl aufheben” und “Auswahl löschen”-Button über der Tabelle. Bestätigung kommt aus einem dedizierten Modal, nicht aus
window.confirm. Queue-Items mitstatus=progresswerden im Bulk-Request übersprungen und separat gezählt - History hat jetzt einen eigenen Lösch-Button pro Zeile (
DELETE /api/history/:id); vorher gab es in der History-Tabelle gar keine Aktionen
- Reupper-Instanzen können jetzt nachträglich bearbeitet werden: neuer Menüpunkt “Bearbeiten” im Dropdown der Instanz-Tabelle (zwischen “Starten/Stoppen” und “Löschen”) öffnet ein Modal mit
fix(build):
_publish-reupper-ui-updatehat die Update-Artefakte alsreupper-ui-latest.json/reupper-ui-manifest.jsongepublished; der Updater fragt aberhttps://go-toolz.com/dl/reupper-ui/latest.jsonab (DefaultReupperUIUpdateManifestURL), wodurch jeder Klick auf “Update” mitmanifest download failed: HTTP 404fehlschlug. Target angeglichen anrelease-upper-ui: erzeugt und lädt jetztlatest.json,manifest.jsonund zusätzlichlatest.zip(neben der versionierten$(name).zip) hoch; SHA256 wird auflatest.zipgebildet
internal:
- Sechs neue HTTP-Tests für
InstanceUpdateAPIHandler(unknown, active, path-missing, duplicate, same-path no-op, happy path) - Sieben neue Tests für
LicenseCacheinkl.-race(first call synchron, kein Refresh innerhalb TTL, async Refresh nach TTL, Singleflight, Error-Pfad mit Expire-Preservation, inaktive Lizenz, Error ohne Fallback) - Sechs neue Tests für
StatsDaysAPIHandler(default 7, custom param, non-integer, out-of-range, window-clip, category-filter) - Zwoelf neue Tests für Bulk-Löschen: Queue all-pending, skip-progress, empty, oversized, dedup, not-found, invalid-JSON; History single happy + not-found; History bulk happy + empty + missing
QueueDeleteAPIHandlerundQueueBulkDeleteAPIHandlerteilen sich die Kern-Logik (Progress-Guard, Workdir-Cleanup, History-Promotion) überdeleteOneQueueItem; CapbulkDeleteMaxItems = 500ReupperUIVersionist im Quellcode und in den Live-Binaries auf0.16.0gesetzt; Release-Builds können den Wert weiterhin per ldflags überschreiben
- Sechs neue HTTP-Tests für
v0.5.0
- fix(build):
make release-reupper-uipatcht jetzt die Quell-ReupperUIVersionüber-ldflags "-X ...=$$VERSION"währendbuild-reupper-ui, sodass der ausgelieferte Binary konsistent zur übergebenenVERSIONist (vorher nur die Built-Binaries; der Source-Wert blieb auf0.4.1-BETAhängen)
- chore:
- Accidental stub
cmd/reupper-ui/ui/views/reupper/queue2.htmlentfernt (nicht referenziert)
- Accidental stub
- feature:
- Reupper UI hat jetzt einen Update-Button in der Topbar, der die aktuelle Release-Information aus
latest.jsonlädt, Zielversion + Release-Text anzeigt und auf Bestätigung das Update herunterlädt, über einen detached Helper-Prozess installiert und die UI neu startet (analog Go-Upper UI Mechanik) - Update-Manifest holt standardmäßig
https://go-toolz.com/dl/reupper-ui/latest.json/latest.zip(perREUPPER_UI_UPDATE_MANIFEST_URL/REUPPER_UI_UPDATE_URLüberschreibbar); SHA256-Prüfsumme wird verifiziert, wenn im Manifest hinterlegt - Update-Dialog bietet eine Force-Checkbox, um dieselbe Live-Version bewusst erneut zu installieren (Reparatur einer kaputten Installation)
- Der self-update überführt das
database/,config/,files/,log/undversions/-Verzeichnis unverändert und startet den frischen UI-Prozess aus dem selben Install-Pfad make release-reupper-ui VERSION=0.5.0 CHANGES="..." FTP_HOST=... FTP_USER=... FTP_PASS=...baut die Plattform-Binaries mit gepatchterReupperUIVersion, publiziert das Release-ZIP wie bisher permega-putund lädt zusätzlichlatest.zip+latest.jsonperlftpauf/public_html/dl/reupper-ui(gleicher Workflow wierelease-upper-ui; ohneCHANGES/FTP_*-Vars bleibt das altemega-put-Verhalten erhalten)- Neuer Header
#reupper-ui-update-button+ Modal#reupperUIUpdateModalsowie passende CSS-Klassen.update-meta,.update-release-text,.update-force-check
- Reupper UI hat jetzt einen Update-Button in der Topbar, der die aktuelle Release-Information aus
v0.4.3-BETA
- feature:
- Queue- und History-Tabellen bekommen jetzt einen Index auf
updated_at,hosterundstatus; damit brechen tiefe Seiten (80k+ History-Items) nicht mehr in Full-Table-Scans + externe Sort-Schritte ein - Queue- und History-Suche läuft jetzt serverseitig über den neuen
?q=-Parameter (LIKE aufname/hoster) statt nur über die sichtbaren 50 Zeilen; das Suchfeld ist debounced (300 ms), behält seinen Wert beim Reload und das Pagination-Label zeigt zusätzlich “gefiltert aus X” an - Prev/Next-Buttons springen jetzt über Cursor (
?cursor=...&dir=next|prev) statt über OFFSET — auch in 1600-Seiten-Tabellen bleibt jeder Klick O(pageSize) statt O(offset); die Buttons tragendata-cursor/data-dir, der Page-Jumper schaltet bei Bedarf wieder in den OFFSET-Modus zurück - Pagination-Bar hat jetzt einen Page-Jumper (Eingabefeld neben Prev/Next) für direkte Seiten-Sprünge auch bei mehreren hundert Seiten
- Auto-Refresh der Queue/History-Seite läuft jetzt alle 30 s (vorher 15 s) und überspringt den vollen innerHTML-Render, wenn der Server meldet, dass sich die Revision (Row-Count + max(updated_at)) nicht geändert hat (Header
X-Reupper-UI-Revision) - Refactor:
loadItemsPageist jetzt generisch über[T any](Queue + History benutzen denselben Helper, kein Reflection-Trick mehr), und pro Request läuft nur noch eineCOUNT(*)statt zwei bis vier
- Queue- und History-Tabellen bekommen jetzt einen Index auf
- internal:
Itemsexponiert jetztGetID()/GetUpdatedAt(), damit dascursorLocator-Constraint die eingebettetenQueue/History-Typen ohne Reflection akzeptiert
v0.4.2-BETA
- feature:
- Lösch-Button in der Queue raeumt jetzt auch das Workdir (
<Path.Work|Path.Base/files>/<containerId>/) des Eintrags auf, damit abgebrochene/fehlerhafte Items nicht als Waisen auf der Platte liegen bleiben und der Reupload ohne manuelle FS-Bereinigung neu starten kann - Queue-Einträge tragen jetzt die
container_id(UUID) des Workers; damit weiss die UI, welches Workdir zum Eintrag gehoert - Reupper-UI lädt optional die
reupper.config(gleiche Datei wie der Worker), um anpath.base/path.workzu kommen; ist die Datei nicht erreichbar, läuft die UI wie bisher und überspringt das Workdir-Cleanup still
- Lösch-Button in der Queue raeumt jetzt auch das Workdir (
- bugfix:
- Löschen eines Queue-Eintrags mit
status=progress(Worker verarbeitet das Item gerade) wird jetzt mit HTTP 409 abgelehnt, statt das Workdir unter laufendem Worker zu löschen - Antwort auf
DELETE /api/queue/:idliefert bei nicht gefundenen Einträgen HTTP 404 statt 200 mit"nothing deleted"
- Löschen eines Queue-Eintrags mit
v0.4.1-BETA
- feature:
- Linkcrypter-Seite unterstützt jetzt alle konfigurierten Linkcrypter-Services (Filecrypt, hide.cx, Tolink); der aktive Service wird als Status-Pill in der Topbar angezeigt und der Sync-Button holt die passenden Container-Statistiken vom jeweiligen Anbieter
- Wenn
linkcrypter.serviceleer ist, fällt die UI zusätzlich auf den erstenlinkcrypter.backup.services-Eintrag mit hinterlegtem API-Key zurück, sodass z.B. eine reinehide-Backup-Konfiguration ebenfalls synchronisiert werden kann - Setup-Hinweis erscheint in der UI, sobald kein Linkcrypter API-Key konfiguriert ist; Sync-Button ist in diesem Fall deaktiviert
v0.4.0-BETA
- feature:
- Komplettes UI-Redesign analog Go-Upper UI: Bootstrap 5 + Lucide Icons, einheitliches Designsystem (Topbar, dunkle Sidebar, Panels, Status-Pills, Metric-Kacheln)
- SPA-artige Seitennavigation via Fetch ohne Full-Page-Reload (Partial-Rendering über
X-Reupper-UI-PartialHeader) - Neue Dashboard-Struktur mit Metric-Kacheln für Instanzen/Reuploads/Bandbreite/Lizenz sowie Charts für “Reuploads letzte 7 Tage” und “Reuploads nach Hoster”
- Queue komplett auf Bootstrap-Tabelle mit Live-Suche, Status-Pills und Modal-Bearbeitung umgestellt; jQuery und DataTables entfernt
- History- und Filecrypt-Seiten auf Bootstrap-Tabellen mit Status-Pills und Empty-States migriert
- Instanzen-Tabelle mit Dropdown-Aktionen (Start/Stop/Löschen) und Terminal-Start via Button
- Vendor-Assets (Bootstrap, Lucide, Chart.js, xterm) lokal eingebettet, keine CDN-Abhängigkeiten mehr
- Versionsanzeige für UI und Reupper-Binary in der Topbar
- Database-Reset mit Bestätigungs-Klick (Zweiklick-Flow gegen versehentliches Löschen)
- Responsive Layout (Sidebar kollabiert auf Icons, Metrics stapeln auf schmalen Viewports)
- Serverseitige Pagination für Queue und History (50 Einträge pro Seite) mit Prev/Next-Navigation, Seiten-Anzeige (“Seite X / Y”), Bereichs-Label (“1-50 von 125”) und Clamp-Logik für out-of-range Seiten
- Linkcrypter-Seite ersetzt Filecrypt: zeigt Container-Statistiken (Online/Offline/Partial/Unchecked/Uncheckable/Error/Gesamt) als Metric-Kacheln, farbige Verteilungs-Bar mit Legende und Detail-Tabelle; Werte werden in der UI-Datenbank gespeichert (linkcrypter_stats Tabelle) und ein Sync-Button aktualisiert die Daten per filecrypt UserStats-API auf Knopfdruck
- bugfix:
- Bandwidth-Metric zeigt jetzt sichwerte Defaults wenn kein Dashboard-Eintrag existiert
- Filecrypt-State-Auswahl lädt Daten asynchron ohne Page-Reload
- Shutdown-Button (X in der Topbar) beendet jetzt den Fiber-Prozess sauber via
POST /api/reupper-ui/shutdown(zuvor wurde nur das Fenster geschlossen, nicht der Server)
v0.3.0-BETA
- feature:
- handle terminal with sockets in the browser
- stable terminal handling
- disable upload publishing targets when configured credentials are missing
- Publishing-Presets können auf einer eigenen Presets-Seite in der UI-Datenbank verwaltet, im Upload-Edit-Tab als Buttons angewendet und pro Upload-Typ automatisch vorselektiert werden; Preset-Ziele unterstützen feste Targets oder Auto-Target per bestehender Mapping-Logik
- Publishing-Presets können in einem eigenen Layer neu angelegt und bearbeitet werden
- small improvements
- bugfix:
- upper-ui importiert Templates jetzt pro Go-Upper-Instanz und verarbeitet Publishing-Ziele mit der Config der jeweiligen Upload-Instanz
- upper-ui Remote Sources liest und schreibt Remote-Konfigurationen jetzt für die ausgewählte Go-Upper-Instanz statt implizit für die erste gefundene Config
- die Presets-Seite zeigt bei der Instanz-Auswahl “Alle / Global” jetzt die Presets aller Go-Upper-Instanzen an
v0.2.0-BETA
- improvements:
- reorder boxes on dashboard
- reorder some links in Queue
- feature:
- Queue: add edit button
- Queue: add delete button
- Dashboard: add stats box for “Reuploads by Hoster”
v0.1.0-BETA1
- feature:
- working web ui
- Dashboard to setup existing reupper instances
- Queue to manage reuploaded items