feat: boilerplates voor Unifi, ARR-stack, qBittorrent en SABnzbd
All checks were successful
Deploy server-up (dev) / deploy (push) Successful in 14s

This commit is contained in:
bes-r 2026-05-27 00:01:28 +02:00
parent 99128a5fd9
commit 31aa2a3430
8 changed files with 547 additions and 0 deletions

View file

@ -0,0 +1,99 @@
services:
<< service_name >>-radarr:
image: lscr.io/linuxserver/radarr:latest
container_name: << service_name >>-radarr
environment:
- PUID=<< puid >>
- PGID=<< pgid >>
- TZ=<< timezone >>
volumes:
- << data_dir >>/<< service_name >>/radarr:/config
- << media_dir >>/films:/movies
- << downloads_dir >>:/downloads
ports:
- "<< port_radarr >>:7878"
restart: unless-stopped
<< service_name >>-sonarr:
image: lscr.io/linuxserver/sonarr:latest
container_name: << service_name >>-sonarr
environment:
- PUID=<< puid >>
- PGID=<< pgid >>
- TZ=<< timezone >>
volumes:
- << data_dir >>/<< service_name >>/sonarr:/config
- << media_dir >>/series:/tv
- << downloads_dir >>:/downloads
ports:
- "<< port_sonarr >>:8989"
restart: unless-stopped
<< service_name >>-lidarr:
image: lscr.io/linuxserver/lidarr:latest
container_name: << service_name >>-lidarr
environment:
- PUID=<< puid >>
- PGID=<< pgid >>
- TZ=<< timezone >>
volumes:
- << data_dir >>/<< service_name >>/lidarr:/config
- << media_dir >>/muziek:/music
- << downloads_dir >>:/downloads
ports:
- "<< port_lidarr >>:8686"
restart: unless-stopped
<< service_name >>-readarr:
image: lscr.io/linuxserver/readarr:develop
container_name: << service_name >>-readarr
environment:
- PUID=<< puid >>
- PGID=<< pgid >>
- TZ=<< timezone >>
volumes:
- << data_dir >>/<< service_name >>/readarr:/config
- << media_dir >>/boeken:/books
- << downloads_dir >>:/downloads
ports:
- "<< port_readarr >>:8787"
restart: unless-stopped
<< service_name >>-prowlarr:
image: lscr.io/linuxserver/prowlarr:latest
container_name: << service_name >>-prowlarr
environment:
- PUID=<< puid >>
- PGID=<< pgid >>
- TZ=<< timezone >>
volumes:
- << data_dir >>/<< service_name >>/prowlarr:/config
ports:
- "<< port_prowlarr >>:9696"
restart: unless-stopped
<< service_name >>-bazarr:
image: lscr.io/linuxserver/bazarr:latest
container_name: << service_name >>-bazarr
environment:
- PUID=<< puid >>
- PGID=<< pgid >>
- TZ=<< timezone >>
volumes:
- << data_dir >>/<< service_name >>/bazarr:/config
- << media_dir >>/films:/movies
- << media_dir >>/series:/tv
ports:
- "<< port_bazarr >>:6767"
restart: unless-stopped
<< service_name >>-jellyseerr:
image: fallenbagel/jellyseerr:latest
container_name: << service_name >>-jellyseerr
environment:
- TZ=<< timezone >>
volumes:
- << data_dir >>/<< service_name >>/jellyseerr:/app/config
ports:
- "<< port_jellyseerr >>:5055"
restart: unless-stopped

View file

