diff options
-rw-r--r-- | flake.lock | 18 | ||||
-rw-r--r-- | hosts/surtr/default.nix | 1 | ||||
-rw-r--r-- | hosts/surtr/matrix/default.nix | 107 |
3 files changed, 63 insertions, 63 deletions
@@ -46,11 +46,11 @@ | |||
46 | ] | 46 | ] |
47 | }, | 47 | }, |
48 | "locked": { | 48 | "locked": { |
49 | "lastModified": 1645970334, | 49 | "lastModified": 1646559628, |
50 | "narHash": "sha256-6nn4YF9bPtkxkB7bM6yJO3m//p3sGilxNQFjm1epLEM=", | 50 | "narHash": "sha256-WDoqxH/IPTV8CkI15wwzvXYgXq9UPr8xd8WKziuaynw=", |
51 | "owner": "nix-community", | 51 | "owner": "nix-community", |
52 | "repo": "home-manager", | 52 | "repo": "home-manager", |
53 | "rev": "ea85f4b1fdf3f25cf97dc49f4a9ec4eafda2ea25", | 53 | "rev": "afe96e7433c513bf82375d41473c57d1f66b4e68", |
54 | "type": "github" | 54 | "type": "github" |
55 | }, | 55 | }, |
56 | "original": { | 56 | "original": { |
@@ -62,11 +62,11 @@ | |||
62 | }, | 62 | }, |
63 | "nixpkgs": { | 63 | "nixpkgs": { |
64 | "locked": { | 64 | "locked": { |
65 | "lastModified": 1646135945, | 65 | "lastModified": 1646849019, |
66 | "narHash": "sha256-AjOuxMoIEHI6fSck5Ew6UKW2urIgrIEIcAHOvXjkBA4=", | 66 | "narHash": "sha256-HDdVmjkHQFIxYGZST7jFEueWdx/dXIY1bQP+dsVXS/M=", |
67 | "owner": "NixOS", | 67 | "owner": "NixOS", |
68 | "repo": "nixpkgs", | 68 | "repo": "nixpkgs", |
69 | "rev": "e3c78ec446db310c01504dca6cb7ee4cba0f8a7d", | 69 | "rev": "60e275ec4148969d0832f27ea2e138a914b8da12", |
70 | "type": "github" | 70 | "type": "github" |
71 | }, | 71 | }, |
72 | "original": { | 72 | "original": { |
@@ -91,11 +91,11 @@ | |||
91 | ] | 91 | ] |
92 | }, | 92 | }, |
93 | "locked": { | 93 | "locked": { |
94 | "lastModified": 1645891244, | 94 | "lastModified": 1646696263, |
95 | "narHash": "sha256-Pu3a97Zn0PpWi/prTyD9TulCmxyeVnlqofor+yScRD8=", | 95 | "narHash": "sha256-a+6WgDoU2fd4bbSFMqK67i/ZTPzia29otmyeODa1uDU=", |
96 | "owner": "Mic92", | 96 | "owner": "Mic92", |
97 | "repo": "sops-nix", | 97 | "repo": "sops-nix", |
98 | "rev": "afb0d686dced029ea720c466f693c12ebfd4107b", | 98 | "rev": "4e21493d34f7485a568e05b9cbefa11fe047ecd3", |
99 | "type": "github" | 99 | "type": "github" |
100 | }, | 100 | }, |
101 | "original": { | 101 | "original": { |
diff --git a/hosts/surtr/default.nix b/hosts/surtr/default.nix index d30e0cba..711e8bc8 100644 --- a/hosts/surtr/default.nix +++ b/hosts/surtr/default.nix | |||
@@ -146,7 +146,6 @@ | |||
146 | defaultBitSize = 4096; | 146 | defaultBitSize = 4096; |
147 | params = { | 147 | params = { |
148 | nginx = {}; | 148 | nginx = {}; |
149 | matrix-synapse = {}; | ||
150 | coturn = {}; | 149 | coturn = {}; |
151 | }; | 150 | }; |
152 | stateful = true; | 151 | stateful = true; |
diff --git a/hosts/surtr/matrix/default.nix b/hosts/surtr/matrix/default.nix index 09b5c125..07c445b7 100644 --- a/hosts/surtr/matrix/default.nix +++ b/hosts/surtr/matrix/default.nix | |||
@@ -6,68 +6,69 @@ with lib; | |||
6 | config = { | 6 | config = { |
7 | services.matrix-synapse = { | 7 | services.matrix-synapse = { |
8 | enable = true; | 8 | enable = true; |
9 | enable_metrics = true; | ||
10 | 9 | ||
11 | enable_registration = true; | 10 | settings = { |
12 | allow_guest_access = false; | 11 | enable_metrics = true; |
12 | |||
13 | enable_registration = true; | ||
14 | allow_guest_access = false; | ||
15 | |||
16 | server_name = "synapse.li"; | ||
17 | |||
18 | listeners = [ | ||
19 | { bind_addresses = ["::1" "127.0.0.1"]; | ||
20 | port = 8008; | ||
21 | resources = [ | ||
22 | { names = [ "client" "federation" ]; | ||
23 | compress = false; | ||
24 | } | ||
25 | ]; | ||
26 | tls = false; | ||
27 | type = "http"; | ||
28 | x_forwarded = true; | ||
29 | } | ||
30 | ]; | ||
13 | 31 | ||
14 | server_name = "synapse.li"; | 32 | tls_certificate_path = "/run/credentials/matrix-synapse.service/synapse.li.pem"; |
33 | tls_private_key_path = "/run/credentials/matrix-synapse.service/synapse.li.key.pem"; | ||
15 | 34 | ||
16 | listeners = [ | 35 | turn_uris = ["turn:turn.synapse.li?transport=udp" "turn:turn.synapse.li?transport=tcp"]; |
17 | { bind_address = "localhost"; | 36 | turn_user_lifetime = "1h"; |
18 | port = 8008; | 37 | |
19 | resources = [ | 38 | refreshable_access_token_lifetime = "5m"; |
20 | { names = [ "client" "federation" ]; | 39 | # nonrefreshable_access_token_lifetime = "1w"; # TODO: uncomment once all (relevant) clients have support for refreshable tokens |
21 | compress = false; | 40 | refresh_token_lifetime = "1w"; |
22 | } | 41 | registration_requires_token = true; |
23 | ]; | ||
24 | tls = false; | ||
25 | type = "http"; | ||
26 | x_forwarded = true; | ||
27 | } | ||
28 | ]; | ||
29 | 42 | ||
30 | tls_certificate_path = "/run/credentials/matrix-synapse.service/synapse.li.pem"; | 43 | admin_contact = "mailto:matrix-admin@yggdrasil.li"; |
31 | tls_private_key_path = "/run/credentials/matrix-synapse.service/synapse.li.key.pem"; | ||
32 | tls_dh_params_path = config.security.dhparams.params.matrix-synapse.path; | ||
33 | 44 | ||
34 | turn_uris = ["turn:turn.synapse.li?transport=udp" "turn:turn.synapse.li?transport=tcp"]; | 45 | url_preview_enabled = true; |
35 | turn_user_lifetime = "1h"; | 46 | url_preview_ip_range_blacklist = [ |
47 | "127.0.0.0/8" "10.0.0.0/8" "172.16.0.0/12" "192.168.0.0/16" | ||
48 | "100.64.0.0/10" "192.0.0.0/24" "169.254.0.0/16" | ||
49 | "192.88.99.0/24" "198.18.0.0/15" "192.0.2.0/24" | ||
50 | "198.51.100.0/24" "203.0.113.0/24" "224.0.0.0/4" "::1/128" | ||
51 | "fe80::/10" "fc00::/7" "2001:db8::/32" "ff00::/8" | ||
52 | "fec0::/10" "2a03:4000:52:ada::/64" | ||
53 | ]; | ||
54 | url_preview_ip_range_whitelist = [ | ||
55 | "2a03:4000:52:ada::/128" | ||
56 | ]; | ||
57 | |||
58 | max_upload_size = "500M"; | ||
59 | |||
60 | trusted_key_servers = [ | ||
61 | { server_name = "matrix.org"; | ||
62 | } | ||
63 | { server_name = "vector.im"; | ||
64 | } | ||
65 | ]; | ||
66 | suppress_key_server_warning = true; | ||
67 | }; | ||
36 | 68 | ||
37 | extraConfigFiles = [ | 69 | extraConfigFiles = [ |
38 | "/run/credentials/matrix-synapse.service/registration.yaml" | 70 | "/run/credentials/matrix-synapse.service/registration.yaml" |
39 | "/run/credentials/matrix-synapse.service/turn-secret.yaml" | 71 | "/run/credentials/matrix-synapse.service/turn-secret.yaml" |
40 | (pkgs.writeText "homeserver.yaml" (generators.toYAML {} { | ||
41 | "refreshable_access_token_lifetime" = "5m"; | ||
42 | # "nonrefreshable_access_token_lifetime" = "1w"; # TODO: uncomment once all (relevant) clients have support for refreshable tokens | ||
43 | "refresh_token_lifetime" = "1w"; | ||
44 | "registration_requires_token" = true; | ||
45 | |||
46 | "admin_contact" = "mailto:matrix-admin@yggdrasil.li"; | ||
47 | |||
48 | "url_preview_enabled" = true; | ||
49 | "url_preview_ip_range_blacklist" = [ | ||
50 | "127.0.0.0/8" "10.0.0.0/8" "172.16.0.0/12" "192.168.0.0/16" | ||
51 | "100.64.0.0/10" "192.0.0.0/24" "169.254.0.0/16" | ||
52 | "192.88.99.0/24" "198.18.0.0/15" "192.0.2.0/24" | ||
53 | "198.51.100.0/24" "203.0.113.0/24" "224.0.0.0/4" "::1/128" | ||
54 | "fe80::/10" "fc00::/7" "2001:db8::/32" "ff00::/8" | ||
55 | "fec0::/10" "2a03:4000:52:ada::/64" | ||
56 | ]; | ||
57 | "url_preview_ip_range_whitelist" = [ | ||
58 | "2a03:4000:52:ada::/128" | ||
59 | ]; | ||
60 | |||
61 | "max_upload_size" = "500M"; | ||
62 | |||
63 | "trusted_key_servers" = [ | ||
64 | { "server_name" = "matrix.org"; | ||
65 | } | ||
66 | { "server_name" = "vector.im"; | ||
67 | } | ||
68 | ]; | ||
69 | "suppress_key_server_warning" = true; | ||
70 | })) | ||
71 | ]; | 72 | ]; |
72 | }; | 73 | }; |
73 | sops.secrets."matrix-synapse-registration.yaml" = { | 74 | sops.secrets."matrix-synapse-registration.yaml" = { |