From e7ca7dd09fbf8dbfc05fd9b9115e02649e5a2906 Mon Sep 17 00:00:00 2001 From: LLLL Colonq Date: Fri, 3 Jul 2026 05:14:55 -0400 Subject: web: Add Maude Code --- flake.nix | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) (limited to 'flake.nix') diff --git a/flake.nix b/flake.nix index 158d61b..0336dbc 100644 --- a/flake.nix +++ b/flake.nix @@ -399,6 +399,51 @@ }; }; }; + figWebMaudeCodeModule = { config, lib, ... }: + let + cfg = config.colonq.services.fig-web-maude-code; + in { + options.colonq.services.fig-web = { + enable = lib.mkEnableOption "Enable the Maude Code server"; + busHost = lib.mkOption { + type = lib.types.str; + default = "127.0.0.1"; + description = "Message bus port"; + }; + busPort = lib.mkOption { + type = lib.types.port; + default = 32050; + description = "Address of message bus"; + }; + configFile = lib.mkOption { + type = lib.types.path; + description = "Path to config file"; + default = pkgs.writeText "fig-web.toml" '' + port = 8000 + asset_path = "/var/lib/fig-web-assets" + data_path = "/var/lib/fig-web-data" + client_id = "" + auth_token = "" + db_host = "" + ''; + }; + }; + config = lib.mkIf cfg.enable { + users.users.fig = { + isSystemUser = true; + group = "fig"; + }; + users.groups.fig = {}; + systemd.services."colonq.fig-web-maude-code" = { + wantedBy = ["multi-user.target"]; + serviceConfig = { + User = "fig"; + Restart = "on-failure"; + ExecStart = "${haskellPackages.fig-web}/bin/fig-web maude-code --bus-host ${cfg.busHost} --bus-port ${toString cfg.busPort} --config ${cfg.configFile}"; + }; + }; + }; + }; in { devShells.x86_64-linux.default = haskellPackages.shellFor { packages = hspkgs: with hspkgs; [ @@ -444,6 +489,7 @@ figBridgeIRCDiscord = figBridgeIRCDiscordModule; figWeb = figWebModule; figWebSecure = figWebSecureModule; + figWebMaudeCode = figWebMaudeCodeModule; }; overlay = self: super: { fig = { -- cgit v1.2.3