Version 1.22.1
Printventory is an Electron-based desktop application for managing your 3D printing model collection. It helps you organize, catalog, and manage STL and 3MF files with powerful features including automatic scanning, thumbnail generation, tagging, and duplicate detection.

For a complete list of features and detailed usage instructions, see the GUIDE.md file.
Download the latest release for your platform:
- Windows: Printventory-Setup-1.22.5.exe (NSIS installer)
- macOS: Universal binary (Intel and Apple Silicon) DMG
- Linux/Docker: printventory-docker-1.22.5.zip (Docker distribution package)
%LOCALAPPDATA%\Printventory~/Library/Application Support/PrintventoryThe database and thumbnails are preserved during updates. Backups are automatically created before updates.
Printventory can run in Server Mode, allowing you to access your 3D model library from any device on your local network through a web browser. This is particularly useful for accessing your collection from multiple computers or devices without installing the application on each one.
Server Mode runs Printventory as an HTTP server on port 5000, making it accessible from any device on your local network through a web browser. The application interface is served via HTTP, and all functionality remains available remotely.
To start Printventory in Server Mode, launch it with the --server flag:
Windows:
printventory.exe --server
Command Line:
printventory --server
The server will start and continue running until you close the application. You'll see console output indicating the server is running:
Printventory server mode started
Server running at http://0.0.0.0:5000
Access from remote browsers: http://<your-ip>:5000
Server mode requires UNC paths for all file operations
Once started, you can access Printventory from any browser on your network:
http://<your-computer-ip>:5000
For example, if your computer's IP address is 192.168.1.100:
http://192.168.1.100:5000
\\server\share\path\to\file/mnt/network-share/path/to/file)Printventory can also be deployed as a Docker container for Linux server mode deployment. See the Docker Deployment section for detailed instructions.
The STL Home setting allows automatic scanning of a directory on startup and, in server mode, periodic scanning for new files. This is particularly useful for keeping your library up-to-date automatically.
http://<your-ip>:5000\\server\share\models)\\server\share\path)To disable automatic scanning, clear the STL Home directory field and save. This will stop both startup and periodic scanning.
For more information about Server Mode, use the Help > Server Mode Info menu item in the application, which provides detailed information and instructions including Docker deployment options.
Before building Printventory from source, ensure you have the following installed:
xcode-select --install)git clone https://github.com/yourusername/printventory.git
cd printventory
Install all required dependencies:
npm install
This will also run the postinstall script to install app-specific dependencies (including native modules like better-sqlite3).
To run the application in development mode:
npm start
This will launch the Electron application.
To build the application for both macOS and Windows:
npm run build
To build a universal macOS application (Intel and Apple Silicon):
npm run build:mac
To build for Windows:
npm run build:win
To build a Linux AppImage from Windows, you need either WSL (Windows Subsystem for Linux) or Docker:
Prerequisites:
- Option 1 (Recommended): WSL with Node.js installed
- Install WSL: wsl --install
- Install Node.js in WSL: wsl sudo apt-get update && wsl sudo apt-get install -y nodejs npm
- Option 2: Docker Desktop
- Install from: https://www.docker.com/products/docker-desktop
Build Command:
npm run build:linux
Or using PowerShell:
.\scripts\build-linux-appimage.ps1
The script will automatically detect and use WSL if available, otherwise it will fall back to Docker. The AppImage will be generated in the dist directory.
Note: The first build may take longer as dependencies need to be installed in the Linux environment.
All build outputs will be generated in the dist directory.
Printventory can be deployed as a Docker container for easy server mode deployment on Linux systems. This is ideal for headless servers or containerized environments.
Option 1: Pre-built Distribution Package (Recommended)
- Download printventory-docker-${version}.zip from releases
- Extract and run: docker-compose up -d
Option 2: Build from Source - Clone the repository and build the Docker image yourself - See "Building the Docker Image" section below
Option 3: Docker Hub (Recommended for Quick Deployment) - Pull and run the pre-built image from Docker Hub - No need to build from source - see "Pulling from Docker Hub" section below
If the Printventory Docker image has been published to Docker Hub, you can pull and run it directly without building from source.
Pull the latest version:
docker pull printventory/printventory:latest
Pull a specific version:
docker pull printventory/printventory:1.23.0
The image is available on Docker Hub at: https://hub.docker.com/r/printventory/printventory
Basic run command:
docker run -d \
--name printventory-server \
-p 5000:5000 \
-v ./data:/root/.config/Printventory \
--restart unless-stopped \
printventory/printventory:latest
With network share mounted (Windows - mapped drive):
# Step 1: Map the network share to a drive letter on Windows
net use Z: \\server\share /persistent:yes
# Step 2: Run container with volume mount and STL_HOME environment variable
# Maps Windows Z: drive to /mnt/network-share inside container
docker run -d \
--name printventory-server \
-p 5000:5000 \
-v ./data:/root/.config/Printventory \
-v Z:/:/mnt/network-share:ro \
-e STL_HOME=/mnt/network-share/models \
--restart unless-stopped \
printventory/printventory:latest
# Step 3: Use Linux-style paths in Printventory
# Example: /mnt/network-share/models/myfile.stl
# STL Home is automatically configured via STL_HOME environment variable
With network share mounted (Linux - SMB/CIFS):
# Step 1: Mount the network share on the Linux host
sudo mkdir -p /mnt/network-share
sudo mount -t cifs //server/share /mnt/network-share -o username=user,password=pass,uid=$(id -u),gid=$(id -g)
# Step 2: Run container with volume mount and STL_HOME environment variable
# Maps host /mnt/network-share to /mnt/network-share inside container
docker run -d \
--name printventory-server \
-p 5000:5000 \
-v ./data:/root/.config/Printventory \
-v /mnt/network-share:/mnt/network-share:ro \
-e STL_HOME=/mnt/network-share/models \
--restart unless-stopped \
printventory/printventory:latest
# Step 3: Use Linux-style paths in Printventory
# Example: /mnt/network-share/models/myfile.stl
# STL Home is automatically configured via STL_HOME environment variable
Create a docker-compose.yml file:
```yaml version: '3.8'
services: printventory: image: printventory/printventory:latest container_name: printventory-server ports: - "5000:5000" volumes: # Persist database and application data to local directory # Database is stored in ./data directory on the host filesystem # This ensures data persists when the image is updated - ./data:/root/.config/Printventory
# Option 1: Mount Windows mapped drive (Windows Docker Desktop)
# First, map network share: net use Z: \\server\share /persistent:yes
# Then uncomment the line below and use /mnt/network-share in Printventory
# - Z:/:/mnt/network-share:ro
# Option 2: Mount Linux SMB/CIFS share (Linux host)
# First, mount on host: sudo mount -t cifs //server/share /mnt/network-share -o username=user,password=pass
# Then uncomment the line below and use /mnt/network-share in Printventory
# - /mnt/network-share:/mnt/network-share:ro
# Option 3: Mount local directory (if files are on Docker host)
# Example: mount host /home/user/models to
$ claude mcp add Printventory \
-- python -m otcore.mcp_server <graph>