@ -0,0 +1,132 @@
{
"kind": "compose",
"metadata": {
"name": "ARR-stack",
"description": "Complete media-automatiseringsstack: Radarr (films), Sonarr (series), Lidarr (muziek), Readarr (boeken), Prowlarr (indexers), Bazarr (ondertitels) en Jellyseerr (verzoeken).",
"tags": ["media", "automatisering", "radarr", "sonarr", "prowlarr", "bazarr", "jellyseerr"],
"icon": {"provider": "selfhst", "id": "radarr"},
"version": {"name": "latest"}
},
"variables": [
{
"title": "Algemeen",
"items": [
{
"name": "service_name",
"type": "str",
"title": "Servicenaam (prefix)",
"default": "arr",
"required": true,
"description": "Prefix voor alle containers in de stack, bijv. 'arr' geeft arr-radarr, arr-sonarr, etc."
},
{
"name": "data_dir",
"type": "str",
"title": "Config directory",
"default": "/opt/serverup/appdata",
"required": true,
"description": "Basismap voor configuratiebestanden van alle ARR-apps"
},
{
"name": "media_dir",
"type": "str",
"title": "Media directory",
"default": "/mnt/media",
"required": true,
"description": "Map voor films, series en muziek. Moet ook zichtbaar zijn voor de download-client."
},
{
"name": "downloads_dir",
"type": "str",
"title": "Downloads directory",
"default": "/mnt/downloads",
"required": true,
"description": "Map waar de download-client bestanden neerzet (qBittorrent of SABnzbd). Moet overeenkomen met het pad in de download-client."
},
{
"name": "timezone",
"type": "str",
"title": "Tijdzone",
"default": "Europe/Amsterdam",
"required": true
}
]
},
{
"title": "Gebruiker",
"items": [
{
"name": "puid",
"type": "int",
"title": "PUID",
"default": 1000,
"required": true,
"description": "User ID van de systeemgebruiker (id -u)"
},
{
"name": "pgid",
"type": "int",
"title": "PGID",
"default": 1000,
"required": true,
"description": "Group ID van de systeemgebruiker (id -g)"
}
]
},
{
"title": "Poorten",
"items": [
{
"name": "port_radarr",
"type": "int",
"title": "Radarr poort",
"default": 7878,
"required": true
},
{
"name": "port_sonarr",
"type": "int",
"title": "Sonarr poort",
"default": 8989,
"required": true
},
{
"name": "port_lidarr",
"type": "int",
"title": "Lidarr poort",
"default": 8686,
"required": true
},
{
"name": "port_readarr",
"type": "int",
"title": "Readarr poort",
"default": 8787,
"required": true
},
{
"name": "port_prowlarr",
"type": "int",
"title": "Prowlarr poort",
"default": 9696,
"required": true
},
{
"name": "port_bazarr",
"type": "int",
"title": "Bazarr poort",
"default": 6767,
"required": true
},
{
"name": "port_jellyseerr",
"type": "int",
"title": "Jellyseerr poort",
"default": 5055,
"required": true,
"description": "Webinterface voor gebruikers om films en series aan te vragen"
}
]
}
]
}

View file

@ -0,0 +1,17 @@
services:
<< service_name >>:
image: lscr.io/linuxserver/qbittorrent:latest
container_name: << service_name >>
environment:
- PUID=<< puid >>
- PGID=<< pgid >>
- TZ=<< timezone >>
- WEBUI_PORT=<< port_ui >>
volumes:
- << data_dir >>/<< service_name >>/config:/config
- << downloads_dir >>:/downloads
ports:
- "<< port_ui >>:<< port_ui >>"
- "<< port_torrent >>:6881"
- "<< port_torrent >>:6881/udp"
restart: unless-stopped

View file

@ -0,0 +1,83 @@
{
"kind": "compose",
"metadata": {
"name": "qBittorrent",
"description": "Open-source torrent-client met webinterface. Werkt goed samen met de ARR-stack.",
"tags": ["downloaden", "torrents", "media"],
"icon": {"provider": "selfhst", "id": "qbittorrent"},
"version": {"name": "latest"}
},
"variables": [
{
"title": "Algemeen",
"items": [
{
"name": "service_name",
"type": "str",
"title": "Servicenaam",
"default": "qbittorrent",
"required": true
},
{
"name": "port_ui",
"type": "int",
"title": "Web UI poort",
"default": 8080,
"required": true,
"description": "Poort voor de webinterface"
},
{
"name": "port_torrent",
"type": "int",
"title": "Torrent poort",
"default": 6881,
"required": true,
"description": "Poort voor torrent-verbindingen (TCP en UDP). Zet deze poort open in je firewall/router voor betere download-snelheid."
},
{
"name": "data_dir",
"type": "str",
"title": "Config directory",
"default": "/opt/serverup/appdata",
"required": true
},
{
"name": "downloads_dir",
"type": "str",
"title": "Downloads directory",
"default": "/mnt/downloads",
"required": true,
"description": "Map waar downloads worden opgeslagen. Gebruik hetzelfde pad als in Radarr/Sonarr."
},
{
"name": "timezone",
"type": "str",
"title": "Tijdzone",
"default": "Europe/Amsterdam",
"required": true
}
]
},
{
"title": "Gebruiker",
"items": [
{
"name": "puid",
"type": "int",
"title": "PUID",
"default": 1000,
"required": true,
"description": "User ID van de systeemgebruiker (id -u)"
},
{
"name": "pgid",
"type": "int",
"title": "PGID",
"default": 1000,
"required": true,
"description": "Group ID van de systeemgebruiker (id -g)"
}
]
}
]
}

View file

@ -0,0 +1,14 @@
services:
<< service_name >>:
image: lscr.io/linuxserver/sabnzbd:latest
container_name: << service_name >>
environment:
- PUID=<< puid >>
- PGID=<< pgid >>
- TZ=<< timezone >>
volumes:
- << data_dir >>/<< service_name >>/config:/config
- << downloads_dir >>:/downloads
ports:
- "<< port >>:8080"
restart: unless-stopped

View file

