{ config, username, ... }: { imports = [ ../../../../system/common/linux/restic.nix ./matrix-synapse.nix ./nginx.nix ]; services = { restic.backups.daily.paths = [ "/var/lib/uptime-kuma" ]; tailscale = { enable = true; authKeyFile = config.sops.secrets.tailscale_key.path; extraUpFlags = [ "--advertise-exit-node" "--operator" "${username}" "--ssh" ]; useRoutingFeatures = "both"; }; }; sops = { age.keyFile = /home/${username}/.config/sops/age/keys.txt; defaultSopsFile = ../secrets.yaml; secrets = { local_git_config = { owner = "${username}"; path = "/home/${username}/.gitconfig-local"; }; local_private_env = { owner = "${username}"; path = "/home/${username}/.private-env"; }; mqtt_recorder_pass.restartUnits = ["mosquitto.service"]; owntracks_basic_auth = { owner = config.users.users.nginx.name; restartUnits = ["nginx.service"]; }; tailscale_key = { restartUnits = [ "tailscaled-autoconnect.service" ]; }; }; }; # Enable common container config files in /etc/containers virtualisation.containers.enable = true; virtualisation = { podman = { enable = true; # Create a `docker` alias for podman, to use it as a drop-in replacement dockerCompat = true; # Required for containers under podman-compose to be able to talk to each other. defaultNetwork.settings.dns_enabled = true; }; }; }