Auf einem atomaren Betriebssystem wie Fedora Silverblue oder überall dort, wo Reproduzierbarkeit zählt, ist eine saubere Kapselung Pflicht. Pivot-Stack löst dieses Problem durch eine schlanke, modular aufgebaute Container-Architektur für interaktive CLI-Arbeit und Headless-Dienste.

Motivation und Architektur

Pivot-Stack trennt interaktives Arbeiten bewusst vom Betrieb langlebiger Services. Das Repository stellt zwei Kern-Images bereit:

  %%{init: {'flowchart': {'curve': 'stepAfter'}}}%%
flowchart TD
    Stack[fa:fa-cubes <b>Pivot-Stack</b>]
    
    Stack --> Toolbox[fa:fa-terminal <b>pivot-toolbox</b><br/><i>Interaktive CLI</i>]
    Stack --> Server[fa:fa-server <b>pivot-server</b><br/><i>Headless Runtime</i>]

    subgraph CLI ["Lokale Entwicklung"]
        Toolbox --> T1["• Compiler & Rust Toolchain"]
        Toolbox --> T2["• CLI Utilities (uv, fzf, duckdb)"]
        Toolbox --> T3["• Transparentes Host-Mounting"]
    end

    subgraph Srv ["Dienste & Dashboards"]
        Server --> S1["• Marimo Notebook Server"]
        Server --> S2["• Web Dashboards & APIs"]
        Server --> S3["• Isolierter Netzwerkbetrieb"]
    end
  1. pivot-toolbox (Interaktive CLI-Umgebung) Optimiert für Terminal-Workflows (via Podman oder Distrobox). Enthält Compiler, Shell-Utilities und Data-Science-Toolchains. Das Host-Projektverzeichnis wird transparent eingehängt, sodass User-IDs und Dateirechte mit dem Host übereinstimmen.
  2. pivot-server (Runtime & Services) Headless-Container für persistente Anwendungen (z. B. reaktive Marimo-Notebook-Server oder Web-Dashboards), erreichbar über das lokale Netzwerk oder ein Mesh-VPN wie Tailscale.

Der Stack verzichtet auf träge Legacy-Tools und setzt auf moderne, performante Alternativen:

Quickstart & Nutzung

Image beziehen

Die fertigen Images werden automatisiert über GitHub Actions mit buildah gebaut und in der GitHub Container Registry bereitgestellt:

BASH
podman pull ghcr.io/kkroesch/pivot_stack:toolbox
podman pull ghcr.io/kkroesch/pivot_stack:latest
Klicken Sie zum Erweitern und mehr anzeigen

Interaktive Toolbox starten

Um das aktuelle Verzeichnis in die Toolbox einzubinden und direkt loszulegen:

BASH
podman run --rm -it \
  -v "$(pwd)":/workspace:Z \
  -w /workspace \
  ghcr.io/kkroesch/pivot_stack/toolbox:latest
Klicken Sie zum Erweitern und mehr anzeigen

Marimo-Server starten

Für den Betrieb eines reaktiven Notebook-Servers mit Zugriff auf das lokale Verzeichnis:

BASH
podman run --rm -it \
  -p 2718:2718 \
  -v "$(pwd)":/workspace:Z \
  -w /workspace \
  ghcr.io/kkroesch/pivot_stack/server:latest \
  marimo edit --host 0.0.0.0 --port 2718 --headless --no-token
Klicken Sie zum Erweitern und mehr anzeigen

Danach ist die Marimo-Oberfläche unter http://localhost:2718 erreichbar. Für wiederkehrende Aufgaben befindet sich ein justfile im Projektverzeichnis, um die Container-Befehle kompakt zu kapseln. In Marimo Sandbox via uv installierte zusätzliche Libraries werden im Notebook (Arbeitsverzeichnis) hinterlegt, so dass diese bei einem Neustart des Containers erhalten bleiben.

Fazit

Der Pivot-Stack liefert eine klar definierte, leichtgewichtige Umgebung für Datenanalyse und Prototyping. Durch die Trennung von CLI-Toolbox und Service-Container bleibt das Basissystem sauber, während die Toolchain vollständig versioniert und sofort einsatzbereit ist.

Kommentare

Suche starten

Geben Sie Schlüsselwörter ein, um Artikel zu suchen

↑↓
ESC
⌘K Tastenkürzel