Full modular containers
This commit is contained in:
parent
9d37d9f070
commit
1ce7f51922
11 changed files with 229 additions and 140 deletions
|
@ -25,10 +25,20 @@ in
|
|||
ezModules.plymouth
|
||||
ezModules.docker-calibre
|
||||
ezModules.docker-calibre-web
|
||||
ezModules.docker-dind
|
||||
ezModules.docker-flaresolverr
|
||||
ezModules.forgejo
|
||||
ezModules.docker-homeassistant
|
||||
ezModules.docker-jellyfin
|
||||
ezModules.docker-postgres
|
||||
ezModules.docker-prowlarr
|
||||
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-zwave
|
||||
];
|
||||
|
@ -181,146 +191,7 @@ in
|
|||
defaultNetwork.settings.dns_enabled = true;
|
||||
autoPrune.enable = true;
|
||||
};
|
||||
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"
|
||||
];
|
||||
};
|
||||
};
|
||||
oci-containers.containers = { };
|
||||
};
|
||||
networking.firewall = {
|
||||
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