Makershelf

Makershelf

Docker app from NilsN3DP's Repository

Overview

makershelf Server for Unraid — 3D print file and project manager for makers, workshops and teams. Organise models, track filament, manage your printer farm and maintenance schedules. Note: this is a beta release. Please report issues on GitHub. Before starting: install a PostgreSQL container from Community Apps (search "postgres"), create a database named "makershelf" with a dedicated user, then fill in the PostgreSQL Connection field below. On first launch, open the Web UI and follow the setup wizard to create your workspace and first admin account.

makershelf

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.

Install Makershelf on Unraid in a few clicks.

Find Makershelf in Community Apps on your Unraid server, review the template, and click Install. Unraid handles the Docker app or plugin setup from the published template.

Open the Apps tab on your Unraid server Search Community Apps for Makershelf Review the template variables and paths Click Install

Requirements

PostgreSQL server

Categories

Related apps

Explore more like this

Explore all

Details

Repository
ghcr.io/nilsn3dp/makershelf-server:beta
Last Updated2026-07-14
First Seen2026-05-29

Runtime arguments

Web UI
http://[IP]:[PORT:8080]/
Network
bridge
Shell
bash
Privileged
false

Template configuration

Web UI PortPorttcp

Port for the web interface. Leave as 8080 when using a dedicated container IP.

Target
8080
Default
8080
Value
8080
AppDataPathrw

AppData folder for configuration and runtime files.

Target
/config
Default
/mnt/user/appdata/makershelf
Value
/mnt/user/appdata/makershelf
Project StoragePathrw

Folder where imported project files are stored permanently.

Target
/storage
Default
/mnt/user/Makershelf/Projects
Value
/mnt/user/Makershelf/Projects
Import FolderPathrw

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
Internal App PortVariable

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
Session SecretVariable

Long random secret for login sessions. Generate one with: openssl rand -hex 32

Target
MAKERSHELF_AUTH_SECRET
PostgreSQL ConnectionVariable

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
DATABASE_PROVIDERVariable
Default
postgresql
Value
postgresql
MAKERSHELF_PRODUCT_PROFILEVariable
Default
server
Value
server
MAKERSHELF_DEPLOYMENT_MODEVariable
Default
docker-team
Value
docker-team
MAKERSHELF_DATA_BACKENDVariable
Default
postgres
Value
postgres
MAKERSHELF_STORAGE_DRIVERVariable
Default
filesystem
Value
filesystem
MAKERSHELF_APPDATA_ROOTVariable
Default
/config
Value
/config
MAKERSHELF_STORAGE_ROOTVariable
Default
/storage
Value
/storage
MAKERSHELF_IMPORT_ROOTVariable
Default
/import
Value
/import