loptland: init element-web
This commit is contained in:
parent
8406518178
commit
85eebcd2ed
3 changed files with 63 additions and 0 deletions
|
|
@ -35,6 +35,7 @@ topLevel: {
|
||||||
mautrix-discord
|
mautrix-discord
|
||||||
mautrix-signal
|
mautrix-signal
|
||||||
element-call
|
element-call
|
||||||
|
element-web
|
||||||
|
|
||||||
# game server
|
# game server
|
||||||
minecraft-server
|
minecraft-server
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,20 @@
|
||||||
forceSSL = true;
|
forceSSL = true;
|
||||||
useACMEHost = matrixDomain;
|
useACMEHost = matrixDomain;
|
||||||
|
|
||||||
|
# MSC4143: advertise LiveKit as the RTC transport since Synapse doesn't implement this yet
|
||||||
|
locations."= /_matrix/client/unstable/org.matrix.msc4143/rtc/transports" = {
|
||||||
|
extraConfig = ''
|
||||||
|
default_type application/json;
|
||||||
|
add_header 'Access-Control-Allow-Origin' '*' always;
|
||||||
|
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS' always;
|
||||||
|
add_header 'Access-Control-Allow-Headers' 'Authorization, Content-Type' always;
|
||||||
|
if ($request_method = OPTIONS) {
|
||||||
|
return 204;
|
||||||
|
}
|
||||||
|
return 200 '{"rtc_transports":[{"type":"livekit","livekit_service_url":"https://call.${matrixDomain}/livekit/jwt"}]}';
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
locations."/" = {
|
locations."/" = {
|
||||||
proxyPass = "http://localhost:${toString 8008}";
|
proxyPass = "http://localhost:${toString 8008}";
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
|
|
@ -91,6 +105,7 @@
|
||||||
tryFiles = "$uri /index.html";
|
tryFiles = "$uri /index.html";
|
||||||
extraConfig = ''
|
extraConfig = ''
|
||||||
add_header Cache-Control "no-cache" always;
|
add_header Cache-Control "no-cache" always;
|
||||||
|
add_header Content-Security-Policy "frame-ancestors 'self' https://chat.${matrixDomain}" always;
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
47
modules/server/element-web.nix
Normal file
47
modules/server/element-web.nix
Normal file
|
|
@ -0,0 +1,47 @@
|
||||||
|
{
|
||||||
|
flake.modules.nixos.element-web =
|
||||||
|
{ pkgs, ... }:
|
||||||
|
let
|
||||||
|
matrixDomain = "alwayssleepy.online";
|
||||||
|
in
|
||||||
|
{
|
||||||
|
services.nginx.virtualHosts."chat.${matrixDomain}" = {
|
||||||
|
forceSSL = true;
|
||||||
|
useACMEHost = matrixDomain;
|
||||||
|
|
||||||
|
locations."= /config.json" = {
|
||||||
|
extraConfig = ''
|
||||||
|
default_type application/json;
|
||||||
|
return 200 '${builtins.toJSON {
|
||||||
|
default_server_config = {
|
||||||
|
"m.homeserver" = {
|
||||||
|
base_url = "https://matrix.${matrixDomain}";
|
||||||
|
server_name = matrixDomain;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
disable_custom_urls = true;
|
||||||
|
disable_guests = true;
|
||||||
|
features = {
|
||||||
|
feature_group_calls = true;
|
||||||
|
};
|
||||||
|
element_call = {
|
||||||
|
url = "https://call.${matrixDomain}";
|
||||||
|
use_exclusively = true;
|
||||||
|
brand = "Element Call";
|
||||||
|
};
|
||||||
|
brand = "Element";
|
||||||
|
default_theme = "dark";
|
||||||
|
}}';
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
|
locations."/" = {
|
||||||
|
root = "${pkgs.element-web}";
|
||||||
|
tryFiles = "$uri /index.html";
|
||||||
|
extraConfig = ''
|
||||||
|
add_header Cache-Control "no-cache" always;
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue