Databasement - Datenbankzugriff per Web-Oberfläche vereinfachen

Databasement - Datenbankzugriff per Web-Oberfläche vereinfachen

Databasement ist eine selbst gehostete Web-Oberfläche für den Zugriff auf verschiedene Datenbanktypen — ohne lokale Client-Installation und mit rollenbasierter Zugriffskontrolle.

Was ist Databasement?

Tools wie phpMyAdmin sind auf MySQL beschränkt, während viele moderne Stacks PostgreSQL, SQLite oder sogar Redis einsetzen. Databasement unterstützt mehrere Datenbanktypen aus einer einzigen Oberfläche. Datenbankverbindungen werden zentral konfiguriert, Benutzer erhalten granulare Zugriffsrechte, und Abfragen können gespeichert sowie als Team geteilt werden. Damit eignet sich Databasement besonders für Teams, die Datenbankzugriff sicher delegieren wollen, ohne jedem Mitglied direkte Server-Zugangsdaten zu geben.

Voraussetzungen

  • Docker 20.10+ / Docker Compose
  • Netzwerksicht auf die Zieldatenbanken (gleiches Docker-Netzwerk oder erreichbare IP)
  • Optional: LDAP- oder OAuth-Anbindung für Single Sign-On

Compose-Beispiel

services:
  databasement:
    image: ghcr.io/databasement/databasement:latest
    container_name: databasement
    restart: unless-stopped
    ports:
      - "8400:8400"
    volumes:
      - ./config:/config
    environment:
      - TZ=Europe/Berlin
      - ADMIN_USER=admin
      - ADMIN_PASSWORD=sicheres_passwort
      - SESSION_SECRET=langer_zufaelliger_string
      - ENCRYPTION_KEY=32_zeichen_langer_schluessel

Hinweise

  • Datenbankverbindungen werden verschlüsselt in der Konfigurationsdatei gespeichert — der ENCRYPTION_KEY darf nicht verloren gehen, da sonst gespeicherte Passwörter nicht mehr entschlüsselt werden können.
  • Databasement sollte niemals ohne Authentifizierung öffentlich erreichbar sein; der Einsatz hinter einem Reverse-Proxy mit zusätzlicher HTTP-Authentifizierung ist empfohlen.
  • Gespeicherte Abfragen lassen sich in Ordnern organisieren und mit anderen Benutzern teilen.
  • Verbindungen zu Containern im selben Compose-Stack werden über den Containernamen als Hostname aufgelöst.