Initial commit: TVH2Jellyfin application
A Docker-based Python application that transfers completed recordings from TVHeadend to Jellyfin media storage via SCP. Features: - Monitors TVHeadend for completed recordings via JSON API - Transfers files via SCP with SSH key authentication - Organizes files by show name - Deletes recordings from TVHeadend after successful transfer - Tracks transferred files to avoid duplicates - Dry run mode for testing without making changes
This commit is contained in:
28
docker-compose.yml
Normal file
28
docker-compose.yml
Normal file
@@ -0,0 +1,28 @@
|
||||
services:
|
||||
tvh2jellyfin:
|
||||
user: "1000:1000"
|
||||
build: .
|
||||
container_name: tvh2jellyfin
|
||||
environment:
|
||||
# TVHeadend connection (API)
|
||||
- TVH_HOST=${TVH_HOST:-192.168.1.100}
|
||||
- TVH_PORT=${TVH_PORT:-9981}
|
||||
- TVH_USER=${TVH_USER}
|
||||
- TVH_PASS=${TVH_PASS}
|
||||
# TVHeadend SSH access (for file transfer)
|
||||
- TVH_SSH_USER=${TVH_SSH_USER:-${TVH_USER}}
|
||||
- SSH_KEY_PATH=/app/.ssh/id_rsa
|
||||
# Local destination path (inside container)
|
||||
- DEST_PATH=/media/tv
|
||||
# Application settings
|
||||
- POLL_INTERVAL=${POLL_INTERVAL:-300}
|
||||
- LOG_LEVEL=${LOG_LEVEL:-INFO}
|
||||
- DRY_RUN=${DRY_RUN:-false}
|
||||
volumes:
|
||||
# State persistence
|
||||
- ./data:/app/data
|
||||
# SSH key for SCP from TVHeadend (host path, read-only)
|
||||
- ${SSH_KEY_HOST_PATH:-~/.ssh/id_rsa}:/app/.ssh/id_rsa:ro
|
||||
# Jellyfin media library (destination)
|
||||
- ${JELLYFIN_MEDIA_PATH:-/mnt/jellyfin/tv}:/media/tv
|
||||
restart: unless-stopped
|
||||
Reference in New Issue
Block a user