Blame

9308ab Manuel Weiser 2026-03-29 21:27:01
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.
1
# 20. Installation on Raspberry Pi
2
3
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.
4
5
---
6
7
## 20.1 What You Need (Prerequisites)
8
9
### Hardware
10
11
| Component | Recommendation | Note |
12
|---|---|---|
13
| **Raspberry Pi** | Model 3B+, 4, or 5 | Older models (Pi 1/2/Zero) are too underpowered |
14
| **Power Supply** | Official Raspberry Pi power supply | USB-C (Pi 4/5) or Micro-USB (Pi 3B+) |
15
| **microSD Card** | At least 16 GB, recommended 32 GB | Class 10 or faster |
16
| **Network** | Ethernet cable or Wi-Fi | Ethernet is more stable and recommended |
17
| **Case** (optional) | Any Pi case | Protects the Pi and improves cooling |
18
19
### Software (on your PC)
20
21
- **Raspberry Pi Imager** -- for writing the OS to the SD card ([Download here](https://www.raspberrypi.com/software/))
22
- **SSH Client** -- for connecting to the Pi:
23
- **Windows:** [PuTTY](https://www.putty.org/) or the built-in Windows Terminal (Windows 10+)
24
- **macOS / Linux:** Terminal (already pre-installed)
25
26
### Network
27
28
- The Raspberry Pi and your PC must be on the **same network** (same Wi-Fi or connected to the same router via cable)
29
30
---
31
32
## 20.2 Install Raspberry Pi OS
33
34
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**.
35
36
### Step 1: Download Raspberry Pi Imager
37
38
Download the Imager from the official website and install it on your PC:
39
40
> https://www.raspberrypi.com/software/
41
42
### Step 2: Open Imager and Configure
43
44
1. Insert the **microSD card** into your PC (using an SD card reader if needed)
45
2. Open the **Raspberry Pi Imager**
46
3. Click **"Choose Device"** and select your Raspberry Pi model
47
4. Click **"Choose OS"** and select:
48
- **Raspberry Pi OS (other)****Raspberry Pi OS Lite (64-bit)**
49
50
> **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.
51
52
5. Click **"Choose Storage"** and select your microSD card
53
54
> **Warning:** All data on the SD card will be erased!
55
56
### Step 3: Configure Advanced Settings
57
58
Click **"Next"** and then **"Edit Settings"**. Here you configure important basic settings:
59
60
**"General" tab:**
61
62
| Setting | Recommendation | Explanation |
63
|---|---|---|
64
| **Hostname** | `filaman` | The Pi will be reachable on your network under this name |
65
| **Username** | `pi` | Your username for logging into the Pi |
66
| **Password** | A secure password | Remember this password well! |
67
| **Configure Wi-Fi** | Your Wi-Fi name and password | Only needed if you're not using an Ethernet cable |
68
| **Locale settings** | Your timezone and keyboard layout | e.g. Europe/London, us |
69
70
**"Services" tab:**
71
72
- Check the box for **"Enable SSH"**
73
- Select **"Use password authentication"**
74
75
> **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.
76
77
Click **"Save"** and then **"Yes"** to write the OS to the SD card.
78
79
### Step 4: Boot the Raspberry Pi
80
81
1. Wait until the writing process is complete
82
2. Safely remove the microSD card from your PC
83
3. Insert the microSD card into the Raspberry Pi
84
4. Connect the Ethernet cable (if using wired networking)
85
5. Connect the power supply -- the Pi will start automatically
86
6. Wait approximately **1--2 minutes** for the Pi to fully boot up
87
88
---
89
90
## 20.3 Connect to the Raspberry Pi (SSH)
91
92
Now you'll connect to the Raspberry Pi from your PC.
93
94
### Find the IP Address
95
96
You need the IP address of your Raspberry Pi. There are several ways to find it:
97
98
**Option A: Using the hostname (easiest method)**
99
100
If you set the hostname to `filaman`, try:
101
102
```bash
103
ping filaman.local
104
```
105
106
The response will show you the IP address (e.g. `192.168.1.42`).
107
108
**Option B: Check your router**
109
110
1. Open your router's web interface (usually `192.168.1.1` or `192.168.0.1`)
111
2. Look for "filaman" or "raspberrypi" in the device list
112
3. Note the displayed IP address
113
114
**Option C: Scan the network**
115
116
On your PC you can alternatively use this command:
117
118
```bash
119
# macOS / Linux:
120
arp -a | grep raspberry
121
122
# Windows (PowerShell):
123
arp -a
124
```
125
126
### Establish SSH Connection
127
128
**macOS / Linux (Terminal):**
129
130
```bash
131
ssh pi@filaman.local
132
```
133
134
Or using the IP address:
135
136
```bash
137
ssh pi@192.168.1.42
138
```
139
140
> Replace `192.168.1.42` with the actual IP address of your Pi.
141
142
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.
143
144
**Windows (PuTTY):**
145
146
1. Open PuTTY
147
2. Enter in **Host Name**: `filaman.local` (or the IP address)
148
3. Port: `22`
149
4. Click **"Open"**
150
5. Username: `pi`
151
6. Password: Your chosen password
152
153
> **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.
154
155
**When connected**, you'll see a command prompt like:
156
157
```
158
pi@filaman:~ $
159
```
160
161
You're now logged into the Raspberry Pi.
162
163
---
164
165
## 20.4 Update the System
166
167
Before installing FilaMan, let's bring the operating system up to date:
168
169
```bash
170
sudo apt update && sudo apt upgrade -y
171
```
172
173
> **What's happening here?**
174
> - `sudo` = run the command with administrator privileges
175
> - `apt update` = refresh the list of available software packages
176
> - `apt upgrade -y` = upgrade all packages to the latest version (`-y` = confirm automatically)
177
178
This may take a few minutes. Wait until the process is complete.
179
180
---
181
182
## 20.5 Install Docker
183
184
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.
185
186
### Install Docker
187
188
Run the following command:
189
190
```bash
191
curl -fsSL https://get.docker.com | sh
192
```
193
194
> This command downloads the official Docker installation script and executes it. The installation takes about 2--5 minutes.
195
196
### Add Your User to the Docker Group
197
198
So you can run Docker commands without `sudo`:
199
200
```bash
201
sudo usermod -aG docker pi
202
```
203
204
> Replace `pi` with your username if you chose a different one.
205
206
### Log Out and Log Back In
207
208
For the group change to take effect, you need to log out and back in:
209
210
```bash
211
exit
212
```
213
214
Then reconnect via SSH:
215
216
```bash
217
ssh pi@filaman.local
218
```
219
220
### Verify the Installation
221
222
Check that Docker is correctly installed:
223
224
```bash
225
docker --version
226
```
227
228
Expected output (version number may vary):
229
230
```
231
Docker version 27.x.x, build xxxxxxx
232
```
233
234
Also check Docker Compose:
235
236
```bash
237
docker compose version
238
```
239
240
Expected output:
241
242
```
243
Docker Compose version v2.x.x
244
```
245
246
> If both commands show a version number, Docker is ready to go.
247
248
---
249
250
## 20.6 Set Up FilaMan
251
252
Now we'll create the configuration files for FilaMan.
253
254
### Create a Directory
255
256
```bash
257
mkdir ~/filaman && cd ~/filaman
258
```
259
260
### Generate Secure Keys
261
262
FilaMan requires two secret keys for security. Generate them with the following command:
263
264
```bash
265
echo "SECRET_KEY: $(openssl rand -hex 32)"
266
echo "CSRF_SECRET_KEY: $(openssl rand -hex 32)"
267
```
268
269
> **Important:** Copy the two generated keys and save them. You'll need them shortly for the `.env` file.
270
271
The output looks something like this:
272
273
```
274
SECRET_KEY: 3a7f2b1e9c4d8f6a5e2b1c7d9f3a8e6b4c1d7f2a9e5b3c8d6f4a1e7b2c9d5f
275
CSRF_SECRET_KEY: 8e2f4a6c1d9b7e3f5a2c8d4b6e1f9a7c3d5b8e2f4a6c1d9b7e3f5a2c8d4b6e
276
```
277
278
### Create Configuration File (.env)
279
280
Create the `.env` file with the settings for FilaMan:
281
282
```bash
283
nano .env
284
```
285
286
Paste the following content and **adjust the marked sections**:
287
288
```env
289
# ===========================================
290
# Database Configuration
291
# ===========================================
292
# SQLite (default - recommended for Raspberry Pi)
293
DATABASE_URL=sqlite+aiosqlite:////app/data/filaman.db
294
295
# ===========================================
296
# Security
297
# ===========================================
298
# IMPORTANT: Replace these with your generated keys!
299
SECRET_KEY=PASTE_YOUR_GENERATED_SECRET_KEY_HERE
300
CSRF_SECRET_KEY=PASTE_YOUR_GENERATED_CSRF_SECRET_KEY_HERE
301
302
# ===========================================
303
# Administrator Account
304
# ===========================================
305
# These credentials are used to create the admin account on first start
306
ADMIN_EMAIL=admin@example.com
307
ADMIN_PASSWORD=MySecurePassword123!
308
ADMIN_DISPLAY_NAME=Admin
309
ADMIN_LANGUAGE=en
310
ADMIN_SUPERADMIN=true
311
312
# ===========================================
313
# Application Settings
314
# ===========================================
315
DEBUG=false
316
CORS_ORIGINS=*
317
PORT=8000
318
319
# ===========================================
320
# Logging
321
# ===========================================
322
LOG_LEVEL=INFO
323
LOG_FORMAT=text
324
```
325
9d9ade Manuel Weiser 2026-03-29 21:35:13
docs: Update explanation of settings in installation guide for Raspberry Pi
326
**Explanation of settings:**
327
328
| Setting | Description |
329
|---|---|
330
| `DATABASE_URL` | Database connection string. The default SQLite database is stored inside the container at `/app/data/` and is backed up automatically. |
331
| `SECRET_KEY` | Secret key for session encryption. **Must** be replaced with your generated key! |
332
| `CSRF_SECRET_KEY` | Secret key for CSRF protection. **Must** be replaced with your generated key! |
333
| `ADMIN_EMAIL` | Email address for the first administrator. This is your login name. |
334
| `ADMIN_PASSWORD` | Password for the administrator. **Choose a secure password!** At least 8 characters. |
335
| `ADMIN_DISPLAY_NAME` | Display name of the administrator in the UI. |
336
| `ADMIN_LANGUAGE` | UI language (`en` for English, `de` for German). |
337
| `ADMIN_SUPERADMIN` | Grants the first user full administrator rights. |
338
| `DEBUG` | Debug mode. Leave at `false` for normal operation. |
339
| `CORS_ORIGINS` | Allowed origin domains for API requests. `*` allows all. |
340
| `PORT` | External port on which FilaMan is accessible. Default: `8000`. |
341
| `LOG_LEVEL` | Detail level of log output (`INFO`, `DEBUG`, `WARNING`, `ERROR`). |
342
| `LOG_FORMAT` | Log format (`text` or `json`). |
9308ab Manuel Weiser 2026-03-29 21:27:01
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.
343
344
Save the file with **Ctrl+O**, **Enter**, and close the editor with **Ctrl+X**.
345
346
### Create Docker Compose File
347
348
```bash
349
nano docker-compose.yml
350
```
351
352
Paste the following content:
353
354
```yaml
355
services:
356
filaman-system-app:
357
image: ghcr.io/fire-devils/filaman-system:latest
358
container_name: filaman-system-app
359
env_file:
360
- .env
361
environment:
362
- DATABASE_URL=${DATABASE_URL}
363
- SECRET_KEY=${SECRET_KEY}
364
- CSRF_SECRET_KEY=${CSRF_SECRET_KEY}
365
- DEBUG=${DEBUG}
366
- CORS_ORIGINS=${CORS_ORIGINS}
367
- ADMIN_EMAIL=${ADMIN_EMAIL}
368
- ADMIN_PASSWORD=${ADMIN_PASSWORD}
369
- ADMIN_DISPLAY_NAME=${ADMIN_DISPLAY_NAME}
370
- ADMIN_LANGUAGE=${ADMIN_LANGUAGE}
371
- ADMIN_SUPERADMIN=${ADMIN_SUPERADMIN}
372
volumes:
373
- filaman_data:/app/data
374
restart: unless-stopped
375
ports:
376
- "${PORT}:8000"
377
healthcheck:
378
test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8000/health')"]
379
interval: 30s
380
timeout: 5s
381
start_period: 15s
382
retries: 3
383
384
volumes:
385
filaman_data:
386
```
387
388
Save the file with **Ctrl+O**, **Enter**, and close the editor with **Ctrl+X**.
389
390
---
391
392
## 20.7 Start FilaMan
393
394
Everything is set up. Start FilaMan with:
395
396
```bash
397
docker compose up -d
398
```
399
400
> **What's happening here?**
401
> - `docker compose up` = starts the containers defined in `docker-compose.yml`
402
> - `-d` = run in the background (detached mode)
403
404
On first start, the Docker image will be downloaded (approx. 200--400 MB). This may take a few minutes depending on your internet connection.
405
406
### Check the Logs
407
408
Review the logs to verify everything starts correctly:
409
410
```bash
411
docker compose logs -f
412
```
413
414
You should see output similar to:
415
416
```
417
filaman-system-app | Checking for database migrations...
418
filaman-system-app | Running migrations...
419
filaman-system-app | Database migrations complete.
420
filaman-system-app | Starting nginx...
421
```
422
423
> Press **Ctrl+C** to exit the log view (the container continues running in the background).
424
425
### Check Status
426
427
```bash
428
docker compose ps
429
```
430
431
If everything works, you'll see:
432
433
```
434
NAME STATUS PORTS
435
filaman-system-app Up X minutes (healthy) 0.0.0.0:8000->8000/tcp
436
```
437
438
> The status should change to `(healthy)` after approximately 30 seconds.
439
440
---
441
442
## 20.8 Access FilaMan in the Browser
443
444
FilaMan is now ready! Open a browser on your PC and navigate to:
445
446
```
447
http://filaman.local:8000
448
```
449
450
Or use the IP address of your Raspberry Pi:
451
452
```
453
http://192.168.1.42:8000
454
```
455
456
> **Tip:** You can find your Pi's IP address with this command (on the Pi via SSH):
457
> ```bash
458
> hostname -I
459
> ```
460
461
### First Login
462
463
You'll see the FilaMan login page. Sign in with the credentials you set in the `.env` file:
464
465
- **Email:** The `ADMIN_EMAIL` from your `.env` (e.g. `admin@example.com`)
466
- **Password:** The `ADMIN_PASSWORD` from your `.env`
467
468
After signing in, you'll see the **Dashboard** -- FilaMan's home page.
469
470
> For detailed information about the login process, see the documentation: [Login](https://docu.filaman.app/Docs/En/02-Login)
471
472
---
473
474
## 20.9 First Steps After Installation
475
476
Once FilaMan is running, it's recommended to set up your data in the following order:
477
478
| Step | What | Where | Documentation |
479
|---|---|---|---|
480
| 1 | **Create manufacturers** | Menu → Manufacturers | [Manufacturers](https://docu.filaman.app/Docs/En/05-Manufacturers) |
481
| 2 | **Define colors** | Menu → Filaments → "Manage Colors" | [Color Management](https://docu.filaman.app/Docs/En/12-Colors) |
482
| 3 | **Create filaments** | Menu → Filaments → "Add Filament" | [Filaments](https://docu.filaman.app/Docs/En/06-Filaments) |
483
| 4 | **Set up locations** | Menu → Locations → "Add Location" | [Locations](https://docu.filaman.app/Docs/En/08-Locations) |
484
| 5 | **Add spools** | Menu → Spools → "Add Spool" | [Spools](https://docu.filaman.app/Docs/En/07-Spools) |
485
| 6 | **Connect printers** (optional) | Menu → Printers → "Add Printer" | [Printers](https://docu.filaman.app/Docs/En/09-Printers) |
486
487
> **Tip:** Alternatively, you can import filaments from SpoolmanDB instead of creating everything manually. Install the SpoolmanDB plugin to do this (see next chapter).
488
489
---
490
491
## 20.10 Install Plugins
492
493
FilaMan can be extended with plugins. Installation is done conveniently through the web interface.
494
495
### Installing a Plugin
496
497
1. Go to **Admin Panel****System**
498
2. Click **"Install Plugin"**
499
3. Select the desired plugin from the **"Install from Registry"** dropdown
500
4. Click **"Install Plugin"**
501
5. The plugin will be automatically downloaded and installed
502
503
### Available Plugins
504
505
| Plugin | Type | Description | Documentation |
506
|---|---|---|---|
507
| **BambuLab** | Driver | Connect BambuLab printers (AMS, filament sync) | [Plugin: BambuLab](https://docu.filaman.app/Docs/En/14-Plugin-Bambulab) |
508
| **SpoolmanDB Import** | Import | Import filaments from the SpoolmanDB database | [Plugin: SpoolmanDB](https://docu.filaman.app/Docs/En/15-Plugin-Spoolmandb) |
509
| **Spoolman API** | Import | Spoolman-compatible API for external tools | [Plugin: Spoolman API](https://docu.filaman.app/Docs/En/16-Plugin-Spoolmanapi) |
510
| **Bambuddy** | Integration | Bambuddy integration for inventory sync | [Plugin: Bambuddy](https://docu.filaman.app/Docs/En/17-Plugin-Bambuddy) |
511
512
> For detailed information about plugin management: [Admin Area](https://docu.filaman.app/Docs/En/11-Admin#115-system-plugin-management)
513
514
---
515
516
## 20.11 Update FilaMan
517
518
To update FilaMan to the latest version, run the following commands on the Raspberry Pi:
519
520
```bash
521
cd ~/filaman
522
docker compose pull
523
docker compose up -d
524
```
525
526
> **What happens during an update?**
527
> 1. `docker compose pull` downloads the latest version of the Docker image
528
> 2. `docker compose up -d` restarts the container with the new version
529
> 3. On startup, a **database backup** is automatically created
530
> 4. Then all necessary **database migrations** are automatically applied
531
>
532
> Your data is fully preserved!
533
534
---
535
536
## 20.12 Useful Commands
537
538
Here's an overview of the most important Docker commands for daily operation:
539
540
### Manage Containers
541
542
```bash
543
# Navigate to the FilaMan directory
544
cd ~/filaman
545
546
# Stop containers
547
docker compose stop
548
549
# Start containers
550
docker compose start
551
552
# Restart containers
553
docker compose restart
554
555
# Stop and remove containers (data is preserved!)
556
docker compose down
557
558
# Create and start containers
559
docker compose up -d
560
```
561
562
### View Logs
563
564
```bash
565
# Show all logs (continuously)
566
docker compose logs -f
567
568
# Show only the last 100 lines
569
docker compose logs --tail 100
570
571
# Show logs since a specific time
572
docker compose logs --since 1h
573
```
574
575
### Check Container Status
576
577
```bash
578
# Status of all containers
579
docker compose ps
580
581
# Detailed container info
582
docker inspect filaman-system-app
583
```
584
585
### Reset Administrator Password
586
587
If you've forgotten your password:
588
589
```bash
590
docker exec -it filaman-system-app python -m app.cli reset-password admin@example.com
591
```
592
593
> Replace `admin@example.com` with your actual admin email address. You'll be prompted to enter the new password twice.
594
595
### Data and Backups
596
597
FilaMan data is stored in a Docker volume. Automatic SQLite backups are created under `/app/data/backups` inside the container.
598
599
```bash
600
# List backups inside the container
601
docker exec filaman-system-app ls -la /app/data/backups/
602
```
603
604
> 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)
605
606
---
607
608
## 20.13 Troubleshooting
609
610
### Container Won't Start
611
612
Check the logs for error messages:
613
614
```bash
615
docker compose logs
616
```
617
618
Common causes:
619
- **Missing or invalid `.env` file** -- Check that all required fields are set
620
- **Syntax error in `docker-compose.yml`** -- Ensure correct indentation (spaces, not tabs)
621
622
### Port Already in Use
623
624
If port 8000 is already used by another service:
625
626
1. Open the `.env` file:
627
```bash
628
nano ~/filaman/.env
629
```
630
2. Change the port, e.g.:
631
```
632
PORT=8080
633
```
634
3. Restart the container:
635
```bash
636
cd ~/filaman
637
docker compose down
638
docker compose up -d
639
```
640
4. FilaMan will then be accessible at `http://filaman.local:8080`
641
642
### Cannot Access from Another Device
643
644
- Make sure your PC and Raspberry Pi are on the **same network**
645
- Use the **IP address** instead of the hostname (`http://192.168.x.x:8000`)
646
- Check if a firewall on the Pi is blocking the port:
647
```bash
648
sudo ufw status
649
```
650
If active, allow the port:
651
```bash
652
sudo ufw allow 8000/tcp
653
```
654
655
### Forgotten Password
656
657
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)
658
659
### Database Issues
660
661
If the database is corrupted, you can restore a backup:
662
663
1. Via the web interface: **Admin Panel → Database Backup → SQLite Backups → Restore**
664
2. Or manually via the command line:
665
```bash
666
# List available backups
667
docker exec filaman-system-app ls -la /app/data/backups/
668
```
669
670
> For detailed information about backup recovery: [Database Backup](https://docu.filaman.app/Docs/En/11-Admin#116-database-backup-restore)
671
672
---
673
674
## 20.14 Further Links
675
676
| Resource | Link |
677
|---|---|
678
| **FilaMan Documentation (English)** | [docu.filaman.app/Docs/En/00-Contents](https://docu.filaman.app/Docs/En/00-Contents) |
679
| **FilaMan Documentation (German)** | [docu.filaman.app/Docs/De/00-Inhalt](https://docu.filaman.app/Docs/De/00-Inhalt) |
680
| **GitHub: FilaMan System** | [github.com/Fire-Devils/filaman-system](https://github.com/Fire-Devils/filaman-system) |
681
| **GitHub: FilaMan Plugins** | [github.com/Fire-Devils/filaman-plugins](https://github.com/Fire-Devils/filaman-plugins) |
682
| **GitHub: FilaMan ESP32** | [github.com/Fire-Devils/FilaMan-System-ESP32](https://github.com/Fire-Devils/FilaMan-System-ESP32) |
683
| **Docker Image** | [ghcr.io/fire-devils/filaman-system](https://github.com/Fire-Devils/filaman-system/pkgs/container/filaman-system) |
684
685
---
686
687
← [Back: Plugin: Bambuddy](/Docs/En/17-Plugin-Bambuddy) | [Back to Table of Contents](/Docs/En/00-Contents)
688
689
---
690
691
*This guide was created for FilaMan. For technical questions or issues, please contact your system administrator.*