merge in poseidon configs temporarily

This commit is contained in:
NyxErinys 2026-05-19 20:02:39 -05:00
parent ca8d2c7262
commit 26842b27a6
13 changed files with 685 additions and 0 deletions

View file

@ -0,0 +1,38 @@
{config, pkgs, lib, ...}:
let
jellyfin = import ./jellyfin.nix;
torrents = import ./torrents.nix;
misc = import ./misc.nix;
synapse = import ./synapse.nix;
important = import ./important.nix;
games = import ./games.nix;
cont_list = lib.foldr lib.recursiveUpdate {} [
jellyfin
# torrents
# misc
# synapse
important
#games
];
in
{
# Setup docker containers
virtualisation.oci-containers = {
backend = "docker";
containers = cont_list;
};
systemd.services."docker-network-forgejo" = {
serviceConfig.Type = "oneshot";
wantedBy = [
"docker-forgejo.service"
"docker-forgejo-db.service"
];
before = [
"docker-forgejo.service"
"docker-forgejo-db.service"
];
script = ''
${pkgs.docker}/bin/docker network inspect forgejo > /dev/null 2>&1 || ${pkgs.docker}/bin/docker network create forgejo
'';
};
}

View file

@ -0,0 +1,24 @@
{
crafty = {
image = "registry.gitlab.com/crafty-controller/crafty-4:latest";
environment = {
TZ = "America/Chicago";
};
ports = [
"8000:8000"
"8443:8443"
"19132:19132"
"25500-25600:25500-25600"
];
extraOptions = [
"--user" "1000:1000"
];
volumes = [
"/Velaris/Storage/Backups/Crafty/Arch-Crafty:/crafty/backups"
"/Velaris/Crafty/Servers:/crafty/servers"
"/Velaris/Docker/crafty/logs:/crafty/logs"
"/Velaris/Docker/crafty/config:/crafty/app/config"
"/Velaris/Docker/crafty/import:/crafty/import"
];
};
}

View file

@ -0,0 +1,135 @@
{
"vaultwarden" = {
image = "vaultwarden/server:latest";
ports = [
"83:80"
];
volumes = [
"/Velaris/Docker/vaultwarden/data:/data"
];
networks = [
"forgejo"
];
};
"forgejo" = {
image = "codeberg.org/forgejo/forgejo:11";
ports = [
"3000:3000"
"222:22"
];
environment = {
USER_UID = "1000";
USER_GID = "1000";
TZ = "America/Chicago";
FORGEJO__database__DB_TYPE = "postgres";
FORGEJO__database__HOST = "forgejodb:5432";
FORGEJO__database__NAME = "forgejo";
FORGEJO__database__USER = "forgejo";
FORGEJO__database__PASSWD = "forgejo";
};
volumes = [
"/Velaris/Docker/forgejo/forgejo:/data"
"/etc/timezone:/etc/timezone:ro"
"/etc/localtime:/etc/localtime:ro"
];
dependsOn = [
"forgejo-db"
];
networks = [
"forgejo"
];
};
"forgejo-db" = {
image = "postgres:14";
hostname = "forgejodb";
environment = {
POSTGRES_USER = "forgejo";
POSTGRES_PASSWORD = "forgejo";
POSTGRES_DB = "forgejo";
};
volumes = [
"/Velaris/Docker/forgejo/postgres:/var/lib/postgresql/data"
];
networks = [
"forgejo"
];
};
# "homeassistant" = {
# image = "ghcr.io/home-assistant/home-assistant:stable";
# # extraOptions = [
# # "--network=host"
# # ];
# ports = [
# "8123:8123"
# "21060-21069:21060-21069"
# "5353:5353/udp"
# ];
# volumes = [
# "/Velaris/Docker/homeassistant/config:/config"
# "/etc/localtime:/etc/localtime:ro"
# ];
# privileged = true;
# };
# "mqtt" = {
# image = "eclipse-mosquitto";
# ports = [
# "1883:1883"
# ];
# volumes = [
# "/Velaris/Docker/mqtt/mosquitto/config:/mosquitto/config"
# "/Velaris/Docker/mqtt/mosquitto/data:/mosquitto/data"
# "/Velaris/Docker/mqtt/mosquitto/log:/mosquitto/log"
# ];
# };
# "zwavejs2mqtt" = {
# image = "zwavejs/zwave-js-ui:latest";
# extraOptions = [
# "-t"
# "--stop-signal=SIGINT"
# ];
# ports = [
# "8091:8091"
# "3001:3000"
# ];
# environment = {
# ZWAVEJS_EXTERNAL_CONFIG = "/usr/src/app/store/.config-db";
# TZ = "America/Chicago";
# };
# devices = [
# "/dev/serial/by-id/usb-Silicon_Labs_HubZ_Smart_Home_Controller_90F0010D-if00-port0:/dev/zwave"
# ];
# volumes = [
# "/Velaris/Docker/zwave/config:/usr/src/app/store"
# ];
# };
# "pihole" = {
# image = "pihole/pihole:latest";
# environment = {
# TZ = "America/Chicago";
# };
# ports = [
# "10.5.0.2:53:53/tcp"
# "10.5.0.2:53:53/udp"
# "82:80/tcp"
# ];
# volumes = [
# "/Velaris/Docker/pihole/etc-pihole:/etc/pihole"
# "/Velaris/Docker/pihole/etc-dnsmasq.d:/etc/dnsmasq.d"
# ];
# };
"nginx-proxy-manager" = {
image = "jc21/nginx-proxy-manager:latest";
ports = [
"80:80"
"81:81"
"443:443"
];
volumes = [
"/Velaris/Docker/nginx-proxy/data:/data"
"/Velaris/Docker/nginx-proxy/letsencrypt:/etc/letsencrypt"
];
networks = [
"forgejo"
];
};
}

