Spoolman should be configured for filament inventory consistency and printer integration safety.
# Database URL - Choose one of the following:
SPOOLMAN_DATABASE_URL=sqlite:////data/spoolman.sqlite3 # SQLite (default)
SPOOLMAN_DATABASE_URL=postgresql://username:password@host:port/database # PostgreSQL
SPOOLMAN_DATABASE_URL=mysql://username:password@host:port/database # MySQL
SPOOLMAN_DATABASE_URL=cockroachdb://username:password@host:port/database # CockroachDB
SPOOLMAN_HOST=0.0.0.0 # Host to bind to (default: 0.0.0.0)
SPOOLMAN_PORT=8000 # Port to listen on (default: 8000)
SPOOLMAN_LOG_LEVEL=INFO # Logging level (DEBUG, INFO, WARNING, ERROR)
SPOOLMAN_DATA_DIR=/data # Directory for storing data files
SPOOLMAN_MAX_WORKERS=1 # Number of worker processes
SPOOLMAN_API_KEY= # API key for authentication (optional but recommended)
SPOOLMAN_ALLOW_ANONYMOUS_READ=true # Allow anonymous read access (default: true)
SPOOLMAN_ALLOW_ANONYMOUS_WRITE=false # Allow anonymous write access (default: false)
SPOOLMAN_REQUIRE_AUTH_FOR_API=true # Require authentication for API access (default: false)
SPOOLMAN_PROMETHEUS_ENABLED=false # Enable Prometheus metrics (default: false)
SPOOLMAN_WEBSOCKET_ENABLED=true # Enable WebSocket notifications (default: true)
SPOOLMAN_QR_CODE_SIZE=300 # Size of generated QR codes (default: 300)
SPOOLMAN_MAX_FILE_UPLOAD_SIZE=10 # Maximum file upload size in MB (default: 10)
version: '3.8'
services:
spoolman:
image: ghcr.io/donkie/spoolman:latest
container_name: spoolman
restart: unless-stopped
ports:
- "8000:8000"
volumes:
- ./data:/data
environment:
- SPOOLMAN_DATABASE_URL=sqlite:////data/spoolman.sqlite3
- SPOOLMAN_HOST=0.0.0.0
- SPOOLMAN_PORT=8000
- SPOOLMAN_API_KEY=your-secure-api-key-here
- SPOOLMAN_LOG_LEVEL=INFO
- SPOOLMAN_ALLOW_ANONYMOUS_READ=true
- SPOOLMAN_ALLOW_ANONYMOUS_WRITE=false
Back up database, uploaded files/assets, and configuration/secrets metadata. Validate restore with one user login, one core business transaction, and one report/export check.
Feel free to contact us. Find all contact information on our contact page.