Leere Spulen gehören nicht in den Müll! Wir unterstützen die Recycling Fabrik. Sende deine leeren Filamentspulen und 3D-Druck-Reste dorthin, damit daraus wieder neues Filament gewonnen werden kann.
Spannende Neuigkeiten: Die Recycling Fabrik ist der erste Hersteller, der demnächst damit starten wird, seine Filamentspulen ab Werk mit vorprogrammierten, FilaMan-kompatiblen RFID-Tags auszuliefern!
Auf der Suche nach der englischen Version? Lese die README.md.
FilaMan ist ein umfassendes System zur Verwaltung von 3D-Druck-Filamenten. Es hilft dir dabei, den Überblick über deine Filamentspulen, Hersteller, Farben und den aktuellen Bestand zu behalten. Zudem bietet es Schnittstellen zu Druckern und AMS (Automatic Material System) Einheiten.
Das vollständige Handbuch ist verfügbar unter docu.filaman.app.
Um das volle Potenzial dieses Systems auszuschöpfen, empfehlen wir unser zugehöriges Hardware-Projekt: FilaMan-System-ESP32 Mit dieser ESP32-basierten smarten Waage samt RFID-Integration kannst du deine Spulen auflegen, das Restgewicht automatisch messen und die Daten via RFID-Tag direkt mit dieser Software synchronisieren!
Für Nutzer von Home Assistant gibt es ein extrem praktisches Add-on: ha-filaman-system Damit lässt sich das FilaMan System mit wenigen Klicks direkt in deiner Home Assistant Umgebung installieren und betreiben.
- Spulen-Verwaltung: Tracking von Restgewicht, Lagerort und Status.
- Mandantenfähigkeit: Multi-User-Unterstützung mit Rollensystem.
- Drucker-Integration: Plugin-System zur Anbindung von 3D-Druckern und AMS-Einheiten.
- Druckbare Labels: Spulen- und Filament-Labels mit QR-Codes, eigenem Label-Designer und Etikettenbogen-Ausgabe drucken und exportieren.
- Datenbank-Support: Kompatibel mit SQLite (Standard), MySQL und PostgreSQL.
- Responsive UI: Modernes Design (Hell, Dunkel und Brand-Theme).
- OIDC (OAuth2) Login: Single Sign-On (SSO) über OpenID Connect für bestehende Benutzer.
Wir haben spannende Pläne für die Zukunft von FilaMan:
- Drucker-Plugins: Entwicklung von Plugins für die Verbindung zu verschiedenen 3D-Druckern (Beiträge durch die Community sind sehr willkommen!).
- Mobile Apps: Native Apps für iOS und Android.
Der einfachste Weg, FilaMan zu starten, ist über Docker:
docker run -d \
--name filaman-system-app \
--restart unless-stopped \
--pull always \
-p 8083:8000 \
-v filaman_data:/app/data \
ghcr.io/fire-devils/filaman-system:latestDie Anwendung ist anschließend unter http://localhost:8083 erreichbar.
- Standard E-Mail:
admin@example.com - Standard Passwort:
admin123
- Docker
- Docker Buildx mit Multi-Architektur-Unterstützung (für ARM/AMD)
git clone https://github.com/Fire-Devils/filaman-system.git && cd filaman-system
# Image bauen
docker build -t filaman-system:latest .
# Oder mit docker-compose
docker-compose up --build
# Container starten
docker run -d \
--name filaman-system-app \
--restart unless-stopped \
-p 8083:8000 \
-v filaman_data:/app/data \
-e DEBUG=false \
-e SECRET_KEY=your-secret-key \
-e CSRF_SECRET_KEY=your-csrf-secret \
-e ADMIN_EMAIL=admin@example.com \
-e ADMIN_PASSWORD=your-admin-password \
filaman-system:latest- Python 3.11+
- Node.js 18+
- uv (Python Package Manager)
cd backend
uv sync
uv run uvicorn app.main:app --reloadDas Backend ist unter http://localhost:8000 verfügbar.
cd frontend
npm install
npm run devDas Frontend ist unter http://localhost:4321 verfügbar.
cd frontend
npm run buildDie statischen Dateien liegen in frontend/dist/.
Erstelle eine .env Datei im Projektverzeichnis. Verwende .env.example als Vorlage:
# Datenbank-Konfiguration
# SQLite (Standard):
DATABASE_URL=sqlite+aiosqlite:///./filaman.db
# MySQL:
# DATABASE_URL=aiomysql://username:password@hostname:3306/database
# PostgreSQL:
# DATABASE_URL=asyncpg://username:password@hostname:5432/database# Einzelne Secrets generieren
openssl rand -hex 32
# Alle Secrets auf einmal generieren
echo "SECRET_KEY=$(openssl rand -hex 32)"
echo "CSRF_SECRET_KEY=$(openssl rand -hex 32)"
echo "OIDC_ENC_KEY=$(openssl rand -hex 32)"Um OIDC (OpenID Connect) Login zu aktivieren, setze folgende Umgebungsvariable:
# Erforderlich für die Verschlüsselung des OIDC Client Secrets in der Datenbank
OIDC_ENC_KEY=dein-fernet-keyHinweis: Bei Verwendung von MySQL oder PostgreSQL muss das Backup vom Administrator extern verwaltet werden. Das automatische SQLite-Backup ist in diesem Fall deaktiviert.
/
├── backend/
│ ├── app/
│ │ ├── core/ # Konfiguration, Datenbank, Sicherheit
│ │ ├── modules/ # Domain-Module
│ │ └── plugins/ # Drucker-Plugins
│ ├── alembic/ # Datenbank-Migrationen
│ └── tests/ # Backend-Tests
├── frontend/
│ ├── src/
│ │ ├── pages/ # Astro-Seiten
│ │ ├── layouts/ # Seiten-Layouts
│ │ └── components/ # UI-Komponenten
│ └── dist/ # Produktions-Build
└── spec/ # Projektspezifikationen
Backend:
- FastAPI
- SQLAlchemy 2.0 + Alembic
- Python 3.11+
Frontend:
- Astro + Tailwind CSS
- Statischer Build
MIT