557 lines
15 KiB
JSON
557 lines
15 KiB
JSON
{
|
|
"ANSIBLE_MODULE_ARGS": {
|
|
"_ansible_check_mode": true,
|
|
"_ansible_diff": true,
|
|
"name": "media",
|
|
"project_dir": "/var/lib/ez_compose",
|
|
"services": {
|
|
"custom": [
|
|
{
|
|
"definition": {
|
|
"devices": ["/dev/dri/renderD128:/dev/dri/renderD128"],
|
|
"group_add": ["105"],
|
|
"image": "jellyfin/jellyfin:10.10.3",
|
|
"networks": {
|
|
"internal": {},
|
|
"proxy": {}
|
|
},
|
|
"volumes": [
|
|
{
|
|
"source": "jellyfin_cache",
|
|
"target": "/cache",
|
|
"type": "volume"
|
|
},
|
|
{
|
|
"source": "jellyfin_config",
|
|
"target": "/config",
|
|
"type": "volume"
|
|
},
|
|
{
|
|
"source": "/tank/media",
|
|
"target": "/tank/media",
|
|
"type": "bind"
|
|
}
|
|
]
|
|
},
|
|
"label_helpers": {
|
|
"docker_volume_backupper": [
|
|
{
|
|
"stop": true
|
|
}
|
|
],
|
|
"homepage": [
|
|
{
|
|
"group": "Media",
|
|
"href": "https://media.snaile.de/",
|
|
"icon": "https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/jellyfin.png",
|
|
"name": "Jellyfin",
|
|
"widget": {
|
|
"key": "redacted",
|
|
"type": "jellyfin",
|
|
"url": "http://media_jellyfin:8096"
|
|
}
|
|
}
|
|
],
|
|
"traefik_router": [
|
|
{
|
|
"rule": "Host(`media.snaile.de`)"
|
|
}
|
|
]
|
|
},
|
|
"name": "jellyfin"
|
|
},
|
|
{
|
|
"definition": {
|
|
"image": "fallenbagel/jellyseerr:2.3.0",
|
|
"networks": {
|
|
"internal": {},
|
|
"proxy": {}
|
|
},
|
|
"volumes": [
|
|
{
|
|
"source": "jellyseer_config",
|
|
"target": "/app/config",
|
|
"type": "volume"
|
|
}
|
|
]
|
|
},
|
|
"label_helpers": {
|
|
"homepage": [
|
|
{
|
|
"group": "Media",
|
|
"href": "https://requests.snaile.de/",
|
|
"icon": "https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/jellyseerr.png",
|
|
"name": "Jellyseerr",
|
|
"widget": {
|
|
"key": "redacted",
|
|
"type": "jellyseerr",
|
|
"url": "http://media_jellyseerr:5055"
|
|
}
|
|
}
|
|
],
|
|
"traefik_router": [
|
|
{
|
|
"rule": "Host(`requests.snaile.de`)"
|
|
}
|
|
]
|
|
},
|
|
"name": "jellyseerr"
|
|
},
|
|
{
|
|
"definition": {
|
|
"environment": {
|
|
"PGID": 1000,
|
|
"PUID": 1000
|
|
},
|
|
"image": "lscr.io/linuxserver/prowlarr:1.29.2",
|
|
"networks": {
|
|
"internal": {},
|
|
"proxy": {}
|
|
},
|
|
"volumes": [
|
|
{
|
|
"source": "prowlarr_config",
|
|
"target": "/config",
|
|
"type": "volume"
|
|
}
|
|
]
|
|
},
|
|
"label_helpers": {
|
|
"docker_volume_backupper": [
|
|
{
|
|
"stop": true
|
|
}
|
|
],
|
|
"homepage": [
|
|
{
|
|
"group": "Media",
|
|
"href": "https://prowlarr.snaile.de/",
|
|
"icon": "https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/prowlarr.png",
|
|
"name": "Prowlarr",
|
|
"widget": {
|
|
"key": "redacted",
|
|
"type": "prowlarr",
|
|
"url": "http://media_prowlarr:9696"
|
|
}
|
|
}
|
|
],
|
|
"traefik_middleware": [
|
|
{
|
|
"middleware": "basicAuth",
|
|
"settings": {
|
|
"users": "redacted"
|
|
}
|
|
}
|
|
],
|
|
"traefik_router": [
|
|
{
|
|
"middlewares": ["media_prowlarr_http_basicauth"],
|
|
"rule": "Host(`prowlarr.snaile.de`)"
|
|
}
|
|
]
|
|
},
|
|
"name": "prowlarr"
|
|
},
|
|
{
|
|
"definition": {
|
|
"environment": {
|
|
"PGID": 1000,
|
|
"PUID": 1000
|
|
},
|
|
"image": "lscr.io/linuxserver/radarr:5.17.2",
|
|
"networks": {
|
|
"internal": {},
|
|
"proxy": {}
|
|
},
|
|
"volumes": [
|
|
{
|
|
"source": "radarr_config",
|
|
"target": "/config",
|
|
"type": "volume"
|
|
},
|
|
{
|
|
"source": "/tank",
|
|
"target": "/tank",
|
|
"type": "bind"
|
|
}
|
|
]
|
|
},
|
|
"label_helpers": {
|
|
"docker_volume_backupper": [
|
|
{
|
|
"stop": true
|
|
}
|
|
],
|
|
"homepage": [
|
|
{
|
|
"group": "Media",
|
|
"href": "https://radarr.snaile.de/",
|
|
"icon": "https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/radarr.png",
|
|
"name": "Radarr",
|
|
"widget": {
|
|
"key": "redacted",
|
|
"type": "radarr",
|
|
"url": "http://media_radarr:7878"
|
|
}
|
|
}
|
|
],
|
|
"traefik_middleware": [
|
|
{
|
|
"middleware": "basicAuth",
|
|
"settings": {
|
|
"users": "redacted"
|
|
}
|
|
}
|
|
],
|
|
"traefik_router": [
|
|
{
|
|
"middlewares": ["media_radarr_http_basicauth"],
|
|
"rule": "Host(`radarr.snaile.de`)"
|
|
}
|
|
]
|
|
},
|
|
"name": "radarr"
|
|
},
|
|
{
|
|
"definition": {
|
|
"environment": {
|
|
"PGID": 1000,
|
|
"PUID": 1000
|
|
},
|
|
"image": "lscr.io/linuxserver/sonarr:4.0.12",
|
|
"networks": {
|
|
"internal": {},
|
|
"proxy": {}
|
|
},
|
|
"volumes": [
|
|
{
|
|
"source": "sonarr_config",
|
|
"target": "/config",
|
|
"type": "volume"
|
|
},
|
|
{
|
|
"source": "/tank",
|
|
"target": "/tank",
|
|
"type": "bind"
|
|
}
|
|
]
|
|
},
|
|
"label_helpers": {
|
|
"docker_volume_backupper": [
|
|
{
|
|
"stop": true
|
|
}
|
|
],
|
|
"homepage": [
|
|
{
|
|
"group": "Media",
|
|
"href": "https://sonarr.snaile.de/",
|
|
"icon": "https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/sonarr.png",
|
|
"name": "Sonarr",
|
|
"widget": {
|
|
"key": "redacted",
|
|
"type": "sonarr",
|
|
"url": "http://media_sonarr:7878"
|
|
}
|
|
}
|
|
],
|
|
"traefik_middleware": [
|
|
{
|
|
"middleware": "basicAuth",
|
|
"settings": {
|
|
"users": "redacted"
|
|
}
|
|
}
|
|
],
|
|
"traefik_router": [
|
|
{
|
|
"middlewares": ["media_sonarr_http_basicauth"],
|
|
"rule": "Host(`sonarr.snaile.de`)"
|
|
}
|
|
]
|
|
},
|
|
"name": "sonarr"
|
|
},
|
|
{
|
|
"definition": {
|
|
"environment": {
|
|
"PGID": 1000,
|
|
"PUID": 1000
|
|
},
|
|
"image": "ghcr.io/recyclarr/recyclarr:7.4.0",
|
|
"networks": {
|
|
"internal": {}
|
|
},
|
|
"volumes": [
|
|
{
|
|
"source": "recyclarr_config",
|
|
"target": "/config",
|
|
"type": "volume"
|
|
}
|
|
]
|
|
},
|
|
"name": "recyclarr"
|
|
},
|
|
{
|
|
"definition": {
|
|
"environment": {
|
|
"PGID": 1000,
|
|
"PUID": 1000
|
|
},
|
|
"image": "lscr.io/linuxserver/sabnzbd:4.4.1",
|
|
"networks": {
|
|
"internal": {},
|
|
"proxy": {}
|
|
},
|
|
"volumes": [
|
|
{
|
|
"source": "sabnzbd_config",
|
|
"target": "/config",
|
|
"type": "volume"
|
|
},
|
|
{
|
|
"source": "/tank/nzb",
|
|
"target": "/tank/nzb",
|
|
"type": "bind"
|
|
}
|
|
]
|
|
},
|
|
"label_helpers": {
|
|
"docker_volume_backupper": [
|
|
{
|
|
"stop": true
|
|
}
|
|
],
|
|
"homepage": [
|
|
{
|
|
"group": "Media",
|
|
"href": "https://nzb.snaile.de/",
|
|
"icon": "https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/sabnzbd.png",
|
|
"name": "SABnzbd",
|
|
"widget": {
|
|
"key": "redacted",
|
|
"type": "sabnzbd",
|
|
"url": "http://media_sabnzbd:8080"
|
|
}
|
|
}
|
|
],
|
|
"traefik_middleware": [
|
|
{
|
|
"middleware": "basicAuth",
|
|
"settings": {
|
|
"users": "redacted"
|
|
}
|
|
}
|
|
],
|
|
"traefik_router": [
|
|
{
|
|
"middlewares": ["media_sabnzbd_http_basicauth"],
|
|
"rule": "Host(`nzb.snaile.de`)"
|
|
}
|
|
]
|
|
},
|
|
"name": "sabnzbd"
|
|
},
|
|
{
|
|
"definition": {
|
|
"cap_add": ["NET_ADMIN"],
|
|
"environment": {
|
|
"PGID": 1000,
|
|
"PUID": 1000
|
|
},
|
|
"image": "linuxserver/wireguard:1.0.20210914",
|
|
"networks": {
|
|
"internal": {},
|
|
"proxy": {}
|
|
},
|
|
"sysctls": {
|
|
"net.ipv4.conf.all.src_valid_mark": "1",
|
|
"net.ipv6.conf.all.disable_ipv6": "0"
|
|
},
|
|
"volumes": [
|
|
{
|
|
"source": "tunnel_config",
|
|
"target": "/config",
|
|
"type": "volume"
|
|
}
|
|
]
|
|
},
|
|
"label_helpers": {
|
|
"traefik_middleware": [
|
|
{
|
|
"middleware": "basicAuth",
|
|
"name": "media_qbittorrent_http",
|
|
"settings": {
|
|
"users": "redacted"
|
|
}
|
|
}
|
|
],
|
|
"traefik_router": [
|
|
{
|
|
"middlewares": ["media_qbittorrent_http_basicauth"],
|
|
"name": "media_qbittorrent_http",
|
|
"rule": "Host(`torrent.snaile.de`)",
|
|
"service": "media_qbittorrent_http"
|
|
}
|
|
],
|
|
"traefik_service": [
|
|
{
|
|
"name": "media_qbittorrent_http",
|
|
"port": 8080
|
|
}
|
|
]
|
|
},
|
|
"name": "tunnel"
|
|
},
|
|
{
|
|
"definition": {
|
|
"environment": {
|
|
"QBITTORRENT_PASS": "redacted",
|
|
"QBITTORRENT_PORT": "8080",
|
|
"QBITTORRENT_SERVER": "media_tunnel",
|
|
"QBITTORRENT_USER": "luca",
|
|
"VPN_GATEWAY": "10.2.0.1"
|
|
},
|
|
"image": "git.snaile.de/snailed/qbittorrent-natpmp:2025.0127.1503",
|
|
"network_mode": "service:tunnel",
|
|
"volumes": [
|
|
{
|
|
"read_only": true,
|
|
"source": "/var/run/docker.sock",
|
|
"target": "/var/run/docker.sock",
|
|
"type": "bind"
|
|
}
|
|
]
|
|
},
|
|
"name": "natpmp"
|
|
},
|
|
{
|
|
"definition": {
|
|
"environment": {
|
|
"PGID": 1000,
|
|
"PUID": 1000
|
|
},
|
|
"image": "linuxserver/qbittorrent:20.04.1",
|
|
"network_mode": "service:tunnel",
|
|
"volumes": [
|
|
{
|
|
"source": "qbittorrent_config",
|
|
"target": "/config/qBittorrent",
|
|
"type": "volume"
|
|
},
|
|
{
|
|
"source": "/tank/torrent",
|
|
"target": "/tank/torrent",
|
|
"type": "bind"
|
|
}
|
|
]
|
|
},
|
|
"label_helpers": {
|
|
"docker_volume_backupper": [
|
|
{
|
|
"stop": true
|
|
}
|
|
],
|
|
"homepage": [
|
|
{
|
|
"group": "Media",
|
|
"href": "https://torrent.snaile.de/",
|
|
"icon": "https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons@master/png/qbittorrent.png",
|
|
"name": "qBittorrent",
|
|
"widget": {
|
|
"type": "qbittorrent",
|
|
"url": "http://media_tunnel:8080"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"name": "qbittorrent"
|
|
}
|
|
],
|
|
"docker_socket_proxy": [
|
|
{
|
|
"overwrite": {
|
|
"environment": {
|
|
"CONTAINERS": "1",
|
|
"EXEC": "1",
|
|
"INFO": "1",
|
|
"NODES": "1",
|
|
"POST": "1",
|
|
"PROJECTS": "1",
|
|
"TASKS": "1"
|
|
}
|
|
},
|
|
"read_only": false
|
|
}
|
|
],
|
|
"docker_volume_backupper": [
|
|
{
|
|
"backup_volumes": [
|
|
"jellyfin_config",
|
|
"jellyseer_config",
|
|
"prowlarr_config",
|
|
"sonarr_config",
|
|
"radarr_config",
|
|
"sabnzbd_config",
|
|
"qbittorrent_config"
|
|
],
|
|
"docker_socket_proxy": "media_docker_socket_proxy"
|
|
}
|
|
]
|
|
},
|
|
"settings": {
|
|
"default_definition": {
|
|
"environment": {
|
|
"TZ": "Europe/Berlin"
|
|
}
|
|
},
|
|
"external_networks": ["proxy"],
|
|
"external_volumes": [],
|
|
"label_default_args": {
|
|
"traefik_router": {
|
|
"certresolver": "letsencrypt",
|
|
"entrypoints": ["web-secure"],
|
|
"middlewares": ["hsts@file"]
|
|
}
|
|
},
|
|
"service_default_args": {
|
|
"docker_volume_backupper": {
|
|
"archive": "/tank/docker-backups"
|
|
}
|
|
},
|
|
"service_default_definitions": {
|
|
"docker_in_docker": {
|
|
"image": "docker:27.5.1-dind"
|
|
},
|
|
"docker_socket_proxy": {
|
|
"image": "tecnativa/docker-socket-proxy:0.3.0"
|
|
},
|
|
"docker_volume_backupper": {
|
|
"environment": {
|
|
"BACKUP_CRON_EXPRESSION": "0 6 * * *",
|
|
"BACKUP_RETENTION_DAYS": "7",
|
|
"EXEC_FORWARD_OUTPUT": true,
|
|
"GPG_PASSPHRASE": "redacted",
|
|
"GZIP_PARALLELISM": "2",
|
|
"NOTIFICATION_URLS": "redacted",
|
|
"SSH_HOST_NAME": "redacted",
|
|
"SSH_PASSWORD": "redacted",
|
|
"SSH_PORT": "23",
|
|
"SSH_REMOTE_PATH": "/home/docker-backups",
|
|
"SSH_USER": "redacted"
|
|
},
|
|
"image": "offen/docker-volume-backup:v2.43.1"
|
|
},
|
|
"mariadb": {
|
|
"image": "mariadb:11.6.2"
|
|
},
|
|
"postgres": {
|
|
"image": "postgres:16.6-alpine"
|
|
},
|
|
"redis": {
|
|
"image": "redis:7.4.2-alpine"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|