diff --git a/hosts/linode/synapse.nix b/hosts/linode/synapse.nix index a045d06..aa71d81 100644 --- a/hosts/linode/synapse.nix +++ b/hosts/linode/synapse.nix @@ -6,6 +6,7 @@ let domain = "${config.networking.domain}"; fqdn = "matrix.${domain}"; + fbRegistration = builtins.fromJSON ( builtins.readFile config.age.secrets.mautrixfacebook.path ); in { services.nginx = { @@ -87,6 +88,9 @@ return 200 '${builtins.toJSON client}'; compress = false; # Offload compressiong to Nginx } ]; } ]; + app_service_config_files = [ + config.age.secrets.mautrixfacebook.path + ]; }; # Open networking ports for the server @@ -94,4 +98,28 @@ return 200 '${builtins.toJSON client}'; enable = true; allowedTCPPorts = [ 80 443 ]; }; + + # Enable Facebook bridge + age.secrets.mautrixfacebook = { + file = ../../secrets/mautrixfacebook.age; + owner = "matrix-synapse"; + }; + services.mautrix-facebook = { + enable = true; + settings = { + homeserver = { + address = "http://localhost:8448"; + domain = "thehellings.com"; + }; + bridge.permissions = { + "@admin:thehellings.com" = "admin"; + "thehellings.com" = "user"; + }; + appservice = { + as_token = fbRegistration.as_token; + hs_token = fbRegistration.hs_token; + }; + }; + registrationData = fbRegistration; + }; } diff --git a/secrets/mautrixfacebook.age b/secrets/mautrixfacebook.age new file mode 100644 index 0000000..8ddac90 Binary files /dev/null and b/secrets/mautrixfacebook.age differ diff --git a/secrets/secrets.nix b/secrets/secrets.nix index f04920e..6da41b4 100644 --- a/secrets/secrets.nix +++ b/secrets/secrets.nix @@ -10,4 +10,5 @@ in # At the point where you want to use it, put # age.secrets.matrix.file = ../../secrets/matrix.age; # Then you can reference the file at /run/agenix/matrix + "mautrixfacebook.age".publicKeys = [ linode user ]; }