docker.recipes

Stash Media Organizer

beginner

Stash organizer and player for adult media collections.

Overview

Stash is an open-source media organizer and player specifically designed for adult content collections, developed to address the unique challenges of organizing, cataloging, and managing large video libraries with comprehensive metadata support. The application provides automatic scene detection, performer identification, studio tagging, and sophisticated search capabilities that go far beyond basic file management systems. Stash uses advanced fingerprinting technology to identify duplicate content, scrapes metadata from multiple sources, and offers detailed tagging systems that allow users to organize content by performers, studios, tags, and custom categories. This Docker deployment creates a self-contained media management server that processes your existing video collection, generates thumbnails and previews, extracts metadata, and provides a responsive web interface for browsing and playback. The containerized approach ensures consistent performance across different host systems while maintaining data persistence through dedicated volumes for configuration, generated content, metadata, and cache storage. Organizations and individuals managing large media collections will find this solution particularly valuable for its ability to automatically organize thousands of files, eliminate duplicates, and provide sophisticated search and filtering capabilities that would be impossible to achieve manually.

Key Features

  • Automatic scene fingerprinting and duplicate detection using StashDB integration
  • Multi-source metadata scraping from various adult industry databases and APIs
  • Advanced performer and studio identification with facial recognition capabilities
  • Comprehensive tagging system with hierarchical tag organization and bulk operations
  • Built-in video player with chapter support, bookmark functionality, and playback statistics
  • Plugin ecosystem supporting custom scrapers, automation scripts, and third-party integrations
  • Intelligent thumbnail and sprite generation for quick visual browsing and seeking
  • Advanced search engine supporting complex queries across all metadata fields and custom filters

Common Use Cases

  • 1Personal media server for organizing and streaming large video collections with privacy
  • 2Content verification and duplicate elimination for media archival projects
  • 3Research and academic environments requiring detailed media categorization and analysis
  • 4Digital asset management for content creators tracking source material and references
  • 5Home media center integration for users seeking advanced organization beyond Plex or Jellyfin
  • 6Collection management for media enthusiasts requiring detailed performer and studio tracking
  • 7Automated content processing workflows for organizations managing large video archives

Prerequisites

  • Docker and Docker Compose installed with at least 4GB RAM allocated to containers
  • Sufficient disk space for generated thumbnails and metadata (approximately 10-20% of media size)
  • Port 9999 available on the host system for web interface access
  • Read access to media directories that will be mounted into the container
  • Basic understanding of Docker volume management for backup and data migration
  • Network connectivity for metadata scraping and StashDB integration during setup

For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms

docker-compose.yml

docker-compose.yml
1services:
2 stash:
3 image: stashapp/stash:latest
4 container_name: stash
5 environment:
6 - STASH_STASH=/data/
7 - STASH_GENERATED=/generated/
8 - STASH_METADATA=/metadata/
9 - STASH_CACHE=/cache/
10 volumes:
11 - stash_config:/root/.stash
12 - /path/to/media:/data
13 - stash_generated:/generated
14 - stash_metadata:/metadata
15 - stash_cache:/cache
16 ports:
17 - "9999:9999"
18 restart: unless-stopped
19 networks:
20 - stash-network
21
22volumes:
23 stash_config:
24 stash_generated:
25 stash_metadata:
26 stash_cache:
27
28networks:
29 stash-network:
30 driver: bridge

.env Template

.env
1# Stash
2# Configuration via web interface

Usage Notes

  1. 1Web UI at http://localhost:9999
  2. 2Initial setup wizard
  3. 3Automatic metadata scraping
  4. 4Scene fingerprinting
  5. 5Plugin support

Quick Start

terminal
1# 1. Create the compose file
2cat > docker-compose.yml << 'EOF'
3services:
4 stash:
5 image: stashapp/stash:latest
6 container_name: stash
7 environment:
8 - STASH_STASH=/data/
9 - STASH_GENERATED=/generated/
10 - STASH_METADATA=/metadata/
11 - STASH_CACHE=/cache/
12 volumes:
13 - stash_config:/root/.stash
14 - /path/to/media:/data
15 - stash_generated:/generated
16 - stash_metadata:/metadata
17 - stash_cache:/cache
18 ports:
19 - "9999:9999"
20 restart: unless-stopped
21 networks:
22 - stash-network
23
24volumes:
25 stash_config:
26 stash_generated:
27 stash_metadata:
28 stash_cache:
29
30networks:
31 stash-network:
32 driver: bridge
33EOF
34
35# 2. Create the .env file
36cat > .env << 'EOF'
37# Stash
38# Configuration via web interface
39EOF
40
41# 3. Start the services
42docker compose up -d
43
44# 4. View logs
45docker compose logs -f

One-Liner

Run this command to download and set up the recipe in one step:

terminal
1curl -fsSL https://docker.recipes/api/recipes/stash-adult-media/run | bash

Troubleshooting

  • Stash fails to start with permission errors: Ensure media directories have proper read permissions and Docker daemon has access to mounted paths
  • Web interface shows 'Database locked' error: Stop the container cleanly, check for corrupted database files in the config volume, and restart with proper shutdown procedures
  • Scanning stops or freezes during large imports: Increase Docker container memory allocation and ensure sufficient disk space for temporary processing files
  • Thumbnails not generating for certain video formats: Install additional video processing libraries in the container or convert media to supported formats like MP4 or MKV
  • Plugin installation fails with permission errors: Verify the plugins directory has write permissions and restart Stash after plugin installation
  • StashDB scraping returns no results: Check internet connectivity from container and verify StashDB API endpoints are accessible through firewall

Community Notes

Loading...
Loading notes...

Download Recipe Kit

Get all files in a ready-to-deploy package

Includes docker-compose.yml, .env template, README, and license

Ad Space