From cb9d64fd721c166f19d56866660d310e79a88735 Mon Sep 17 00:00:00 2001 From: Danilo Reyes Date: Sun, 24 Dec 2023 13:23:04 -0600 Subject: [PATCH] docker-compose migrated to oci-containers --- server/docker.nix | 114 +++++++++++++++++++++++++++++++++++++-------- server/servers.nix | 20 -------- 2 files changed, 94 insertions(+), 40 deletions(-) diff --git a/server/docker.nix b/server/docker.nix index c49601d..42a4067 100644 --- a/server/docker.nix +++ b/server/docker.nix @@ -8,18 +8,11 @@ enableNvidia = true; storageDriver = "btrfs"; }; - oci-containers = { backend = "docker"; containers = { collabora = { image = "collabora/code"; - # imageFile = pkgs.dockerTools.pullImage { - # imageName = "collabora/code"; - # imageDigest = - # "sha256:aab41379baf5652832e9237fcc06a768096a5a7fccc66cf8bd4fdb06d2cbba7f"; - # sha256 = "sha256-M66lynhzaOEFnE15Sy1N6lBbGDxwNw6ap+IUJAvoCLs="; - # }; ports = [ "9980:9980" ]; environment = { domain = "cloud.servidos.lat"; @@ -30,19 +23,100 @@ }; extraOptions = [ "--cap-add" "MKNOD" ]; }; - # flaresolverr = { - # image = "ghcr.io/flaresolverr/flaresolverr:latest"; - # # imageFile = pkgs.dockerTools.pullImage { - # # imageName = "ghcr.io/flaresolverr/flaresolverr:latest"; - # # }; - # ports = [ "8191:8191" ]; - # environment = { - # TZ = "America/Mexico_City"; - # LOG_LEVEL = "\${LOG_LEVEL:-info}"; - # LOG_HTML = "\${LOG_HTML:-false}"; - # CAPTCHA_SOLVER = "\${CAPTCHA_SOLVER:-none}"; - # }; - # }; + flaresolverr = { + image = "ghcr.io/flaresolverr/flaresolverr:latest"; + ports = [ "8191:8191" ]; + }; + flame = { + image = "pawelmalak/flame"; + ports = [ "5005:5005" ]; + volumes = [ + "/var/lib/docker-configs/flame:/app/data" + "/var/run/docker.sock:/var/run/docker.sock" + ]; + environment = { + PUID = "1000"; + PGID = "100"; + TZ = "America/Mexico_City"; + PASSWORD = "RkawpqMc8lR56QyU7JSfiLhG"; + }; + }; + flame-nsfw = { + image = "pawelmalak/flame"; + ports = [ "5007:5005" ]; + volumes = [ + "/var/lib/docker-configs/flame-nsfw:/app/data" + "/var/run/docker.sock:/var/run/docker.sock" + ]; + environment = { + PUID = "1000"; + PGID = "100"; + TZ = "America/Mexico_City"; + PASSWORD = "RkawpqMc8lR56QyU7JSfiLhG"; + }; + }; + lidarr = { + image = "lscr.io/linuxserver/lidarr:latest"; + ports = [ "8686:8686" ]; + environment = { + TZ = "America/Mexico_City"; + PUID = "1000"; + PGID = "100"; + }; + volumes = [ + "/mnt/pool/multimedia:/data" + "/mnt/pool/multimedia/media/Music:/music" + "/mnt/pool/multimedia/media/MusicVideos:/music-videos" + "/var/lib/docker-configs/lidarr/files:/config" + "/var/lib/docker-configs/lidarr/custom-services.d:/custom-services.d" + "/var/lib/docker-configs/lidarr/custom-cont-init.d:/custom-cont-init.d" + ]; + labels = { + "flame.type" = "application"; + "flame.name" = "Lidarr"; + "flame.url" = "music.servidos.lat"; + "flame.icon" = "music"; + }; + }; + mealie = { + image = "ghcr.io/mealie-recipes/mealie:v1.0.0-RC2"; + ports = [ "9925:9000" ]; + volumes = [ "/var/lib/docker-configs/mealie:/app/data/" ]; + environment = { + ALLOW_SIGNUP = "true"; + PUID = "1000"; + PGID = "100"; + TZ = "America/Mexico_City"; + MAX_WORKERS = "1"; + WEB_CONCURRENCY = "1"; + BASE_URL = "https://mealie.servidos.lat"; + SMTP_HOST = "smtp.gmail.com"; + SMTP_PORT = "587"; + SMTP_FROM_EMAIL = "stunner6399@gmail.com"; + SMTP_USER = "stunner6399@gmail.com"; + SMTP_PASSWORD = "ywofhisexfawslob"; + }; + extraOptions = [ + "--memory=1g" # VA-API (omit for NVENC) + ]; + labels = { + "flame.type" = "application"; + "flame.name" = "Mealie"; + "flame.url" = "mealie.servidos.lat"; + "flame.icon" = "fridge"; + }; + }; + go-vod = { + image = "radialapps/go-vod"; + environment = { + NEXTCLOUD_HOST = "https://${config.services.nextcloud.hostName}"; + NVIDIA_VISIBLE_DEVICES = "all"; + }; + volumes = [ "ncdata:/var/www/html:ro" ]; + extraOptions = [ + "--device=/dev/dri" # VA-API (omit for NVENC) + ]; + }; }; }; }; diff --git a/server/servers.nix b/server/servers.nix index 6a87386..cb6bea5 100644 --- a/server/servers.nix +++ b/server/servers.nix @@ -228,26 +228,6 @@ in { }; systemd = { services = { - docker-compose = { - enable = true; - restartIfChanged = true; - description = "Start docker-compose servers"; - after = [ "docker.service" "docker.socket" ]; - requires = [ "docker.service" "docker.socket" ]; - wantedBy = [ "default.target" ]; - environment = { - FILE = "/home/jawz/Development/Docker/docker-compose.yml"; - }; - path = [ pkgs.docker-compose ]; - serviceConfig = { - Restart = "on-failure"; - RestartSec = 30; - ExecStart = - "${pkgs.docker-compose}/bin/docker-compose -f \${FILE} up --remove-orphans"; - ExecStop = - "${pkgs.docker-compose}/bin/docker-compose -f \${FILE} down"; - }; - }; nextcloud-cronjob = let jawzNextcloudCronjob = pkgs.writeScriptBin "nextcloud-cronjob" (builtins.readFile ../scripts/nextcloud-cronjob.sh);