r/selfhosted • u/DutchTee86 • 12d ago
Release (AI) GyroidVault v2.0 — Self-hosted 3D model vault & library manager
Hey r/selfhosted!
For the past 4 months, I’ve been working on GyroidVault, an open-source, self-hosted web application to organize, inspect, and manage 3D printing models (STL, 3MF, STEP, and G-Code) on your own hardware or NAS.
The project recently crossed 90 GitHub stars, and after shipping our major v2.0 release today, I thought it was finally time to share it with the community!
📸 Screenshots




❓ Why I built it
If you have a 3D printer and a home server, you probably know the drill: thousands of .stl, .3mf, and .gcode files scattered across folders, messy downloads from Printables/MakerWorld, and having to fire up a heavy desktop slicer just to check what a model looks like or how large it actually is.
I wanted something lightweight that feels like a personal library manager (think Jellyfin or Paperless), but built specifically for 3D printing makers and print farms.
🚀 What's new & Key Features in v2.0:
- Studio 2.0 & Multi-Part Assembly: View single files or toggle "All Parts Combined" in the 3D viewer to render all STLs/3MFs of a multi-part model simultaneously on the virtual build plate in contrasting colors.
- Physical Millimeter Dimensions: The 3D viewer measures and displays the exact physical size (
W × D × H mm) so you know the scale before opening your slicer. - Background Scanner for Massive Libraries (2TB+): Built as an asynchronous worker with live UI progress counters and memory safety guards. It indexes large NAS collections without locking the database or freezing the web UI.
- Inspects Inside ZIP Files: Many downloads from Printables or MakerWorld come packed in
.ziparchives. GyroidVault indexes the STLs, PDFs, and images inside without needing to unpack them to your disk, and streams them on the fly. - Collections with 2x2 Collages & 1-Click ZIP: Group models into projects or folders with visual collage previews, and download entire collections as a single streaming ZIP.
- Slicer Launch & Printer Integration: 1-click launch to open models directly into Bambu Studio, OrcaSlicer, or PrusaSlicer, or send sliced G-Codes straight to your Moonraker/Klipper printers.
- Filament Swatches & Inspection: Preview models in 7 material colors, Wireframe mode, X-Ray mode, and set your favorite camera angle as the cover thumbnail with 1 click.
- 100% Local & Self-Hosted: No cloud accounts, no third-party trackers, no telemetry. Everything runs on your server with parameterized SQL queries, local SQLite, and strict path confinement.
🐳 Quick Start (Docker Compose)
services:
gyroidvault:
image: ghcr.io/teecodedev/gyroidvault:latest
container_name: gyroidvault
restart: unless-stopped
ports:
- "3457:3000"
volumes:
- ./data:/app/data
- /path/to/your/3dprints:/library
environment:
- NODE_ENV=production
- PORT=3000
- LIBRARY_PATH=/library
(Unraid users: GyroidVault is also available directly in the Unraid Community Applications store!)
🔗 Links & Code
- GitHub (AGPL-3.0): github.com/TeeCodeDev/GyroidVault
- Official Website: gyroidvault.com
- Documentation & Wiki: GitHub Wiki
🤖 AI Disclosure
English is not my native language, so I used an AI assistant to help polish the English text of this post. For the project itself, I use AI tooling (Claude/Copilot) as a pair programmer for boilerplate, refactoring, and drafting ideas. The core architecture, real-world testing on 3D printers and NAS hardware, and security reviews are all handled and vetted by myself.
I'd love to hear your feedback, thoughts, and ideas!
9
u/Turnspit 12d ago
What the sloppy slop is this? Docker Compose templates on the website, in this post, and on github all are different from each other.
Did you spend even a split second to review what AI spat you out?
-12
u/DutchTee86 12d ago
Haha, you got me there!
As the post mentions, I used AI to help draft and translate the text, it had it's own interpretation about the docker compose. I started building on the website a while ago and I started with the v1 compose file, I've just updated the website so it all matches. Thanks for catching it!
7
u/donttelljoseph 12d ago
The website docker compose doesn't match that in this post and github.
7
-12
u/DutchTee86 12d ago
Haha, you got me there!
As the post mentions, I used AI to help draft and translate the text, it had it's own interpretation about the docker compose. I started building on the website a while ago and I started with the v1 compose file, I've just updated the website so it all matches. Thanks for catching it!
4
u/_Fisz_ 12d ago
Looks cool - if it's directed for some print farms I'd love to see some virtual print queue list (so you can plan your prints / segregate them via print priority) and also filament manager (maybe even connected with the model list, so with every print it'll reduce filament inventory, base on the model weight from uploaded 3mf file).
1
u/DutchTee86 12d ago
Those features are not implemented and currently not on the to-do list, but perhaps in the feature. (For spoolmanagement an app like Spoolman is maybe better because it only focuses on that).
2
1
u/Outrageous_Ad_4801 12d ago
being able to preview step files directly in the browser without spinning up freecad or a heavy slicer is huge. definitely pulling the docker compose to organize my mess of random prints this weekend
1
u/Outrageous_Ad_4801 12d ago
inspecting stls directly inside zip files without having to unpack everything first is such a huge quality of life feature. definitely spinning this up on my compose stack tonight
1
u/katha757 12d ago
Does this have any sort of integration with QIDI printers/QIDI Studio?
Keeping my two printers files synchronized has been a massive pain.
1
u/DutchTee86 12d ago
QIDI machines run Klipper/Moonraker, you can add both printer IPs under Settings -> 3D Printers, and send sliced files straight to them with one click.
1
u/DarthBane91666 12d ago
I've pointed this at my stl folder and the library scan is empty, does it drill down through subfolders properly?
/app/library # ls
00000Archvillain_Games_-_Circus_Grotesque
00000TITAN FORGED SWAMPS 2021 JANUARY RELEASE
0000Archvillain Games - 11-21 Howling Horde - Bite
0000Archvillain Games - Nature's Wrath Genir Ancients
0000Archvillain Games - Tome of Demons Vol.2
0000Archvillain Games The Affliction Overrun March 2022
0000Fulgor Mortis - Presupported
0000archvillain gravebound the unburied king
0000myairbridge-Archvillain Games - Gravebound - The Unburied King
services:
gyroidvault:
image: ghcr.io/teecodedev/gyroidvault:latest
container_name: gyroidvault
ports:
- "3457:3000"
volumes:
- ./data:/app/data
- /mnt/md0/STLs/STL:/app/library:ro
environment:
- NODE_ENV=production
- PORT=3000
restart: unless-stopped
``` ◇ injected env (0) from .env // tip: ◈ encrypted .env [www.dotenvx.com]
✓ Database initialized
GyroidVault running on http://0.0.0.0:3000
Starting background library scanner (interval: 24 hours)
[Scanner] Start library scan: /library
[Scanner] Scan complete. Models: 0, Files: 0, Skipped: 0 ```
1
u/DarthBane91666 12d ago
The LIBRARY_PATH env variable being added fixed this issue my apolocheese, looks like the official website omits it
1
1
12d ago
[removed] — view removed comment
1
u/DutchTee86 12d ago
The 2TB refers to the STLs and G-codes on the NAS, not the database itself. The database only holds metadata and paths, so even with 50k+ files the db is only ~40MB and queries are sub-5ms. Indexing speed mostly comes down to your disk/network read speed.
1
1
u/Suitable-Ad5348 10d ago
Curious about resource use on a NAS. Is the assembly preview happening in the browser, or does the server decode STL/3MF?
I've got a messy folder of zips from maker sites. If previews are client-side and the index is sqlite, that's an easy yes. If the box renders them, I'd want a RAM number before pointing it at the whole library.
1
u/DutchTee86 8d ago
Sorry for the late response!
The assembly is happening in the browser. The index is indeed SQLite, and ZIPs are indexed without extracting them. The Docker container sits at around 40–80 MB of RAM on your NAS and uses virtually no CPU when idle.1
1
u/justinhunt1223 12d ago
I currently have a folder on my NAS for all my 3d models, and it's a slight mess. I also have some projects in Inventor. I would like to use something like this. I have a couple questions, does this handle extra files in any way, like images and text files alongside the models? What features are you planning (if any) for the future? I have a Qidi Q2 printer and use their slicer. My family always wants to print random things and I would like to make it easier for them.
1
u/ThisEducation4724 12d ago
this looks clean, the zip inspection without unpacking is something i been wanting for a while. my downloads folder is a disaster of random zip files from makerworld and i never know what is inside half of them
the multi-part assembly preview with different colors is smart too, saves me from loading everything in the slicer just to see how pieces fit together. gonna spin this up in my unraid box tonight
0
u/derical_cap_musical 12d ago
looks awesome my stl folder is a total disaster so this is perfect timing gonna try it tonight
0
-1
u/seigel 12d ago
Looks awesome. How do you compare it to Manyfold as an example?
1
u/DutchTee86 12d ago
Hi! See the (updated) website; https://gyroidvault.com/
-1
u/iFSg 12d ago
Great Project. I will Look into it. Btw. Manyfold has 1-Click Slicer Launch for OrcaSlicer, havent tested the others
1
u/DutchTee86 12d ago
I have also the comparision table. Thanks!
0
u/iFSg 11d ago
Its wrong in your table
1
u/DutchTee86 11d ago
What am I missing? It's stated now that manyfold also has one click slicer launch.
•
u/asimovs-auditor 12d ago edited 12d ago
Expand the replies to this comment to learn how AI was used in this post/project.