View file

@ -0,0 +1,50 @@
{
"plex" = {
image = "lscr.io/linuxserver/plex:latest";
ports = [
"32400:32400/tcp"
#"1901:1900/udp"
];
environment = {
PUID = "1000";
PGID = "1000";
VERSION = "docker";
NVIDIA_DRIVER_CAPABILITIES = "all";
NVIDIA_VISIBLE_DEVICES = "all";
};
# extraOptions = [ "--device" "nvidia.com/gpu=all" ];
# privileged = true;
# devices = [
# "/dev/dri:/dev/dri"
# ];
volumes = [
"/Velaris/Docker/plex-conf:/config"
"/Velaris/Media:/mnt/Media"
];
};
"jellyfin" = {
image = "lscr.io/linuxserver/jellyfin:latest";
ports = [
"8096:8096"
"8920:8920" #optional
"7359:7359/udp" #optional
#"1900:1900/udp" #optional
];
environment = {
PUID = "1000";
PGID = "1000";
TZ = "America/Chicago";
JELLYFIN_PublishedServerUrl = "https://jelly.nyxerinys.dev";
NVIDIA_DRIVER_CAPABILITIES = "all";
};
# extraOptions = [ "--device" "nvidia.com/gpu=all" ];
# devices = [
# "/dev/dri:/dev/dri"
# ];
volumes = [
"/Velaris/Docker/jellyfin-conf:/config"
"/Velaris/Media:/data"
];
};
}

View file

@ -0,0 +1,25 @@
{
"open-webui" = {
image = "ghcr.io/open-webui/open-webui:main";
ports = [
"3002:8080/tcp"
];
volumes = [
"/Velaris/Docker/ai/open-webui-conf:/app/backend/data"
];
};
"ollama" = {
image = "ollama/ollama";
ports = [
"11434:11434/tcp"
];
environment = {
NVIDIA_DRIVER_CAPABILITIES = "all";
NVIDIA_VISIBLE_DEVICES = "all";
};
extraOptions = [ "--device" "nvidia.com/gpu=all" ];
volumes = [
"/Velaris/Docker/ai/ollama-conf:/root/.ollama"
];
};
}

View file

@ -0,0 +1,67 @@
let
wg = "synapse-wireguard";
in {
${wg} = {
image = "lscr.io/linuxserver/wireguard:latest";
capabilities = {
NET_ADMIN = true;
SYS_MODULE = true;
};
ports = [
"5432:5432"
];
environment = {
PUID = "1000";
PGID = "1000";
TZ = "America/Chicago";
LOG_CONFS = "true";
};
extraOptions = [
"--sysctl" "net.ipv4.conf.all.src_valid_mark=1"
];
volumes = [
"/Velaris/Docker/synapse/wg-config:/config"
"/lib/modules:/lib/modules"
];
};
"synapse" = {
image = "ghcr.io/element-hq/synapse:latest";
environment = {
SYNAPSE_SERVER_NAME = "nyxerinys.dev";
SYNAPSE_REPORT_STATS = "no";
SYNAPSE_CONFIG_DIR = "/data";
SYNAPSE_CONFIG_PATH = "/data/homeserver.yaml";
UID = "1000";
GID = "1000";
TZ = "America/Chicago";
};
extraOptions = [
"--network" "container:${wg}"
];
volumes = [
"/Velaris/Docker/synapse/syn:/data"
"/Velaris/Synapse/media:/data/media_store"
];
dependsOn = [
wg
"synapse-db"
];
};
"synapse-db" = {
image = "postgres:16";
environment = {
POSTGRES_INITDB_ARGS = "'--encoding=UTF8', '--locale=C'";
};
extraOptions = [
"--network" "container:${wg}"
"--user" "1000:1000"
];
volumes = [
"/Velaris/Synapse/post:/var/lib/postgresql/data"
];
dependsOn = [
wg
];
};
}