@ -0,0 +1,75 @@
{
"kind": "compose",
"metadata": {
"name": "SABnzbd",
"description": "Usenet download-client met webinterface. Werkt samen met de ARR-stack voor automatisch downloaden via Usenet.",
"tags": ["downloaden", "usenet", "nzb", "media"],
"icon": {"provider": "selfhst", "id": "sabnzbd"},
"version": {"name": "latest"}
},
"variables": [
{
"title": "Algemeen",
"items": [
{
"name": "service_name",
"type": "str",
"title": "Servicenaam",
"default": "sabnzbd",
"required": true
},
{
"name": "port",
"type": "int",
"title": "Web UI poort",
"default": 8081,
"required": true,
"description": "Poort voor de webinterface"
},
{
"name": "data_dir",
"type": "str",
"title": "Config directory",
"default": "/opt/serverup/appdata",
"required": true
},
{
"name": "downloads_dir",
"type": "str",
"title": "Downloads directory",
"default": "/mnt/downloads",
"required": true,
"description": "Map waar downloads worden opgeslagen. Gebruik hetzelfde pad als in Radarr/Sonarr."
},
{
"name": "timezone",
"type": "str",
"title": "Tijdzone",
"default": "Europe/Amsterdam",
"required": true
}
]
},
{
"title": "Gebruiker",
"items": [
{
"name": "puid",
"type": "int",
"title": "PUID",
"default": 1000,
"required": true,
"description": "User ID van de systeemgebruiker (id -u)"
},
{
"name": "pgid",
"type": "int",
"title": "PGID",
"default": 1000,
"required": true,
"description": "Group ID van de systeemgebruiker (id -g)"
}
]
}
]
}

View file

@ -0,0 +1,37 @@
services:
<< service_name >>:
image: lscr.io/linuxserver/unifi-network-application:latest
container_name: << service_name >>
environment:
- PUID=<< puid >>
- PGID=<< pgid >>
- TZ=<< timezone >>
- MONGO_USER=unifi
- MONGO_PASS=<< mongo_password >>
- MONGO_HOST=<< service_name >>-mongo
- MONGO_PORT=27017
- MONGO_DBNAME=unifi
volumes:
- << data_dir >>/<< service_name >>/config:/config
ports:
- "<< port_ui >>:8443"
- "<< port_inform >>:8080"
- "3478:3478/udp"
- "10001:10001/udp"
depends_on:
- << service_name >>-mongo
restart: unless-stopped
<< service_name >>-mongo:
image: mongo:4.4
container_name: << service_name >>-mongo
environment:
- MONGO_INITDB_ROOT_USERNAME=unifi
- MONGO_INITDB_ROOT_PASSWORD=<< mongo_password >>
- MONGO_INITDB_DATABASE=unifi
volumes:
- << service_name >>_mongodata:/data/db
restart: unless-stopped
volumes:
<< service_name >>_mongodata:

View file

@ -0,0 +1,90 @@
{
"kind": "compose",
"metadata": {
"name": "Unifi Network Application",
"description": "Unifi netwerkconfiguratie en -beheer. Beheert access points, switches en gateways van Ubiquiti.",
"tags": ["netwerk", "unifi", "ubiquiti", "wifi"],
"icon": {"provider": "selfhst", "id": "unifi"},
"version": {"name": "latest"}
},
"variables": [
{
"title": "Algemeen",
"items": [
{
"name": "service_name",
"type": "str",
"title": "Servicenaam",
"default": "unifi",
"required": true
},
{
"name": "port_ui",
"type": "int",
"title": "Web UI poort (HTTPS)",
"default": 8443,
"required": true,
"description": "Poort voor de Unifi-webinterface"
},
{
"name": "port_inform",
"type": "int",
"title": "Inform poort",
"default": 8080,
"required": true,
"description": "Poort waarop Unifi-apparaten inchecken. Moet bereikbaar zijn voor alle access points en switches."
},
{
"name": "data_dir",
"type": "str",
"title": "Data directory",
"default": "/opt/serverup/appdata",
"required": true,
"description": "Basismap voor configuratie en database"
},
{
"name": "timezone",
"type": "str",
"title": "Tijdzone",
"default": "Europe/Amsterdam",
"required": true
}
]
},
{
"title": "Gebruiker",
"items": [
{
"name": "puid",
"type": "int",
"title": "PUID",
"default": 1000,
"required": true,
"description": "User ID van de systeemgebruiker die de container beheert (whoami → id -u)"
},
{
"name": "pgid",
"type": "int",
"title": "PGID",
"default": 1000,
"required": true,
"description": "Group ID van de systeemgebruiker (id -g)"
}
]
},
{
"title": "Database",
"items": [
{
"name": "mongo_password",
"type": "str",
"title": "MongoDB wachtwoord",
"default": "unifi_mongo_pass",
"required": true,
"description": "Wachtwoord voor de interne MongoDB database",
"config": {"placeholder": "sterk-wachtwoord"}
}
]
}
]
}