version: '3.8' services: podcastic: build: context: . dockerfile: Dockerfile.unraid container_name: podcastic restart: unless-stopped ports: - "3579:3579" # Web Interface (Frontend + API) environment: # Backend Config NODE_ENV: production PORT: 5000 # Database MONGODB_URI: mongodb://127.0.0.1:27017/podcastic REDIS_URL: redis://127.0.0.1:6379 # JWT Config JWT_SECRET: ${JWT_SECRET:-change_me_in_production} JWT_EXPIRES_IN: 7d JWT_REFRESH_EXPIRES_IN: 30d # PodcastIndex API (Optional - for podcast search) PODCAST_INDEX_API_KEY: ${PODCAST_INDEX_API_KEY:-} PODCAST_INDEX_API_SECRET: ${PODCAST_INDEX_API_SECRET:-} volumes: # MongoDB data persistence - podcastic_db:/data/db # Redis data persistence (optional) - podcastic_redis:/data/redis # Application logs - podcastic_logs:/var/log/supervisor networks: - podcastic-network # Resource limits (adjust based on your server) # Uncomment to set limits: # mem_limit: 2g # cpus: '1' volumes: podcastic_db: driver: local podcastic_redis: driver: local podcastic_logs: driver: local networks: podcastic-network: driver: bridge # ============================================ # USAGE: # ============================================ # # 1. Copy .env.example to .env and configure: # cp .env.example .env # # 2. Build and start: # docker-compose -f docker-compose.unraid.yml up -d # # 3. Access: # http://your-server-ip:3579 # # 4. View logs: # docker-compose -f docker-compose.unraid.yml logs -f podcastic # # 5. Stop: # docker-compose -f docker-compose.unraid.yml down # # 6. Backup data: # docker run --rm -v podcastic_db:/data/db -v $(pwd):/backup \ # alpine tar czf /backup/podcastic-db.tar.gz -C /data db # # ============================================