refactor containers
This commit is contained in:
parent
1d23c89f58
commit
2a15f00fa1
|
@ -2,9 +2,17 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./dashboard.nix
|
./adguardhome.nix
|
||||||
./multimedia.nix
|
./homarr.nix
|
||||||
|
./jellyfin.nix
|
||||||
|
./jellyseerr.nix
|
||||||
|
./minecraft.nix
|
||||||
|
./lidarr.nix
|
||||||
|
./prowlarr.nix
|
||||||
|
./qbittorrent.nix
|
||||||
|
./radarr.nix
|
||||||
|
./recyclarr.nix
|
||||||
|
./sonarr.nix
|
||||||
];
|
];
|
||||||
|
|
||||||
virtualisation.oci-containers.backend = "docker";
|
virtualisation.oci-containers.backend = "docker";
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
{
|
{
|
||||||
virtualisation.oci-containers.containers = {
|
virtualisation.oci-containers.containers = {
|
||||||
dashboard = {
|
homarr = {
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
image = "ghcr.io/ajnart/homarr:latest";
|
image = "ghcr.io/ajnart/homarr:latest";
|
||||||
ports = [
|
ports = [
|
||||||
|
@ -10,9 +10,9 @@
|
||||||
];
|
];
|
||||||
volumes = [
|
volumes = [
|
||||||
# Container data
|
# Container data
|
||||||
"/var/lib/homarr/configs:/app/data/configs:rw"
|
"/srv/containers/homarr/configs:/app/data/configs:rw"
|
||||||
"/var/lib/homarr/icons:/app/public/icons:rw"
|
"/srv/containers/homarr/icons:/app/public/icons:rw"
|
||||||
"/var/lib/homarr/data:/data:rw"
|
"/srv/containers/homarr/data:/data:rw"
|
||||||
# Docker Integration
|
# Docker Integration
|
||||||
"/var/run/docker.sock:/var/run/docker.sock:ro"
|
"/var/run/docker.sock:/var/run/docker.sock:ro"
|
||||||
];
|
];
|
||||||
|
@ -21,12 +21,4 @@
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
environment.persistence."/persist" = {
|
|
||||||
directories = [
|
|
||||||
"/var/lib/homarr/configs"
|
|
||||||
"/var/lib/homarr/icons"
|
|
||||||
"/var/lib/homarr/data"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
}
|
29
nixos/viridian/containers/jellyfin.nix
Normal file
29
nixos/viridian/containers/jellyfin.nix
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
virtualisation.oci-containers.containers = {
|
||||||
|
# Volunteer-built media solution that puts you in control of your media
|
||||||
|
jellyfin = {
|
||||||
|
autoStart = true;
|
||||||
|
image = "jellyfin/jellyfin:10.8.12";
|
||||||
|
ports = [
|
||||||
|
"8096:8096/tcp" # HTTP traffic
|
||||||
|
"8920:8920/tcp" # HTTPS traffic
|
||||||
|
# "1900:1900/udp" # Service auto-discovery
|
||||||
|
"7359:7359/udp" # Client auto-discovery
|
||||||
|
];
|
||||||
|
volumes = [
|
||||||
|
# Media library
|
||||||
|
"/srv/multimedia/library:/media:ro"
|
||||||
|
# Container data
|
||||||
|
"/srv/containers/jellyfin/config:/config:rw"
|
||||||
|
"/srv/containers/jellyfin/cache:/cache:rw"
|
||||||
|
];
|
||||||
|
extraOptions = [
|
||||||
|
"--group-add=303"
|
||||||
|
"--device=/dev/dri/renderD128:/dev/dri/renderD128"
|
||||||
|
"--network=media-stack"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
20
nixos/viridian/containers/jellyseerr.nix
Normal file
20
nixos/viridian/containers/jellyseerr.nix
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
virtualisation.oci-containers.containers = {
|
||||||
|
# Request management
|
||||||
|
jellyseerr = {
|
||||||
|
autoStart = true;
|
||||||
|
image = "ghcr.io/hotio/jellyseerr";
|
||||||
|
ports = [
|
||||||
|
"5055:5055/tcp" # WebUI
|
||||||
|
];
|
||||||
|
volumes = [
|
||||||
|
"/srv/containers/jellyseerr:/config"
|
||||||
|
];
|
||||||
|
extraOptions = [
|
||||||
|
"--network=media-stack"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
23
nixos/viridian/containers/lidarr.nix
Normal file
23
nixos/viridian/containers/lidarr.nix
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
virtualisation.oci-containers.containers = {
|
||||||
|
# # Music collection manager for Usenet and BitTorrent users
|
||||||
|
lidarr = {
|
||||||
|
autoStart = true;
|
||||||
|
image = "ghcr.io/hotio/lidarr:nightly-2.0.2.3782";
|
||||||
|
ports = [
|
||||||
|
"8686:8686/tcp" # WebUI
|
||||||
|
];
|
||||||
|
volumes = [
|
||||||
|
# Media library
|
||||||
|
"/srv/multimedia:/data:rw"
|
||||||
|
# Container data
|
||||||
|
"/srv/containers/lidarr:/config:rw"
|
||||||
|
];
|
||||||
|
extraOptions = [
|
||||||
|
"--network=media-stack"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,159 +0,0 @@
|
||||||
{ ... }:
|
|
||||||
|
|
||||||
{
|
|
||||||
virtualisation.oci-containers.containers = {
|
|
||||||
# Volunteer-built media solution that puts you in control of your media
|
|
||||||
jellyfin = {
|
|
||||||
autoStart = true;
|
|
||||||
image = "jellyfin/jellyfin:10.8.12";
|
|
||||||
ports = [
|
|
||||||
"8096:8096/tcp" # HTTP traffic
|
|
||||||
"8920:8920/tcp" # HTTPS traffic
|
|
||||||
# "1900:1900/udp" # Service auto-discovery
|
|
||||||
"7359:7359/udp" # Client auto-discovery
|
|
||||||
];
|
|
||||||
volumes = [
|
|
||||||
# Media library
|
|
||||||
"/mnt/data/htpc/media:/media:ro"
|
|
||||||
# Container data
|
|
||||||
"/var/lib/jellyfin/config:/config:rw"
|
|
||||||
"/var/lib/jellyfin/cache:/cache:rw"
|
|
||||||
];
|
|
||||||
extraOptions = [
|
|
||||||
"--group-add=303"
|
|
||||||
"--device=/dev/dri/renderD128:/dev/dri/renderD128"
|
|
||||||
"--network=media-stack"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# PVR for Usenet and BitTorrent users
|
|
||||||
sonarr = {
|
|
||||||
autoStart = true;
|
|
||||||
image = "ghcr.io/hotio/sonarr:nightly-4.0.0.710";
|
|
||||||
ports = [
|
|
||||||
"8989:8989/tcp" # WebUI
|
|
||||||
];
|
|
||||||
volumes = [
|
|
||||||
# Media library
|
|
||||||
"/mnt/data/htpc:/data:rw"
|
|
||||||
# Container data
|
|
||||||
"/var/lib/sonarr:/config:rw"
|
|
||||||
];
|
|
||||||
extraOptions = [
|
|
||||||
"--network=media-stack"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Movie collection manager for Usenet and BitTorrent users
|
|
||||||
radarr = {
|
|
||||||
autoStart = true;
|
|
||||||
image = "ghcr.io/hotio/radarr:nightly-5.1.3.8237";
|
|
||||||
ports = [
|
|
||||||
"7878:7878/tcp" # WebUI
|
|
||||||
];
|
|
||||||
volumes = [
|
|
||||||
# Media library
|
|
||||||
"/mnt/data/htpc:/data:rw"
|
|
||||||
# Container data
|
|
||||||
"/var/lib/radarr:/config:rw"
|
|
||||||
];
|
|
||||||
extraOptions = [
|
|
||||||
"--network=media-stack"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# # Music collection manager for Usenet and BitTorrent users
|
|
||||||
lidarr = {
|
|
||||||
autoStart = true;
|
|
||||||
image = "ghcr.io/hotio/lidarr:nightly-2.0.2.3782";
|
|
||||||
ports = [
|
|
||||||
"8686:8686/tcp" # WebUI
|
|
||||||
];
|
|
||||||
volumes = [
|
|
||||||
# Media library
|
|
||||||
"/mnt/data/htpc:/data:rw"
|
|
||||||
# Container data
|
|
||||||
"/var/lib/lidarr:/config:rw"
|
|
||||||
];
|
|
||||||
extraOptions = [
|
|
||||||
"--network=media-stack"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Indexer manager/proxy built on the popular arr .net/reactjs base stack to integrate with your various PVR apps.
|
|
||||||
prowlarr = {
|
|
||||||
autoStart = true;
|
|
||||||
image = "ghcr.io/hotio/prowlarr:nightly-1.10.3.4070";
|
|
||||||
ports = [
|
|
||||||
"9696:9696/tcp" # WebUI
|
|
||||||
];
|
|
||||||
volumes = [
|
|
||||||
# Container data
|
|
||||||
"/var/lib/prowlarr:/config:rw"
|
|
||||||
];
|
|
||||||
extraOptions = [
|
|
||||||
"--network=media-stack"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Automatically synchronize recommended settings from the TRaSH guides to your Sonarr/Radarr instances
|
|
||||||
recyclarr = {
|
|
||||||
autoStart = true;
|
|
||||||
image = "ghcr.io/hotio/recyclarr:6.0";
|
|
||||||
volumes = [
|
|
||||||
"/var/lib/recyclarr:/config"
|
|
||||||
];
|
|
||||||
extraOptions = [
|
|
||||||
"--network=media-stack"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# # Open-source software alternative to µTorrent
|
|
||||||
qbittorrent = {
|
|
||||||
autoStart = true;
|
|
||||||
image = "ghcr.io/hotio/qbittorrent:release-4.6.0";
|
|
||||||
ports = [
|
|
||||||
"8080:8080/tcp" # WebUI
|
|
||||||
"32372:32372/tcp" # Transport protocol
|
|
||||||
];
|
|
||||||
volumes = [
|
|
||||||
# Seedbox
|
|
||||||
"/mnt/data/htpc/torrents:/data/torrents:rw"
|
|
||||||
"/var/lib/qbittorrent:/config:rw"
|
|
||||||
];
|
|
||||||
extraOptions = [
|
|
||||||
"--network=media-stack"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
|
|
||||||
# Request management
|
|
||||||
jellyseerr = {
|
|
||||||
autoStart = true;
|
|
||||||
image = "ghcr.io/hotio/jellyseerr";
|
|
||||||
ports = [
|
|
||||||
"5055:5055/tcp" # WebUI
|
|
||||||
];
|
|
||||||
volumes = [
|
|
||||||
"/var/lib/jellyseerr:/config"
|
|
||||||
];
|
|
||||||
extraOptions = [
|
|
||||||
"--network=media-stack"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
environment.persistence."/persist" = {
|
|
||||||
directories = [
|
|
||||||
"/var/lib/jellyfin/config"
|
|
||||||
"/var/lib/jellyfin/cache"
|
|
||||||
"/var/lib/sonarr"
|
|
||||||
"/var/lib/radarr"
|
|
||||||
"/var/lib/lidarr"
|
|
||||||
"/var/lib/prowlarr"
|
|
||||||
"/var/lib/recyclarr"
|
|
||||||
"/var/lib/qbittorrent"
|
|
||||||
"/var/lib/jellyseerr"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
21
nixos/viridian/containers/prowlarr.nix
Normal file
21
nixos/viridian/containers/prowlarr.nix
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
virtualisation.oci-containers.containers = {
|
||||||
|
# Indexer manager/proxy built on the popular arr .net/reactjs base stack to integrate with your various PVR apps.
|
||||||
|
prowlarr = {
|
||||||
|
autoStart = true;
|
||||||
|
image = "ghcr.io/hotio/prowlarr:nightly-1.10.3.4070";
|
||||||
|
ports = [
|
||||||
|
"9696:9696/tcp" # WebUI
|
||||||
|
];
|
||||||
|
volumes = [
|
||||||
|
# Container data
|
||||||
|
"/srv/containers/prowlarr:/config:rw"
|
||||||
|
];
|
||||||
|
extraOptions = [
|
||||||
|
"--network=media-stack"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
23
nixos/viridian/containers/qbittorrent.nix
Normal file
23
nixos/viridian/containers/qbittorrent.nix
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
virtualisation.oci-containers.containers = {
|
||||||
|
# # Open-source software alternative to µTorrent
|
||||||
|
qbittorrent = {
|
||||||
|
autoStart = true;
|
||||||
|
image = "ghcr.io/hotio/qbittorrent:release-4.6.0";
|
||||||
|
ports = [
|
||||||
|
"8080:8080/tcp" # WebUI
|
||||||
|
"32372:32372/tcp" # Transport protocol
|
||||||
|
];
|
||||||
|
volumes = [
|
||||||
|
# Seedbox
|
||||||
|
"/srv/multimedia/torrents:/data/torrents:rw"
|
||||||
|
"/srv/containers/qbittorrent:/config:rw"
|
||||||
|
];
|
||||||
|
extraOptions = [
|
||||||
|
"--network=media-stack"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
23
nixos/viridian/containers/radarr.nix
Normal file
23
nixos/viridian/containers/radarr.nix
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
virtualisation.oci-containers.containers = {
|
||||||
|
# Movie collection manager for Usenet and BitTorrent users
|
||||||
|
radarr = {
|
||||||
|
autoStart = true;
|
||||||
|
image = "ghcr.io/hotio/radarr:nightly-5.1.3.8237";
|
||||||
|
ports = [
|
||||||
|
"7878:7878/tcp" # WebUI
|
||||||
|
];
|
||||||
|
volumes = [
|
||||||
|
# Media library
|
||||||
|
"/srv/multimedia:/data:rw"
|
||||||
|
# Container data
|
||||||
|
"/srv/containers/radarr:/config:rw"
|
||||||
|
];
|
||||||
|
extraOptions = [
|
||||||
|
"--network=media-stack"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
17
nixos/viridian/containers/recyclarr.nix
Normal file
17
nixos/viridian/containers/recyclarr.nix
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
virtualisation.oci-containers.containers = {
|
||||||
|
# Automatically synchronize recommended settings from the TRaSH guides to your Sonarr/Radarr instances
|
||||||
|
recyclarr = {
|
||||||
|
autoStart = true;
|
||||||
|
image = "ghcr.io/hotio/recyclarr:6.0";
|
||||||
|
volumes = [
|
||||||
|
"/srv/containers/recyclarr:/config"
|
||||||
|
];
|
||||||
|
extraOptions = [
|
||||||
|
"--network=media-stack"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
24
nixos/viridian/containers/sonarr.nix
Normal file
24
nixos/viridian/containers/sonarr.nix
Normal file
|
@ -0,0 +1,24 @@
|
||||||
|
{ ... }:
|
||||||
|
|
||||||
|
{
|
||||||
|
virtualisation.oci-containers.containers = {
|
||||||
|
# PVR for Usenet and BitTorrent users
|
||||||
|
sonarr = {
|
||||||
|
autoStart = true;
|
||||||
|
image = "ghcr.io/hotio/sonarr:nightly-4.0.0.710";
|
||||||
|
ports = [
|
||||||
|
"8989:8989/tcp" # WebUI
|
||||||
|
];
|
||||||
|
volumes = [
|
||||||
|
# Media library
|
||||||
|
"/srv/multimedia:/data:rw"
|
||||||
|
# Container data
|
||||||
|
"/srv/containers/sonarr:/config:rw"
|
||||||
|
];
|
||||||
|
extraOptions = [
|
||||||
|
"--network=media-stack"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue