{ ... }: let vars = import ../vars.nix; in { systemd.tmpfiles.rules = [ "d ${vars.docker_configs}/camofox-browser 0750 root root - -" ]; containers.camofox-browser = { autoStart = true; privateNetwork = false; bindMounts = { camofox-browser = { hostPath = "${vars.docker_configs}/camofox-browser"; mountPoint = "/var/lib/camofox-browser"; isReadOnly = false; }; }; config = { pkgs, lib, ... }: { networking.hostName = "camofox-browser"; environment.systemPackages = with pkgs; [ ffmpeg git nodejs python3Packages.yt-dlp ]; systemd.services.camofox-browser = { description = "Camofox browser server"; wantedBy = [ "multi-user.target" ]; after = [ "network.target" ]; environment = { CAMOFOX_HOST = "127.0.0.1"; CAMOFOX_PORT = "9377"; HOME = "/var/lib/camofox-browser"; }; path = with pkgs; [ bash coreutils git nodejs ]; serviceConfig = { Restart = "always"; RestartSec = "5s"; WorkingDirectory = "/var/lib/camofox-browser"; }; script = '' set -eu app_dir=/var/lib/camofox-browser/app if [ ! -d "$app_dir/.git" ]; then git clone --depth 1 https://github.com/jo-inc/camofox-browser "$app_dir" fi cd "$app_dir" if [ ! -d node_modules ]; then npm install fi exec npm start ''; }; system.stateVersion = lib.mkDefault "24.05"; }; }; }