Claude-skill-registry-data manyfold
Self-hosted 3D model library manager for organizing, viewing, and managing 3D print files. Use when the user asks about deploying, configuring, or using Manyfold for managing STL/OBJ/3MF collections. Triggers on phrases like "Manyfold", "3D model library", "manage my 3D prints", "self-hosted model manager", "organize STL files", "3D print collection", or any Docker/homelab deployment involving 3D model organization.
git clone https://github.com/majiayu000/claude-skill-registry-data
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry-data "$T" && mkdir -p ~/.claude/skills && cp -r "$T/data/manyfold" ~/.claude/skills/majiayu000-claude-skill-registry-data-manyfold && rm -rf "$T"
data/manyfold/SKILL.mdManyfold Skill
Manyfold is a self-hosted web application for managing 3D print file collections with interactive previews, metadata organization, and Fediverse federation support.
Quick Reference
Docker Image:
ghcr.io/manyfold3d/manyfold:latest
Default Port: 3214
Web UI: http://{server}:3214
Deployment Options
Minimal (Solo with SQLite)
services: manyfold: image: ghcr.io/manyfold3d/manyfold-solo:latest ports: - "3214:3214" volumes: - /path/to/config:/config - /path/to/models:/libraries environment: SECRET_KEY_BASE: <generate-128-char-hex> PUID: 1000 PGID: 1000 restart: unless-stopped
Production (PostgreSQL + Redis)
services: manyfold: image: ghcr.io/manyfold3d/manyfold:latest ports: - "3214:3214" volumes: - /path/to/models:/libraries environment: DATABASE_URL: postgresql://manyfold:password@db/manyfold?pool=5 REDIS_URL: redis://redis:6379/1 SECRET_KEY_BASE: <generate-128-char-hex> PUID: 1000 PGID: 1000 security_opt: - no-new-privileges:true cap_drop: - ALL cap_add: - CHOWN - DAC_OVERRIDE - SETUID - SETGID depends_on: - db - redis db: image: postgres:15 volumes: - db_data:/var/lib/postgresql/data environment: POSTGRES_USER: manyfold POSTGRES_PASSWORD: password POSTGRES_DB: manyfold redis: image: redis:7 volumes: db_data:
Required Environment Variables
| Variable | Description |
|---|---|
| 128-char hex string for cookie signing. Generate with |
/ | User/group ID for file permissions. Get with command |
| Redis connection (not needed for solo image). Format: |
Database Configuration
Option 1: DATABASE_URL (recommended)
- PostgreSQL:
postgresql://user:pass@host/dbname?pool=5 - MySQL:
mysql2://user:pass@host/dbname?pool=5 - SQLite:
sqlite3:/config/manyfold.sqlite3?pool=5
Option 2: Individual variables
: postgresql, mysql2, or sqlite3DATABASE_ADAPTER
,DATABASE_HOST
,DATABASE_PORT
,DATABASE_USER
,DATABASE_PASSWORDDATABASE_NAME
Key Optional Features
| Variable | Description |
|---|---|
| Enable login, roles, permissions |
| ActivityPub/Fediverse support |
| Force HTTPS, set HSTS headers |
| Disable all destructive operations |
OIDC Single Sign-On
OIDC_CLIENT_ID=<client-id> OIDC_CLIENT_SECRET=<secret> OIDC_ISSUER=https://auth.example.com/ OIDC_NAME=Authentik FORCE_OIDC=enabled # Optional: disable local login
Email (SMTP)
SMTP_SERVER=smtp.example.com SMTP_PORT=587 SMTP_USERNAME=user SMTP_PASSWORD=pass SMTP_FROM_ADDRESS=manyfold@example.com PUBLIC_HOSTNAME=manyfold.example.com
Performance Tuning
| Variable | Default | Description |
|---|---|---|
| 4 | Web worker processes |
| 16 | Threads per worker |
| 4 | Background job threads |
| 1 | Heavy job threads (analysis, conversion) |
Security Settings
MAX_FILE_UPLOAD_SIZE=536870912 # 512MB in bytes MAX_FILE_EXTRACT_SIZE=1073741824 # 1GB in bytes MIN_PASSWORD_SCORE=4 # 0-4, higher = stricter
Core Concepts
- Library: Storage location (local folder or S3 bucket) containing models
- Model: A folder containing related 3D files (parts, images, docs)
- Creator: Content author/designer
- Collection: Grouping of related models
- Tags: Organizational keywords
User Workflows
Initial Setup
- Access web UI at
http://server:3214 - Create admin account (email, username, password)
- Add first library (path inside container, e.g.,
)/libraries - Scan runs automatically to index existing files
Scanning
- Scan for new files: Detect new folders/files added outside Manyfold
- Rescan all models: Re-check existing models for problems/metadata
Uploading
- Upload ZIP archives (extracted as separate models)
- Upload individual STL/OBJ files (creates single model)
- Progress shown during upload, extraction happens in background
External Integrations (v0.118+)
Import metadata from Thingiverse, MyMiniFactory, Cults3D:
- Configure API keys in Settings > Integrations
- Add link to model page
- Click sync icon to import metadata/images
- Or paste URL in search bar for direct import
Supported File Formats
See references/supported_formats.md for complete list.
3D Models with Preview: STL, OBJ, 3MF, GLTF/GLB, FBX, PLY, 3DS Slicer Files: GCode (preview), Chitubox, Lychee Images: PNG, JPG, GIF, WebP, SVG, TIFF, BMP Documents: PDF, Markdown, TXT Archives: ZIP, RAR, 7z, gzip, bzip2
Troubleshooting
Container won't start
- Ensure
is setSECRET_KEY_BASE - Check
/PUID
have read/write access to mounted volumesPGID - Verify Redis is accessible (for full image)
Files not appearing
- Check library path matches container mount (not host path)
- Run manual scan from web UI
- Verify file extensions are supported
Permission errors
- Match
/PUID
to owner of library foldersPGID - Ensure container has write access for temp files
Health check
wget --no-verbose --tries=1 --spider http://localhost:3214/health
Reverse Proxy
Set
RAILS_RELATIVE_URL_ROOT=/manyfold for non-root paths.
Required headers for HTTPS proxy:
X-Forwarded-Proto: httpsX-Forwarded-ForHost
Note: Federation requires domain root (no subpath).
Additional References
- Configuration details: references/configuration.md
- All supported formats: references/supported_formats.md