diff --git a/clients/quadraticserver/bridges.nix b/clients/quadraticserver/bridges.nix index e23cbc6..f90cfcc 100644 --- a/clients/quadraticserver/bridges.nix +++ b/clients/quadraticserver/bridges.nix @@ -29,20 +29,41 @@ }; }; }; -in { - imports = [inputs.nix-matrix-appservices.nixosModule]; - services.matrix-appservices.services = builtins.mapAttrs (name: value: - value - // { - inherit settings; - format = "mautrix-go"; - package = value.package.override {withGoolm = true;}; - }) { - whatsapp = { - port = 29318; - serviceConfig.EnvironmentFile = config.age.secrets."whatsapp.age".path; - package = pkgs.mautrix-whatsapp; + domain = "ooye.federated.nexus"; +in { + imports = [inputs.nix-matrix-appservices.nixosModule inputs.ooye.modules.default]; + + services = rec { + matrix-appservices.services = builtins.mapAttrs (name: value: + value + // { + inherit settings; + format = "mautrix-go"; + package = value.package.override {withGoolm = true;}; + }) { + whatsapp = { + port = 29318; + serviceConfig.EnvironmentFile = config.age.secrets."whatsapp.age".path; + package = pkgs.mautrix-whatsapp; + }; }; + + matrix-ooye = { + enable = true; + homeserver = config.services.grapevine.settings.server_discovery.client.base_url; + homeserverName = "federated.nexus"; + discordTokenPath = config.age.secrets."discordToken.age".path; + discordClientSecretPath = config.age.secrets."discordClientSecret.age".path; + socket = "/var/lib/matrix-ooye/socket"; + bridgeOrigin = "https://${domain}"; + }; + + caddy.virtualHosts."${domain}".extraConfig = "reverse_proxy unix/${matrix-ooye.socket}"; + }; + + systemd.services.matrix-ooye.serviceConfig = { + UMask = "0007"; + Group = "caddy"; }; } diff --git a/clients/quadraticserver/caddy.nix b/clients/quadraticserver/caddy.nix index 994e463..6f7ddc5 100644 --- a/clients/quadraticserver/caddy.nix +++ b/clients/quadraticserver/caddy.nix @@ -3,5 +3,5 @@ enable = true; email = "henry@henryhiles.com"; }; - networking.firewall.allowedTCPPorts = [2222 443 8448]; # SSH,Matrix and HTTPS + networking.firewall.allowedTCPPorts = [2222 443 8448]; # Git SSH, HTTPS, and Matrix } diff --git a/flake.lock b/flake.lock index 88e67f1..c148e9e 100644 --- a/flake.lock +++ b/flake.lock @@ -768,6 +768,26 @@ "type": "github" } }, + "ooye": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1737779835, + "narHash": "sha256-iZ/kQ/XFqIx053AuSHhCwu3HA8627ognYiJl/LRNpD0=", + "ref": "refs/heads/master", + "rev": "11cc65efa2909bdc7e3e978bf1f56f6d141bf82a", + "revCount": 11, + "type": "git", + "url": "https://cgit.rory.gay/nix/OOYE-module.git" + }, + "original": { + "type": "git", + "url": "https://cgit.rory.gay/nix/OOYE-module.git" + } + }, "programsdb": { "inputs": { "nixpkgs": [ @@ -816,6 +836,7 @@ "nh": "nh", "nix-matrix-appservices": "nix-matrix-appservices", "nixpkgs": "nixpkgs_2", + "ooye": "ooye", "programsdb": "programsdb", "stylix": "stylix", "wrapper-manager": "wrapper-manager" diff --git a/flake.nix b/flake.nix index 29500dc..90cbb02 100755 --- a/flake.nix +++ b/flake.nix @@ -9,6 +9,10 @@ url = "github:danth/stylix"; inputs.nixpkgs.follows = "nixpkgs"; }; + ooye = { + url = "git+https://cgit.rory.gay/nix/OOYE-module.git"; + inputs.nixpkgs.follows = "nixpkgs"; + }; nix-matrix-appservices = { url = "gitlab:coffeetables/nix-matrix-appservices"; inputs.nixpkgs.follows = "nixpkgs"; diff --git a/secrets/discordClientSecret.age b/secrets/discordClientSecret.age new file mode 100644 index 0000000..e14b84f --- /dev/null +++ b/secrets/discordClientSecret.age @@ -0,0 +1,9 @@ +-----BEGIN AGE ENCRYPTED FILE----- +YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFZLUVVkUSA0d1VK +RExQcmIxaTNTT0l1bHhxTUc2NXYvODY0MjI0STZTeXN6TjBnb0RFCndMSzU5SHM5 +UllMckhOTnlRTWJkNFpNWDNLMUpmQkRBU2REVGN3V1lUQVUKLT4ge2ohUjpwLE0t +Z3JlYXNlCmViaUY5cUNjQThxOTlhY0lIYS8xQTRVamdnbwotLS0gRUZnTFVCTFN2 +bmk5aTdyRGxBUk1vMjdQdU5yTjIxREJaN241aTROeEJJbwqrhCTgPaqt+TJdUVnO +xRwXyFUFmztyVpjI8jH7JcuiFbibJfGDH9jwLdtakMUNJUmuGamVI8XycwBiLtUq +WjXOTA== +-----END AGE ENCRYPTED FILE----- diff --git a/secrets/discordToken.age b/secrets/discordToken.age new file mode 100644 index 0000000..df82464 --- /dev/null +++ b/secrets/discordToken.age @@ -0,0 +1,11 @@ +-----BEGIN AGE ENCRYPTED FILE----- +YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFZLUVVkUSBBZGtk +R1YxTWVxSGNuS2lBZTRaSUhrNlNaOWFPOERucGhKbHdEVlBRSmtJCkFjbUErRUly +WWl5MkdvckRrdTd5aFRiRHJoTmJhK3Y5SGtKdU1MTk1GRFEKLT4gZSo7XjItZ3Jl +YXNlIGZ6CjdMeUFyK1BjWkVrVWJhY1RJNVNCMUVoaHlZRWliRXltQmpIb2QzVUZv +dXBITlJVVnRGamJuTFN0ZGlCNHpmbHIKK3d4Z2xJdC8yZURDZmVDV3hxYi8wakpV +WmN1dXpOa25udElqRm9MNjRBSW5NSWt0eEpNQnpRCi0tLSBocEpSYlpndlNpTjBi +N3dJMmtyRXUwaEdGTHpObFV5ejZsR1lnZ05jM0pNCnzz8WE14SxOio/LCLiS6fe8 +3OY52RCfmPMYOMWwauT7PQ+MjITZeNp4pkSWnRmEhAdJRFx7mbYb/Vjg2XeE64TM +nHEaU4yndI2VxOUq0F6/A6plnN6SYJeoWkTl9XpozIV1GHOnHvKLvw== +-----END AGE ENCRYPTED FILE-----