Skip to content

marcogracklauer/ceph-s3-manager

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ceph S3 Manager

Desktop-GUI zur Verwaltung von IAM-Usern, Access-Keys und S3-Buckets auf einem Ceph-kompatiblen S3-Endpunkt.

English version below


Features

  • 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

Voraussetzungen

  • Python 3.10+
  • PySide6
  • boto3
pip install PySide6 boto3

Konfiguration

  1. config.ini.example nach config.ini kopieren:
    cp config.ini.example config.ini
  2. Zugangsdaten und Einstellungen in config.ini eintragen:
    [ceph]
    endpoint   = https://s3.example.com
    access_key = DEIN_ACCESS_KEY
    secret_key = DEIN_SECRET_KEY
    region     = default
    language   = de

Sprachauswahl

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.

Starten

python ceph.py

Aufbau

ceph-s3-manager/
├── ceph.py              # Hauptanwendung
├── config.ini.example   # Vorlage
├── lang/
│   ├── en.json          # Englische Übersetzung
│   └── de.json          # Deutsche Übersetzung
├── .gitignore
└── README.md

Architektur

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.

Kompatibilität

Entwickelt und getestet mit Ceph S3 (RadosGW). Sollte mit jedem S3-kompatiblen Endpunkt funktionieren, der die IAM-API unterstützt.


Ceph S3 Manager (English)

Desktop GUI for managing IAM users, access keys, and S3 buckets on a Ceph-compatible S3 endpoint.

Features

  • 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 .txt file
  • Multilingual UI – interface available in English and German
  • Responsive GUI with progress bar

Requirements

  • Python 3.10+
  • PySide6
  • boto3
pip install PySide6 boto3

Configuration

  1. Copy config.ini.example to config.ini:
    cp config.ini.example config.ini
  2. 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

Language Selection

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.

Running

python ceph.py

Project Structure

ceph-s3-manager/
├── ceph.py              # Main application
├── config.ini.example   # Configuration template
├── lang/
│   ├── en.json          # English translations
│   └── de.json          # German translations
├── .gitignore
└── README.md

Architecture

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.

Compatibility

Developed and tested with Ceph S3 (RadosGW). Should work with any S3-compatible endpoint that supports the IAM API.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages