MCPcopy Create free account
hub / github.com/GhostLabs-ent/MakersVault

github.com/GhostLabs-ent/MakersVault @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
456 symbols 1,385 edges 43 files ⚖ MIT 4 documented · 1% updated 27d agov5 · 2026-01-01★ 2455 open issues

Browse by type

Functions 403 Types & classes 28 Endpoints 25
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

makersvaultlogoneon-removebg-preview

Status Version Docker Pulls License

Makers Vault

Makers Vault is a home for all your 3D print files and creative images/illustrations. Tired of having basic folders on your desktop filled with 3D print files with inconsistent names? Tired of having to load a 3D print file into your slicer just to see what it is? Look no further. Create folders, tag your files, and preview them in 3D directly in your browser. Makers Vault is fully self-hostable using Docker and accessible through your web browser for ease of use and deployment.

Makers Vault Home Screen

Screenshot 2025-12-31 093628

Tech Stack

  • Frontend: React + TypeScript (Vite), Tailwind CSS, three.js, occt-import-js.
  • Backend: FastAPI (Python), SQLModel, SQLite.
  • Slicer Bridge: Go (custom protocol handler).
  • Deployment: Docker, Docker Compose.

Road Map

Version 5.2

  • Bounded, cached previews that cannot freeze the library.
  • Visible bulk organization workflows and clearer folder navigation.
  • Observable mounted-library imports.
  • Secure deployment defaults and tested upgrade/recovery guidance.
  • Polish for metadata, supporting files, prepared-print summaries, LightBurn, and the local bridge.

Multi-user accounts, MFA, SSO, and the full Project/Artifact/Revision architecture are deliberately deferred. See the v5.1 release contract and architecture runbook.

Getting Started

Makers Vault is deployable using Docker pull or Docker Compose:

Docker Compose

cd makervault
docker compose -f docker-compose.deploy.yml up -d

makervault/docker-compose.deploy.yml is the canonical production manifest. makervault/docker-compose.yml is the canonical local source-build manifest. The historical docker-deploy.yml filename is retained only as a compatibility alias.

Security notice: the current beta authentication defaults are suitable only for a trusted local test deployment. Do not expose the current build directly to the Internet. Secure first-run configuration is a v5.1 release gate.

Setting up the .env file

Create a .env file in the same folder as docker-compose.yml. Start with this baseline:

PUID=1000
PGID=1000
API_IMAGE=shotgunwilly555/makersvault-api:latest
WEB_IMAGE=shotgunwilly555/makersvault-web:latest
FILE_STORAGE=/app/storage
DB_URL=sqlite:///./app.db
API_PORT=8000
PUBLIC_URL=
CORS_ORIGINS=
VITE_API_URL=
VITE_ALLOWED_HOSTS=
AUTH_USERNAME=admin
AUTH_PASSWORD=super-secret
AUTH_SECRET=replace-with-random-secret
AUTH_TOKEN_TTL=43200
IMPORT_MOUNT_PATH=/imports
IMPORT_MOUNT_PATH_HOST=/path/to/imports
IMPORT_MOUNT_EXTS=stl,3mf,step,stp,obj,svg,png,jpg,jpeg,webp,bmp,lbrn,lbrn2,zip
IMPORT_MOUNT_INCLUDE_HIDDEN=false
IMPORT_MOUNT_ON_STARTUP=true

