feat: add various Docker services and configurations for Minecraft, Plex, Sabnzbd, and more
This commit is contained in:
19
config/nixos/docker/arr-stack.nix
Normal file
19
config/nixos/docker/arr-stack.nix
Normal file
@ -0,0 +1,19 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.etc."docker/arr-stack/docker-compose.yml".source = ./arr-stack/docker-compose.yml;
|
||||
|
||||
systemd.services.arr-stack = {
|
||||
description = "arr-stack Docker Compose Service";
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/arr-stack/docker-compose.yml up";
|
||||
ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/arr-stack/docker-compose.yml down";
|
||||
WorkingDirectory = "/etc/docker/arr-stack";
|
||||
Restart = "always";
|
||||
RestartSec = 10;
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
}
|
97
config/nixos/docker/arr-stack/docker-compose.yml
Normal file
97
config/nixos/docker/arr-stack/docker-compose.yml
Normal file
@ -0,0 +1,97 @@
|
||||
name: arr-stack
|
||||
services:
|
||||
radarr:
|
||||
container_name: radarr
|
||||
image: lscr.io/linuxserver/radarr:latest
|
||||
environment:
|
||||
- TZ=Europe/Amsterdam
|
||||
ports:
|
||||
- 7878:7878
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
volumes:
|
||||
- ./data/radarr-config:/config
|
||||
- /mnt/20tb:/storage
|
||||
restart: "unless-stopped"
|
||||
|
||||
sonarr:
|
||||
image: linuxserver/sonarr:latest
|
||||
container_name: sonarr
|
||||
environment:
|
||||
- TZ=Europe/Amsterdam
|
||||
volumes:
|
||||
- ./data/sonarr-config:/config
|
||||
- /mnt/20tb:/storage
|
||||
ports:
|
||||
- 8989:8989
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
restart: unless-stopped
|
||||
|
||||
lidarr:
|
||||
image: linuxserver/lidarr:latest
|
||||
environment:
|
||||
- TZ=Europe/Amsterdam
|
||||
ports:
|
||||
- 8686:8686
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
volumes:
|
||||
- ./data/lidarr-config:/config
|
||||
- /mnt/20tb:/storage
|
||||
restart: unless-stopped
|
||||
|
||||
whisparr:
|
||||
image: ghcr.io/hotio/whisparr:latest
|
||||
environment:
|
||||
- TZ=Europe/Amsterdam
|
||||
ports:
|
||||
- 8386:8686
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
volumes:
|
||||
- ./data/whisparr-config:/config
|
||||
- /mnt/20tb:/storage
|
||||
restart: unless-stopped
|
||||
|
||||
prowlarr:
|
||||
container_name: prowlarr
|
||||
image: linuxserver/prowlarr:latest
|
||||
environment:
|
||||
- TZ=Europe/Amsterdam
|
||||
volumes:
|
||||
- ./data/prowlarr-config:/config
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
ports:
|
||||
- 9696:9696
|
||||
restart: unless-stopped
|
||||
|
||||
flaresolverr:
|
||||
image: ghcr.io/flaresolverr/flaresolverr:latest
|
||||
container_name: flaresolverr
|
||||
environment:
|
||||
- LOG_LEVEL=${LOG_LEVEL:-info}
|
||||
- LOG_HTML=${LOG_HTML:-false}
|
||||
- CAPTCHA_SOLVER=${CAPTCHA_SOLVER:-none}
|
||||
- TZ=Europe/Amsterdam
|
||||
ports:
|
||||
- "8191:8191"
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
restart: unless-stopped
|
||||
|
||||
overseerr:
|
||||
image: lscr.io/linuxserver/overseerr:latest
|
||||
container_name: overseerr
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- TZ=Europe/Amsterdam
|
||||
volumes:
|
||||
- ./data/overseerr-config:/config
|
||||
ports:
|
||||
- 5555:5055
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
restart: unless-stopped
|
@ -1,12 +1,18 @@
|
||||
{ ... }:
|
||||
{
|
||||
imports = [
|
||||
./wireguard.nix
|
||||
./arr-stack.nix
|
||||
./duplicati.nix
|
||||
./factorio.nix
|
||||
./gitea.nix
|
||||
./golink.nix
|
||||
./immich.nix
|
||||
./minecraft.nix
|
||||
./plex.nix
|
||||
./sabnzbd.nix
|
||||
./satisfactory.nix
|
||||
./gitea.nix
|
||||
./stash.nix
|
||||
./torrent.nix
|
||||
./wireguard.nix
|
||||
];
|
||||
}
|
||||
|
@ -6,8 +6,8 @@ services:
|
||||
- TZ=Europe/Amsterdam
|
||||
- CLI_ARGS=
|
||||
volumes:
|
||||
- ./config:/config
|
||||
- /mnt:/source/mnt
|
||||
- ./data:/config
|
||||
- /mnt/20tb:/mnt
|
||||
- /etc/docker:/source/etc/docker
|
||||
ports:
|
||||
- 8200:8200
|
||||
|
@ -17,12 +17,13 @@ services:
|
||||
restart: "unless-stopped"
|
||||
environment:
|
||||
- "FACTORIO_VERSION=stable"
|
||||
- "RCON_PASS=458fc84534"
|
||||
ports:
|
||||
- "5080:80"
|
||||
- "34197:34197/udp"
|
||||
volumes:
|
||||
- "./fsm:/opt/fsm-data"
|
||||
- "./saves:/opt/factorio/saves"
|
||||
- "./mods:/opt/factorio/mods"
|
||||
- "./config:/opt/factorio/config"
|
||||
- "./mod_packs:/opt/fsm/mod_packs"
|
||||
- "./data/fsm:/opt/fsm-data"
|
||||
- "./data/saves:/opt/factorio/saves"
|
||||
- "./data/mods:/opt/factorio/mods"
|
||||
- "./data/config:/opt/factorio/config"
|
||||
- "./data/mod_packs:/opt/fsm/mod_packs"
|
||||
|
@ -6,7 +6,7 @@ services:
|
||||
network_mode: host
|
||||
environment:
|
||||
UPNP_DURATION: 86400 # 24 hours in seconds
|
||||
PORTS: |
|
||||
PORTS: |
|
||||
[
|
||||
{"port": 22, "protocol": "tcp"},
|
||||
{"port": 22, "protocol": "udp"}
|
||||
|
@ -3,7 +3,7 @@
|
||||
# The location where your uploaded files are stored
|
||||
UPLOAD_LOCATION=/mnt/8tb/Photos/immich-library
|
||||
# The location where your database files are stored
|
||||
DB_DATA_LOCATION=./postgres
|
||||
DB_DATA_LOCATION=./data/postgres
|
||||
|
||||
# To set a timezone, uncomment the next line and change Etc/UTC to a TZ identifier from this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones#List
|
||||
TZ=Europe/Amsterdam
|
||||
|
20
config/nixos/docker/minecraft.nix
Normal file
20
config/nixos/docker/minecraft.nix
Normal file
@ -0,0 +1,20 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.etc."docker/minecraft/docker-compose.yml".source = ./minecraft/docker-compose.yml;
|
||||
environment.etc."docker/minecraft/shell.sh".source = ./minecraft/shell.sh;
|
||||
|
||||
systemd.services.minecraft = {
|
||||
description = "minecraft Docker Compose Service";
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/minecraft/docker-compose.yml up";
|
||||
ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/minecraft/docker-compose.yml down";
|
||||
WorkingDirectory = "/etc/docker/minecraft";
|
||||
Restart = "always";
|
||||
RestartSec = 10;
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
}
|
77
config/nixos/docker/minecraft/docker-compose.yml
Normal file
77
config/nixos/docker/minecraft/docker-compose.yml
Normal file
@ -0,0 +1,77 @@
|
||||
name: minecraft
|
||||
services:
|
||||
upnp:
|
||||
image: ghcr.io/vleeuwenmenno/auto-upnp:latest
|
||||
restart: unless-stopped
|
||||
network_mode: host
|
||||
environment:
|
||||
UPNP_DURATION: 86400 # 24 hours in seconds
|
||||
PORTS: |
|
||||
[
|
||||
{"port": 25565, "protocol": "tcp"},
|
||||
{"port": 25565, "protocol": "udp"},
|
||||
{"port": 24454, "protocol": "udp"},
|
||||
{"port": 3456, "protocol": "tcp"},
|
||||
{"port": 19132, "protocol": "udp"}
|
||||
]
|
||||
|
||||
paper:
|
||||
image: itzg/minecraft-server
|
||||
tty: true
|
||||
stdin_open: true
|
||||
ports:
|
||||
- "25565:25565/tcp"
|
||||
- "24454:24454/udp"
|
||||
- "19132:19132/udp"
|
||||
- "3456:8100/tcp"
|
||||
environment:
|
||||
EULA: "TRUE"
|
||||
TYPE: "paper"
|
||||
VERSION: 1.21.1
|
||||
DIFFICULTY: "hard"
|
||||
SERVER_NAME: "Paper Mostly Vanilla Server"
|
||||
MOTD: "Paper Server (Supports 1.20.x and newer!)"
|
||||
MEMORY: "32G"
|
||||
MAX_PLAYERS: 32
|
||||
VIEW_DISTANCE: 32
|
||||
SPAWN_MONSTERS: true
|
||||
SPAWN_ANIMALS: true
|
||||
ENFORCE_SECURE_PROFILE: false
|
||||
|
||||
PLUGINS: |
|
||||
https://cdn.modrinth.com/data/Jrmoreqs/versions/Ch2Vh0XL/AdvancedBackups-spigot-1.21-3.6.3.jar
|
||||
https://cdn.modrinth.com/data/9eGKb6K1/versions/tA5pALYl/voicechat-bukkit-2.5.25.jar
|
||||
https://cdn.modrinth.com/data/eBqOQXoA/versions/ndMZChDv/RecoveryTotem-1.0.1.jar
|
||||
https://cdn.modrinth.com/data/fALzjamp/versions/ytBhnGfO/Chunky-Bukkit-1.4.28.jar
|
||||
https://cdn.modrinth.com/data/P1OZGk5p/versions/ffAFJrjN/ViaVersion-5.1.1.jar
|
||||
https://cdn.modrinth.com/data/NpvuJQoq/versions/kwAAl5BS/ViaBackwards-5.1.1.jar
|
||||
https://cdn.modrinth.com/data/wKkoqHrH/versions/ohEXB7mE/Geyser-Spigot.jar
|
||||
https://cdn.modrinth.com/data/Vebnzrzj/versions/cfNN7sys/LuckPerms-Bukkit-5.4.145.jar
|
||||
https://cdn.modrinth.com/data/swbUV1cr/versions/DB0OeC5p/bluemap-5.4-spigot.jar
|
||||
|
||||
OPS: |
|
||||
StarDebris
|
||||
|
||||
WHITELIST: |
|
||||
StarDebris
|
||||
Audi358
|
||||
TechnikTake
|
||||
MsPremium
|
||||
Barny_8874
|
||||
Ricky_2405
|
||||
KinderKiller3000
|
||||
ScherzkeksMiner
|
||||
PauBau
|
||||
QuickWitPhil
|
||||
Draxonix
|
||||
Zakomi
|
||||
skintsoldier122
|
||||
Krank4ever
|
||||
Benjilami
|
||||
Barny_8847
|
||||
Destination456
|
||||
xKizu
|
||||
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ./data:/data
|
2
config/nixos/docker/minecraft/shell.sh
Executable file
2
config/nixos/docker/minecraft/shell.sh
Executable file
@ -0,0 +1,2 @@
|
||||
#!/usr/bin/env bash
|
||||
docker compose exec paper rcon-cli $@
|
19
config/nixos/docker/plex.nix
Normal file
19
config/nixos/docker/plex.nix
Normal file
@ -0,0 +1,19 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.etc."docker/plex/docker-compose.yml".source = ./plex/docker-compose.yml;
|
||||
|
||||
systemd.services.plex = {
|
||||
description = "plex Docker Compose Service";
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/plex/docker-compose.yml up";
|
||||
ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/plex/docker-compose.yml down";
|
||||
WorkingDirectory = "/etc/docker/plex";
|
||||
Restart = "always";
|
||||
RestartSec = 10;
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
}
|
35
config/nixos/docker/plex/docker-compose.yml
Normal file
35
config/nixos/docker/plex/docker-compose.yml
Normal file
@ -0,0 +1,35 @@
|
||||
services:
|
||||
plex:
|
||||
image: lscr.io/linuxserver/plex:latest
|
||||
container_name: plex
|
||||
network_mode: host
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: nvidia
|
||||
count: 1
|
||||
capabilities: [gpu]
|
||||
|
||||
environment:
|
||||
- VERSION=docker
|
||||
- PLEX_CLAIM=claim-sfTz4AWc_Uxhzfzz9fKS
|
||||
- NVIDIA_VISIBLE_DEVICES=all
|
||||
- NVIDIA_DRIVER_CAPABILITIES=compute,video,utility
|
||||
volumes:
|
||||
- ./data/plex:/config
|
||||
- /mnt/20tb/Movies:/movies
|
||||
- /mnt/20tb/TV_Shows:/tvshows
|
||||
- /mnt/20tb/Music:/music
|
||||
restart: unless-stopped
|
||||
|
||||
tautulli:
|
||||
image: lscr.io/linuxserver/tautulli:latest
|
||||
container_name: tautulli
|
||||
environment:
|
||||
- TZ=Europe/Amsterdam
|
||||
volumes:
|
||||
- ./data/tautulli:/config
|
||||
ports:
|
||||
- 8181:8181
|
||||
restart: unless-stopped
|
19
config/nixos/docker/sabnzbd.nix
Normal file
19
config/nixos/docker/sabnzbd.nix
Normal file
@ -0,0 +1,19 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.etc."docker/sabnzbd/docker-compose.yml".source = ./sabnzbd/docker-compose.yml;
|
||||
|
||||
systemd.services.sabnzbd = {
|
||||
description = "sabnzbd Docker Compose Service";
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/sabnzbd/docker-compose.yml up";
|
||||
ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/sabnzbd/docker-compose.yml down";
|
||||
WorkingDirectory = "/etc/docker/sabnzbd";
|
||||
Restart = "always";
|
||||
RestartSec = 10;
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
}
|
12
config/nixos/docker/sabnzbd/docker-compose.yml
Normal file
12
config/nixos/docker/sabnzbd/docker-compose.yml
Normal file
@ -0,0 +1,12 @@
|
||||
services:
|
||||
sabnzbd:
|
||||
image: lscr.io/linuxserver/sabnzbd:latest
|
||||
container_name: sabnzbd
|
||||
environment:
|
||||
- TZ=Europe/Amsterdam
|
||||
volumes:
|
||||
- ./data:/config
|
||||
- /mnt/20tb:/storage
|
||||
ports:
|
||||
- 7788:8080
|
||||
restart: unless-stopped
|
@ -32,8 +32,6 @@ services:
|
||||
- './data/certs/live/satisfactory.mvl.sh/privkey.pem:/config/gamefiles/FactoryGame/Certificates/private_key.pem'
|
||||
environment:
|
||||
- MAXPLAYERS=4
|
||||
- PGID=1000
|
||||
- PUID=1000
|
||||
- ROOTLESS=false
|
||||
- STEAMBETA=false
|
||||
healthcheck:
|
||||
|
19
config/nixos/docker/stash.nix
Normal file
19
config/nixos/docker/stash.nix
Normal file
@ -0,0 +1,19 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.etc."docker/stash/docker-compose.yml".source = ./stash/docker-compose.yml;
|
||||
|
||||
systemd.services.stash = {
|
||||
description = "stash Docker Compose Service";
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/stash/docker-compose.yml up";
|
||||
ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/stash/docker-compose.yml down";
|
||||
WorkingDirectory = "/etc/docker/stash";
|
||||
Restart = "always";
|
||||
RestartSec = 10;
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
}
|
28
config/nixos/docker/stash/docker-compose.yml
Normal file
28
config/nixos/docker/stash/docker-compose.yml
Normal file
@ -0,0 +1,28 @@
|
||||
services:
|
||||
stash:
|
||||
image: stashapp/stash:latest
|
||||
container_name: stash
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "9999:9999"
|
||||
environment:
|
||||
- STASH_STASH=/data/
|
||||
- STASH_GENERATED=/generated/
|
||||
- STASH_METADATA=/metadata/
|
||||
- STASH_CACHE=/cache/
|
||||
- STASH_PORT=9999
|
||||
volumes:
|
||||
- /etc/localtime:/etc/localtime:ro
|
||||
|
||||
## Keep configs, scrapers, and plugins here.
|
||||
- ./data/config:/root/.stash
|
||||
## Point this at your collection.
|
||||
- /mnt/20tb/Stash:/data
|
||||
## This is where your stash's metadata lives
|
||||
- ./data/metadata:/metadata
|
||||
## Any other cache content.
|
||||
- ./data/cache:/cache
|
||||
## Where to store binary blob data (scene covers, images)
|
||||
- ./data/blobs:/blobs
|
||||
## Where to store generated content (screenshots,previews,transcodes,sprites)
|
||||
- ./data/generated:/generated
|
19
config/nixos/docker/torrent.nix
Normal file
19
config/nixos/docker/torrent.nix
Normal file
@ -0,0 +1,19 @@
|
||||
{ config, pkgs, ... }:
|
||||
|
||||
{
|
||||
environment.etc."docker/torrent/docker-compose.yml".source = ./torrent/docker-compose.yml;
|
||||
|
||||
systemd.services.torrent = {
|
||||
description = "Torrent Docker Compose Service";
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
serviceConfig = {
|
||||
ExecStart = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/torrent/docker-compose.yml up";
|
||||
ExecStop = "${pkgs.docker-compose}/bin/docker-compose -f /etc/docker/torrent/docker-compose.yml down";
|
||||
WorkingDirectory = "/etc/docker/torrent";
|
||||
Restart = "always";
|
||||
RestartSec = 10;
|
||||
};
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
};
|
||||
}
|
0
config/nixos/docker/torrent/README.md
Normal file
0
config/nixos/docker/torrent/README.md
Normal file
35
config/nixos/docker/torrent/docker-compose.yml
Normal file
35
config/nixos/docker/torrent/docker-compose.yml
Normal file
@ -0,0 +1,35 @@
|
||||
services:
|
||||
gluetun:
|
||||
image: qmcgaw/gluetun:latest
|
||||
container_name: gluetun
|
||||
cap_add:
|
||||
- NET_ADMIN
|
||||
network_mode: bridge
|
||||
ports:
|
||||
- 6881:6881
|
||||
- 6881:6881/udp
|
||||
- 8085:8085
|
||||
volumes:
|
||||
- ./data/gluetun:/gluetun
|
||||
environment:
|
||||
- VPN_SERVICE_PROVIDER=${VPN_SERVICE_PROVIDER}
|
||||
- OPENVPN_USER=${OPENVPN_USER}
|
||||
- OPENVPN_PASSWORD=${OPENVPN_PASSWORD}
|
||||
- SERVER_COUNTRIES=${SERVER_COUNTRIES}
|
||||
restart: always
|
||||
|
||||
qbittorrent:
|
||||
image: lscr.io/linuxserver/qbittorrent
|
||||
container_name: qbittorrent
|
||||
network_mode: "service:gluetun"
|
||||
environment:
|
||||
- PUID=1000
|
||||
- PGID=1000
|
||||
- WEBUI_PORT=8085
|
||||
volumes:
|
||||
- "/etc/localtime:/etc/localtime:ro"
|
||||
- ./data/qbit:/config
|
||||
- /mnt/20tb:/storage
|
||||
depends_on:
|
||||
- gluetun
|
||||
restart: always
|
@ -19,7 +19,7 @@ services:
|
||||
environment:
|
||||
- PEERS=s24,pc,laptop
|
||||
volumes:
|
||||
- ./config:/config
|
||||
- ./data:/config
|
||||
ports:
|
||||
- 51820:51820/udp
|
||||
sysctls:
|
||||
|
Reference in New Issue
Block a user