File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 88 ./dns.nix
99 ./filebrowser.nix
1010 ./jellyfin.nix
11- ./mcpjungle.nix
1211 ./nfs.nix
1312 ./prometheus.nix
1413 ./samba.nix
6059 enable = true ;
6160 extraUpFlags = [ "--ssh" ] ;
6261 } ;
62+
63+ services . mcpjungle . enable = true ;
6364}
Load diff This file was deleted.
Original file line number Diff line number Diff line change 11# NixOS-specific configuration modules
22{
33 imports = [
4+ ./llm
45 ./web
56 ./filebrowser-quantum.nix
67 ./users.nix
Original file line number Diff line number Diff line change 1+ {
2+ imports = [
3+ ./mcpjungle.nix
4+ ] ;
5+ }
Original file line number Diff line number Diff line change 1+ {
2+ config ,
3+ pkgs ,
4+ lib ,
5+ ...
6+ } : let
7+ cfg = config . services . mcpjungle ;
8+ in {
9+ options . services . mcpjungle = {
10+ enable = lib . mkEnableOption "MCPJungle MCP Gateway" ;
11+
12+ package = lib . mkPackageOption pkgs "mcpjungle" { } ;
13+
14+ port = lib . mkOption {
15+ type = lib . types . port ;
16+ default = 8090 ;
17+ description = "Port for the HTTP server to listen on." ;
18+ } ;
19+
20+ openFirewall = lib . mkEnableOption "opening firewall ports for MCPJungle" ;
21+ } ;
22+
23+ config = lib . mkIf cfg . enable {
24+ users . users . mcpjungle = {
25+ isSystemUser = true ;
26+ group = "mcpjungle" ;
27+ } ;
28+ users . groups . mcpjungle = { } ;
29+
30+ systemd . services . mcpjungle = {
31+ description = "MCPJungle MCP Gateway" ;
32+ after = [ "network.target" ] ;
33+ wantedBy = [ "multi-user.target" ] ;
34+
35+ serviceConfig = {
36+ ExecStart = "${ lib . getExe cfg . package } start --port ${ toString cfg . port } " ;
37+ User = "mcpjungle" ;
38+ Group = "mcpjungle" ;
39+ WorkingDirectory = "/var/lib/mcpjungle" ;
40+ StateDirectory = "mcpjungle" ;
41+ Restart = "on-failure" ;
42+ RestartSec = 5 ;
43+
44+ # Hardening
45+ NoNewPrivileges = true ;
46+ PrivateDevices = true ;
47+ PrivateTmp = true ;
48+ ProtectHome = true ;
49+ ProtectSystem = "strict" ;
50+ ReadWritePaths = [ "/var/lib/mcpjungle" ] ;
51+ ProtectKernelTunables = true ;
52+ ProtectKernelModules = true ;
53+ ProtectControlGroups = true ;
54+ RestrictSUIDSGID = true ;
55+ } ;
56+ } ;
57+
58+ networking . firewall . allowedTCPPorts = lib . mkIf cfg . openFirewall [ cfg . port ] ;
59+ } ;
60+ }
You can’t perform that action at this time.
0 commit comments