For direct/LAN mode, set VITE_API_URL to a browser-reachable API URL (for example, http://10.0.0.160:8000).

Reverse Proxy Support (Any Provider)

Makers Vault is reverse-proxy agnostic. Nginx Proxy Manager, Traefik, Nginx, Caddy, HAProxy, and Apache all work.

Recommended single-host route:

  • Send all paths for makersvault.example to web:5173.
  • The web container serves the UI and proxies /api/* internally to api:8000.

A second public API hostname is optional, not required. See the reverse-proxy topology guide.

Recommended flow for proxied setups

Start containers:

docker compose -f docker-compose.deploy.yml up -d
  1. Bring the stack up with Docker Compose.
  2. Configure one reverse-proxy host that sends all paths to the web service.
  3. Set PUBLIC_URL in .env (for example, https://makersvault.example.com) and restart.
  4. Open Makers Vault at your public domain.

When served on standard proxy ports (80/443), Makers Vault automatically calls the API at <current-origin>/api.

Environment values when using a reverse proxy

  • Set PUBLIC_URL to your public domain URL.
  • Leave VITE_API_URL empty unless you intentionally want a non-default API target.
  • Set CORS_ORIGINS as needed for direct/LAN access or additional origins.

Example:

PUBLIC_URL=https://makersvault.example.com
CORS_ORIGINS=https://makersvault.example.com,http://10.0.0.160:5173
VITE_API_URL=
VITE_ALLOWED_HOSTS=

Running as non-root: set PUID and PGID to your host user/group IDs (defaults to 1000). Containers create a matching user at startup so volume mounts stay writable.

Keeping API internal: with the recommended single-host topology, the external proxy does not need an API route. You may remove the API's published host port after verifying bridge and diagnostic requirements; the web container still reaches api:8000 on the Compose network.

Quick troubleshooting

  • Login fails with CORS error: add the public domain to CORS_ORIGINS.
  • UI loads but API calls 404 under /api: forward the path unchanged to the web container and let its Nginx proxy reach the API.
  • LetsEncrypt HTTP-01 challenge fails and returns app HTML: make sure external port 80 points to your reverse proxy (not directly to Makers Vault).
  • Public login fails while LAN/direct works: clear/avoid hardcoded private-IP VITE_API_URL for proxied access.

Change the default credentials in .env before exposing the app publicly.

Contributing

Contributions are always welcome, whether it be bug fixes or feature improvements. For large changes, please open a discussion first!

Feature Requests and Bug Reporting

For bug reports or feature improvement requests, please open an issue or start a discussion thread.

Features, UI Walkthrough, and Supported File Types

Supported File Types

Makers Vault supports the following file types:

3D Print Files:

  • STL
  • STEP
  • OBJ
  • 3MF
  • STP

Image Types:

  • SVG
  • PNG
  • JPG
  • WEBP
  • BMP

Other File Types

Most other file types (docx, ppt, pdf, zip, etc.) are supported, but they will not render a preview. Makers Vault is mainly designed for 3D printing files, CAD, and artistic illustrations. If you need a document-focused solution, other tools may be more suitable. That said, feel free to request features if needed!

Feature List

Makers Vault is intentionally kept simple to remain user-friendly while still being feature-rich for its purpose:

  • Create and delete folders.
  • Tag any document uploaded to Makers Vault.
  • Sort, search, and rename documents.
  • Add notes to documents.
  • Toggle between light and dark mode for better viewing of differently colored 3D models.
  • Create username and password for added security when running behind a reverse proxy.
  • Move or delete files from within the application.
  • Drag and drop upload.
  • Customization Themes.
  • Open in Slicer (Beta).
  • Import from link (MakerWorld, Thingiverse, and Printables).
  • Batch tagging and batch deleting.
  • Search at mount point for eligible file types.
  • Robust handling of .zip imports.

UI and Feature Walkthrough

NOTE: For initial install instructions refer to the Getting Started section.

Logging in for the First Time

Screenshot 2025-12-31 094250

Log in using the default password set in the .env file, or a custom password if configured (recommended).

Landing Page / All Items

Screenshot 2025-12-31 094437

Uploading Files

Makers Vault supports both single-file, batch uploads, and drag and drop. To upload a file, click the Upload button in the top-right corner. To upload a folder, use the Upload Folder button and select the entire folder. This action can also be performed by utilizing the drag and drop function

Screenshot 2025-12-31 100124

NOTE: Depending on the number and size of the files, upload and preview generation may take some time. Please be patient.

Uploading Single/Multiple Files

Screenshot 2025-12-31 100124

Dragging and Dropping to Upload

Files that are dragged and dropped to upload will be placed in whatever folder is currently selected. For example: You are clicked into the folder "3D prints" and drag files into Makers Vault, it will upload to that location.

Screenshot 2025-12-31 100230

Importing via Link (Beta)

The currently supported 3D printing repository sites are:

  • MakerWorld
  • Printables
  • Thingiverse
In the future there are plans to add support for more websites, but in this current release only the three listed will function. The root link from the respective repository can be used to import any models. Most models will import as a .zip file. When a zip file is imported a pop-up will appear prompting to either save as a zip or unzip and save. Unzip and save allows the user to select which files to keep and which to discard. This helps to ensure that unecessary "read-me" files aren't uploaded.

Import_From_Link

Screenshot 2025-12-31 101451

Screenshot 2025-12-31 101512

Screenshot 2025-12-31 101923

Model Rendering, Tagging, and Adding Notes

Makers Vault uses static 3D preview images in each tile to keep folder browsing fast. To view a fully interactive 3D preview, double-click the tile. In the pop-up window, you can rotate and inspect the 3D model interactively by clicking and holding with your mouse and dragging.

Screenshot 2025-12-31 102102

Individual files can be renamed by double-clicking the Name field. The file extension (STL, STEP, 3MF, etc.) will be preserved even if removed by mistake.

Screenshot 2025-12-31 102311

Tagging Files and Adding to Folders

To begin organizing files, click “New” at the top left to create a new folder. To create a sub folder click the "..." next to the newly created folder and select "+ Subfolder".

New_folder

Screenshot 2025-12-31 102622

After creating a folder, assign files to it using the dropdown menu in each file tile. Alternatively, click the folder and then upload files directly — uploaded files will automatically be placed in the current folder.

Screenshot 2025-12-31 102708

Screenshot 2025-12-31 102733

When entering tags, typing a comma will close the current tag and allow you to enter the next. Example: typing “3D Print,” will create a tag named “3D Print”.

<img width="1890" height="933" alt="Screenshot 2025-12-31 102944" src="https://github.com/user-attachments/assets/418c9d71-1970-4755-8

Core symbols most depended-on inside this repo

browse all functions →

Shape

Function 400
Class 26
Route 25
Method 3
Struct 2

Languages

TypeScript55%
Python38%
Go7%

Modules by API surface

makervault/api/main.py60 symbols
makervault/web/src/ui/AssetGrid.tsx44 symbols
makervault/api/import_resolvers.py42 symbols
makervault/web/src/ui/ModelViewer.tsx36 symbols
makervault/web/src/lib/api.ts36 symbols
makervault/web/src/ui/LightBurnPreview.tsx31 symbols
makervault/web/src/ui/Sidebar.tsx24 symbols
makervault/slicer-bridge/cmd/slicer-bridge/main.go24 symbols
makervault/web/src/ui/Settings.tsx20 symbols
makervault/api/schemas.py20 symbols
makervault/web/src/ui/ZipImportModal.tsx13 symbols
makervault/api/settings_service.py8 symbols

For agents

$ claude mcp add MakersVault \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page