Commit 9308ab

2026-03-29 21:27:01 Manuel Weiser: Add installation guide for FilaMan on Raspberry Pi - Updated the contents table to include a new section for Raspberry Pi installation. - Created a comprehensive guide detailing the installation process of FilaMan on Raspberry Pi, including prerequisites, OS installation, SSH connection, Docker setup, and initial configuration.
docs/de/00-inhalt.md ..
@@ 29,6 29,7 @@
| 15 | [Plugin: SpoolmanDB Import](/Docs/De/15-Plugin-Spoolmandb) | Filamente aus der SpoolmanDB importieren |
| 16 | [Plugin: Spoolman API](/Docs/De/16-Plugin-Spoolmanapi) | Spoolman-kompatible API für externe Tools |
| 17 | [Plugin: Bambuddy](/Docs/De/17-Plugin-Bambuddy) | Bambuddy-Integration: Inventory-Sync und Verbrauchsmeldung |
+ | 20 | [Installation auf dem Raspberry Pi](/Docs/De/20-Installation-Raspberry-Pi) | Schritt-für-Schritt-Anleitung für Einsteiger |
---
/dev/null .. docs/de/20-installation-raspberry-pi.md
@@ 0,0 1,691 @@
+ # 20. Installation auf dem Raspberry Pi
+
+ Diese Anleitung richtet sich an **absolute Einsteiger** und erklärt Schritt für Schritt, wie du FilaMan auf einem Raspberry Pi installierst. Es werden keine Vorkenntnisse vorausgesetzt -- nur ein Raspberry Pi, ein PC und etwas Geduld.
+
+ ---
+
+ ## 20.1 Was du brauchst (Voraussetzungen)
+
+ ### Hardware
+
+ | Komponente | Empfehlung | Hinweis |
+ |---|---|---|
+ | **Raspberry Pi** | Modell 3B+, 4 oder 5 | Ältere Modelle (Pi 1/2/Zero) sind zu schwach |
+ | **Netzteil** | Offizielles Raspberry Pi Netzteil | USB-C (Pi 4/5) oder Micro-USB (Pi 3B+) |
+ | **microSD-Karte** | Mindestens 16 GB, empfohlen 32 GB | Class 10 oder schneller |
+ | **Netzwerk** | LAN-Kabel oder WLAN | LAN-Kabel ist stabiler und empfohlen |
+ | **Gehäuse** (optional) | Beliebiges Pi-Gehäuse | Schützt den Pi und verbessert die Kühlung |
+
+ ### Software (auf deinem PC)
+
+ - **Raspberry Pi Imager** -- zum Beschreiben der SD-Karte ([Download hier](https://www.raspberrypi.com/software/))
+ - **SSH-Client** -- zum Verbinden mit dem Pi:
+ - **Windows:** [PuTTY](https://www.putty.org/) oder das eingebaute Windows-Terminal (ab Windows 10)
+ - **macOS / Linux:** Terminal (ist bereits vorinstalliert)
+
+ ### Netzwerk
+
+ - Der Raspberry Pi und dein PC müssen sich im **selben Netzwerk** befinden (gleiches WLAN oder am selben Router per Kabel)
+
+ ---
+
+ ## 20.2 Raspberry Pi OS installieren
+
+ Das Betriebssystem für den Raspberry Pi wird auf eine microSD-Karte geschrieben. Das geht am einfachsten mit dem **Raspberry Pi Imager**.
+
+ ### Schritt 1: Raspberry Pi Imager herunterladen
+
+ Lade den Imager von der offiziellen Webseite herunter und installiere ihn auf deinem PC:
+
+ > https://www.raspberrypi.com/software/
+
+ ### Schritt 2: Imager starten und konfigurieren
+
+ 1. Stecke die **microSD-Karte** in deinen PC (ggf. mit SD-Kartenleser)
+ 2. Öffne den **Raspberry Pi Imager**
+ 3. Klicke auf **„Gerät wählen"** und wähle dein Raspberry Pi Modell aus
+ 4. Klicke auf **„OS wählen"** und wähle:
+ - **Raspberry Pi OS (other)** → **Raspberry Pi OS Lite (64-bit)**
+
+ > **Warum „Lite"?** Die Lite-Variante hat keine grafische Oberfläche und verbraucht weniger Ressourcen. FilaMan ist eine Web-Anwendung -- du bedienst sie über den Browser deines PCs, nicht am Pi selbst.
+
+ 5. Klicke auf **„SD-Karte wählen"** und wähle deine microSD-Karte aus
+
+ > **Achtung:** Alle Daten auf der SD-Karte werden gelöscht!
+
+ ### Schritt 3: Erweiterte Einstellungen konfigurieren
+
+ Klicke auf **„Weiter"** und dann auf **„Einstellungen bearbeiten"**. Hier konfigurierst du wichtige Grundeinstellungen:
+
+ **Reiter „Allgemein":**
+
+ | Einstellung | Empfehlung | Erklärung |
+ |---|---|---|
+ | **Hostname** | `filaman` | Unter diesem Namen ist der Pi im Netzwerk erreichbar |
+ | **Benutzername** | `pi` | Dein Benutzername für die Anmeldung am Pi |
+ | **Passwort** | Ein sicheres Passwort | Merke dir dieses Passwort gut! |
+ | **WLAN konfigurieren** | Dein WLAN-Name und Passwort | Nur nötig wenn du kein LAN-Kabel verwendest |
+ | **Gebietsschema** | Deine Zeitzone und Tastaturlayout | z. B. Europe/Berlin, de |
+
+ **Reiter „Dienste":**
+
+ - Setze den Haken bei **„SSH aktivieren"**
+ - Wähle **„Passwort zur Authentifizierung verwenden"**
+
+ > **Was ist SSH?** SSH (Secure Shell) ermöglicht es dir, den Raspberry Pi von deinem PC aus über die Kommandozeile fernzusteuern -- ohne dass ein Bildschirm am Pi angeschlossen sein muss.
+
+ Klicke auf **„Speichern"** und dann auf **„Ja"**, um das OS auf die SD-Karte zu schreiben.
+
+ ### Schritt 4: Raspberry Pi starten
+
+ 1. Warte bis der Schreibvorgang abgeschlossen ist
+ 2. Entferne die microSD-Karte sicher vom PC
+ 3. Stecke die microSD-Karte in den Raspberry Pi
+ 4. Schließe das Netzwerkkabel an (falls du LAN verwendest)
+ 5. Schließe das Netzteil an -- der Pi startet automatisch
+ 6. Warte ca. **1--2 Minuten**, bis der Pi vollständig hochgefahren ist
+
+ ---
+
+ ## 20.3 Mit dem Raspberry Pi verbinden (SSH)
+
+ Jetzt verbindest du dich von deinem PC aus mit dem Raspberry Pi.
+
+ ### IP-Adresse herausfinden
+
+ Du brauchst die IP-Adresse deines Raspberry Pi. Es gibt mehrere Möglichkeiten:
+
+ **Option A: Über den Hostnamen (einfachste Methode)**
+
+ Wenn du den Hostnamen `filaman` eingestellt hast, versuche:
+
+ ```bash
+ ping filaman.local
+ ```
+
+ Die Antwort zeigt dir die IP-Adresse (z. B. `192.168.1.42`).
+
+ **Option B: Im Router nachschauen**
+
+ 1. Öffne die Weboberfläche deines Routers (meist `192.168.1.1` oder `192.168.178.1` bei Fritz!Box)
+ 2. Suche in der Geräteliste nach „filaman" oder „raspberrypi"
+ 3. Notiere die angezeigte IP-Adresse
+
+ **Option C: Netzwerk scannen**
+
+ Auf deinem PC kannst du alternativ folgenden Befehl nutzen:
+
+ ```bash
+ # macOS / Linux:
+ arp -a | grep raspberry
+
+ # Windows (PowerShell):
+ arp -a
+ ```
+
+ ### SSH-Verbindung herstellen
+
+ **macOS / Linux (Terminal):**
+
+ ```bash
+ ssh pi@filaman.local
+ ```
+
+ Oder mit der IP-Adresse:
+
+ ```bash
+ ssh pi@192.168.1.42
+ ```
+
+ > Ersetze `192.168.1.42` durch die tatsächliche IP-Adresse deines Pi.
+
+ Beim ersten Verbinden wirst du gefragt, ob du dem Host vertrauen möchtest. Tippe `yes` ein und drücke Enter. Gib dann das Passwort ein, das du im Raspberry Pi Imager festgelegt hast.
+
+ **Windows (PuTTY):**
+
+ 1. Öffne PuTTY
+ 2. Trage bei **Host Name** ein: `filaman.local` (oder die IP-Adresse)
+ 3. Port: `22`
+ 4. Klicke auf **„Open"**
+ 5. Benutzername: `pi`
+ 6. Passwort: Dein gewähltes Passwort
+
+ > **Tipp:** Ab Windows 10 kannst du auch einfach das **Windows Terminal** oder die **Eingabeaufforderung** verwenden und denselben `ssh`-Befehl wie bei macOS/Linux nutzen.
+
+ **Wenn die Verbindung steht**, siehst du eine Kommandozeile wie:
+
+ ```
+ pi@filaman:~ $
+ ```
+
+ Du bist jetzt auf dem Raspberry Pi eingeloggt.
+
+ ---
+
+ ## 20.4 System aktualisieren
+
+ Bevor wir FilaMan installieren, bringen wir das Betriebssystem auf den neuesten Stand:
+
+ ```bash
+ sudo apt update && sudo apt upgrade -y
+ ```
+
+ > **Was passiert hier?**
+ > - `sudo` = Befehl mit Administrator-Rechten ausführen
+ > - `apt update` = Liste der verfügbaren Software-Pakete aktualisieren
+ > - `apt upgrade -y` = Alle Pakete auf die neueste Version aktualisieren (`-y` = ohne Nachfrage bestätigen)
+
+ Das kann einige Minuten dauern. Warte, bis der Vorgang abgeschlossen ist.
+
+ ---
+
+ ## 20.5 Docker installieren
+
+ FilaMan läuft in einem **Docker-Container**. Docker ist eine Software, die Anwendungen in abgeschotteten Paketen (sogenannten Containern) laufen lässt. Das hat den Vorteil, dass du dir keine Gedanken über Abhängigkeiten oder Konfiguration machen musst -- alles ist im Container enthalten.
+
+ ### Docker installieren
+
+ Führe folgenden Befehl aus:
+
+ ```bash
+ curl -fsSL https://get.docker.com | sh
+ ```
+
+ > Dieser Befehl lädt das offizielle Docker-Installationsskript herunter und führt es aus. Die Installation dauert ca. 2--5 Minuten.
+
+ ### Deinen Benutzer zur Docker-Gruppe hinzufügen
+
+ Damit du Docker-Befehle ohne `sudo` ausführen kannst:
+
+ ```bash
+ sudo usermod -aG docker pi
+ ```
+
+ > Ersetze `pi` durch deinen Benutzernamen, falls du einen anderen gewählt hast.
+
+ ### Abmelden und neu anmelden
+
+ Damit die Gruppenänderung wirksam wird, musst du dich einmal ab- und wieder anmelden:
+
+ ```bash
+ exit
+ ```
+
+ Verbinde dich dann erneut per SSH:
+
+ ```bash
+ ssh pi@filaman.local
+ ```
+
+ ### Installation überprüfen
+
+ Prüfe, ob Docker korrekt installiert ist:
+
+ ```bash
+ docker --version
+ ```
+
+ Erwartete Ausgabe (Versionsnummer kann abweichen):
+
+ ```
+ Docker version 27.x.x, build xxxxxxx
+ ```
+
+ Prüfe auch Docker Compose:
+
+ ```bash
+ docker compose version
+ ```
+
+ Erwartete Ausgabe:
+
+ ```
+ Docker Compose version v2.x.x
+ ```
+
+ > Wenn beide Befehle eine Versionsnummer anzeigen, ist Docker fertig installiert.
+
+ ---
+
+ ## 20.6 FilaMan einrichten
+
+ Jetzt erstellen wir die Konfigurationsdateien für FilaMan.
+
+ ### Verzeichnis erstellen
+
+ ```bash
+ mkdir ~/filaman && cd ~/filaman
+ ```
+
+ ### Sichere Schlüssel generieren
+
+ FilaMan benötigt zwei geheime Schlüssel für die Sicherheit. Generiere diese mit folgendem Befehl:
+
+ ```bash
+ echo "SECRET_KEY: $(openssl rand -hex 32)"
+ echo "CSRF_SECRET_KEY: $(openssl rand -hex 32)"
+ ```
+
+ > **Wichtig:** Kopiere die beiden ausgegebenen Schlüssel und bewahre sie auf. Du brauchst sie gleich für die `.env`-Datei.
+
+ Die Ausgabe sieht ungefähr so aus:
+
+ ```
+ SECRET_KEY: 3a7f2b1e9c4d8f6a5e2b1c7d9f3a8e6b4c1d7f2a9e5b3c8d6f4a1e7b2c9d5f
+ CSRF_SECRET_KEY: 8e2f4a6c1d9b7e3f5a2c8d4b6e1f9a7c3d5b8e2f4a6c1d9b7e3f5a2c8d4b6e
+ ```
+
+ ### Konfigurationsdatei erstellen (.env)
+
+ Erstelle die `.env`-Datei mit den Einstellungen für FilaMan:
+
+ ```bash
+ nano .env
+ ```
+
+ Füge folgenden Inhalt ein und **passe die markierten Stellen an**:
+
+ ```env
+ # ===========================================
+ # Datenbank-Konfiguration
+ # ===========================================
+ # SQLite (Standard - empfohlen für Raspberry Pi)
+ DATABASE_URL=sqlite+aiosqlite:////app/data/filaman.db
+
+ # ===========================================
+ # Sicherheit
+ # ===========================================
+ # WICHTIG: Ersetze diese durch deine generierten Schlüssel!
+ SECRET_KEY=HIER_DEINEN_GENERIERTEN_SECRET_KEY_EINFUEGEN
+ CSRF_SECRET_KEY=HIER_DEINEN_GENERIERTEN_CSRF_SECRET_KEY_EINFUEGEN
+
+ # ===========================================
+ # Administrator-Konto
+ # ===========================================
+ # Diese Daten werden beim ersten Start zum Erstellen des Admin-Kontos verwendet
+ ADMIN_EMAIL=admin@example.com
+ ADMIN_PASSWORD=MeinSicheresPasswort123!
+ ADMIN_DISPLAY_NAME=Admin
+ ADMIN_LANGUAGE=de
+ ADMIN_SUPERADMIN=true
+
+ # ===========================================
+ # Anwendungseinstellungen
+ # ===========================================
+ DEBUG=false
+ CORS_ORIGINS=*
+ PORT=8000
+
+ # ===========================================
+ # Logging
+ # ===========================================
+ LOG_LEVEL=INFO
+ LOG_FORMAT=text
+ ```
+
+ > **Erklärung der Einstellungen:**
+ >
+ > | Einstellung | Beschreibung |
+ > |---|---|
+ > | `DATABASE_URL` | Datenbank-Verbindung. Die Standard-SQLite-Datenbank wird im Container unter `/app/data/` gespeichert und automatisch gesichert. |
+ > | `SECRET_KEY` | Geheimer Schlüssel für die Verschlüsselung von Sitzungen. **Muss** durch deinen generierten Schlüssel ersetzt werden! |
+ > | `CSRF_SECRET_KEY` | Geheimer Schlüssel für den CSRF-Schutz. **Muss** durch deinen generierten Schlüssel ersetzt werden! |
+ > | `ADMIN_EMAIL` | E-Mail-Adresse für den ersten Administrator. Damit meldest du dich an. |
+ > | `ADMIN_PASSWORD` | Passwort für den Administrator. **Wähle ein sicheres Passwort!** Mindestens 8 Zeichen. |
+ > | `ADMIN_DISPLAY_NAME` | Anzeigename des Administrators in der Oberfläche. |
+ > | `ADMIN_LANGUAGE` | Sprache der Oberfläche (`de` für Deutsch, `en` für Englisch). |
+ > | `ADMIN_SUPERADMIN` | Gibt dem ersten Benutzer volle Administratorrechte. |
+ > | `DEBUG` | Debug-Modus. Für den normalen Betrieb auf `false` lassen. |
+ > | `CORS_ORIGINS` | Erlaubte Herkunftsdomains für API-Anfragen. `*` erlaubt alle. |
+ > | `PORT` | Externer Port, über den FilaMan erreichbar ist. Standard: `8000`. |
+ > | `LOG_LEVEL` | Detailgrad der Log-Ausgaben (`INFO`, `DEBUG`, `WARNING`, `ERROR`). |
+ > | `LOG_FORMAT` | Format der Logs (`text` oder `json`). |
+
+ Speichere die Datei mit **Strg+O**, **Enter** und schließe den Editor mit **Strg+X**.
+
+ ### Docker Compose-Datei erstellen
+
+ ```bash
+ nano docker-compose.yml
+ ```
+
+ Füge folgenden Inhalt ein:
+
+ ```yaml
+ services:
+ filaman-system-app:
+ image: ghcr.io/fire-devils/filaman-system:latest
+ container_name: filaman-system-app
+ env_file:
+ - .env
+ environment:
+ - DATABASE_URL=${DATABASE_URL}
+ - SECRET_KEY=${SECRET_KEY}
+ - CSRF_SECRET_KEY=${CSRF_SECRET_KEY}
+ - DEBUG=${DEBUG}
+ - CORS_ORIGINS=${CORS_ORIGINS}
+ - ADMIN_EMAIL=${ADMIN_EMAIL}
+ - ADMIN_PASSWORD=${ADMIN_PASSWORD}
+ - ADMIN_DISPLAY_NAME=${ADMIN_DISPLAY_NAME}
+ - ADMIN_LANGUAGE=${ADMIN_LANGUAGE}
+ - ADMIN_SUPERADMIN=${ADMIN_SUPERADMIN}
+ volumes:
+ - filaman_data:/app/data
+ restart: unless-stopped
+ ports:
+ - "${PORT}:8000"
+ healthcheck:
+ test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"]
+ interval: 30s
+ timeout: 5s
+ start_period: 15s
+ retries: 3
+
+ volumes:
+ filaman_data:
+ ```
+
+ Speichere die Datei mit **Strg+O**, **Enter** und schließe den Editor mit **Strg+X**.
+
+ ---
+
+ ## 20.7 FilaMan starten
+
+ Jetzt ist alles vorbereitet. Starte FilaMan mit:
+
+ ```bash
+ docker compose up -d
+ ```
+
+ > **Was passiert hier?**
+ > - `docker compose up` = Startet die in `docker-compose.yml` definierten Container
+ > - `-d` = Im Hintergrund (detached) laufen lassen
+
+ Beim ersten Start wird das Docker-Image heruntergeladen (ca. 200--400 MB). Das kann je nach Internetverbindung einige Minuten dauern.
+
+ ### Logs prüfen
+
+ Schau dir die Logs an, um zu überprüfen, ob alles korrekt startet:
+
+ ```bash
+ docker compose logs -f
+ ```
+
+ Du solltest ungefähr folgende Ausgaben sehen:
+
+ ```
+ filaman-system-app | Checking for database migrations...
+ filaman-system-app | Running migrations...
+ filaman-system-app | Database migrations complete.
+ filaman-system-app | Starting nginx...
+ ```
+
+ > Drücke **Strg+C**, um die Log-Ansicht zu beenden (der Container läuft im Hintergrund weiter).
+
+ ### Status prüfen
+
+ ```bash
+ docker compose ps
+ ```
+
+ Wenn alles funktioniert, siehst du:
+
+ ```
+ NAME STATUS PORTS
+ filaman-system-app Up X minutes (healthy) 0.0.0.0:8000->8000/tcp
+ ```
+
+ > Der Status sollte nach ca. 30 Sekunden auf `(healthy)` wechseln.
+
+ ---
+
+ ## 20.8 FilaMan im Browser aufrufen
+
+ FilaMan ist jetzt bereit! Öffne einen Browser auf deinem PC und rufe folgende Adresse auf:
+
+ ```
+ http://filaman.local:8000
+ ```
+
+ Oder verwende die IP-Adresse deines Raspberry Pi:
+
+ ```
+ http://192.168.1.42:8000
+ ```
+
+ > **Tipp:** Die IP-Adresse deines Pi findest du mit folgendem Befehl (auf dem Pi per SSH):
+ > ```bash
+ > hostname -I
+ > ```
+
+ ### Erste Anmeldung
+
+ Du siehst die Login-Seite von FilaMan. Melde dich mit den Zugangsdaten an, die du in der `.env`-Datei festgelegt hast:
+
+ - **E-Mail:** Die `ADMIN_EMAIL` aus deiner `.env` (z. B. `admin@example.com`)
+ - **Passwort:** Das `ADMIN_PASSWORD` aus deiner `.env`
+
+ Nach der Anmeldung siehst du das **Dashboard** -- die Startseite von FilaMan.
+
+ > Ausführliche Informationen zur Anmeldung findest du in der Dokumentation: [Anmeldung (Login)](https://docu.filaman.app/Docs/De/02-Anmeldung)
+
+ ---
+
+ ## 20.9 Erste Schritte nach der Installation
+
+ Nachdem FilaMan läuft, empfiehlt es sich, die Daten in folgender Reihenfolge anzulegen:
+
+ | Schritt | Was | Wo | Dokumentation |
+ |---|---|---|---|
+ | 1 | **Hersteller anlegen** | Menü → Manufacturers | [Hersteller](https://docu.filaman.app/Docs/De/05-Hersteller) |
+ | 2 | **Farben definieren** | Menü → Filaments → „Manage Colors" | [Farbverwaltung](https://docu.filaman.app/Docs/De/12-Farbverwaltung) |
+ | 3 | **Filamente erstellen** | Menü → Filaments → „Add Filament" | [Filamente](https://docu.filaman.app/Docs/De/06-Filamente) |
+ | 4 | **Lagerorte einrichten** | Menü → Locations → „Add Location" | [Lagerorte](https://docu.filaman.app/Docs/De/08-Lagerorte) |
+ | 5 | **Spulen erfassen** | Menü → Spools → „Add Spool" | [Spulen](https://docu.filaman.app/Docs/De/07-Spulen) |
+ | 6 | **Drucker verbinden** (optional) | Menü → Printers → „Add Printer" | [Drucker](https://docu.filaman.app/Docs/De/09-Drucker) |
+
+ > **Tipp:** Du kannst alternativ auch Filamente aus der SpoolmanDB importieren, anstatt alles manuell anzulegen. Installiere dazu das SpoolmanDB-Plugin (siehe nächstes Kapitel).
+
+ ---
+
+ ## 20.10 Plugins installieren
+
+ FilaMan lässt sich über Plugins erweitern. Die Installation erfolgt bequem über die Weboberfläche.
+
+ ### Plugin installieren
+
+ 1. Gehe zu **Admin Panel** → **System**
+ 2. Klicke auf **„Install Plugin"**
+ 3. Wähle im Dropdown **„Install from Registry"** das gewünschte Plugin aus
+ 4. Klicke auf **„Install Plugin"**
+ 5. Das Plugin wird automatisch heruntergeladen und installiert
+
+ ### Verfügbare Plugins
+
+ | Plugin | Typ | Beschreibung | Dokumentation |
+ |---|---|---|---|
+ | **BambuLab** | Driver | Anbindung von BambuLab-Druckern (AMS, Filament-Sync) | [Plugin: BambuLab](https://docu.filaman.app/Docs/De/14-Plugin-Bambulab) |
+ | **SpoolmanDB Import** | Import | Filamente aus der SpoolmanDB-Datenbank importieren | [Plugin: SpoolmanDB](https://docu.filaman.app/Docs/De/15-Plugin-Spoolmandb) |
+ | **Spoolman API** | Import | Spoolman-kompatible API für externe Tools | [Plugin: Spoolman API](https://docu.filaman.app/Docs/De/16-Plugin-Spoolmanapi) |
+ | **Bambuddy** | Integration | Bambuddy-Integration für Inventory-Sync | [Plugin: Bambuddy](https://docu.filaman.app/Docs/De/17-Plugin-Bambuddy) |
+
+ > Ausführliche Informationen zur Plugin-Verwaltung: [Admin-Bereich](https://docu.filaman.app/Docs/De/11-Admin#115-system-plugin-verwaltung)
+
+ ---
+
+ ## 20.11 FilaMan aktualisieren
+
+ Um FilaMan auf die neueste Version zu aktualisieren, führe auf dem Raspberry Pi folgende Befehle aus:
+
+ ```bash
+ cd ~/filaman
+ docker compose pull
+ docker compose up -d
+ ```
+
+ > **Was passiert beim Update?**
+ > 1. `docker compose pull` lädt die neueste Version des Docker-Images herunter
+ > 2. `docker compose up -d` startet den Container mit der neuen Version neu
+ > 3. Beim Start wird automatisch ein **Backup der Datenbank** erstellt
+ > 4. Anschließend werden automatisch alle nötigen **Datenbank-Migrationen** durchgeführt
+ >
+ > Deine Daten bleiben vollständig erhalten!
+
+ ---
+
+ ## 20.12 Nützliche Befehle
+
+ Hier eine Übersicht der wichtigsten Docker-Befehle für den täglichen Betrieb:
+
+ ### Container verwalten
+
+ ```bash
+ # In das FilaMan-Verzeichnis wechseln
+ cd ~/filaman
+
+ # Container stoppen
+ docker compose stop
+
+ # Container starten
+ docker compose start
+
+ # Container neu starten
+ docker compose restart
+
+ # Container stoppen und entfernen (Daten bleiben erhalten!)
+ docker compose down
+
+ # Container erstellen und starten
+ docker compose up -d
+ ```
+
+ ### Logs ansehen
+
+ ```bash
+ # Alle Logs anzeigen (fortlaufend)
+ docker compose logs -f
+
+ # Nur die letzten 100 Zeilen
+ docker compose logs --tail 100
+
+ # Logs seit einem bestimmten Zeitpunkt
+ docker compose logs --since 1h
+ ```
+
+ ### Container-Status prüfen
+
+ ```bash
+ # Status aller Container
+ docker compose ps
+
+ # Detaillierte Container-Infos
+ docker inspect filaman-system-app
+ ```
+
+ ### Administrator-Passwort zurücksetzen
+
+ Falls du dein Passwort vergessen hast:
+
+ ```bash
+ docker exec -it filaman-system-app python -m app.cli reset-password admin@example.com
+ ```
+
+ > Ersetze `admin@example.com` durch deine tatsächliche Admin-E-Mail-Adresse. Du wirst zweimal nach dem neuen Passwort gefragt.
+
+ ### Daten und Backups
+
+ Die FilaMan-Daten werden in einem Docker-Volume gespeichert. Automatische SQLite-Backups werden unter `/app/data/backups` im Container erstellt.
+
+ ```bash
+ # Backup-Verzeichnis im Container anzeigen
+ docker exec filaman-system-app ls -la /app/data/backups/
+ ```
+
+ > Backups können auch über die Weboberfläche unter **Admin Panel → Database Backup** verwaltet werden. Siehe: [Datenbank-Backup](https://docu.filaman.app/Docs/De/11-Admin#116-datenbank-backup-wiederherstellung)
+
+ ---
+
+ ## 20.13 Fehlerbehebung
+
+ ### Container startet nicht
+
+ Prüfe die Logs auf Fehlermeldungen:
+
+ ```bash
+ docker compose logs
+ ```
+
+ Häufige Ursachen:
+ - **Fehlende oder ungültige `.env`-Datei** -- Prüfe ob alle Pflichtfelder gesetzt sind
+ - **Syntaxfehler in `docker-compose.yml`** -- Achte auf korrekte Einrückung (Leerzeichen, keine Tabs)
+
+ ### Port bereits belegt
+
+ Falls Port 8000 bereits von einem anderen Dienst verwendet wird:
+
+ 1. Öffne die `.env`-Datei:
+ ```bash
+ nano ~/filaman/.env
+ ```
+ 2. Ändere den Port, z. B.:
+ ```
+ PORT=8080
+ ```
+ 3. Starte den Container neu:
+ ```bash
+ cd ~/filaman
+ docker compose down
+ docker compose up -d
+ ```
+ 4. FilaMan ist dann unter `http://filaman.local:8080` erreichbar
+
+ ### Zugriff von einem anderen Gerät nicht möglich
+
+ - Stelle sicher, dass PC und Raspberry Pi im **selben Netzwerk** sind
+ - Verwende die **IP-Adresse** statt des Hostnamens (`http://192.168.x.x:8000`)
+ - Prüfe, ob eine Firewall auf dem Pi den Port blockiert:
+ ```bash
+ sudo ufw status
+ ```
+ Falls aktiv, Port freigeben:
+ ```bash
+ sudo ufw allow 8000/tcp
+ ```
+
+ ### Passwort vergessen
+
+ Siehe [Administrator-Passwort zurücksetzen](#administrator-passwort-zurücksetzen) oben oder in der Dokumentation: [Tipps & Häufige Fragen](https://docu.filaman.app/Docs/De/13-Faq#ich-habe-mein-admin-passwort-vergessen-was-tun)
+
+ ### Datenbank-Probleme
+
+ Wenn die Datenbank beschädigt ist, kannst du ein Backup wiederherstellen:
+
+ 1. Über die Weboberfläche: **Admin Panel → Database Backup → SQLite-Backups → Restore**
+ 2. Oder manuell per Kommandozeile:
+ ```bash
+ # Verfügbare Backups anzeigen
+ docker exec filaman-system-app ls -la /app/data/backups/
+ ```
+
+ > Detaillierte Informationen zur Backup-Wiederherstellung: [Datenbank-Backup](https://docu.filaman.app/Docs/De/11-Admin#116-datenbank-backup-wiederherstellung)
+
+ ---
+
+ ## 20.14 Weiterführende Links
+
+ | Ressource | Link |
+ |---|---|
+ | **FilaMan Dokumentation (Deutsch)** | [docu.filaman.app/Docs/De/00-Inhalt](https://docu.filaman.app/Docs/De/00-Inhalt) |
+ | **FilaMan Dokumentation (Englisch)** | [docu.filaman.app/Docs/En/00-Contents](https://docu.filaman.app/Docs/En/00-Contents) |
+ | **GitHub: FilaMan System** | [github.com/Fire-Devils/filaman-system](https://github.com/Fire-Devils/filaman-system) |
+ | **GitHub: FilaMan Plugins** | [github.com/Fire-Devils/filaman-plugins](https://github.com/Fire-Devils/filaman-plugins) |
+ | **GitHub: FilaMan ESP32** | [github.com/Fire-Devils/FilaMan-System-ESP32](https://github.com/Fire-Devils/FilaMan-System-ESP32) |
+ | **Docker Hub Image** | [ghcr.io/fire-devils/filaman-system](https://github.com/Fire-Devils/filaman-system/pkgs/container/filaman-system) |
+
+ ---
+
+ ← [Zurück: Plugin: Bambuddy](/Docs/De/17-Plugin-Bambuddy) | [Zurück zum Inhaltsverzeichnis](/Docs/De/00-Inhalt)
+
+ ---
+
+ *Diese Anleitung wurde für FilaMan erstellt. Für technische Fragen oder Probleme wenden Sie sich an Ihren Systemadministrator.*
docs/en/00-contents.md ..
@@ 29,6 29,7 @@
| 15 | [Plugin: SpoolmanDB Import](/Docs/En/15-Plugin-Spoolmandb) | Import filaments from the SpoolmanDB database |
| 16 | [Plugin: Spoolman API](/Docs/En/16-Plugin-Spoolmanapi) | Spoolman-compatible API for external tools |
| 17 | [Plugin: Bambuddy](/Docs/En/17-Plugin-Bambuddy) | Bambuddy integration: inventory sync and consumption reporting |
+ | 20 | [Installation on Raspberry Pi](/Docs/En/20-Installation-Raspberry-Pi) | Step-by-step guide for beginners |
---
/dev/null .. docs/en/20-installation-raspberry-pi.md
@@ 0,0 1,691 @@
+ # 20. Installation on Raspberry Pi
+
+ This guide is aimed at **absolute beginners** and explains step by step how to install FilaMan on a Raspberry Pi. No prior knowledge is required -- just a Raspberry Pi, a PC, and a little patience.
+
+ ---
+
+ ## 20.1 What You Need (Prerequisites)
+
+ ### Hardware
+
+ | Component | Recommendation | Note |
+ |---|---|---|
+ | **Raspberry Pi** | Model 3B+, 4, or 5 | Older models (Pi 1/2/Zero) are too underpowered |
+ | **Power Supply** | Official Raspberry Pi power supply | USB-C (Pi 4/5) or Micro-USB (Pi 3B+) |
+ | **microSD Card** | At least 16 GB, recommended 32 GB | Class 10 or faster |
+ | **Network** | Ethernet cable or Wi-Fi | Ethernet is more stable and recommended |
+ | **Case** (optional) | Any Pi case | Protects the Pi and improves cooling |
+
+ ### Software (on your PC)
+
+ - **Raspberry Pi Imager** -- for writing the OS to the SD card ([Download here](https://www.raspberrypi.com/software/))
+ - **SSH Client** -- for connecting to the Pi:
+ - **Windows:** [PuTTY](https://www.putty.org/) or the built-in Windows Terminal (Windows 10+)
+ - **macOS / Linux:** Terminal (already pre-installed)
+
+ ### Network
+
+ - The Raspberry Pi and your PC must be on the **same network** (same Wi-Fi or connected to the same router via cable)
+
+ ---
+
+ ## 20.2 Install Raspberry Pi OS
+
+ The operating system for the Raspberry Pi is written to a microSD card. The easiest way to do this is with the **Raspberry Pi Imager**.
+
+ ### Step 1: Download Raspberry Pi Imager
+
+ Download the Imager from the official website and install it on your PC:
+
+ > https://www.raspberrypi.com/software/
+
+ ### Step 2: Open Imager and Configure
+
+ 1. Insert the **microSD card** into your PC (using an SD card reader if needed)
+ 2. Open the **Raspberry Pi Imager**
+ 3. Click **"Choose Device"** and select your Raspberry Pi model
+ 4. Click **"Choose OS"** and select:
+ - **Raspberry Pi OS (other)** → **Raspberry Pi OS Lite (64-bit)**
+
+ > **Why "Lite"?** The Lite variant has no graphical desktop and uses fewer resources. FilaMan is a web application -- you access it through your PC's browser, not on the Pi itself.
+
+ 5. Click **"Choose Storage"** and select your microSD card
+
+ > **Warning:** All data on the SD card will be erased!
+
+ ### Step 3: Configure Advanced Settings
+
+ Click **"Next"** and then **"Edit Settings"**. Here you configure important basic settings:
+
+ **"General" tab:**
+
+ | Setting | Recommendation | Explanation |
+ |---|---|---|
+ | **Hostname** | `filaman` | The Pi will be reachable on your network under this name |
+ | **Username** | `pi` | Your username for logging into the Pi |
+ | **Password** | A secure password | Remember this password well! |
+ | **Configure Wi-Fi** | Your Wi-Fi name and password | Only needed if you're not using an Ethernet cable |
+ | **Locale settings** | Your timezone and keyboard layout | e.g. Europe/London, us |
+
+ **"Services" tab:**
+
+ - Check the box for **"Enable SSH"**
+ - Select **"Use password authentication"**
+
+ > **What is SSH?** SSH (Secure Shell) allows you to remotely control the Raspberry Pi from your PC via the command line -- without needing a monitor connected to the Pi.
+
+ Click **"Save"** and then **"Yes"** to write the OS to the SD card.
+
+ ### Step 4: Boot the Raspberry Pi
+
+ 1. Wait until the writing process is complete
+ 2. Safely remove the microSD card from your PC
+ 3. Insert the microSD card into the Raspberry Pi
+ 4. Connect the Ethernet cable (if using wired networking)
+ 5. Connect the power supply -- the Pi will start automatically
+ 6. Wait approximately **1--2 minutes** for the Pi to fully boot up
+
+ ---
+
+ ## 20.3 Connect to the Raspberry Pi (SSH)
+
+ Now you'll connect to the Raspberry Pi from your PC.
+
+ ### Find the IP Address
+
+ You need the IP address of your Raspberry Pi. There are several ways to find it:
+
+ **Option A: Using the hostname (easiest method)**
+
+ If you set the hostname to `filaman`, try:
+
+ ```bash
+ ping filaman.local
+ ```
+
+ The response will show you the IP address (e.g. `192.168.1.42`).
+
+ **Option B: Check your router**
+
+ 1. Open your router's web interface (usually `192.168.1.1` or `192.168.0.1`)
+ 2. Look for "filaman" or "raspberrypi" in the device list
+ 3. Note the displayed IP address
+
+ **Option C: Scan the network**
+
+ On your PC you can alternatively use this command:
+
+ ```bash
+ # macOS / Linux:
+ arp -a | grep raspberry
+
+ # Windows (PowerShell):
+ arp -a
+ ```
+
+ ### Establish SSH Connection
+
+ **macOS / Linux (Terminal):**
+
+ ```bash
+ ssh pi@filaman.local
+ ```
+
+ Or using the IP address:
+
+ ```bash
+ ssh pi@192.168.1.42
+ ```
+
+ > Replace `192.168.1.42` with the actual IP address of your Pi.
+
+ When connecting for the first time, you'll be asked whether you trust this host. Type `yes` and press Enter. Then enter the password you set in the Raspberry Pi Imager.
+
+ **Windows (PuTTY):**
+
+ 1. Open PuTTY
+ 2. Enter in **Host Name**: `filaman.local` (or the IP address)
+ 3. Port: `22`
+ 4. Click **"Open"**
+ 5. Username: `pi`
+ 6. Password: Your chosen password
+
+ > **Tip:** Starting with Windows 10, you can also use the **Windows Terminal** or **Command Prompt** and use the same `ssh` command as on macOS/Linux.
+
+ **When connected**, you'll see a command prompt like:
+
+ ```
+ pi@filaman:~ $
+ ```
+
+ You're now logged into the Raspberry Pi.
+
+ ---
+
+ ## 20.4 Update the System
+
+ Before installing FilaMan, let's bring the operating system up to date:
+
+ ```bash
+ sudo apt update && sudo apt upgrade -y
+ ```
+
+ > **What's happening here?**
+ > - `sudo` = run the command with administrator privileges
+ > - `apt update` = refresh the list of available software packages
+ > - `apt upgrade -y` = upgrade all packages to the latest version (`-y` = confirm automatically)
+
+ This may take a few minutes. Wait until the process is complete.
+
+ ---
+
+ ## 20.5 Install Docker
+
+ FilaMan runs in a **Docker container**. Docker is software that runs applications in isolated packages (called containers). The advantage is that you don't need to worry about dependencies or configuration -- everything is bundled in the container.
+
+ ### Install Docker
+
+ Run the following command:
+
+ ```bash
+ curl -fsSL https://get.docker.com | sh
+ ```
+
+ > This command downloads the official Docker installation script and executes it. The installation takes about 2--5 minutes.
+
+ ### Add Your User to the Docker Group
+
+ So you can run Docker commands without `sudo`:
+
+ ```bash
+ sudo usermod -aG docker pi
+ ```
+
+ > Replace `pi` with your username if you chose a different one.
+
+ ### Log Out and Log Back In
+
+ For the group change to take effect, you need to log out and back in:
+
+ ```bash
+ exit
+ ```
+
+ Then reconnect via SSH:
+
+ ```bash
+ ssh pi@filaman.local
+ ```
+
+ ### Verify the Installation
+
+ Check that Docker is correctly installed:
+
+ ```bash
+ docker --version
+ ```
+
+ Expected output (version number may vary):
+
+ ```
+ Docker version 27.x.x, build xxxxxxx
+ ```
+
+ Also check Docker Compose:
+
+ ```bash
+ docker compose version
+ ```
+
+ Expected output:
+
+ ```
+ Docker Compose version v2.x.x
+ ```
+
+ > If both commands show a version number, Docker is ready to go.
+
+ ---
+
+ ## 20.6 Set Up FilaMan
+
+ Now we'll create the configuration files for FilaMan.
+
+ ### Create a Directory
+
+ ```bash
+ mkdir ~/filaman && cd ~/filaman
+ ```
+
+ ### Generate Secure Keys
+
+ FilaMan requires two secret keys for security. Generate them with the following command:
+
+ ```bash
+ echo "SECRET_KEY: $(openssl rand -hex 32)"
+ echo "CSRF_SECRET_KEY: $(openssl rand -hex 32)"
+ ```
+
+ > **Important:** Copy the two generated keys and save them. You'll need them shortly for the `.env` file.
+
+ The output looks something like this:
+
+ ```
+ SECRET_KEY: 3a7f2b1e9c4d8f6a5e2b1c7d9f3a8e6b4c1d7f2a9e5b3c8d6f4a1e7b2c9d5f
+ CSRF_SECRET_KEY: 8e2f4a6c1d9b7e3f5a2c8d4b6e1f9a7c3d5b8e2f4a6c1d9b7e3f5a2c8d4b6e
+ ```
+
+ ### Create Configuration File (.env)
+
+ Create the `.env` file with the settings for FilaMan:
+
+ ```bash
+ nano .env
+ ```
+
+ Paste the following content and **adjust the marked sections**:
+
+ ```env
+ # ===========================================
+ # Database Configuration
+ # ===========================================
+ # SQLite (default - recommended for Raspberry Pi)
+ DATABASE_URL=sqlite+aiosqlite:////app/data/filaman.db
+
+ # ===========================================
+ # Security
+ # ===========================================
+ # IMPORTANT: Replace these with your generated keys!
+ SECRET_KEY=PASTE_YOUR_GENERATED_SECRET_KEY_HERE
+ CSRF_SECRET_KEY=PASTE_YOUR_GENERATED_CSRF_SECRET_KEY_HERE
+
+ # ===========================================
+ # Administrator Account
+ # ===========================================
+ # These credentials are used to create the admin account on first start
+ ADMIN_EMAIL=admin@example.com
+ ADMIN_PASSWORD=MySecurePassword123!
+ ADMIN_DISPLAY_NAME=Admin
+ ADMIN_LANGUAGE=en
+ ADMIN_SUPERADMIN=true
+
+ # ===========================================
+ # Application Settings
+ # ===========================================
+ DEBUG=false
+ CORS_ORIGINS=*
+ PORT=8000
+
+ # ===========================================
+ # Logging
+ # ===========================================
+ LOG_LEVEL=INFO
+ LOG_FORMAT=text
+ ```
+
+ > **Explanation of settings:**
+ >
+ > | Setting | Description |
+ > |---|---|
+ > | `DATABASE_URL` | Database connection string. The default SQLite database is stored inside the container at `/app/data/` and is backed up automatically. |
+ > | `SECRET_KEY` | Secret key for session encryption. **Must** be replaced with your generated key! |
+ > | `CSRF_SECRET_KEY` | Secret key for CSRF protection. **Must** be replaced with your generated key! |
+ > | `ADMIN_EMAIL` | Email address for the first administrator. This is your login name. |
+ > | `ADMIN_PASSWORD` | Password for the administrator. **Choose a secure password!** At least 8 characters. |
+ > | `ADMIN_DISPLAY_NAME` | Display name of the administrator in the UI. |
+ > | `ADMIN_LANGUAGE` | UI language (`en` for English, `de` for German). |
+ > | `ADMIN_SUPERADMIN` | Grants the first user full administrator rights. |
+ > | `DEBUG` | Debug mode. Leave at `false` for normal operation. |
+ > | `CORS_ORIGINS` | Allowed origin domains for API requests. `*` allows all. |
+ > | `PORT` | External port on which FilaMan is accessible. Default: `8000`. |
+ > | `LOG_LEVEL` | Detail level of log output (`INFO`, `DEBUG`, `WARNING`, `ERROR`). |
+ > | `LOG_FORMAT` | Log format (`text` or `json`). |
+
+ Save the file with **Ctrl+O**, **Enter**, and close the editor with **Ctrl+X**.
+
+ ### Create Docker Compose File
+
+ ```bash
+ nano docker-compose.yml
+ ```
+
+ Paste the following content:
+
+ ```yaml
+ services:
+ filaman-system-app:
+ image: ghcr.io/fire-devils/filaman-system:latest
+ container_name: filaman-system-app
+ env_file:
+ - .env
+ environment:
+ - DATABASE_URL=${DATABASE_URL}
+ - SECRET_KEY=${SECRET_KEY}
+ - CSRF_SECRET_KEY=${CSRF_SECRET_KEY}
+ - DEBUG=${DEBUG}
+ - CORS_ORIGINS=${CORS_ORIGINS}
+ - ADMIN_EMAIL=${ADMIN_EMAIL}
+ - ADMIN_PASSWORD=${ADMIN_PASSWORD}
+ - ADMIN_DISPLAY_NAME=${ADMIN_DISPLAY_NAME}
+ - ADMIN_LANGUAGE=${ADMIN_LANGUAGE}
+ - ADMIN_SUPERADMIN=${ADMIN_SUPERADMIN}
+ volumes:
+ - filaman_data:/app/data
+ restart: unless-stopped
+ ports:
+ - "${PORT}:8000"
+ healthcheck:
+ test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"]
+ interval: 30s
+ timeout: 5s
+ start_period: 15s
+ retries: 3
+
+ volumes:
+ filaman_data:
+ ```
+
+ Save the file with **Ctrl+O**, **Enter**, and close the editor with **Ctrl+X**.
+
+ ---
+
+ ## 20.7 Start FilaMan
+
+ Everything is set up. Start FilaMan with:
+
+ ```bash
+ docker compose up -d
+ ```
+
+ > **What's happening here?**
+ > - `docker compose up` = starts the containers defined in `docker-compose.yml`
+ > - `-d` = run in the background (detached mode)
+
+ On first start, the Docker image will be downloaded (approx. 200--400 MB). This may take a few minutes depending on your internet connection.
+
+ ### Check the Logs
+
+ Review the logs to verify everything starts correctly:
+
+ ```bash
+ docker compose logs -f
+ ```
+
+ You should see output similar to:
+
+ ```
+ filaman-system-app | Checking for database migrations...
+ filaman-system-app | Running migrations...
+ filaman-system-app | Database migrations complete.
+ filaman-system-app | Starting nginx...
+ ```
+
+ > Press **Ctrl+C** to exit the log view (the container continues running in the background).
+
+ ### Check Status
+
+ ```bash
+ docker compose ps
+ ```
+
+ If everything works, you'll see:
+
+ ```
+ NAME STATUS PORTS
+ filaman-system-app Up X minutes (healthy) 0.0.0.0:8000->8000/tcp
+ ```
+
+ > The status should change to `(healthy)` after approximately 30 seconds.
+
+ ---
+
+ ## 20.8 Access FilaMan in the Browser
+
+ FilaMan is now ready! Open a browser on your PC and navigate to:
+
+ ```
+ http://filaman.local:8000
+ ```
+
+ Or use the IP address of your Raspberry Pi:
+
+ ```
+ http://192.168.1.42:8000
+ ```
+
+ > **Tip:** You can find your Pi's IP address with this command (on the Pi via SSH):
+ > ```bash
+ > hostname -I
+ > ```
+
+ ### First Login
+
+ You'll see the FilaMan login page. Sign in with the credentials you set in the `.env` file:
+
+ - **Email:** The `ADMIN_EMAIL` from your `.env` (e.g. `admin@example.com`)
+ - **Password:** The `ADMIN_PASSWORD` from your `.env`
+
+ After signing in, you'll see the **Dashboard** -- FilaMan's home page.
+
+ > For detailed information about the login process, see the documentation: [Login](https://docu.filaman.app/Docs/En/02-Login)
+
+ ---
+
+ ## 20.9 First Steps After Installation
+
+ Once FilaMan is running, it's recommended to set up your data in the following order:
+
+ | Step | What | Where | Documentation |
+ |---|---|---|---|
+ | 1 | **Create manufacturers** | Menu → Manufacturers | [Manufacturers](https://docu.filaman.app/Docs/En/05-Manufacturers) |
+ | 2 | **Define colors** | Menu → Filaments → "Manage Colors" | [Color Management](https://docu.filaman.app/Docs/En/12-Colors) |
+ | 3 | **Create filaments** | Menu → Filaments → "Add Filament" | [Filaments](https://docu.filaman.app/Docs/En/06-Filaments) |
+ | 4 | **Set up locations** | Menu → Locations → "Add Location" | [Locations](https://docu.filaman.app/Docs/En/08-Locations) |
+ | 5 | **Add spools** | Menu → Spools → "Add Spool" | [Spools](https://docu.filaman.app/Docs/En/07-Spools) |
+ | 6 | **Connect printers** (optional) | Menu → Printers → "Add Printer" | [Printers](https://docu.filaman.app/Docs/En/09-Printers) |
+
+ > **Tip:** Alternatively, you can import filaments from SpoolmanDB instead of creating everything manually. Install the SpoolmanDB plugin to do this (see next chapter).
+
+ ---
+
+ ## 20.10 Install Plugins
+
+ FilaMan can be extended with plugins. Installation is done conveniently through the web interface.
+
+ ### Installing a Plugin
+
+ 1. Go to **Admin Panel** → **System**
+ 2. Click **"Install Plugin"**
+ 3. Select the desired plugin from the **"Install from Registry"** dropdown
+ 4. Click **"Install Plugin"**
+ 5. The plugin will be automatically downloaded and installed
+
+ ### Available Plugins
+
+ | Plugin | Type | Description | Documentation |
+ |---|---|---|---|
+ | **BambuLab** | Driver | Connect BambuLab printers (AMS, filament sync) | [Plugin: BambuLab](https://docu.filaman.app/Docs/En/14-Plugin-Bambulab) |
+ | **SpoolmanDB Import** | Import | Import filaments from the SpoolmanDB database | [Plugin: SpoolmanDB](https://docu.filaman.app/Docs/En/15-Plugin-Spoolmandb) |
+ | **Spoolman API** | Import | Spoolman-compatible API for external tools | [Plugin: Spoolman API](https://docu.filaman.app/Docs/En/16-Plugin-Spoolmanapi) |
+ | **Bambuddy** | Integration | Bambuddy integration for inventory sync | [Plugin: Bambuddy](https://docu.filaman.app/Docs/En/17-Plugin-Bambuddy) |
+
+ > For detailed information about plugin management: [Admin Area](https://docu.filaman.app/Docs/En/11-Admin#115-system-plugin-management)
+
+ ---
+
+ ## 20.11 Update FilaMan
+
+ To update FilaMan to the latest version, run the following commands on the Raspberry Pi:
+
+ ```bash
+ cd ~/filaman
+ docker compose pull
+ docker compose up -d
+ ```
+
+ > **What happens during an update?**
+ > 1. `docker compose pull` downloads the latest version of the Docker image
+ > 2. `docker compose up -d` restarts the container with the new version
+ > 3. On startup, a **database backup** is automatically created
+ > 4. Then all necessary **database migrations** are automatically applied
+ >
+ > Your data is fully preserved!
+
+ ---
+
+ ## 20.12 Useful Commands
+
+ Here's an overview of the most important Docker commands for daily operation:
+
+ ### Manage Containers
+
+ ```bash
+ # Navigate to the FilaMan directory
+ cd ~/filaman
+
+ # Stop containers
+ docker compose stop
+
+ # Start containers
+ docker compose start
+
+ # Restart containers
+ docker compose restart
+
+ # Stop and remove containers (data is preserved!)
+ docker compose down
+
+ # Create and start containers
+ docker compose up -d
+ ```
+
+ ### View Logs
+
+ ```bash
+ # Show all logs (continuously)
+ docker compose logs -f
+
+ # Show only the last 100 lines
+ docker compose logs --tail 100
+
+ # Show logs since a specific time
+ docker compose logs --since 1h
+ ```
+
+ ### Check Container Status
+
+ ```bash
+ # Status of all containers
+ docker compose ps
+
+ # Detailed container info
+ docker inspect filaman-system-app
+ ```
+
+ ### Reset Administrator Password
+
+ If you've forgotten your password:
+
+ ```bash
+ docker exec -it filaman-system-app python -m app.cli reset-password admin@example.com
+ ```
+
+ > Replace `admin@example.com` with your actual admin email address. You'll be prompted to enter the new password twice.
+
+ ### Data and Backups
+
+ FilaMan data is stored in a Docker volume. Automatic SQLite backups are created under `/app/data/backups` inside the container.
+
+ ```bash
+ # List backups inside the container
+ docker exec filaman-system-app ls -la /app/data/backups/
+ ```
+
+ > Backups can also be managed through the web interface under **Admin Panel → Database Backup**. See: [Database Backup](https://docu.filaman.app/Docs/En/11-Admin#116-database-backup-restore)
+
+ ---
+
+ ## 20.13 Troubleshooting
+
+ ### Container Won't Start
+
+ Check the logs for error messages:
+
+ ```bash
+ docker compose logs
+ ```
+
+ Common causes:
+ - **Missing or invalid `.env` file** -- Check that all required fields are set
+ - **Syntax error in `docker-compose.yml`** -- Ensure correct indentation (spaces, not tabs)
+
+ ### Port Already in Use
+
+ If port 8000 is already used by another service:
+
+ 1. Open the `.env` file:
+ ```bash
+ nano ~/filaman/.env
+ ```
+ 2. Change the port, e.g.:
+ ```
+ PORT=8080
+ ```
+ 3. Restart the container:
+ ```bash
+ cd ~/filaman
+ docker compose down
+ docker compose up -d
+ ```
+ 4. FilaMan will then be accessible at `http://filaman.local:8080`
+
+ ### Cannot Access from Another Device
+
+ - Make sure your PC and Raspberry Pi are on the **same network**
+ - Use the **IP address** instead of the hostname (`http://192.168.x.x:8000`)
+ - Check if a firewall on the Pi is blocking the port:
+ ```bash
+ sudo ufw status
+ ```
+ If active, allow the port:
+ ```bash
+ sudo ufw allow 8000/tcp
+ ```
+
+ ### Forgotten Password
+
+ See [Reset Administrator Password](#reset-administrator-password) above or in the documentation: [Tips & FAQ](https://docu.filaman.app/Docs/En/13-Faq#ive-forgotten-my-admin-password-what-now)
+
+ ### Database Issues
+
+ If the database is corrupted, you can restore a backup:
+
+ 1. Via the web interface: **Admin Panel → Database Backup → SQLite Backups → Restore**
+ 2. Or manually via the command line:
+ ```bash
+ # List available backups
+ docker exec filaman-system-app ls -la /app/data/backups/
+ ```
+
+ > For detailed information about backup recovery: [Database Backup](https://docu.filaman.app/Docs/En/11-Admin#116-database-backup-restore)
+
+ ---
+
+ ## 20.14 Further Links
+
+ | Resource | Link |
+ |---|---|
+ | **FilaMan Documentation (English)** | [docu.filaman.app/Docs/En/00-Contents](https://docu.filaman.app/Docs/En/00-Contents) |
+ | **FilaMan Documentation (German)** | [docu.filaman.app/Docs/De/00-Inhalt](https://docu.filaman.app/Docs/De/00-Inhalt) |
+ | **GitHub: FilaMan System** | [github.com/Fire-Devils/filaman-system](https://github.com/Fire-Devils/filaman-system) |
+ | **GitHub: FilaMan Plugins** | [github.com/Fire-Devils/filaman-plugins](https://github.com/Fire-Devils/filaman-plugins) |
+ | **GitHub: FilaMan ESP32** | [github.com/Fire-Devils/FilaMan-System-ESP32](https://github.com/Fire-Devils/FilaMan-System-ESP32) |
+ | **Docker Image** | [ghcr.io/fire-devils/filaman-system](https://github.com/Fire-Devils/filaman-system/pkgs/container/filaman-system) |
+
+ ---
+
+ ← [Back: Plugin: Bambuddy](/Docs/En/17-Plugin-Bambuddy) | [Back to Table of Contents](/Docs/En/00-Contents)
+
+ ---
+
+ *This guide was created for FilaMan. For technical questions or issues, please contact your system administrator.*
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9