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.* |