{ config, lib, pkgs, ... }: { environment.systemPackages = with pkgs; [ docker-compose ]; virtualisation = let postgresSocket = "/run/postgresql"; in { docker = { enable = true; enableNvidia = true; # dockerCompat = true; # defaultNetwork.settings.dns_enabled = true; autoPrune = { enable = true; flags = [ "--all" ]; dates = "weekly"; }; }; oci-containers = { backend = "docker"; containers = { # collabora = { # autoStart = true; # image = "collabora/code"; # imageFile = pkgs.dockerTools.pullImage { # imageName = "collabora/code"; # imageDigest = # "sha256:aab41379baf5652832e9237fcc06a768096a5a7fccc66cf8bd4fdb06d2cbba7f"; # sha256 = "sha256-M66lynhzaOEFnE15Sy1N6lBbGDxwNw6ap+IUJAvoCLs="; # }; # ports = [ "9980:9980" ]; # environment = { # TZ = "America/Mexico_City"; # domain = "cloud.servidos.lat"; # aliasgroup1 = "cloud.servidos.lat:443"; # aliasgroup2 = "cloud.rotehaare.art:443"; # dictionaries = "en_CA en_US es_MX es_ES fr_FR it pt_BR ru"; # extra_params = '' # --o:ssl.enable=false # --o:ssl.termination=true # ''; # }; # extraOptions = [ "--cap-add" "MKNOD" ]; # }; # metube = { # image = "ghcr.io/alexta69/metube"; # ports = [ "8881:8081" ]; # volumes = [ # "/var/lib/docker-configs/metube:/downloads" # "/home/jawz/.local/share/cookies.txt:/cookies.txt" # ]; # environment = { # TZ = "America/Mexico_City"; # YTDL_OPTIONS = ''{"cookiefile":"/cookies.txt"}''; # }; # }; vocechat = { image = "privoce/vocechat-server:latest"; ports = [ "3001:3000" ]; volumes = [ "/var/lib/docker-configs/vocechat:/home/vocechat-server/data" ]; environment = { TZ = "America/Mexico_City"; }; }; ryot = { image = "ghcr.io/ignisda/ryot:latest"; ports = [ "8765:8000" ]; environment = { TZ = "America/Mexico_City"; DATABASE_URL = "postgres:///ryot?host=${postgresSocket}"; SERVER_INSECURE_COOKIE = "true"; VIDEO_GAMES_TWITCH_CLIENT_ID = "tfu0hw0zbdbu4lco4h72nqkb8krxp9"; VIDEO_GAMES_TWITCH_CLIENT_SECRET = "582ecfb01ihv6wnt8zbc9pf3hs9p54"; }; volumes = [ "${postgresSocket}:${postgresSocket}" ]; labels = { "flame.type" = "application"; "flame.name" = "Ryot"; "flame.url" = "tracker.servidos.lat"; "flame.icon" = "radar"; }; }; multi-scrobbler = { image = "foxxmd/multi-scrobbler"; ports = [ "9078:9078" ]; environment = { TZ = "America/Mexico_City"; PUID = "1000"; PGID = "100"; BASE_URL = "https://scrobble.servidos.lat"; # JELLYFIN_USER = "jawz"; # JELLYFIN_SERVER = "DaniloFlix"; DEEZER_CLIENT_ID = "657431"; DEEZER_CLIENT_SECRET = "cb2ad03682dd5a55dfef857388ef181e"; DEEZER_REDIRECT_URI = "http://192.168.1.69:9078/deezer/callback"; MALOJA_URL = "https://maloja.servidos.lat"; MALOJA_API_KEY = "LsnY2Ed484JlzUmF6EwhpGJ0gUCjJ2G5s1oJTwALJN8w1N3K6eXpfjBQp3raNPLA"; WS_ENABLE = "true"; }; volumes = [ "/var/lib/docker-configs/multi-scrobbler:/config" ]; labels = { "flame.type" = "application"; "flame.name" = "Multi-scrobbler"; "flame.url" = "scrobble.servidos.lat"; "flame.icon" = "broadcast"; }; }; maloja = { image = "krateng/maloja"; ports = [ "42010:42010" ]; environment = { TZ = "America/Mexico_City"; MALOJA_TIMEZONE = "-6"; PUID = "1000"; PGID = "100"; MALOJA_DATA_DIRECTORY = "/mljdata"; MALOJA_SKIP_SETUP = "true"; MALOJA_FORCE_PASSWORD = "chichis"; }; volumes = [ "/var/lib/docker-configs/maloja:/mljdata" ]; labels = { "flame.type" = "application"; "flame.name" = "Maloja"; "flame.url" = "maloja.servidos.lat"; "flame.icon" = "bookmark-music"; }; }; # flaresolverr = { # autoStart = true; # image = "ghcr.io/flaresolverr/flaresolverr:latest"; # ports = [ "8191:8191" ]; # }; flame = { autoStart = true; image = "pawelmalak/flame"; ports = [ "5005:5005" ]; volumes = [ "/var/lib/docker-configs/flame:/app/data" "/var/run/docker.sock:/var/run/docker.sock" ]; environment = { TZ = "America/Mexico_City"; PUID = "1000"; PGID = "100"; PASSWORD = "RkawpqMc8lR56QyU7JSfiLhG"; }; }; flame-nsfw = { autoStart = true; image = "pawelmalak/flame"; ports = [ "5007:5005" ]; volumes = [ "/var/lib/docker-configs/flame-nsfw:/app/data" ]; environment = { TZ = "America/Mexico_City"; PUID = "1000"; PGID = "100"; PASSWORD = "RkawpqMc8lR56QyU7JSfiLhG"; }; }; # lidarr = { # autoStart = true; # 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 = { autoStart = true; image = "ghcr.io/mealie-recipes/mealie:v1.0.0-RC2"; ports = [ "9925:9000" ]; volumes = [ "/var/lib/docker-configs/mealie:/app/data/" ]; environment = { TZ = "America/Mexico_City"; ALLOW_SIGNUP = "true"; PUID = "1000"; PGID = "100"; 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 = { # autoStart = true; # image = "radialapps/go-vod"; # environment = { # TZ = "America/Mexico_City"; # 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) # ]; # }; }; }; }; }