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)
- SSH Client -- for connecting to the Pi:
- Windows: PuTTY 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:
Step 2: Open Imager and Configure
Insert the microSD card into your PC (using an SD card reader if needed)
Open the Raspberry Pi Imager
Click "Choose Device" and select your Raspberry Pi model
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.
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
- Wait until the writing process is complete
- Safely remove the microSD card from your PC
- Insert the microSD card into the Raspberry Pi
- Connect the Ethernet cable (if using wired networking)
- Connect the power supply -- the Pi will start automatically
- 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:
ping filaman.local
The response will show you the IP address (e.g. 192.168.1.42).
Option B: Check your router
- Open your router's web interface (usually
192.168.1.1or192.168.0.1) - Look for "filaman" or "raspberrypi" in the device list
- Note the displayed IP address
Option C: Scan the network
On your PC you can alternatively use this command:
# macOS / Linux: arp -a | grep raspberry # Windows (PowerShell): arp -a
Establish SSH Connection
macOS / Linux (Terminal):
ssh pi@filaman.local
Or using the IP address:
ssh pi@192.168.1.42
Replace
192.168.1.42with 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):
- Open PuTTY
- Enter in Host Name:
filaman.local(or the IP address) - Port:
22 - Click "Open"
- Username:
pi - Password: Your chosen password
Tip: Starting with Windows 10, you can also use the Windows Terminal or Command Prompt and use the same
sshcommand 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:
sudo apt update && sudo apt upgrade -y
What's happening here?
sudo= run the command with administrator privilegesapt update= refresh the list of available software packagesapt 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:
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:
sudo usermod -aG docker pi
Replace
piwith 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:
exit
Then reconnect via SSH:
ssh pi@filaman.local
Verify the Installation
Check that Docker is correctly installed:
docker --version
Expected output (version number may vary):
Docker version 27.x.x, build xxxxxxx
Also check Docker Compose:
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
mkdir ~/filaman && cd ~/filaman
Generate Secure Keys
FilaMan requires two secret keys for security. Generate them with the following command:
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
.envfile.
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:
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
nano docker-compose.yml
Paste the following content:
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:
docker compose up -d
What's happening here?
docker compose up= starts the containers defined indocker-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:
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
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):
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_EMAILfrom your.env(e.g.admin@example.com) - Password: The
ADMIN_PASSWORDfrom 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
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 |
| 2 | Define colors | Menu → Filaments → "Manage Colors" | Color Management |
| 3 | Create filaments | Menu → Filaments → "Add Filament" | Filaments |
| 4 | Set up locations | Menu → Locations → "Add Location" | Locations |
| 5 | Add spools | Menu → Spools → "Add Spool" | Spools |
| 6 | Connect printers (optional) | Menu → Printers → "Add Printer" | 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
- Go to Admin Panel → System
- Click "Install Plugin"
- Select the desired plugin from the "Install from Registry" dropdown
- Click "Install Plugin"
- The plugin will be automatically downloaded and installed
Available Plugins
| Plugin | Type | Description | Documentation |
|---|---|---|---|
| BambuLab | Driver | Connect BambuLab printers (AMS, filament sync) | Plugin: BambuLab |
| SpoolmanDB Import | Import | Import filaments from the SpoolmanDB database | Plugin: SpoolmanDB |
| Spoolman API | Import | Spoolman-compatible API for external tools | Plugin: Spoolman API |
| Bambuddy | Integration | Bambuddy integration for inventory sync | Plugin: Bambuddy |
For detailed information about plugin management: Admin Area
20.11 Update FilaMan
To update FilaMan to the latest version, run the following commands on the Raspberry Pi:
cd ~/filaman docker compose pull docker compose up -d
What happens during an update?
docker compose pulldownloads the latest version of the Docker imagedocker compose up -drestarts the container with the new version- On startup, a database backup is automatically created
- 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
# 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
# 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
# Status of all containers docker compose ps # Detailed container info docker inspect filaman-system-app
Reset Administrator Password
If you've forgotten your password:
docker exec -it filaman-system-app python -m app.cli reset-password admin@example.com
Replace
admin@example.comwith 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.
# 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
20.13 Troubleshooting
Container Won't Start
Check the logs for error messages:
docker compose logs
Common causes:
- Missing or invalid
.envfile -- 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:
- Open the
.envfile:nano ~/filaman/.env - Change the port, e.g.:
PORT=8080
- Restart the container:
cd ~/filaman docker compose down docker compose up -d
- 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:If active, allow the port:
sudo ufw status
sudo ufw allow 8000/tcp
Forgotten Password
See Reset Administrator Password above or in the documentation: Tips & FAQ
Database Issues
If the database is corrupted, you can restore a backup:
- Via the web interface: Admin Panel → Database Backup → SQLite Backups → Restore
- Or manually via the command line:
# List available backups docker exec filaman-system-app ls -la /app/data/backups/
For detailed information about backup recovery: Database Backup
20.14 Further Links
| Resource | Link |
|---|---|
| FilaMan Documentation (English) | docu.filaman.app/Docs/En/00-Contents |
| FilaMan Documentation (German) | docu.filaman.app/Docs/De/00-Inhalt |
| GitHub: FilaMan System | github.com/Fire-Devils/filaman-system |
| GitHub: FilaMan Plugins | github.com/Fire-Devils/filaman-plugins |
| GitHub: FilaMan ESP32 | github.com/Fire-Devils/FilaMan-System-ESP32 |
| Docker Image | ghcr.io/fire-devils/filaman-system |
← Back: Plugin: Bambuddy | Back to Table of Contents
This guide was created for FilaMan. For technical questions or issues, please contact your system administrator.