Hallo zusammen,
im Rahmen der Projektvorstellungen in dieser Kategorie wird das quelloffene Werkzeug Pail präsentiert – ein leichtgewichtiger, plattformübergreifender Desktop-Manager und ein begleitendes CLI-Tool für S3-kompatiblen Objektspeicher.
Das Projekt richtet sich an Administratoren, Entwickler und Self-Hosting-Anwender, die regelmäßig mit S3-Endpunkten arbeiten – sei es Amazon S3, Cloudflare R2, Wasabi oder lokal gehostete Instanzen wie MinIO, Ceph und VersityGW.
- Website: https://pail.download/
- GitHub: https://github.com/DejavuMoe/Pail
- Lizenz: MIT License
Wichtigste Funktionen und Architekturmerkmale
- Native Go-Architektur: Die Anwendung ist vollständig in Go geschrieben und verzichtet vollständig auf Electron oder eingebettete Webview-Komponenten. Daraus resultieren sofortige Startzeiten und ein minimaler Arbeitsspeicherbedarf.
- Keine Telemetrie: Es werden keinerlei Telemetrie- oder Nutzungsdaten erfasst. Es existieren keine automatisierten Hintergrundanfragen an externe Update-Server.
- Sichere Authentifizierung: Unterstützung für Access Keys, AWS-Profile, Credential Chains, AssumeRole und anonymen Zugriff. Sensible Schlüssel werden verschlüsselt in der systemeigenen Schlüsselverwaltung (Linux Secret Service, Windows Credential Manager, macOS Keychain) oder in einem lokalen verschlüsselten Vault verwaltet.
- Unterstützung für Self-Hosting: Endpunkte, Regionen und Path-Style-Adressierung lassen sich für private MinIO- oder Ceph-Cluster manuell konfigurieren. Eine integrierte Verbindungsprüfung testet die Erreichbarkeit vor dem Speichern.
- Datentransfer und Synchronisation:
- Getrennte Übertragungswarteschlangen für Upload und Download mit konfigurierbarer Parallelität und Geschwindigkeitsanzeige.
- Checksum-geprüfte Multipart-Uploads sowie atomares Schreiben von Downloads über temporäre Dateipuffer.
- Mehrstufige Konfliktbehebung (Überspringen, Überschreiben, Beibehalten beider Dateien, Überschreiben bei neuerem Datum oder geänderter Größe).
- Konfigurierbare Ordner-Synchronisationsaufträge (Vergleich nach Zeit/Größe oder Prüfsumme) mit vollständiger Vorschau (Dry-Run) vor der Ausführung.
- Bucket- und Objektverwaltung:
- Konfiguration von 14 Bucket-Attributen (u. a. Lifecycle-Regeln, CORS, Zugriffsrichtlinien, SSE-Verschlüsselung, Versionierung, Object Lock und statisches Website-Hosting) per GUI-Formular oder als Roh-JSON.
- Integrierte Dateivorschau für Textformate (JSON, XML, CSV), Bilder und Hex-Ansicht.
- Erstellung zeitlich begrenzter Presigned URLs (GET/PUT) sowie Unterstützung für benutzerdefinierte CDN-Domains.
- Integrierte CLI: Das beiliegende Kommandozeilenwerkzeug (pail) greift nahtlos auf dieselbe Konfigurationsumgebung, dieselben Synchronisationspläne und dieselben gespeicherten Schlüssel zu wie die Desktop-Oberfläche.
- Lokaler Demo-Modus: Der Startparameter pail-desktop --demo initiiert einen vollständig im Arbeitsspeicher laufenden S3-Mock-Server für Testläufe ohne externe Infrastruktur.
Vorkompilierte Binärpakete stehen für Linux (x64, Arm64), Windows (x64, Arm64) und macOS (Apple Silicon, Intel) bereit.
Rückmeldungen, konstruktive Kritik und Problemberichte über das GitHub-Repository sind jederzeit willkommen.
---
For English users:
Hello everyone,
This post introduces Pail, an open-source, lightweight desktop manager and headless CLI designed for S3-compatible object storage.
The tool is aimed at developers, system administrators, and self-hosters who regularly interact with object storage backends, including Amazon S3, Cloudflare R2, Wasabi, or self-hosted systems like MinIO, Ceph, and VersityGW.
- Website: https://pail.download/
- GitHub: https://github.com/DejavuMoe/Pail
- License: MIT License
Key Features & Technical Details
- Native Go Implementation: Built entirely in Go without Electron or system Webview dependencies, resulting in instant startup times and very low RAM consumption.
- Zero Telemetry: No analytics, telemetry tracking, or background update pings.
- Secure Credential Handling: Works with Access Keys, AWS profiles, standard credential chains, AssumeRole, and anonymous access. Secrets are stored securely in the native OS keychain (Linux Secret Service, Windows Credential Manager, macOS Keychain) or an encrypted vault file.
- Self-Hosted Storage Ready: Allows explicit configuration of custom endpoints, regions, and path-style addressing for local MinIO or Ceph instances, with integrated pre-flight connection testing.
- Transfer & Sync Engine:
- Separate upload and download queues with adjustable concurrency, bandwidth monitoring, pause, and retry capabilities.
- Checksum-verified multipart uploads and atomic downloads via temporary write verification.
- Comprehensive conflict resolution: skip, overwrite, keep both, overwrite if newer, or overwrite if file size differs.
- Dedicated sync jobs with pattern exclusion, dry-run plan inspection, and comparison by size/time or checksums.
- Bucket Administration & Inspection:
- Direct configuration of 14 bucket settings (Lifecycle rules, CORS policies, IAM policies, SSE encryption, Versioning, Object Lock, static site hosting, and multipart cleanup) via form inputs or raw JSON.
- File inspector with integrated previews for text formats (JSON, XML, CSV), images, and raw hex representation.
- Presigned URL generation (GET/PUT) with configurable TTL and optional CDN base domain mappings.
- Headless CLI Included: Ships with an independent pail CLI that shares the exact same configuration directory, sync jobs, and stored credentials with the desktop client.
- Built-in Demo Environment: Running pail-desktop --demo spins up an in-process, in-memory mock S3 server for rapid evaluation without credentials.
Pre-built binaries are available for Linux (x64, Arm64), Windows (x64, Arm64), and macOS (Apple Silicon, Intel).
Technical feedback, feature suggestions, and issue reports on GitHub are warmly appreciated.