Desktop-GUI zur Verwaltung von IAM-Usern, Access-Keys und S3-Buckets auf einem Ceph-kompatiblen S3-Endpunkt.
- IAM-User verwalten – anlegen, löschen, Access-Keys einsehen
- Access-Keys – Keys anzeigen, löschen, neue generieren
- S3-Buckets – anlegen, löschen (inkl. Inhalt), mit User verknüpfen
- Account-Setup – User + Bucket + IAM-Policy in einem Schritt
- Export – Zugangsdaten als
.txt-Datei speichern - Mehrsprachigkeit – Benutzeroberfläche auf Deutsch oder Englisch
- Responsive GUI mit Fortschrittsbalken
- Python 3.10+
- PySide6
- boto3
pip install PySide6 boto3config.ini.examplenachconfig.inikopieren:cp config.ini.example config.ini
- Zugangsdaten und Einstellungen in
config.inieintragen:[ceph] endpoint = https://s3.example.com access_key = DEIN_ACCESS_KEY secret_key = DEIN_SECRET_KEY region = default language = de
Die Sprache der Benutzeroberfläche wird über den language-Schlüssel in config.ini gesteuert:
| Wert | Sprache |
|---|---|
en |
Englisch (Standard-Fallback) |
de |
Deutsch |
Die Sprachdateien liegen als JSON-Dateien im Verzeichnis lang/:
lang/
├── en.json # Englisch
└── de.json # Deutsch
Ist die angegebene Sprache nicht vorhanden, fällt die Anwendung automatisch auf Englisch zurück. Eigene Übersetzungen können durch Hinzufügen einer neuen <sprachcode>.json-Datei nach demselben Schema ergänzt werden.
python ceph.pyceph-s3-manager/
├── ceph.py # Hauptanwendung
├── config.ini.example # Vorlage
├── lang/
│ ├── en.json # Englische Übersetzung
│ └── de.json # Deutsche Übersetzung
├── .gitignore
└── README.md
Die Anwendung besteht aus drei Schichten:
| Schicht | Beschreibung |
|---|---|
| UI (Main-Thread) | PySide6-Widgets, QStackedWidget für Panels |
| Worker (QThreadPool) | boto3-Aufrufe laufen im Hintergrund |
| Signals | Thread-sichere Kommunikation von Worker → UI |
Panels werden einmalig beim Start erstellt und per setCurrentIndex() umgeschaltet – kein Widget-Destroy/Recreate, keine Rendering-Verzögerungen.
Entwickelt und getestet mit Ceph S3 (RadosGW). Sollte mit jedem S3-kompatiblen Endpunkt funktionieren, der die IAM-API unterstützt.
Desktop GUI for managing IAM users, access keys, and S3 buckets on a Ceph-compatible S3 endpoint.
- IAM user management – create, delete, view access keys
- Access keys – view, delete, generate new keys
- S3 buckets – create, delete (including contents), link to users
- Account setup – user + bucket + IAM policy in a single step
- Export – save credentials as a
.txtfile - Multilingual UI – interface available in English and German
- Responsive GUI with progress bar
- Python 3.10+
- PySide6
- boto3
pip install PySide6 boto3- Copy
config.ini.exampletoconfig.ini:cp config.ini.example config.ini
- Fill in your credentials and settings in
config.ini:[ceph] endpoint = https://s3.example.com access_key = YOUR_ACCESS_KEY secret_key = YOUR_SECRET_KEY region = default language = en
The UI language is controlled by the language key in config.ini:
| Value | Language |
|---|---|
en |
English (default fallback) |
de |
German |
Translation files are stored as JSON files in the lang/ directory:
lang/
├── en.json # English
└── de.json # German
If the specified language file does not exist, the application automatically falls back to English. Custom translations can be added by placing a new <language-code>.json file in the lang/ directory following the same key schema.
python ceph.pyceph-s3-manager/
├── ceph.py # Main application
├── config.ini.example # Configuration template
├── lang/
│ ├── en.json # English translations
│ └── de.json # German translations
├── .gitignore
└── README.md
The application is divided into three layers:
| Layer | Description |
|---|---|
| UI (main thread) | PySide6 widgets, QStackedWidget for panels |
| Worker (QThreadPool) | boto3 calls run in the background |
| Signals | Thread-safe communication from worker → UI |
Panels are created once at startup and switched via setCurrentIndex() — no widget destroy/recreate, no rendering delays.
Developed and tested with Ceph S3 (RadosGW). Should work with any S3-compatible endpoint that supports the IAM API.