Full modular containers
This commit is contained in:
parent
9d37d9f070
commit
57eb8d23c6
11 changed files with 229 additions and 140 deletions
|
@ -25,10 +25,20 @@ in
|
||||||
ezModules.plymouth
|
ezModules.plymouth
|
||||||
ezModules.docker-calibre
|
ezModules.docker-calibre
|
||||||
ezModules.docker-calibre-web
|
ezModules.docker-calibre-web
|
||||||
|
ezModules.docker-dind
|
||||||
|
ezModules.docker-flaresolverr
|
||||||
|
ezModules.docker-forgejo
|
||||||
ezModules.docker-homeassistant
|
ezModules.docker-homeassistant
|
||||||
ezModules.docker-jellyfin
|
ezModules.docker-jellyfin
|
||||||
ezModules.docker-postgres
|
ezModules.docker-postgres
|
||||||
|
ezModules.docker-prowlarr
|
||||||
ezModules.docker-proxy
|
ezModules.docker-proxy
|
||||||
|
ezModules.docker-qbittorrent
|
||||||
|
ezModules.docker-radarr
|
||||||
|
ezModules.docker-readarr
|
||||||
|
ezModules.docker-runner
|
||||||
|
ezModules.docker-sonarr
|
||||||
|
ezModules.docker-static-web
|
||||||
ezModules.docker-swag
|
ezModules.docker-swag
|
||||||
ezModules.docker-zwave
|
ezModules.docker-zwave
|
||||||
];
|
];
|
||||||
|
@ -181,146 +191,7 @@ in
|
||||||
defaultNetwork.settings.dns_enabled = true;
|
defaultNetwork.settings.dns_enabled = true;
|
||||||
autoPrune.enable = true;
|
autoPrune.enable = true;
|
||||||
};
|
};
|
||||||
oci-containers.containers = {
|
oci-containers.containers = { };
|
||||||
flaresolverr = {
|
|
||||||
image = "ghcr.io/flaresolverr/flaresolverr:latest";
|
|
||||||
environment.LOG_LEVEL = "info";
|
|
||||||
extraOptions = [
|
|
||||||
"--pull=newer"
|
|
||||||
"--network=www"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
qbittorrent = {
|
|
||||||
image = "lscr.io/linuxserver/qbittorrent:latest";
|
|
||||||
volumes = [
|
|
||||||
"qbittorrent-config:/config"
|
|
||||||
"/video-data/torrent:/data/torrent"
|
|
||||||
];
|
|
||||||
environment = {
|
|
||||||
TZ = "America/New_York";
|
|
||||||
UMASK_SET = "000";
|
|
||||||
DELUGE_LOGLEVEL = "error";
|
|
||||||
};
|
|
||||||
labels.swag = "enable";
|
|
||||||
ports = [
|
|
||||||
"34996:34996"
|
|
||||||
"34996:34996/udp"
|
|
||||||
];
|
|
||||||
extraOptions = [
|
|
||||||
"--pull=newer"
|
|
||||||
"--network=www"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
prowlarr = {
|
|
||||||
image = "lscr.io/linuxserver/prowlarr:latest";
|
|
||||||
volumes = [ "prowlarr-config:/config" ];
|
|
||||||
environment.TZ = "America/New_York";
|
|
||||||
labels.swag = "enable";
|
|
||||||
extraOptions = [
|
|
||||||
"--pull=newer"
|
|
||||||
"--network=www"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
readarr = {
|
|
||||||
image = "lscr.io/linuxserver/readarr:develop";
|
|
||||||
volumes = [
|
|
||||||
"readarr-config:/config"
|
|
||||||
"/video-data:/data"
|
|
||||||
];
|
|
||||||
environment.TZ = "America/New_York";
|
|
||||||
labels.swag = "enable";
|
|
||||||
extraOptions = [
|
|
||||||
"--pull=newer"
|
|
||||||
"--network=www"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
radarr = {
|
|
||||||
image = "lscr.io/linuxserver/radarr:latest";
|
|
||||||
volumes = [
|
|
||||||
"radarr-config:/config"
|
|
||||||
"/video-data:/data"
|
|
||||||
];
|
|
||||||
environment.TZ = "America/New_York";
|
|
||||||
labels.swag = "enable";
|
|
||||||
extraOptions = [
|
|
||||||
"--pull=newer"
|
|
||||||
"--network=www"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
sonarr = {
|
|
||||||
image = "lscr.io/linuxserver/sonarr:latest";
|
|
||||||
volumes = [
|
|
||||||
"sonarr-config:/config"
|
|
||||||
"/video-data:/data"
|
|
||||||
];
|
|
||||||
environment.TZ = "America/New_York";
|
|
||||||
labels.swag = "enable";
|
|
||||||
extraOptions = [
|
|
||||||
"--pull=newer"
|
|
||||||
"--network=www"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
static = {
|
|
||||||
image = "docker.io/library/nginx:alpine";
|
|
||||||
volumes = [
|
|
||||||
"/srv/docker/nginx/static:/usr/share/nginx/html:ro"
|
|
||||||
"/srv/docker/nginx/config/static/default.conf:/etc/nginx/config.d/default.conf:ro"
|
|
||||||
];
|
|
||||||
labels = {
|
|
||||||
swag = "enable";
|
|
||||||
swag_url = "www.icanttype.org";
|
|
||||||
};
|
|
||||||
extraOptions = [
|
|
||||||
"--pull=newer"
|
|
||||||
"--network=www"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
forgejo = {
|
|
||||||
image = "codeberg.org/forgejo/forgejo:8";
|
|
||||||
volumes = [
|
|
||||||
"forgejo-data:/data"
|
|
||||||
"/etc/localtime:/etc/localtime:ro"
|
|
||||||
];
|
|
||||||
labels = {
|
|
||||||
swag = "enable";
|
|
||||||
swag_url = "git.icanttype.org";
|
|
||||||
swag_port = "3000";
|
|
||||||
};
|
|
||||||
ports = [ "10022:22" ];
|
|
||||||
extraOptions = [
|
|
||||||
"--pull=newer"
|
|
||||||
"--network=www"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
docker_dind = {
|
|
||||||
image = "docker.io/library/docker:dind";
|
|
||||||
cmd = [
|
|
||||||
"dockerd"
|
|
||||||
"-H"
|
|
||||||
"tcp://0.0.0.0:2375"
|
|
||||||
"--tls=false"
|
|
||||||
];
|
|
||||||
extraOptions = [
|
|
||||||
"--pull=newer"
|
|
||||||
"--privileged"
|
|
||||||
"--network=www"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
runner = {
|
|
||||||
image = "code.forgejo.org/forgejo/runner:3.4.1";
|
|
||||||
dependsOn = [ "docker_dind" ];
|
|
||||||
environment.DOCKER_HOST = "tcp://docker_dind:2375";
|
|
||||||
volumes = [ "forgejo-runner:/data" ];
|
|
||||||
cmd = [
|
|
||||||
"forgejo-runner"
|
|
||||||
"daemon"
|
|
||||||
];
|
|
||||||
extraOptions = [
|
|
||||||
"--pull=newer"
|
|
||||||
"--network=www"
|
|
||||||
];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
networking.firewall = {
|
networking.firewall = {
|
||||||
interfaces."podman+" = {
|
interfaces."podman+" = {
|
||||||
|
|
22
nixos-modules/docker-dind.nix
Normal file
22
nixos-modules/docker-dind.nix
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
virtualisation = {
|
||||||
|
containers.enable = true;
|
||||||
|
podman.enable = true;
|
||||||
|
oci-containers.containers = {
|
||||||
|
docker_dind = {
|
||||||
|
image = "docker.io/library/docker:dind";
|
||||||
|
cmd = [
|
||||||
|
"dockerd"
|
||||||
|
"-H"
|
||||||
|
"tcp://0.0.0.0:2375"
|
||||||
|
"--tls=false"
|
||||||
|
];
|
||||||
|
extraOptions = [
|
||||||
|
"--pull=newer"
|
||||||
|
"--privileged"
|
||||||
|
"--network=www"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
16
nixos-modules/docker-flaresolverr.nix
Normal file
16
nixos-modules/docker-flaresolverr.nix
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
virtualisation = {
|
||||||
|
containers.enable = true;
|
||||||
|
podman.enable = true;
|
||||||
|
oci-containers.containers = {
|
||||||
|
flaresolverr = {
|
||||||
|
image = "ghcr.io/flaresolverr/flaresolverr:latest";
|
||||||
|
environment.LOG_LEVEL = "info";
|
||||||
|
extraOptions = [
|
||||||
|
"--pull=newer"
|
||||||
|
"--network=www"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
25
nixos-modules/docker-forgejo.nix
Normal file
25
nixos-modules/docker-forgejo.nix
Normal file
|
@ -0,0 +1,25 @@
|
||||||
|
{
|
||||||
|
virtualisation = {
|
||||||
|
containers.enable = true;
|
||||||
|
podman.enable = true;
|
||||||
|
oci-containers.containers = {
|
||||||
|
forgejo = {
|
||||||
|
image = "codeberg.org/forgejo/forgejo:8";
|
||||||
|
volumes = [
|
||||||
|
"forgejo-data:/data"
|
||||||
|
"/etc/localtime:/etc/localtime:ro"
|
||||||
|
];
|
||||||
|
labels = {
|
||||||
|
swag = "enable";
|
||||||
|
swag_url = "git.icanttype.org";
|
||||||
|
swag_port = "3000";
|
||||||
|
};
|
||||||
|
ports = [ "10022:22" ];
|
||||||
|
extraOptions = [
|
||||||
|
"--pull=newer"
|
||||||
|
"--network=www"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
18
nixos-modules/docker-prowlarr.nix
Normal file
18
nixos-modules/docker-prowlarr.nix
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
virtualisation = {
|
||||||
|
containers.enable = true;
|
||||||
|
podman.enable = true;
|
||||||
|
oci-containers.containers = {
|
||||||
|
prowlarr = {
|
||||||
|
image = "lscr.io/linuxserver/prowlarr:latest";
|
||||||
|
volumes = [ "prowlarr-config:/config" ];
|
||||||
|
environment.TZ = "America/New_York";
|
||||||
|
labels.swag = "enable";
|
||||||
|
extraOptions = [
|
||||||
|
"--pull=newer"
|
||||||
|
"--network=www"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
29
nixos-modules/docker-qbittorrent.nix
Normal file
29
nixos-modules/docker-qbittorrent.nix
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
{
|
||||||
|
virtualisation = {
|
||||||
|
containers.enable = true;
|
||||||
|
podman.enable = true;
|
||||||
|
oci-containers.containers = {
|
||||||
|
qbittorrent = {
|
||||||
|
image = "lscr.io/linuxserver/qbittorrent:latest";
|
||||||
|
volumes = [
|
||||||
|
"qbittorrent-config:/config"
|
||||||
|
"/video-data/torrent:/data/torrent"
|
||||||
|
];
|
||||||
|
environment = {
|
||||||
|
TZ = "America/New_York";
|
||||||
|
UMASK_SET = "000";
|
||||||
|
DELUGE_LOGLEVEL = "error";
|
||||||
|
};
|
||||||
|
labels.swag = "enable";
|
||||||
|
ports = [
|
||||||
|
"34996:34996"
|
||||||
|
"34996:34996/udp"
|
||||||
|
];
|
||||||
|
extraOptions = [
|
||||||
|
"--pull=newer"
|
||||||
|
"--network=www"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
21
nixos-modules/docker-radarr.nix
Normal file
21
nixos-modules/docker-radarr.nix
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
virtualisation = {
|
||||||
|
containers.enable = true;
|
||||||
|
podman.enable = true;
|
||||||
|
oci-containers.containers = {
|
||||||
|
radarr = {
|
||||||
|
image = "lscr.io/linuxserver/radarr:latest";
|
||||||
|
volumes = [
|
||||||
|
"radarr-config:/config"
|
||||||
|
"/video-data:/data"
|
||||||
|
];
|
||||||
|
environment.TZ = "America/New_York";
|
||||||
|
labels.swag = "enable";
|
||||||
|
extraOptions = [
|
||||||
|
"--pull=newer"
|
||||||
|
"--network=www"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
21
nixos-modules/docker-readarr.nix
Normal file
21
nixos-modules/docker-readarr.nix
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
virtualisation = {
|
||||||
|
containers.enable = true;
|
||||||
|
podman.enable = true;
|
||||||
|
oci-containers.containers = {
|
||||||
|
readarr = {
|
||||||
|
image = "lscr.io/linuxserver/readarr:develop";
|
||||||
|
volumes = [
|
||||||
|
"readarr-config:/config"
|
||||||
|
"/video-data:/data"
|
||||||
|
];
|
||||||
|
environment.TZ = "America/New_York";
|
||||||
|
labels.swag = "enable";
|
||||||
|
extraOptions = [
|
||||||
|
"--pull=newer"
|
||||||
|
"--network=www"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
22
nixos-modules/docker-runner.nix
Normal file
22
nixos-modules/docker-runner.nix
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
virtualisation = {
|
||||||
|
containers.enable = true;
|
||||||
|
podman.enable = true;
|
||||||
|
oci-containers.containers = {
|
||||||
|
runner = {
|
||||||
|
image = "code.forgejo.org/forgejo/runner:3.4.1";
|
||||||
|
dependsOn = [ "docker_dind" ];
|
||||||
|
environment.DOCKER_HOST = "tcp://docker_dind:2375";
|
||||||
|
volumes = [ "forgejo-runner:/data" ];
|
||||||
|
cmd = [
|
||||||
|
"forgejo-runner"
|
||||||
|
"daemon"
|
||||||
|
];
|
||||||
|
extraOptions = [
|
||||||
|
"--pull=newer"
|
||||||
|
"--network=www"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
21
nixos-modules/docker-sonarr.nix
Normal file
21
nixos-modules/docker-sonarr.nix
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
{
|
||||||
|
virtualisation = {
|
||||||
|
containers.enable = true;
|
||||||
|
podman.enable = true;
|
||||||
|
oci-containers.containers = {
|
||||||
|
sonarr = {
|
||||||
|
image = "lscr.io/linuxserver/sonarr:latest";
|
||||||
|
volumes = [
|
||||||
|
"sonarr-config:/config"
|
||||||
|
"/video-data:/data"
|
||||||
|
];
|
||||||
|
environment.TZ = "America/New_York";
|
||||||
|
labels.swag = "enable";
|
||||||
|
extraOptions = [
|
||||||
|
"--pull=newer"
|
||||||
|
"--network=www"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
23
nixos-modules/docker-static-web.nix
Normal file
23
nixos-modules/docker-static-web.nix
Normal file
|
@ -0,0 +1,23 @@
|
||||||
|
{
|
||||||
|
virtualisation = {
|
||||||
|
containers.enable = true;
|
||||||
|
podman.enable = true;
|
||||||
|
oci-containers.containers = {
|
||||||
|
static = {
|
||||||
|
image = "docker.io/library/nginx:alpine";
|
||||||
|
volumes = [
|
||||||
|
"/srv/docker/nginx/static:/usr/share/nginx/html:ro"
|
||||||
|
"/srv/docker/nginx/config/static/default.conf:/etc/nginx/config.d/default.conf:ro"
|
||||||
|
];
|
||||||
|
labels = {
|
||||||
|
swag = "enable";
|
||||||
|
swag_url = "www.icanttype.org";
|
||||||
|
};
|
||||||
|
extraOptions = [
|
||||||
|
"--pull=newer"
|
||||||
|
"--network=www"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
Loading…
Reference in a new issue