View file

@ -0,0 +1,158 @@
let
wg = "torrent-wireguard";
in {
${wg} = {
image = "lscr.io/linuxserver/wireguard:latest";
capabilities = {
NET_ADMIN = true;
SYS_MODULE = true;
};
ports = [
"5000:5000"
"8080:8080"
"9696:9696"
"7878:7878"
"7979:8989"
"8787:8787" #optional
];
environment = {
PUID = "1000";
PGID = "1000";
TZ = "America/Chicago";
LOG_CONFS = "true";
};
extraOptions = [
"--sysctl" "net.ipv4.conf.all.src_valid_mark=1"
];
volumes = [
"/Velaris/Docker/torrents/wg:/config"
"/lib/modules:/lib/modules"
];
};
"qbittorrent" = {
image = "lscr.io/linuxserver/qbittorrent:latest";
environment = {
PUID = "1000";
PGID = "1000";
TZ = "America/Chicago";
WEBUI_PORT = "8080";
};
extraOptions = [
"--network" "container:${wg}"
];
volumes = [
"/Velaris/Docker/torrents/qbit/config:/config"
"/Velaris/Media/Downloads:/downloads"
];
dependsOn = [
wg
];
};
"prowlarr" = {
image = "lscr.io/linuxserver/prowlarr:latest";
environment = {
PUID = "1000";
PGID = "1000";
TZ = "America/Chicago";
};
extraOptions = [
"--network" "container:${wg}"
];
volumes = [
"/Velaris/Docker/torrents/prowlarr/config:/config"
];
dependsOn = [
wg
];
};
"radarr" = {
image = "lscr.io/linuxserver/radarr:latest";
environment = {
PUID = "1000";
PGID = "1000";
TZ = "America/Chicago";
};
extraOptions = [
"--network" "container:${wg}"
];
volumes = [
"/Velaris/Docker/torrents/radarr/config:/config"
"/Velaris/Media/Movies:/movies"
"/Velaris/Media/Downloads:/downloads"
];
dependsOn = [
wg
];
};
"sonarr" = {
image = "lscr.io/linuxserver/sonarr:latest";
environment = {
PUID = "1000";
PGID = "1000";
TZ = "America/Chicago";
};
extraOptions = [
"--network" "container:${wg}"
];
volumes = [
"/Velaris/Docker/torrents/sonarr/config:/config"
"/Velaris/Media/TV:/tv"
"/Velaris/Media/Downloads:/downloads"
];
dependsOn = [
wg
];
};
"readarr" = {
image = "lscr.io/linuxserver/readarr:0.4.19-nightly";
environment = {
PUID = "1000";
PGID = "1000";
TZ = "America/Chicago";
};
extraOptions = [
"--network" "container:${wg}"
];
volumes = [
"/Velaris/Docker/torrents/readarr/config:/config"
"/Velaris/Media/Books:/books"
"/Velaris/Media/Downloads:/downloads"
];
dependsOn = [
wg
];
};
"flaresolverr" = {
image = "ghcr.io/flaresolverr/flaresolverr:latest";
environment = {
LOG_LEVEL = "debug";
TZ = "America/Chicago";
};
extraOptions = [
"--network" "container:${wg}"
];
dependsOn = [
wg
];
};
"anonupdater" = {
image = "ubuntu:latest";
environment = {
PUID = "1000";
PGID = "1000";
TZ = "America/Chicago";
};
cmd = [ "bash" "-c" "/anon/entrypoint.sh; tail -f /dev/null" ];
extraOptions = [
"--network" "container:${wg}"
];
volumes = [
"/Velaris/Docker/torrents/anon:/anon"
"/Velaris/Media/Downloads:/downloads"
];
dependsOn = [
wg
];
};
}