Tools Stack¶
Nota (2026-07-12): Stash está decomisionado (container Exited, sin uso; el puerto 9999 es ahora Dozzle).
Utilities and document management. On-demand (can be stopped to save resources).
| Compose file | tools/compose.yaml |
| Status | On-demand |
| Dependencies | NFS mount at /mnt/nfs_media |
Services Overview¶
Document Management¶
| Service | Port | Purpose | Dependencies |
|---|---|---|---|
| Paperless-ngx | 8000 | Document OCR & organization | paperless-db, paperless-redis |
| Immich | 2283 | Photo management (Google Photos alternative) | immich-db, immich-redis, immich-ml |
Media Tools¶
| Service | Port | Purpose |
|---|---|---|
| Stirling-PDF | 8088 | PDF manipulation tools |
| Stash | 9990 | Media organizer |
| MeTube | 8081 | YouTube downloader (yt-dlp) |
| Pinchflat | 8945 | YouTube channel archiver |
| ydl_api_ng | 5011 | YouTube download API |
Utilities¶
| Service | Port | Purpose |
|---|---|---|
| Changedetection | 5000 | Website change monitoring |
| Karakeep | 3333 | AI-powered bookmarks (formerly Hoarder) |
| Dozzle | 9999 | Real-time Docker log viewer |
| Code-server | 8443 | VS Code in browser |
| PairDrop | 3210 | Local file sharing (AirDrop alternative) |
Detailed Service Info¶
Paperless-ngx¶
Document management with OCR.
Turbo-boosted settings:
- PAPERLESS_TASK_WORKERS=4
- PAPERLESS_THREADS_PER_WORKER=2
- PAPERLESS_CONSUMER_POLLING=30
Paths:
- Consume folder: /mnt/nfs_media/documents/consume (drop files here)
- Media storage: /mnt/nfs_media/documents/media
- Config: /home/monxas/appdata/paperless/data
Database: PostgreSQL at /home/monxas/appdata/paperless/pgdata
Immich¶
Self-hosted Google Photos replacement with ML-powered search.
Components:
- immich-server - Main API and web UI
- immich-machine-learning - Face recognition, object detection
- immich-redis - Caching
- immich-db - PostgreSQL with pgvecto-rs
Turbo-boosted settings:
- MACHINE_LEARNING_WORKERS=2
- MACHINE_LEARNING_WORKER_TIMEOUT=120
Paths:
- Photos: /mnt/nfs_media/photos
- External library (read-only): /mnt/nfs_media/pics
- ML cache: /home/monxas/appdata/immich/model-cache
Stash¶
Media organizer with metadata scraping.
Turbo-boosted settings:
- STASH_PARALLEL_TASKS=4
- STASH_PREVIEW_PRESET=fast
Paths:
- Data: /mnt/nfs_media/nopor
- Generated content: /home/monxas/appdata/stash/generated
Changedetection¶
Website monitoring with browser rendering.
Components:
- changedetection - Main service
- playwright-chrome - Headless browser for JS-heavy sites
Turbo-boosted settings:
- MAX_CONCURRENT_CHROME_PROCESSES=15
Karakeep (formerly Hoarder)¶
AI-powered bookmark manager.
Components:
- karakeep - Main service
- karakeep-chrome - Screenshot capture
- karakeep-meilisearch - Full-text search
Uses OpenAI API for automatic tagging (OPENAI_API_KEY from .env).
ydl_api_ng¶
YouTube download API backend.
Turbo-boosted settings:
- NB_WORKERS=8
Uses Redis for job queue.
Resource Considerations¶
This stack can be resource-intensive when all services are running:
| Service | RAM (idle) | RAM (active) | Notes |
|---|---|---|---|
| Paperless | ~200MB | ~500MB+ | OCR is CPU-heavy |
| Immich | ~300MB | ~2GB+ | ML uses significant RAM |
| Stash | ~100MB | ~500MB+ | Scanning/generating previews |
| Playwright | ~100MB | ~500MB+ | Per-browser instance |
Stop when not needed:
Troubleshooting¶
Paperless not OCRing?
# Check consumer
docker logs paperless --tail 50 | grep -i "consumer"
# Check language packs
docker exec paperless tesseract --list-langs
Immich ML not working?
# Check ML container
docker logs immich-machine-learning --tail 50
# Check model cache
ls -la /home/monxas/appdata/immich/model-cache/
Changedetection not rendering JavaScript?
# Check playwright
docker logs playwright-chrome --tail 20
# Test browser
docker exec changedetection curl -s http://playwright-chrome:3000/json/version
Karakeep not tagging?