generated from wessel/boilerplate
feat(media/torrent): Add initial docker-compose files
This commit is contained in:
153
src/media-vm/docker-compose.yml
Normal file
153
src/media-vm/docker-compose.yml
Normal file
@@ -0,0 +1,153 @@
|
|||||||
|
version: '3.8'
|
||||||
|
|
||||||
|
services:
|
||||||
|
jellyseerr:
|
||||||
|
image: fallenbagel/jellyseerr:latest
|
||||||
|
container_name: jellyseerr
|
||||||
|
environment:
|
||||||
|
- LOG_LEVEL=info
|
||||||
|
- TZ=Europe/Amsterdam
|
||||||
|
ports:
|
||||||
|
- "5055:5055"
|
||||||
|
volumes:
|
||||||
|
- /proxmox/.config/jellyseerr:/app/config
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
kavita:
|
||||||
|
image: jvmilazz0/kavita:latest
|
||||||
|
user: 1000:1000
|
||||||
|
container_name: kavita
|
||||||
|
environment:
|
||||||
|
- PUID=1026
|
||||||
|
- PGID=100
|
||||||
|
- TZ=Europe/Amsterdam
|
||||||
|
- DOTNET_SYSTEM_GLOBALIZATION_INVARIANT=true
|
||||||
|
ports:
|
||||||
|
- "5000:5000"
|
||||||
|
volumes:
|
||||||
|
- /share/calibre:/data
|
||||||
|
- /proxmox/.config/kavita:/kavita/config
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
navidrome:
|
||||||
|
image: deluan/navidrome:latest
|
||||||
|
user: 1000:1000 # should be owner of volumes
|
||||||
|
ports:
|
||||||
|
- "4533:4533"
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
# Optional: put your config options customization here. Examples:
|
||||||
|
ND_LASTFM_APIKEY: cbb7c255f9c39873b91af66ba9291a05
|
||||||
|
ND_LASTFM_SECRET: 7e3b2f8545ca49d18de09a8cb3e153bf
|
||||||
|
ND_SCANSCHEDULE: 1h
|
||||||
|
ND_LOGLEVEL: info
|
||||||
|
ND_SESSIONTIMEOUT: 24h
|
||||||
|
ND_BASEURL: ""
|
||||||
|
volumes:
|
||||||
|
- "/proxmox/.config/navidrome:/data"
|
||||||
|
- "/share/music:/music:ro"
|
||||||
|
|
||||||
|
jellyfin:
|
||||||
|
image: jellyfin/jellyfin
|
||||||
|
container_name: jellyfin
|
||||||
|
user: 1000:1000
|
||||||
|
ports:
|
||||||
|
- "8096:8096"
|
||||||
|
# network_mode: 'host'
|
||||||
|
volumes:
|
||||||
|
- /proxmox/.config/jellyfin/data:/var/lib/jellyfin
|
||||||
|
# - /proxmox/.config/jellyfin/cache:/var/cache/jellyfin
|
||||||
|
- /var/cache/jellyfin:/var/cache/jellyfin
|
||||||
|
- /proxmox/.config/jellyfin/config:/etc/jellyfin
|
||||||
|
- type: bind
|
||||||
|
source: /share/videos
|
||||||
|
target: /share/jellyfin
|
||||||
|
#- type: bind
|
||||||
|
# source: /path/to/media2
|
||||||
|
# target: /media2
|
||||||
|
# read_only: true
|
||||||
|
# Optional - extra fonts to be used during transcoding with subtitle burn-in
|
||||||
|
#- type: bind
|
||||||
|
# source: /path/to/fonts
|
||||||
|
# target: /usr/local/share/fonts/custom
|
||||||
|
# read_only: true
|
||||||
|
restart: 'unless-stopped'
|
||||||
|
# Optional - alternative address used for autodiscovery
|
||||||
|
environment:
|
||||||
|
- JELLYFIN_CACHE_DIR=/var/cache/jellyfin
|
||||||
|
- JELLYFIN_CONFIG_DIR=/etc/jellyfin
|
||||||
|
- JELLYFIN_DATA_DIR=/var/lib/jellyfin
|
||||||
|
- JELLYFIN_PublishedServerUrl=http://jf.wessel.gg
|
||||||
|
# Optional - may be necessary for docker healthcheck to pass if running in host network mode
|
||||||
|
#extra_hosts:
|
||||||
|
# - 'host.docker.internal:host-gateway'
|
||||||
|
gitea-mirror:
|
||||||
|
image: ${DOCKER_REGISTRY:-ghcr.io}/${DOCKER_IMAGE:-raylabshq/gitea-mirror}:${DOCKER_TAG:-latest}
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
platforms:
|
||||||
|
- linux/amd64
|
||||||
|
- linux/arm64
|
||||||
|
cache_from:
|
||||||
|
- ${DOCKER_REGISTRY:-ghcr.io}/${DOCKER_IMAGE:-raylabshq/gitea-mirror}:${DOCKER_TAG:-latest}
|
||||||
|
container_name: gitea-mirror
|
||||||
|
restart: unless-stopped
|
||||||
|
ports:
|
||||||
|
- "4321:4321"
|
||||||
|
volumes:
|
||||||
|
- gitea-mirror-data:/app/data
|
||||||
|
# Mount custom CA certificates - choose one option:
|
||||||
|
# Option 1: Mount individual CA certificates from certs directory
|
||||||
|
# - ./certs:/app/certs:ro
|
||||||
|
# Option 2: Mount system CA bundle (if your CA is already in system store)
|
||||||
|
# - /etc/ssl/certs/ca-certificates.crt:/etc/ssl/certs/ca-certificates.crt:ro
|
||||||
|
environment:
|
||||||
|
# For a complete list of all supported environment variables, see:
|
||||||
|
# docs/ENVIRONMENT_VARIABLES.md or .env.example
|
||||||
|
- NODE_ENV=production
|
||||||
|
- DATABASE_URL=file:data/gitea-mirror.db
|
||||||
|
- HOST=0.0.0.0
|
||||||
|
- PORT=4321
|
||||||
|
- BETTER_AUTH_SECRET=${BETTER_AUTH_SECRET:-your-secret-key-change-this-in-production}
|
||||||
|
- BETTER_AUTH_URL=${BETTER_AUTH_URL:-http://localhost:4321}
|
||||||
|
# Optional: ENCRYPTION_SECRET will be auto-generated if not provided
|
||||||
|
# - ENCRYPTION_SECRET=${ENCRYPTION_SECRET:-}
|
||||||
|
# GitHub/Gitea Mirror Config
|
||||||
|
- GITHUB_USERNAME=${GITHUB_USERNAME:-}
|
||||||
|
- GITHUB_TOKEN=${GITHUB_TOKEN:-}
|
||||||
|
- GITHUB_EXCLUDED_ORGS=${GITHUB_EXCLUDED_ORGS:-}
|
||||||
|
- SKIP_FORKS=${SKIP_FORKS:-false}
|
||||||
|
- PRIVATE_REPOSITORIES=${PRIVATE_REPOSITORIES:-false}
|
||||||
|
- MIRROR_ISSUES=${MIRROR_ISSUES:-false}
|
||||||
|
- MIRROR_WIKI=${MIRROR_WIKI:-false}
|
||||||
|
- MIRROR_STARRED=${MIRROR_STARRED:-false}
|
||||||
|
- MIRROR_ORGANIZATIONS=${MIRROR_ORGANIZATIONS:-false}
|
||||||
|
- PRESERVE_ORG_STRUCTURE=${PRESERVE_ORG_STRUCTURE:-false}
|
||||||
|
- ONLY_MIRROR_ORGS=${ONLY_MIRROR_ORGS:-false}
|
||||||
|
- SKIP_STARRED_ISSUES=${SKIP_STARRED_ISSUES:-false}
|
||||||
|
- GITEA_URL=${GITEA_URL:-}
|
||||||
|
- GITEA_TOKEN=${GITEA_TOKEN:-}
|
||||||
|
- GITEA_USERNAME=${GITEA_USERNAME:-}
|
||||||
|
- GITEA_ORGANIZATION=${GITEA_ORGANIZATION:-github-mirrors}
|
||||||
|
- GITEA_ORG_VISIBILITY=${GITEA_ORG_VISIBILITY:-public}
|
||||||
|
- DELAY=${DELAY:-3600}
|
||||||
|
# Optional: Skip TLS verification (insecure, use only for testing)
|
||||||
|
# - GITEA_SKIP_TLS_VERIFY=${GITEA_SKIP_TLS_VERIFY:-false}
|
||||||
|
# Header Authentication (for Reverse Proxy SSO)
|
||||||
|
- HEADER_AUTH_ENABLED=${HEADER_AUTH_ENABLED:-false}
|
||||||
|
- HEADER_AUTH_USER_HEADER=${HEADER_AUTH_USER_HEADER:-X-Authentik-Username}
|
||||||
|
- HEADER_AUTH_EMAIL_HEADER=${HEADER_AUTH_EMAIL_HEADER:-X-Authentik-Email}
|
||||||
|
- HEADER_AUTH_NAME_HEADER=${HEADER_AUTH_NAME_HEADER:-X-Authentik-Name}
|
||||||
|
- HEADER_AUTH_AUTO_PROVISION=${HEADER_AUTH_AUTO_PROVISION:-false}
|
||||||
|
- HEADER_AUTH_ALLOWED_DOMAINS=${HEADER_AUTH_ALLOWED_DOMAINS:-}
|
||||||
|
healthcheck:
|
||||||
|
test: ["CMD", "wget", "--no-verbose", "--tries=3", "--spider", "http://localhost:4321/api/health"]
|
||||||
|
interval: 30s
|
||||||
|
timeout: 10s
|
||||||
|
retries: 5
|
||||||
|
start_period: 15s
|
||||||
|
|
||||||
|
# Define named volumes for database persistence
|
||||||
|
volumes:
|
||||||
|
gitea-mirror-data: # Database volume
|
||||||
48
src/torrent-vm/docker-compose.yml
Normal file
48
src/torrent-vm/docker-compose.yml
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
services:
|
||||||
|
bitmagnet:
|
||||||
|
image: ghcr.io/bitmagnet-io/bitmagnet:latest
|
||||||
|
container_name: bitmagnet
|
||||||
|
volumes:
|
||||||
|
- /proxmox/.config/bitmagnet:/root/.config/bitmagnet
|
||||||
|
ports:
|
||||||
|
# API and WebUI port:
|
||||||
|
- "3333:3333"
|
||||||
|
# BitTorrent ports:
|
||||||
|
#- "3334:3334/tcp"
|
||||||
|
#- "3334:3334/udp"
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- POSTGRES_HOST=postgres
|
||||||
|
- POSTGRES_PASSWORD=postgres
|
||||||
|
- TMDB_ENABLED=true
|
||||||
|
- TMDB_API_KEY=ede1281d8197e00f673adf1aadea643e
|
||||||
|
command:
|
||||||
|
- worker
|
||||||
|
- run
|
||||||
|
- --keys=http_server
|
||||||
|
- --keys=queue_server
|
||||||
|
# disable the next line to run without DHT crawler
|
||||||
|
- --keys=dht_crawler
|
||||||
|
depends_on:
|
||||||
|
postgres:
|
||||||
|
condition: service_healthy
|
||||||
|
|
||||||
|
postgres:
|
||||||
|
image: postgres:16-alpine
|
||||||
|
container_name: bitmagnet-postgres
|
||||||
|
volumes:
|
||||||
|
- /bitmagnet-postgres:/var/lib/postgresql/data
|
||||||
|
ports:
|
||||||
|
- "5432:5432" # Expose this port if you'd like to dig around in the database
|
||||||
|
restart: unless-stopped
|
||||||
|
environment:
|
||||||
|
- POSTGRES_PASSWORD=postgres
|
||||||
|
- POSTGRES_DB=bitmagnet
|
||||||
|
- PGUSER=postgres
|
||||||
|
shm_size: 1g
|
||||||
|
healthcheck:
|
||||||
|
test:
|
||||||
|
- CMD-SHELL
|
||||||
|
- pg_isready
|
||||||
|
start_period: 20s
|
||||||
|
interval: 10s
|
||||||
Reference in New Issue
Block a user