{ pkgs, lib, ... }: { services.n8n = { enable = true; openFirewall = true; environment = { host = "0.0.0.0"; port = 5678; protocol = "http"; }; environment = { N8N_SECURE_COOKIE = "false"; N8N_EXECUTE_COMMAND_ENABLED = "true"; N8N_ENABLE_EXECUTE_COMMAND = "true"; NODES_EXCLUDE = "[]"; N8N_NODES_INCLUDE = "n8n-nodes-base.executeCommand"; N8N_BINARY_DATA_STORAGE_PATH = "/srv/slopfarm"; }; }; systemd.services.n8n.serviceConfig = { ReadWritePaths = ["/srv/slopfarm"]; SupplementaryGroups = ["video" "render"]; PrivateDevices = lib.mkForce false; DevicePolicy = lib.mkForce "auto"; DeviceAllow = [ "/dev/nvidiactl rw" "/dev/nvidia0 rw" "/dev/nvidia-uvm rw" "/dev/nvidia-uvm-tools rw" "/dev/nvidia-modeset rw" ]; }; environment.systemPackages = with pkgs; [ ffmpeg piper-tts git yt-dlp cudaPackages.cudatoolkit (python3.withPackages (ps: with ps; [ requests aiohttp praw torch torchvision transformers accelerate sentencepiece safetensors soundfile librosa pydub scipy pillow moviepy imageio imageio-ffmpeg opencv4 numpy tqdm regex python-dotenv pysrt flask ])) ]; systemd.tmpfiles.rules = [ "d /srv/slopfarm 0755 n8n n8n -" "d /srv/slopfarm/input 0755 n8n n8n -" "d /srv/slopfarm/output 0755 n8n n8n -" "d /srv/slopfarm/scripts 0755 n8n n8n -" "d /srv/slopfarm/backgrounds 0755 n8n n8n -" "d /srv/slopfarm/voices 0755 n8n n8n -" ]; }