Lesson 3.2: Stash - Media Library Management
Completion requirements
Introduction to Stash
Stash is a self-hosted media organizer and player that helps you manage and organize your media collection with powerful tagging, search, and metadata capabilities.
Key Features
- Media Organization: Automatic file scanning and organization
- Metadata Management: Rich metadata and tagging system
- Web Interface: Modern, responsive web UI
- Search & Filter: Advanced search capabilities
- Streaming: Built-in media player
- API Access: REST API for automation
MCT Services Stash Configuration
version: "3.8"
services:
stash:
image: stashapp/stash:latest
container_name: stash
restart: unless-stopped
ports:
- "9999:9999"
volumes:
- ./stash/config:/root/.stash
- ./stash/cache:/cache
- ./media:/media:ro
- ./stash/generated:/generated
environment:
- STASH_STASH=/root/.stash
- STASH_CACHE=/cache
- STASH_GENERATED=/generated
labels:
- "traefik.enable=true"
- "traefik.http.routers.stash.rule=Host(`stash.mct.local`)"
- "traefik.http.routers.stash.tls=true"
- "traefik.http.services.stash.loadbalancer.server.port=9999"
Directory Structure
stash/
├── docker-compose.yml
├── config/
│ ├── config.yml
│ └── database.sqlite
├── cache/
├── generated/
│ ├── screenshots/
│ ├── thumbnails/
│ └── previews/
└── media/
├── videos/
├── images/
└── documents/
Initial Setup and Configuration
After deployment, configure Stash through the web interface:
- First Run Setup: Access http://localhost:9999
- Library Paths: Configure media directories
- Scan Settings: Set up automatic scanning
- Metadata Sources: Configure external data sources
Practical Exercise
Task: Deploy and configure Stash
- Set up Docker Compose configuration
- Deploy Stash service
- Configure media library paths
- Perform initial media scan
- Test media playback and organization
Last modified: Thursday, 6 November 2025, 8:52 AM