All apps · 0 apps
Makershelf
Docker app from NilsN3DP's Repository
Overview
Readme
View on GitHubmakershelf
makershelf is a 3D print file and project manager for makers, print farms and workshops.
Organise your models, track print runs, manage creators and categories — self-hosted with Docker or on Unraid.
Quick start
Docker
docker compose -f docker-compose.server.yml up -d
Open http://localhost:3000/setup and create your workspace.
Unraid / NAS
Install via Unraid Community Apps — search for makershelf.
The image is published as ghcr.io/nilsn3dp/makershelf-server:beta.
Full deployment guide: docs/DEPLOYMENT.md
Local development
npm install
npm run db:generate && npm run db:push
npm run dev
Features
- Project library — grid view with filters, categories, creators, tags and lists
- File management — upload STL/OBJ/3MF/GCODE/STEP/AMF/PLY/ZIP/PDF and images; 3D preview in browser
- Slicer & CAD integration — open files directly in PrusaSlicer, OrcaSlicer, Bambu Studio, FreeCAD or Fusion 360
- Metadata import — pull info from supported maker platforms and sidecar files
- Active tracking — steps, BOM, printed parts, reference links
- ZIP export — export a project with all files and metadata
- Duplicates & lists — detect dupes, build custom lists, mark favourites
- Filament Vault — spool library, weight logging, NFC tags in OpenPrintTag format, manufacturer presets
- User management — invitations, role management, 2FA, audit log
- Themes — multiple UI themes with manual colour tuning
Tech stack
- Next.js · React · TypeScript
- Prisma (PostgreSQL)
- Three.js for 3D preview
- Docker-ready, standalone build
Documentation
License
makershelf is available under the AGPL v3 license for community use. See docs/LICENSING.md for details.
Contributing
See CONTRIBUTING.md.
Security
See SECURITY.md.
Requirements
Categories
Related apps
Explore more like this
Explore allDetails
ghcr.io/nilsn3dp/makershelf-server:betaRuntime arguments
- Web UI
http://[IP]:[PORT:8080]/- Network
bridge- Shell
bash- Privileged
- false
Template configuration
Port for the web interface. Leave as 8080 when using a dedicated container IP.
- Target
- 8080
- Default
- 8080
- Value
- 8080
AppData folder for configuration and runtime files.
- Target
- /config
- Default
- /mnt/user/appdata/makershelf
- Value
- /mnt/user/appdata/makershelf
Folder where imported project files are stored permanently.
- Target
- /storage
- Default
- /mnt/user/Makershelf/Projects
- Value
- /mnt/user/Makershelf/Projects
Drop files or library folders here. The server scans this folder for bulk import without a browser upload.
- Target
- /import
- Default
- /mnt/user/Makershelf/Import
- Value
- /mnt/user/Makershelf/Import
Port the app listens on inside the container. Must match the Web UI Port when using a dedicated container IP.
- Target
- PORT
- Default
- 8080
- Value
- 8080
Long random secret for login sessions. Generate one with: openssl rand -hex 32
- Target
- MAKERSHELF_AUTH_SECRET
PostgreSQL connection string. Format: postgresql://user:password@host:5432/database — must match the credentials you set up in your PostgreSQL container.
- Target
- DATABASE_URL
- Default
- postgresql://makershelf:change-me@makershelf-postgres:5432/makershelf
- Value
- postgresql://makershelf:change-me@makershelf-postgres:5432/makershelf
- Default
- postgresql
- Value
- postgresql
- Default
- server
- Value
- server
- Default
- docker-team
- Value
- docker-team
- Default
- postgres
- Value
- postgres
- Default
- filesystem
- Value
- filesystem
- Default
- /config
- Value
- /config
- Default
- /storage
- Value
- /storage
- Default
- /import
- Value
- /import