/ config / processes.nix
processes.nix
 1  {
 2    lib,
 3    config,
 4    ...
 5  }:
 6  {
 7    processes = {
 8      # "cargo:loco:watch" = {
 9      #   exec = "cargo loco watch";
10      #   ports.http.allocate = config.languages.rust.loco.config.development.server.port;
11      #   process-compose = {
12      #     is_tty = true;
13      #     namespace = "🧩 API";
14      #   };
15      # };
16    }
17    //
18      builtins.mapAttrs
19        (_: cfg: {
20          process-compose = {
21            is_tty = true;
22            namespace = "🎡 SERVICES";
23          };
24        })
25        {
26  
27          sqld.enable = false;
28          caddy.enable = true;
29          mailpit.enable = true;
30          prometheus.enable = false;
31          "tailscale-funnel".enable = false;
32        }
33    // lib.optionalAttrs (!config.devenv.isTesting) {
34      console = {
35        exec = ''
36          ttyd --writable --browser --url-arg --once devenv up
37        '';
38        process-compose = {
39          disabled = true;
40          namespace = "🧮 VIEWS";
41          description = "🕹 Attach the Microvisor Kernel to the Browser";
42        };
43      };
44    };
45  
46    # process = {
47    #   manager.args = {
48    #     "config" = "${config.git.root}/config/process-compose/settings.yaml";
49    #     "shortcuts" = "${config.git.root}/config/process-compose/shortcuts.yaml";
50    #   };
51  
52    #   managers.process-compose.settings = {
53    #     is_strict = true;
54    #     #   availability = {
55    #     #   max_restarts = 5;
56    #     #   backoff_seconds = 2;
57    #     #   restart = "on_failure";
58    #     # };
59    #   };
60    # };
61  }