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:

  1. First Run Setup: Access http://localhost:9999
  2. Library Paths: Configure media directories
  3. Scan Settings: Set up automatic scanning
  4. Metadata Sources: Configure external data sources

Practical Exercise

Task: Deploy and configure Stash

  1. Set up Docker Compose configuration
  2. Deploy Stash service
  3. Configure media library paths
  4. Perform initial media scan
  5. Test media playback and organization
Last modified: Thursday, 6 November 2025, 8:52 AM