# SPDX-FileCopyrightText: V # SPDX-License-Identifier: OSL-3.0 { pkgs, ... }: let socket = "/run/naut/naut.sock"; proxySocket = "/run/naut-proxy/naut.sock"; in { systemd.sockets.naut-proxy = { wantedBy = [ "sockets.target" ]; listenStreams = [ proxySocket ]; socketConfig.SocketUser = "git"; }; systemd.services.naut-proxy = { requires = [ "naut-proxy.socket" ]; serviceConfig.ExecStart = "${pkgs.systemd}/lib/systemd/systemd-socket-proxyd ${socket}"; }; systemd.services.naut = { wantedBy = [ "multi-user.target" ]; environment.NAUT_SOCK = socket; serviceConfig = { ExecStart = "${pkgs.naut}/bin/naut"; EnvironmentFile = "/etc/naut/env"; Restart = "on-failure"; DynamicUser = true; SupplementaryGroups = [ "git" ]; RuntimeDirectory = "naut"; }; }; declarative.git.hooks.post-receive = [ (pkgs.writeShellScript "nautify" '' { cat } | nc -UN ${proxySocket} '') ]; }