Compare commits
26 Commits
261bfe95c9
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| 6eae420d21 | |||
| 244e14af94 | |||
| 1f8ff6f270 | |||
| 9555c20fc3 | |||
| e82f958961 | |||
| 7f41c82d5f | |||
| f91dbcc046 | |||
| 70ead97dbc | |||
| fb15b2c387 | |||
| efcf7ed4a7 | |||
| a9219d324c | |||
| fe73dc7da7 | |||
| b51eac7c4b | |||
| 537207da6d | |||
| bc28bb8f26 | |||
| 176b263803 | |||
| e75c4cd83d | |||
| 7c6f0d5678 | |||
| 03f7dfc0a4 | |||
| 43a3aefc59 | |||
| 4ec1aca96b | |||
| 654a8ddb21 | |||
| 45f1ca6412 | |||
| 175562d85e | |||
| 833feda4f1 | |||
| b1d1d71ed3 |
@ -19,14 +19,16 @@
|
|||||||
# ./services/airsignal.nix
|
# ./services/airsignal.nix
|
||||||
./services/heidi.nix
|
./services/heidi.nix
|
||||||
./services/formula10.nix
|
./services/formula10.nix
|
||||||
|
./services/formula11.nix
|
||||||
|
|
||||||
# General
|
# General
|
||||||
./services/authelia.nix
|
./services/authelia.nix
|
||||||
./services/gitea.nix
|
./services/gitea.nix
|
||||||
./services/gitea-runner.nix
|
./services/gitea-runner.nix
|
||||||
# ./services/homeassistant.nix # Replaced by HAOS
|
# ./services/homeassistant.nix # Replaced by HAOS
|
||||||
./services/homepage.nix
|
# ./services/homepage.nix
|
||||||
./services/immich.nix
|
./services/immich.nix
|
||||||
|
./services/jellyfin.nix
|
||||||
./services/kopia.nix
|
./services/kopia.nix
|
||||||
./services/nextcloud.nix
|
./services/nextcloud.nix
|
||||||
./services/nginx-proxy-manager.nix
|
./services/nginx-proxy-manager.nix
|
||||||
@ -35,25 +37,6 @@
|
|||||||
# ./services/uptime-kuma.nix
|
# ./services/uptime-kuma.nix
|
||||||
./services/whats-up-docker.nix
|
./services/whats-up-docker.nix
|
||||||
# ./services/wireguard-vps.nix # NOTE: Runs on ThinkNix
|
# ./services/wireguard-vps.nix # NOTE: Runs on ThinkNix
|
||||||
|
|
||||||
# MultimediArr
|
|
||||||
# ./services/bazarr.nix
|
|
||||||
# ./services/fileflows.nix
|
|
||||||
./services/jellyfin.nix
|
|
||||||
# ./services/jellyseerr.nix
|
|
||||||
# ./services/jellystat.nix
|
|
||||||
# ./services/prowlarr.nix
|
|
||||||
# ./services/radarr.nix
|
|
||||||
# ./services/sonarr.nix
|
|
||||||
# ./services/sabnzbd.nix
|
|
||||||
|
|
||||||
# Box
|
|
||||||
# ./services/box-fileflows.nix
|
|
||||||
# ./services/box-hydra.nix
|
|
||||||
./services/box-metube.nix
|
|
||||||
# ./services/box-sabnzbd.nix
|
|
||||||
./services/box-stash.nix
|
|
||||||
./services/box-unmanic.nix
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# Bootloader.
|
# Bootloader.
|
||||||
@ -97,16 +80,32 @@
|
|||||||
|
|
||||||
# Enable networking
|
# Enable networking
|
||||||
networkmanager.enable = true;
|
networkmanager.enable = true;
|
||||||
|
enableIPv6 = true;
|
||||||
|
|
||||||
|
interfaces.ens18 = {
|
||||||
|
ipv4.addresses = [
|
||||||
|
{
|
||||||
|
address = "192.168.86.25";
|
||||||
|
prefixLength = 24;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
ipv6.addresses = [
|
||||||
|
{
|
||||||
|
address = "fd00::19"; # 25 in hex
|
||||||
|
prefixLength = 120;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
interfaces.ens18.ipv4.addresses = [{
|
|
||||||
address = "192.168.86.25";
|
|
||||||
prefixLength = 24;
|
|
||||||
}];
|
|
||||||
defaultGateway = "192.168.86.5";
|
defaultGateway = "192.168.86.5";
|
||||||
|
defaultGateway6 = "fd00::5";
|
||||||
|
|
||||||
nameservers = [
|
nameservers = [
|
||||||
# "127.0.0.1"
|
# "127.0.0.1"
|
||||||
"192.168.86.26"
|
|
||||||
# "8.8.8.8"
|
# "8.8.8.8"
|
||||||
|
"192.168.86.26"
|
||||||
|
"fd00::1a" # 26 in hex
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -128,6 +127,7 @@
|
|||||||
# - Disabling this prevents containers from having internet connection. DNS issue?
|
# - Disabling this prevents containers from having internet connection. DNS issue?
|
||||||
# ${dockercli} network create -o "com.docker.network.bridge.enable_ip_masquerade"="false" ${network}
|
# ${dockercli} network create -o "com.docker.network.bridge.enable_ip_masquerade"="false" ${network}
|
||||||
|
|
||||||
|
# ${dockercli} network create --ipv6 --gateway="2000::1" --subnet="2000::/80" ${network}
|
||||||
${dockercli} network create ${network}
|
${dockercli} network create ${network}
|
||||||
else
|
else
|
||||||
echo "${network} already exists in docker"
|
echo "${network} already exists in docker"
|
||||||
@ -230,15 +230,25 @@
|
|||||||
# setSocketVariable = true;
|
# setSocketVariable = true;
|
||||||
# };
|
# };
|
||||||
daemon.settings = {
|
daemon.settings = {
|
||||||
|
# ipv6 = true; # TODO: Resulted in slowdowns for some services?
|
||||||
|
# fixed-cidr-v6 = "2001::/80";
|
||||||
|
|
||||||
dns = [
|
dns = [
|
||||||
# TODO: Does this circumvent my DNS for each container?
|
# TODO: Does this circumvent my DNS for each container?
|
||||||
# It might improve gitea actions though...
|
# It might improve gitea actions though...
|
||||||
"8.8.8.8"
|
"8.8.8.8"
|
||||||
|
# "2001:4860:4860::8888"
|
||||||
|
|
||||||
# TODO: Might prevent containers from having DNS?
|
# TODO: Might prevent containers from having DNS?
|
||||||
# "127.0.0.1"
|
# "127.0.0.1"
|
||||||
# "192.168.86.25"
|
# "192.168.86.25"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
# Allow access via tcp socket (for homepage)
|
||||||
|
hosts = [
|
||||||
|
"tcp://0.0.0.0:2375"
|
||||||
|
"unix:///var/run/docker.sock"
|
||||||
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
oci-containers.backend = "docker";
|
oci-containers.backend = "docker";
|
||||||
|
|||||||
@ -47,37 +47,10 @@
|
|||||||
fsType = "nfs";
|
fsType = "nfs";
|
||||||
};
|
};
|
||||||
|
|
||||||
"/media/TV-Usenet" = {
|
|
||||||
device = "192.168.86.20:/mnt/SG Exos Mirror 18TB/Usenet";
|
|
||||||
fsType = "nfs";
|
|
||||||
};
|
|
||||||
|
|
||||||
"/media/TV-Music" = {
|
"/media/TV-Music" = {
|
||||||
device = "192.168.86.20:/mnt/SG Exos Mirror 18TB/Music";
|
device = "192.168.86.20:/mnt/SG Exos Mirror 18TB/Music";
|
||||||
fsType = "nfs";
|
fsType = "nfs";
|
||||||
};
|
};
|
||||||
|
|
||||||
# WD Blue Stripe Shares
|
|
||||||
|
|
||||||
"/media/Stash-Video" = {
|
|
||||||
device = "192.168.86.20:/mnt/WD Blue Stripe 2T/Video";
|
|
||||||
fsType = "nfs";
|
|
||||||
};
|
|
||||||
|
|
||||||
"/media/Stash-Picture" = {
|
|
||||||
device = "192.168.86.20:/mnt/WD Blue Stripe 2T/Picture";
|
|
||||||
fsType = "nfs";
|
|
||||||
};
|
|
||||||
|
|
||||||
"/media/Stash-Clips" = {
|
|
||||||
device = "192.168.86.20:/mnt/WD Blue Stripe 2T/Clips";
|
|
||||||
fsType = "nfs";
|
|
||||||
};
|
|
||||||
|
|
||||||
"/media/Stash-Usenet" = {
|
|
||||||
device = "192.168.86.20:/mnt/WD Blue Stripe 2T/Usenet";
|
|
||||||
fsType = "nfs";
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
swapDevices = [];
|
swapDevices = [];
|
||||||
|
|||||||
@ -1,26 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
virtualisation.oci-containers.containers.airsignal = {
|
|
||||||
image = "gitea.vps.chriphost.de/christoph/airsignal:latest";
|
|
||||||
autoStart = true;
|
|
||||||
|
|
||||||
dependsOn = [];
|
|
||||||
|
|
||||||
ports = [
|
|
||||||
"12776:12776"
|
|
||||||
"12776:12776/udp"
|
|
||||||
];
|
|
||||||
|
|
||||||
volumes = [];
|
|
||||||
|
|
||||||
environment = {};
|
|
||||||
|
|
||||||
extraOptions = [
|
|
||||||
"--net=behind-nginx"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,33 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
virtualisation.oci-containers.containers.bazarr = {
|
|
||||||
image = "linuxserver/bazarr:latest";
|
|
||||||
autoStart = true;
|
|
||||||
|
|
||||||
dependsOn = [];
|
|
||||||
|
|
||||||
ports = [
|
|
||||||
# "6767:6767"
|
|
||||||
];
|
|
||||||
|
|
||||||
volumes = [
|
|
||||||
"bazarr_config:/config"
|
|
||||||
"/media/Show:/tv"
|
|
||||||
"/media/Movie:/movies"
|
|
||||||
];
|
|
||||||
|
|
||||||
environment = {
|
|
||||||
PUID = "3000";
|
|
||||||
PGID = "3000";
|
|
||||||
TZ = "Europe/Berlin";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraOptions = [
|
|
||||||
"--net=behind-nginx"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,43 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
virtualisation.oci-containers.containers.box-fileflows = {
|
|
||||||
image = "revenz/fileflows:latest";
|
|
||||||
autoStart = true;
|
|
||||||
|
|
||||||
dependsOn = [
|
|
||||||
# "pihole"
|
|
||||||
];
|
|
||||||
|
|
||||||
ports = [
|
|
||||||
# "5000:5000"
|
|
||||||
];
|
|
||||||
|
|
||||||
volumes = [
|
|
||||||
"/media/Stash-Video:/media/Video"
|
|
||||||
"/media/Stash-Picture:/media/Picture"
|
|
||||||
|
|
||||||
"box-fileflows_temp:/temp"
|
|
||||||
"box-fileflows_logs:/app/Logs"
|
|
||||||
"box-fileflows_config:/app/Data"
|
|
||||||
|
|
||||||
"/var/run/docker.sock:/var/run/docker.sock:ro"
|
|
||||||
];
|
|
||||||
|
|
||||||
environment = {
|
|
||||||
TZ = "Europe/Berlin";
|
|
||||||
|
|
||||||
NVIDIA_VISIBLE_DEVICES = "all";
|
|
||||||
NVIDIA_DRIVER_CAPABILITIES = "all";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraOptions = [
|
|
||||||
"--privileged" # Helps with CUDA issues
|
|
||||||
"--gpus=all"
|
|
||||||
"--net=behind-nginx"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,34 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
virtualisation.oci-containers.containers.box-hydra = {
|
|
||||||
image = "linuxserver/nzbhydra2:latest";
|
|
||||||
autoStart = true;
|
|
||||||
|
|
||||||
dependsOn = [
|
|
||||||
# "pihole"
|
|
||||||
# "sabnzbd"
|
|
||||||
];
|
|
||||||
|
|
||||||
ports = [
|
|
||||||
# "5076:5076"
|
|
||||||
];
|
|
||||||
|
|
||||||
volumes = [
|
|
||||||
"box-hydra_config:/config"
|
|
||||||
];
|
|
||||||
|
|
||||||
environment = {
|
|
||||||
PUID = "1000";
|
|
||||||
PGID = "1000";
|
|
||||||
TZ = "Europe/Berlin";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraOptions = [
|
|
||||||
"--net=behind-nginx"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,36 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
virtualisation.oci-containers.containers.box-metube = {
|
|
||||||
image = "ghcr.io/alexta69/metube";
|
|
||||||
autoStart = true;
|
|
||||||
|
|
||||||
dependsOn = [
|
|
||||||
# "pihole"
|
|
||||||
];
|
|
||||||
|
|
||||||
ports = [
|
|
||||||
# "3366:8081"
|
|
||||||
];
|
|
||||||
|
|
||||||
volumes = [
|
|
||||||
"/media/Stash-Video:/downloads"
|
|
||||||
];
|
|
||||||
|
|
||||||
environment = {
|
|
||||||
UID = "3001";
|
|
||||||
GID = "3001";
|
|
||||||
|
|
||||||
# NVIDIA_VISIBLE_DEVICES = "all";
|
|
||||||
# NVIDIA_DRIVER_CAPABILITIES = "all";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraOptions = [
|
|
||||||
# "--gpus=all"
|
|
||||||
"--net=behind-nginx"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,35 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
virtualisation.oci-containers.containers.box-sabnzbd = {
|
|
||||||
image = "linuxserver/sabnzbd:latest";
|
|
||||||
autoStart = true;
|
|
||||||
|
|
||||||
dependsOn = [
|
|
||||||
# "pihole"
|
|
||||||
];
|
|
||||||
|
|
||||||
ports = [
|
|
||||||
# "8080:8080"
|
|
||||||
];
|
|
||||||
|
|
||||||
volumes = [
|
|
||||||
"/media/Stash-Video:/downloads"
|
|
||||||
|
|
||||||
"box-sabnzbd_config:/config"
|
|
||||||
];
|
|
||||||
|
|
||||||
environment = {
|
|
||||||
PUID = "3001";
|
|
||||||
PGID = "3001";
|
|
||||||
TZ = "Europe/Berlin";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraOptions = [
|
|
||||||
"--net=behind-nginx"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,98 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
virtualisation.oci-containers.containers.box-stash-cdp = {
|
|
||||||
image = "chromedp/headless-shell:latest";
|
|
||||||
autoStart = true;
|
|
||||||
|
|
||||||
dependsOn = [
|
|
||||||
# "pihole"
|
|
||||||
];
|
|
||||||
|
|
||||||
ports = [
|
|
||||||
# "9222:9222"
|
|
||||||
];
|
|
||||||
|
|
||||||
volumes = [];
|
|
||||||
|
|
||||||
environment = {};
|
|
||||||
|
|
||||||
extraOptions = [
|
|
||||||
# "--gpus=all"
|
|
||||||
# "--shm-size=2G"
|
|
||||||
"--net=behind-nginx"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
virtualisation.oci-containers.containers.box-stash-flaresolverr = {
|
|
||||||
image = "ghcr.io/flaresolverr/flaresolverr:latest";
|
|
||||||
autoStart = true;
|
|
||||||
|
|
||||||
dependsOn = [
|
|
||||||
# "pihole"
|
|
||||||
];
|
|
||||||
|
|
||||||
ports = [
|
|
||||||
# "8191:8191"
|
|
||||||
];
|
|
||||||
|
|
||||||
volumes = [];
|
|
||||||
|
|
||||||
environment = {
|
|
||||||
LOG_LEVEL = "info";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraOptions = [
|
|
||||||
# "--gpus=all"
|
|
||||||
# "--shm-size=2G"
|
|
||||||
"--net=behind-nginx"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
virtualisation.oci-containers.containers.box-stash = {
|
|
||||||
image = "stashapp/stash:latest";
|
|
||||||
autoStart = true;
|
|
||||||
|
|
||||||
dependsOn = [
|
|
||||||
"box-stash-cdp"
|
|
||||||
"box-stash-flaresolverr"
|
|
||||||
# "pihole"
|
|
||||||
];
|
|
||||||
|
|
||||||
ports = [
|
|
||||||
# "9999:9999"
|
|
||||||
];
|
|
||||||
|
|
||||||
volumes = [
|
|
||||||
"/media/Stash-Picture:/data/picture"
|
|
||||||
"/media/Stash-Video:/data/video"
|
|
||||||
"/media/Stash-Clips:/data/clips"
|
|
||||||
|
|
||||||
"box-stash_config:/root/.stash"
|
|
||||||
"box-stash_metadata:/metadata"
|
|
||||||
"box-stash_generated:/generated"
|
|
||||||
"box-stash_blobs:/blobs"
|
|
||||||
"box-stash_cache:/cache"
|
|
||||||
];
|
|
||||||
|
|
||||||
environment = {
|
|
||||||
STASH_PORT = "9999";
|
|
||||||
STASH_CACHE = "/cache/";
|
|
||||||
STASH_GENERATED = "/generated/";
|
|
||||||
STASH_METADATA = "/metadata/";
|
|
||||||
STASH_STASH = "/data/";
|
|
||||||
|
|
||||||
NVIDIA_VISIBLE_DEVICES = "all";
|
|
||||||
NVIDIA_DRIVER_CAPABILITIES = "all";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraOptions = [
|
|
||||||
"--privileged"
|
|
||||||
"--gpus=all"
|
|
||||||
"--net=behind-nginx"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,42 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
virtualisation.oci-containers.containers.box-unmanic = {
|
|
||||||
image = "josh5/unmanic:latest";
|
|
||||||
autoStart = true;
|
|
||||||
|
|
||||||
dependsOn = [
|
|
||||||
# "pihole"
|
|
||||||
];
|
|
||||||
|
|
||||||
ports = [
|
|
||||||
# "8888:8888"
|
|
||||||
];
|
|
||||||
|
|
||||||
volumes = [
|
|
||||||
"/media/Stash-Video:/library/Video"
|
|
||||||
"/media/Stash-Clips:/library/Clips"
|
|
||||||
|
|
||||||
"box-unmanic_temp:/tmp/unmanic"
|
|
||||||
"box-unmanic_config:/config"
|
|
||||||
|
|
||||||
# "/var/run/docker.sock:/var/run/docker.sock:ro"
|
|
||||||
];
|
|
||||||
|
|
||||||
environment = {
|
|
||||||
TZ = "Europe/Berlin";
|
|
||||||
|
|
||||||
NVIDIA_VISIBLE_DEVICES = "all";
|
|
||||||
NVIDIA_DRIVER_CAPABILITIES = "all";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraOptions = [
|
|
||||||
"--privileged" # Helps with CUDA issues
|
|
||||||
"--gpus=all"
|
|
||||||
"--net=behind-nginx"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,43 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
virtualisation.oci-containers.containers.fileflows = {
|
|
||||||
image = "revenz/fileflows:latest";
|
|
||||||
autoStart = true;
|
|
||||||
|
|
||||||
dependsOn = [
|
|
||||||
# "pihole"
|
|
||||||
];
|
|
||||||
|
|
||||||
ports = [
|
|
||||||
# "5000:5000"
|
|
||||||
];
|
|
||||||
|
|
||||||
volumes = [
|
|
||||||
"/media/Movie:/media/Movie"
|
|
||||||
"/media/Show:/media/Show"
|
|
||||||
|
|
||||||
"fileflows_temp:/temp"
|
|
||||||
"fileflows_logs:/app/Logs"
|
|
||||||
"fileflows_config:/app/Data"
|
|
||||||
|
|
||||||
"/var/run/docker.sock:/var/run/docker.sock:ro"
|
|
||||||
];
|
|
||||||
|
|
||||||
environment = {
|
|
||||||
TZ = "Europe/Berlin";
|
|
||||||
|
|
||||||
NVIDIA_VISIBLE_DEVICES = "all";
|
|
||||||
NVIDIA_DRIVER_CAPABILITIES = "all";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraOptions = [
|
|
||||||
"--privileged" # Helps with CUDA issues
|
|
||||||
"--gpus=all"
|
|
||||||
"--net=behind-nginx"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
65
ServeNix/services/formula11.nix
Normal file
65
ServeNix/services/formula11.nix
Normal file
@ -0,0 +1,65 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}: {
|
||||||
|
virtualisation.oci-containers.containers.formula11_pocketbase = {
|
||||||
|
image = "gitea.vps.chriphost.de/christoph/pocketbase:0.25.0";
|
||||||
|
autoStart = true;
|
||||||
|
|
||||||
|
dependsOn = [
|
||||||
|
# "pihole"
|
||||||
|
];
|
||||||
|
|
||||||
|
ports = [
|
||||||
|
"8090:8080"
|
||||||
|
];
|
||||||
|
|
||||||
|
volumes = [
|
||||||
|
"formula11_pb_data:/pb/pb_data"
|
||||||
|
];
|
||||||
|
|
||||||
|
environment = {};
|
||||||
|
|
||||||
|
extraOptions = [
|
||||||
|
# "--gpus=all"
|
||||||
|
"--net=behind-nginx"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
virtualisation.oci-containers.containers.formula11 = {
|
||||||
|
image = "gitea.vps.chriphost.de/christoph/formula11:latest";
|
||||||
|
autoStart = true;
|
||||||
|
|
||||||
|
dependsOn = [
|
||||||
|
"formula11_pocketbase"
|
||||||
|
];
|
||||||
|
|
||||||
|
ports = [
|
||||||
|
# "8080:8090"
|
||||||
|
"5173:3000"
|
||||||
|
];
|
||||||
|
|
||||||
|
volumes = [];
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
# PB_PROTOCOL="http";
|
||||||
|
# PB_HOST="formula11_pocketbase";
|
||||||
|
# PB_PORT="8000";
|
||||||
|
|
||||||
|
# PB_PROTOCOL="https";
|
||||||
|
# PB_URL="f11pb.vps.chriphost.de";
|
||||||
|
|
||||||
|
PUBLIC_PBURL="https://f11pb.vps.chriphost.de";
|
||||||
|
|
||||||
|
# Required by SvelteKit to prevent cross-site POST errors
|
||||||
|
ORIGIN="https://f11.vps.chriphost.de";
|
||||||
|
};
|
||||||
|
|
||||||
|
extraOptions = [
|
||||||
|
# "--gpus=all"
|
||||||
|
"--net=behind-nginx"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
@ -5,7 +5,7 @@
|
|||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
virtualisation.oci-containers.containers.immich-database = {
|
virtualisation.oci-containers.containers.immich-database = {
|
||||||
image = "tensorchord/pgvecto-rs:pg15-v0.2.0";
|
image = "ghcr.io/immich-app/postgres:15-vectorchord0.3.0-pgvectors0.2.0";
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
|
|
||||||
dependsOn = [];
|
dependsOn = [];
|
||||||
|
|||||||
@ -1,29 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
virtualisation.oci-containers.containers.jellyseerr = {
|
|
||||||
image = "fallenbagel/jellyseerr:latest";
|
|
||||||
autoStart = true;
|
|
||||||
|
|
||||||
dependsOn = [];
|
|
||||||
|
|
||||||
ports = [
|
|
||||||
"5055:5055"
|
|
||||||
];
|
|
||||||
|
|
||||||
volumes = [
|
|
||||||
"jellyseerr_config:/app/config"
|
|
||||||
];
|
|
||||||
|
|
||||||
environment = {
|
|
||||||
TZ = "Europe/Berlin";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraOptions = [
|
|
||||||
"--net=behind-nginx"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,78 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
virtualisation.oci-containers.containers.jellystat-db = {
|
|
||||||
image = "postgres:15.2";
|
|
||||||
autoStart = true;
|
|
||||||
|
|
||||||
dependsOn = [
|
|
||||||
# "pihole"
|
|
||||||
|
|
||||||
];
|
|
||||||
|
|
||||||
ports = [
|
|
||||||
# "5432:5432"
|
|
||||||
];
|
|
||||||
|
|
||||||
volumes = [
|
|
||||||
"jellystat-db_data:/var/lib/postgresql/data"
|
|
||||||
];
|
|
||||||
|
|
||||||
environment = {
|
|
||||||
POSTGRES_DB = "jfstat";
|
|
||||||
POSTGRES_USER = "postgres";
|
|
||||||
POSTGRES_PASSWORD = "jellystat-db";
|
|
||||||
|
|
||||||
# PUID = "1000";
|
|
||||||
# PGID = "1000";
|
|
||||||
# TZ = "Europe/Berlin";
|
|
||||||
# NVIDIA_VISIBLE_DEVICES = "all";
|
|
||||||
# NVIDIA_DRIVER_CAPABILITIES = "all";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraOptions = [
|
|
||||||
# "--gpus=all"
|
|
||||||
"--net=behind-nginx"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
virtualisation.oci-containers.containers.jellystat = {
|
|
||||||
image = "cyfershepard/jellystat";
|
|
||||||
autoStart = true;
|
|
||||||
|
|
||||||
dependsOn = [
|
|
||||||
# "pihole"
|
|
||||||
"jellystat-db"
|
|
||||||
];
|
|
||||||
|
|
||||||
ports = [
|
|
||||||
# "3000:3000"
|
|
||||||
];
|
|
||||||
|
|
||||||
volumes = [
|
|
||||||
"jellystat_data:/app/backend/backup-data"
|
|
||||||
];
|
|
||||||
|
|
||||||
environment = {
|
|
||||||
POSTGRES_USER = "postgres";
|
|
||||||
POSTGRES_PASSWORD = "jellystat-db";
|
|
||||||
POSTGRES_IP = "jellystat-db";
|
|
||||||
POSTGRES_PORT = "5432";
|
|
||||||
JWT_SECRET = "MyUnsecretJwtKey";
|
|
||||||
|
|
||||||
# PUID = "1000";
|
|
||||||
# PGID = "1000";
|
|
||||||
# TZ = "Europe/Berlin";
|
|
||||||
# NVIDIA_VISIBLE_DEVICES = "all";
|
|
||||||
# NVIDIA_DRIVER_CAPABILITIES = "all";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraOptions = [
|
|
||||||
# "--gpus=all"
|
|
||||||
"--net=behind-nginx"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -27,16 +27,6 @@
|
|||||||
# "adguard_config:/data/adguard_config:ro" # ThinkNix
|
# "adguard_config:/data/adguard_config:ro" # ThinkNix
|
||||||
# "adguard_work:/data/adguard_work:ro" # ThinkNix
|
# "adguard_work:/data/adguard_work:ro" # ThinkNix
|
||||||
"authelia_config:/data/authelia_config:ro"
|
"authelia_config:/data/authelia_config:ro"
|
||||||
# "bazarr_config:/data/bazarr_config:ro" # Disabled
|
|
||||||
# "box-fileflows_config:/data/box-fileflows_config:ro" # Replaced with Unmanic
|
|
||||||
# "box-hydra_config:/data/box-hydra_config:ro" # Disabled
|
|
||||||
# "box-sabnzbd_config:/data/box-sabnzbd_config:ro" # Disabled
|
|
||||||
"box-stash_blobs:/data/box-stash_blobs:ro"
|
|
||||||
"box-stash_config:/data/box-stash_config:ro"
|
|
||||||
"box-stash_generated:/data/box-stash_generated:ro"
|
|
||||||
"box-stash_metadata:/data/box-stash_metadata:ro"
|
|
||||||
"box-unmanic_config:/data/box-unmanic_config:ro"
|
|
||||||
# "fileflows_config:/data/fileflows_config:ro" # Replaced with Unmanic
|
|
||||||
"formula10_cache:/data/formula10_cache:ro"
|
"formula10_cache:/data/formula10_cache:ro"
|
||||||
"formula10_data:/data/formula10_data:ro"
|
"formula10_data:/data/formula10_data:ro"
|
||||||
"gitea-db_data:/data/gitea-db_data:ro"
|
"gitea-db_data:/data/gitea-db_data:ro"
|
||||||
@ -45,15 +35,12 @@
|
|||||||
"gitea_data:/data/gitea_data:ro"
|
"gitea_data:/data/gitea_data:ro"
|
||||||
"heidi_config:/data/heidi_config:ro"
|
"heidi_config:/data/heidi_config:ro"
|
||||||
# "homeassistant_config:/data/homeassistant_config:ro" # ThinkNix
|
# "homeassistant_config:/data/homeassistant_config:ro" # ThinkNix
|
||||||
"homepage_config:/data/homepage_config:ro"
|
# "homepage_config:/data/homepage_config:ro"
|
||||||
"immich-database_data:/data/immich-database_data:ro"
|
"immich-database_data:/data/immich-database_data:ro"
|
||||||
"immich_config:/data/immich_config:ro"
|
"immich_config:/data/immich_config:ro"
|
||||||
"immich_data:/data/immich_data:ro"
|
"immich_data:/data/immich_data:ro"
|
||||||
"immich_machine-learning:/data/immich_machine-learning:ro"
|
"immich_machine-learning:/data/immich_machine-learning:ro"
|
||||||
"jellyfin_config:/data/jellyfin_config:ro"
|
"jellyfin_config:/data/jellyfin_config:ro"
|
||||||
# "jellyseerr_config:/data/jellyseerr_config:ro" # Disabled
|
|
||||||
# "jellystat-db_data:/data/jellystat-db_data:ro" # Disabled
|
|
||||||
# "jellystat_data:/data/jellystat_data:ro" # Disabled
|
|
||||||
"nextcloud-db_data:/data/nextcloud-db_data:ro"
|
"nextcloud-db_data:/data/nextcloud-db_data:ro"
|
||||||
"nextcloud_data:/data/nextcloud_data:ro"
|
"nextcloud_data:/data/nextcloud_data:ro"
|
||||||
"nginx_config:/data/nginx_config:ro"
|
"nginx_config:/data/nginx_config:ro"
|
||||||
@ -62,10 +49,6 @@
|
|||||||
"paperless-postgres_data:/data/paperless-postgres_data:ro"
|
"paperless-postgres_data:/data/paperless-postgres_data:ro"
|
||||||
"paperless_data:/data/paperless_data:ro"
|
"paperless_data:/data/paperless_data:ro"
|
||||||
# "portainer_config:/data/portainer_config:ro"
|
# "portainer_config:/data/portainer_config:ro"
|
||||||
# "prowlarr_config:/data/prowlarr_config:ro" # Disabled
|
|
||||||
# "radarr_config:/data/radarr_config:ro" # Disabled
|
|
||||||
# "sabnzbd_config:/data/sabnzbd_config:ro" # Disabled
|
|
||||||
# "sonarr_config:/data/sonarr_config:ro" # Disabled
|
|
||||||
# "uptime-kuma_config:/data/uptime-kuma_config:ro" # Disabled
|
# "uptime-kuma_config:/data/uptime-kuma_config:ro" # Disabled
|
||||||
# "wireguard_vps_config:/data/wireguard_vps_config:ro"
|
# "wireguard_vps_config:/data/wireguard_vps_config:ro"
|
||||||
];
|
];
|
||||||
|
|||||||
@ -102,28 +102,25 @@
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
virtualisation.oci-containers.containers.nextcloud-cronjob = {
|
systemd.services.nextcloud-cron = {
|
||||||
image = "rcdailey/nextcloud-cronjob";
|
enable = true;
|
||||||
autoStart = true;
|
description = "Nextcloud Cron Job";
|
||||||
|
|
||||||
dependsOn = [
|
serviceConfig = {
|
||||||
"nextcloud"
|
ExecStart = "${pkgs.docker}/bin/docker exec -u www-data nextcloud /usr/local/bin/php -f /var/www/html/cron.php";
|
||||||
];
|
};
|
||||||
|
};
|
||||||
|
|
||||||
ports = [];
|
systemd.timers.nextcloud-cron = {
|
||||||
|
enable = true;
|
||||||
|
description = "Nextcloud Cron Job";
|
||||||
|
|
||||||
volumes = [
|
timerConfig = {
|
||||||
"/etc/localtime:/etc/localtime:ro"
|
OnBootSec = "5min";
|
||||||
"/var/run/docker.sock:/var/run/docker.sock:ro"
|
OnUnitActiveSec = "5min";
|
||||||
];
|
Unit = "nextcloud-cron.service";
|
||||||
|
|
||||||
environment = {
|
|
||||||
NEXTCLOUD_CONTAINER_NAME = "nextcloud";
|
|
||||||
NEXTCLOUD_CRON_MINUTE_INTERVAL = "15";
|
|
||||||
};
|
};
|
||||||
|
|
||||||
extraOptions = [
|
wantedBy = ["timers.target"];
|
||||||
"--net=behind-nginx"
|
|
||||||
];
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,33 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
virtualisation.oci-containers.containers.prowlarr = {
|
|
||||||
image = "linuxserver/prowlarr:latest";
|
|
||||||
autoStart = true;
|
|
||||||
|
|
||||||
dependsOn = [
|
|
||||||
# "pihole"
|
|
||||||
];
|
|
||||||
|
|
||||||
ports = [
|
|
||||||
# "9696:9696"
|
|
||||||
];
|
|
||||||
|
|
||||||
volumes = [
|
|
||||||
"prowlarr_config:/config"
|
|
||||||
];
|
|
||||||
|
|
||||||
environment = {
|
|
||||||
PUID = "1000";
|
|
||||||
PGID = "1000";
|
|
||||||
TZ = "Europe/Berlin";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraOptions = [
|
|
||||||
"--net=behind-nginx"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,38 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
virtualisation.oci-containers.containers.radarr = {
|
|
||||||
image = "linuxserver/radarr:latest";
|
|
||||||
autoStart = true;
|
|
||||||
|
|
||||||
dependsOn = [
|
|
||||||
# "pihole"
|
|
||||||
# "sabnzbd"
|
|
||||||
# "prowlarr"
|
|
||||||
];
|
|
||||||
|
|
||||||
ports = [
|
|
||||||
# "7878:7878"
|
|
||||||
];
|
|
||||||
|
|
||||||
volumes = [
|
|
||||||
"/media/TV-Usenet:/downloads"
|
|
||||||
"/media/Movie:/movies"
|
|
||||||
|
|
||||||
"radarr_config:/config"
|
|
||||||
];
|
|
||||||
|
|
||||||
environment = {
|
|
||||||
PUID = "3000";
|
|
||||||
PGID = "3000";
|
|
||||||
TZ = "Europe/Berlin";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraOptions = [
|
|
||||||
"--net=behind-nginx"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,35 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
virtualisation.oci-containers.containers.sabnzbd = {
|
|
||||||
image = "linuxserver/sabnzbd:latest";
|
|
||||||
autoStart = true;
|
|
||||||
|
|
||||||
dependsOn = [
|
|
||||||
# "pihole"
|
|
||||||
];
|
|
||||||
|
|
||||||
ports = [
|
|
||||||
# "8080:8080"
|
|
||||||
];
|
|
||||||
|
|
||||||
volumes = [
|
|
||||||
"/media/TV-Usenet:/downloads"
|
|
||||||
|
|
||||||
"sabnzbd_config:/config"
|
|
||||||
];
|
|
||||||
|
|
||||||
environment = {
|
|
||||||
PUID = "3000";
|
|
||||||
PGID = "3000";
|
|
||||||
TZ = "Europe/Berlin";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraOptions = [
|
|
||||||
"--net=behind-nginx"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -1,38 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}: {
|
|
||||||
virtualisation.oci-containers.containers.sonarr = {
|
|
||||||
image = "linuxserver/sonarr:latest";
|
|
||||||
autoStart = true;
|
|
||||||
|
|
||||||
dependsOn = [
|
|
||||||
# "pihole"
|
|
||||||
# "sabnzbd"
|
|
||||||
# "prowlarr"
|
|
||||||
];
|
|
||||||
|
|
||||||
ports = [
|
|
||||||
# "8989:8989"
|
|
||||||
];
|
|
||||||
|
|
||||||
volumes = [
|
|
||||||
"/media/TV-Usenet:/downloads"
|
|
||||||
"/media/Show:/tv"
|
|
||||||
|
|
||||||
"sonarr_config:/config"
|
|
||||||
];
|
|
||||||
|
|
||||||
environment = {
|
|
||||||
PUID = "3000";
|
|
||||||
PGID = "3000";
|
|
||||||
TZ = "Europe/Berlin";
|
|
||||||
};
|
|
||||||
|
|
||||||
extraOptions = [
|
|
||||||
"--net=behind-nginx"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
@ -5,7 +5,7 @@
|
|||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
virtualisation.oci-containers.containers.whats-up-docker = {
|
virtualisation.oci-containers.containers.whats-up-docker = {
|
||||||
image = "fmartinou/whats-up-docker:latest";
|
image = "getwud/wud:latest";
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
|
|
||||||
dependsOn = [
|
dependsOn = [
|
||||||
|
|||||||
@ -17,6 +17,7 @@
|
|||||||
|
|
||||||
# General
|
# General
|
||||||
# ./services/kopia.nix
|
# ./services/kopia.nix
|
||||||
|
# ./services/homepage.nix
|
||||||
./services/nginx-proxy-manager.nix
|
./services/nginx-proxy-manager.nix
|
||||||
./services/portainer.nix
|
./services/portainer.nix
|
||||||
./services/whats-up-docker.nix
|
./services/whats-up-docker.nix
|
||||||
@ -65,13 +66,29 @@
|
|||||||
# Enable networking
|
# Enable networking
|
||||||
networkmanager.enable = true;
|
networkmanager.enable = true;
|
||||||
|
|
||||||
interfaces.ens18.ipv4.addresses = [{
|
interfaces.ens18 = {
|
||||||
address = "192.168.86.26";
|
ipv4.addresses = [
|
||||||
prefixLength = 24;
|
{
|
||||||
}];
|
address = "192.168.86.26";
|
||||||
|
prefixLength = 24;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
|
||||||
|
ipv6.addresses = [
|
||||||
|
{
|
||||||
|
address = "fd00::1a"; # 26 in hex
|
||||||
|
prefixLength = 120;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
defaultGateway = "192.168.86.5";
|
defaultGateway = "192.168.86.5";
|
||||||
|
defaultGateway6 = "fd00::5";
|
||||||
|
|
||||||
nameservers = [
|
nameservers = [
|
||||||
"127.0.0.1"
|
"127.0.0.1"
|
||||||
|
"::1"
|
||||||
|
|
||||||
# "192.168.86.25"
|
# "192.168.86.25"
|
||||||
# "8.8.8.8"
|
# "8.8.8.8"
|
||||||
];
|
];
|
||||||
@ -95,6 +112,7 @@
|
|||||||
# - Disabling this prevents containers from having internet connection. DNS issue?
|
# - Disabling this prevents containers from having internet connection. DNS issue?
|
||||||
# ${dockercli} network create -o "com.docker.network.bridge.enable_ip_masquerade"="false" ${network}
|
# ${dockercli} network create -o "com.docker.network.bridge.enable_ip_masquerade"="false" ${network}
|
||||||
|
|
||||||
|
# ${dockercli} network create --ipv6 --gateway="2000::1" --subnet="2000::/80" ${network}
|
||||||
${dockercli} network create ${network}
|
${dockercli} network create ${network}
|
||||||
else
|
else
|
||||||
echo "${network} already exists in docker"
|
echo "${network} already exists in docker"
|
||||||
@ -196,10 +214,14 @@
|
|||||||
# setSocketVariable = true;
|
# setSocketVariable = true;
|
||||||
# };
|
# };
|
||||||
daemon.settings = {
|
daemon.settings = {
|
||||||
|
# ipv6 = true;
|
||||||
|
# fixed-cidr-v6 = "2001::/80";
|
||||||
|
|
||||||
dns = [
|
dns = [
|
||||||
# TODO: Does this circumvent my DNS for each container?
|
# TODO: Does this circumvent my DNS for each container?
|
||||||
# It might improve gitea actions though...
|
# It might improve gitea actions though...
|
||||||
"8.8.8.8"
|
"8.8.8.8"
|
||||||
|
# "2001:4860:4860::8888"
|
||||||
|
|
||||||
# TODO: Might prevent containers from having DNS?
|
# TODO: Might prevent containers from having DNS?
|
||||||
# "127.0.0.1"
|
# "127.0.0.1"
|
||||||
|
|||||||
@ -26,6 +26,7 @@
|
|||||||
|
|
||||||
extraOptions = [
|
extraOptions = [
|
||||||
"--net=behind-nginx"
|
"--net=behind-nginx"
|
||||||
|
# "--privileged"
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@ -5,7 +5,7 @@
|
|||||||
...
|
...
|
||||||
}: {
|
}: {
|
||||||
virtualisation.oci-containers.containers.whats-up-docker = {
|
virtualisation.oci-containers.containers.whats-up-docker = {
|
||||||
image = "fmartinou/whats-up-docker:latest";
|
image = "getwud/wud:latest";
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
|
|
||||||
dependsOn = [
|
dependsOn = [
|
||||||
|
|||||||
Reference in New Issue
Block a user