forked from Fediversity/Fediversity
Remove trailing whitespace everywhere
This commit is contained in:
parent
142af8d0ee
commit
740b5447d8
25 changed files with 104 additions and 104 deletions
|
@ -94,11 +94,11 @@ Not everyone has the expertise and time to run their own server.
|
||||||
|
|
||||||
- Resource
|
- Resource
|
||||||
|
|
||||||
A [resource for NixOps4](https://nixops.dev/manual/development/concept/resource.html) is any external entity that can be declared with NixOps4 expressions and manipulated with NixOps4, such as a virtual machine, an active NixOS configuration, a DNS entry, or customer database.
|
A [resource for NixOps4](https://nixops.dev/manual/development/concept/resource.html) is any external entity that can be declared with NixOps4 expressions and manipulated with NixOps4, such as a virtual machine, an active NixOS configuration, a DNS entry, or customer database.
|
||||||
|
|
||||||
- Resource provider
|
- Resource provider
|
||||||
|
|
||||||
A resource provider for NixOps4 is an executable that communicates between a resource and NixOps4 using a standardised protocol, allowing [CRUD operations](https://en.wikipedia.org/wiki/Create,_read,_update_and_delete) on the resources to be performed by NixOps4.
|
A resource provider for NixOps4 is an executable that communicates between a resource and NixOps4 using a standardised protocol, allowing [CRUD operations](https://en.wikipedia.org/wiki/Create,_read,_update_and_delete) on the resources to be performed by NixOps4.
|
||||||
Refer to the [NixOps4 manual](https://nixops.dev/manual/development/resource-provider/index.html) for details.
|
Refer to the [NixOps4 manual](https://nixops.dev/manual/development/resource-provider/index.html) for details.
|
||||||
|
|
||||||
> Example: We need a resource provider for obtaining deployment secrets from a database.
|
> Example: We need a resource provider for obtaining deployment secrets from a database.
|
||||||
|
|
|
@ -46,7 +46,7 @@ These are the components we're going to use:
|
||||||
## Synapse
|
## Synapse
|
||||||
|
|
||||||
This is the core component: the Matrix server itself, you should probably
|
This is the core component: the Matrix server itself, you should probably
|
||||||
install this first.
|
install this first.
|
||||||
|
|
||||||
Because not every usecase is the same, we'll describe two different
|
Because not every usecase is the same, we'll describe two different
|
||||||
architectures:
|
architectures:
|
||||||
|
|
|
@ -78,10 +78,10 @@ denied-peer-ip=203.0.113.0-203.0.113.255
|
||||||
|
|
||||||
# TURN server allocates address family according TURN client requested address family.
|
# TURN server allocates address family according TURN client requested address family.
|
||||||
# If address family not requested explicitly by the client, then it falls back to this default.
|
# If address family not requested explicitly by the client, then it falls back to this default.
|
||||||
# The standard RFC explicitly define that this default must be IPv4,
|
# The standard RFC explicitly define that this default must be IPv4,
|
||||||
# so use other option values with care!
|
# so use other option values with care!
|
||||||
# Possible values: "ipv4" or "ipv6" or "keep"
|
# Possible values: "ipv4" or "ipv6" or "keep"
|
||||||
# "keep" sets the allocation default address family according to
|
# "keep" sets the allocation default address family according to
|
||||||
# the TURN client allocation request connection address family.
|
# the TURN client allocation request connection address family.
|
||||||
allocation-default-address-family="ipv4"
|
allocation-default-address-family="ipv4"
|
||||||
|
|
||||||
|
|
|
@ -86,7 +86,7 @@ nginx to forward requests for reports to Draupnir:
|
||||||
location ~ ^/_matrix/client/(r0|v3)/rooms/([^/]*)/report/(.*)$ {
|
location ~ ^/_matrix/client/(r0|v3)/rooms/([^/]*)/report/(.*)$ {
|
||||||
# The r0 endpoint is deprecated but still used by many clients.
|
# The r0 endpoint is deprecated but still used by many clients.
|
||||||
# As of this writing, the v3 endpoint is the up-to-date version.
|
# As of this writing, the v3 endpoint is the up-to-date version.
|
||||||
|
|
||||||
# Alias the regexps, to ensure that they're not rewritten.
|
# Alias the regexps, to ensure that they're not rewritten.
|
||||||
set $room_id $2;
|
set $room_id $2;
|
||||||
set $event_id $3;
|
set $event_id $3;
|
||||||
|
@ -101,7 +101,7 @@ location /_synapse/admin/v1/event_reports {
|
||||||
proxy_set_header Host $host;
|
proxy_set_header Host $host;
|
||||||
client_max_body_size 50M;
|
client_max_body_size 50M;
|
||||||
proxy_http_version 1.1;
|
proxy_http_version 1.1;
|
||||||
|
|
||||||
location ~ ^/_synapse/admin/v1/rooms/([^/]*)/context/(.*)$ {
|
location ~ ^/_synapse/admin/v1/rooms/([^/]*)/context/(.*)$ {
|
||||||
set $room_id $2;
|
set $room_id $2;
|
||||||
set $event_id $3;
|
set $event_id $3;
|
||||||
|
|
|
@ -308,7 +308,7 @@ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.0/install.sh | bash
|
||||||
|
|
||||||
Exit and login again to set some environment variables (yes, the installation
|
Exit and login again to set some environment variables (yes, the installation
|
||||||
changes .bashrc). Then install and upgrade:
|
changes .bashrc). Then install and upgrade:
|
||||||
|
|
||||||
```
|
```
|
||||||
nvm install 23
|
nvm install 23
|
||||||
sudo apt install yarnpkg
|
sudo apt install yarnpkg
|
||||||
|
|
|
@ -187,14 +187,14 @@ server {
|
||||||
listen [::]:80;
|
listen [::]:80;
|
||||||
listen 443 ssl http2;
|
listen 443 ssl http2;
|
||||||
listen [::]:443 ssl http2;
|
listen [::]:443 ssl http2;
|
||||||
|
|
||||||
ssl_certificate /etc/letsencrypt/live/element.example.com/fullchain.pem;
|
ssl_certificate /etc/letsencrypt/live/element.example.com/fullchain.pem;
|
||||||
ssl_certificate_key /etc/letsencrypt/live/element.example.com/privkey.pem;
|
ssl_certificate_key /etc/letsencrypt/live/element.example.com/privkey.pem;
|
||||||
include /etc/letsencrypt/options-ssl-nginx.conf;
|
include /etc/letsencrypt/options-ssl-nginx.conf;
|
||||||
ssl_dhparam /etc/ssl/dhparams.pem;
|
ssl_dhparam /etc/ssl/dhparams.pem;
|
||||||
|
|
||||||
server_name element.example.com;
|
server_name element.example.com;
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
if ($scheme = http) {
|
if ($scheme = http) {
|
||||||
return 301 https://$host$request_uri;
|
return 301 https://$host$request_uri;
|
||||||
|
@ -204,10 +204,10 @@ server {
|
||||||
add_header X-XSS-Protection "1; mode=block";
|
add_header X-XSS-Protection "1; mode=block";
|
||||||
add_header Content-Security-Policy "frame-ancestors 'self'";
|
add_header Content-Security-Policy "frame-ancestors 'self'";
|
||||||
}
|
}
|
||||||
|
|
||||||
root /usr/share/element-web;
|
root /usr/share/element-web;
|
||||||
index index.html;
|
index index.html;
|
||||||
|
|
||||||
access_log /var/log/nginx/elementweb-access.log;
|
access_log /var/log/nginx/elementweb-access.log;
|
||||||
error_log /var/log/nginx/elementweb-error.log;
|
error_log /var/log/nginx/elementweb-error.log;
|
||||||
}
|
}
|
||||||
|
@ -225,16 +225,16 @@ another vhost, something like this:
|
||||||
server {
|
server {
|
||||||
listen 443 ssl;
|
listen 443 ssl;
|
||||||
listen [::]:443 ssl;
|
listen [::]:443 ssl;
|
||||||
|
|
||||||
ssl_certificate /etc/letsencrypt/live/admin.example.com/fullchain.pem;
|
ssl_certificate /etc/letsencrypt/live/admin.example.com/fullchain.pem;
|
||||||
ssl_certificate_key /etc/letsencrypt/live/admin.example.com/privkey.pem;
|
ssl_certificate_key /etc/letsencrypt/live/admin.example.com/privkey.pem;
|
||||||
include /etc/letsencrypt/options-ssl-nginx.conf;
|
include /etc/letsencrypt/options-ssl-nginx.conf;
|
||||||
ssl_dhparam /etc/ssl/dhparams.pem;
|
ssl_dhparam /etc/ssl/dhparams.pem;
|
||||||
|
|
||||||
server_name admin.example.com;
|
server_name admin.example.com;
|
||||||
|
|
||||||
root /var/www/synapse-admin;
|
root /var/www/synapse-admin;
|
||||||
|
|
||||||
access_log /var/log/nginx/admin-access.log;
|
access_log /var/log/nginx/admin-access.log;
|
||||||
error_log /var/log/nginx/admin-error.log;
|
error_log /var/log/nginx/admin-error.log;
|
||||||
}
|
}
|
||||||
|
@ -256,7 +256,7 @@ location ~ ^/_synapse/admin {
|
||||||
allow 111.222.111.222;
|
allow 111.222.111.222;
|
||||||
allow dead:beef::/64;
|
allow dead:beef::/64;
|
||||||
deny all;
|
deny all;
|
||||||
|
|
||||||
proxy_pass http://localhost:8008;
|
proxy_pass http://localhost:8008;
|
||||||
proxy_set_header X-Forwarded-For $remote_addr;
|
proxy_set_header X-Forwarded-For $remote_addr;
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
|
@ -281,14 +281,14 @@ Then create a virtual host much like this:
|
||||||
server {
|
server {
|
||||||
listen 443 ssl;
|
listen 443 ssl;
|
||||||
listen [::]:443 ssl;
|
listen [::]:443 ssl;
|
||||||
|
|
||||||
ssl_certificate /etc/letsencrypt/live/livekit.example.com/fullchain.pem;
|
ssl_certificate /etc/letsencrypt/live/livekit.example.com/fullchain.pem;
|
||||||
ssl_certificate_key /etc/letsencrypt/live/livekit.example.com/privkey.pem;
|
ssl_certificate_key /etc/letsencrypt/live/livekit.example.com/privkey.pem;
|
||||||
include /etc/letsencrypt/options-ssl-nginx.conf;
|
include /etc/letsencrypt/options-ssl-nginx.conf;
|
||||||
ssl_dhparam /etc/ssl/dhparams.pem;
|
ssl_dhparam /etc/ssl/dhparams.pem;
|
||||||
|
|
||||||
server_name livekit.example.com;
|
server_name livekit.example.com;
|
||||||
|
|
||||||
# This is lk-jwt-service
|
# This is lk-jwt-service
|
||||||
location ~ ^(/sfu/get|/healthz) {
|
location ~ ^(/sfu/get|/healthz) {
|
||||||
proxy_pass http://[::1]:8080;
|
proxy_pass http://[::1]:8080;
|
||||||
|
@ -298,19 +298,19 @@ server {
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
}
|
}
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
proxy_pass http://[::1]:7880;
|
proxy_pass http://[::1]:7880;
|
||||||
proxy_set_header Connection "upgrade";
|
proxy_set_header Connection "upgrade";
|
||||||
proxy_set_header Upgrade $http_upgrade;
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
|
|
||||||
proxy_set_header Host $host;
|
proxy_set_header Host $host;
|
||||||
proxy_set_header X-Forwarded-Server $host;
|
proxy_set_header X-Forwarded-Server $host;
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
}
|
}
|
||||||
|
|
||||||
access_log /var/log/nginx/livekit-access.log;
|
access_log /var/log/nginx/livekit-access.log;
|
||||||
error_log /var/log/nginx/livekit-error.log;
|
error_log /var/log/nginx/livekit-error.log;
|
||||||
}
|
}
|
||||||
|
@ -326,34 +326,34 @@ should be the configuration to publish that:
|
||||||
server {
|
server {
|
||||||
listen 443 ssl;
|
listen 443 ssl;
|
||||||
listen [::]:443 ssl;
|
listen [::]:443 ssl;
|
||||||
|
|
||||||
ssl_certificate /etc/letsencrypt/live/call.example.com/fullchain.pem;
|
ssl_certificate /etc/letsencrypt/live/call.example.com/fullchain.pem;
|
||||||
ssl_certificate_key /etc/letsencrypt/live/call.example.com/privkey.pem;
|
ssl_certificate_key /etc/letsencrypt/live/call.example.com/privkey.pem;
|
||||||
include /etc/letsencrypt/options-ssl-nginx.conf;
|
include /etc/letsencrypt/options-ssl-nginx.conf;
|
||||||
ssl_dhparam /etc/ssl/dhparams.pem;
|
ssl_dhparam /etc/ssl/dhparams.pem;
|
||||||
|
|
||||||
server_name call.example.com;
|
server_name call.example.com;
|
||||||
|
|
||||||
root /var/www/element-call;
|
root /var/www/element-call;
|
||||||
|
|
||||||
location /assets {
|
location /assets {
|
||||||
add_header Cache-Control "public, immutable, max-age=31536000";
|
add_header Cache-Control "public, immutable, max-age=31536000";
|
||||||
}
|
}
|
||||||
|
|
||||||
location /apple-app-site-association {
|
location /apple-app-site-association {
|
||||||
default_type application/json;
|
default_type application/json;
|
||||||
}
|
}
|
||||||
|
|
||||||
location /^config.json$ {
|
location /^config.json$ {
|
||||||
alias public/config.json;
|
alias public/config.json;
|
||||||
default_type application/json;
|
default_type application/json;
|
||||||
}
|
}
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
try_files $uri /$uri /index.html;
|
try_files $uri /$uri /index.html;
|
||||||
add_header Cache-Control "public, max-age=30, stale-while-revalidate=30";
|
add_header Cache-Control "public, max-age=30, stale-while-revalidate=30";
|
||||||
}
|
}
|
||||||
|
|
||||||
access_log /var/log/nginx/call-access.log;
|
access_log /var/log/nginx/call-access.log;
|
||||||
error_log /var/log/nginx/call-error.log;
|
error_log /var/log/nginx/call-error.log;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,34 +1,34 @@
|
||||||
server {
|
server {
|
||||||
listen 443 ssl;
|
listen 443 ssl;
|
||||||
listen [::]:443 ssl;
|
listen [::]:443 ssl;
|
||||||
|
|
||||||
ssl_certificate /etc/letsencrypt/live/call.example.com/fullchain.pem;
|
ssl_certificate /etc/letsencrypt/live/call.example.com/fullchain.pem;
|
||||||
ssl_certificate_key /etc/letsencrypt/live/call.example.com/privkey.pem;
|
ssl_certificate_key /etc/letsencrypt/live/call.example.com/privkey.pem;
|
||||||
include /etc/letsencrypt/options-ssl-nginx.conf;
|
include /etc/letsencrypt/options-ssl-nginx.conf;
|
||||||
ssl_dhparam /etc/ssl/dhparams.pem;
|
ssl_dhparam /etc/ssl/dhparams.pem;
|
||||||
|
|
||||||
server_name call.example.com;
|
server_name call.example.com;
|
||||||
|
|
||||||
root /var/www/element-call;
|
root /var/www/element-call;
|
||||||
|
|
||||||
location /assets {
|
location /assets {
|
||||||
add_header Cache-Control "public, immutable, max-age=31536000";
|
add_header Cache-Control "public, immutable, max-age=31536000";
|
||||||
}
|
}
|
||||||
|
|
||||||
location /apple-app-site-association {
|
location /apple-app-site-association {
|
||||||
default_type application/json;
|
default_type application/json;
|
||||||
}
|
}
|
||||||
|
|
||||||
location /^config.json$ {
|
location /^config.json$ {
|
||||||
alias public/config.json;
|
alias public/config.json;
|
||||||
default_type application/json;
|
default_type application/json;
|
||||||
}
|
}
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
try_files $uri /$uri /index.html;
|
try_files $uri /$uri /index.html;
|
||||||
add_header Cache-Control "public, max-age=30, stale-while-revalidate=30";
|
add_header Cache-Control "public, max-age=30, stale-while-revalidate=30";
|
||||||
}
|
}
|
||||||
|
|
||||||
access_log /var/log/nginx/call-access.log;
|
access_log /var/log/nginx/call-access.log;
|
||||||
error_log /var/log/nginx/call-error.log;
|
error_log /var/log/nginx/call-error.log;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,14 +3,14 @@ server {
|
||||||
listen [::]:80;
|
listen [::]:80;
|
||||||
listen 443 ssl;
|
listen 443 ssl;
|
||||||
listen [::]:443 ssl;
|
listen [::]:443 ssl;
|
||||||
|
|
||||||
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
|
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
|
||||||
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
|
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
|
||||||
include /etc/letsencrypt/options-ssl-nginx.conf;
|
include /etc/letsencrypt/options-ssl-nginx.conf;
|
||||||
ssl_dhparam /etc/ssl/dhparams.pem;
|
ssl_dhparam /etc/ssl/dhparams.pem;
|
||||||
|
|
||||||
server_name example.com;
|
server_name example.com;
|
||||||
|
|
||||||
location /.well-known/matrix/client {
|
location /.well-known/matrix/client {
|
||||||
return 200 '{
|
return 200 '{
|
||||||
"m.homeserver": {"base_url": "https://matrix.example.com"},
|
"m.homeserver": {"base_url": "https://matrix.example.com"},
|
||||||
|
@ -23,7 +23,7 @@ server {
|
||||||
default_type application/json;
|
default_type application/json;
|
||||||
add_header 'Access-Control-Allow-Origin' '*';
|
add_header 'Access-Control-Allow-Origin' '*';
|
||||||
}
|
}
|
||||||
|
|
||||||
location /.well-known/matrix/server {
|
location /.well-known/matrix/server {
|
||||||
return 200 '{"m.server": "matrix.example.com"}';
|
return 200 '{"m.server": "matrix.example.com"}';
|
||||||
default_type application/json;
|
default_type application/json;
|
||||||
|
@ -44,18 +44,18 @@ server {
|
||||||
default_type application/json;
|
default_type application/json;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
location /.well-known/element/element.json {
|
location /.well-known/element/element.json {
|
||||||
return 200 '{"call": {"widget_url": "https://call.example.com"}}';
|
return 200 '{"call": {"widget_url": "https://call.example.com"}}';
|
||||||
default_type application/json;
|
default_type application/json;
|
||||||
}
|
}
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
if ($scheme = http) {
|
if ($scheme = http) {
|
||||||
return 301 https://$host$request_uri;
|
return 301 https://$host$request_uri;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
access_log /var/log/nginx/example-access.log;
|
access_log /var/log/nginx/example-access.log;
|
||||||
error_log /var/log/nginx/example-error.log;
|
error_log /var/log/nginx/example-error.log;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,27 +3,27 @@ server {
|
||||||
listen [::]:80;
|
listen [::]:80;
|
||||||
listen 443 ssl http2;
|
listen 443 ssl http2;
|
||||||
listen [::]:443 ssl http2;
|
listen [::]:443 ssl http2;
|
||||||
|
|
||||||
ssl_certificate /etc/letsencrypt/live/element.example.com/fullchain.pem;
|
ssl_certificate /etc/letsencrypt/live/element.example.com/fullchain.pem;
|
||||||
ssl_certificate_key /etc/letsencrypt/live/element.example.com/privkey.pem;
|
ssl_certificate_key /etc/letsencrypt/live/element.example.com/privkey.pem;
|
||||||
include /etc/letsencrypt/options-ssl-nginx.conf;
|
include /etc/letsencrypt/options-ssl-nginx.conf;
|
||||||
ssl_dhparam /etc/ssl/dhparams.pem;
|
ssl_dhparam /etc/ssl/dhparams.pem;
|
||||||
|
|
||||||
server_name element.example.com;
|
server_name element.example.com;
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
if ($scheme = http) {
|
if ($scheme = http) {
|
||||||
return 301 https://$host$request_uri;
|
return 301 https://$host$request_uri;
|
||||||
}
|
}
|
||||||
add_header X-Frame-Options SAMEORIGIN;
|
add_header X-Frame-Options SAMEORIGIN;
|
||||||
add_header X-Content-Type-Options nosniff;
|
add_header X-Content-Type-Options nosniff;
|
||||||
add_header X-XSS-Protection "1; mode=block";
|
add_header X-XSS-Protection "1; mode=block";
|
||||||
add_header Content-Security-Policy "frame-ancestors 'self'";
|
add_header Content-Security-Policy "frame-ancestors 'self'";
|
||||||
}
|
}
|
||||||
|
|
||||||
root /usr/share/element-web;
|
root /usr/share/element-web;
|
||||||
index index.html;
|
index index.html;
|
||||||
|
|
||||||
access_log /var/log/nginx/elementweb-access.log;
|
access_log /var/log/nginx/elementweb-access.log;
|
||||||
error_log /var/log/nginx/elementweb-error.log;
|
error_log /var/log/nginx/elementweb-error.log;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
server {
|
server {
|
||||||
listen 443 ssl;
|
listen 443 ssl;
|
||||||
listen [::]:443 ssl;
|
listen [::]:443 ssl;
|
||||||
|
|
||||||
ssl_certificate /etc/letsencrypt/live/livekit.example.com/fullchain.pem;
|
ssl_certificate /etc/letsencrypt/live/livekit.example.com/fullchain.pem;
|
||||||
ssl_certificate_key /etc/letsencrypt/live/livekit.example.com/privkey.pem;
|
ssl_certificate_key /etc/letsencrypt/live/livekit.example.com/privkey.pem;
|
||||||
include /etc/letsencrypt/options-ssl-nginx.conf;
|
include /etc/letsencrypt/options-ssl-nginx.conf;
|
||||||
ssl_dhparam /etc/ssl/dhparams.pem;
|
ssl_dhparam /etc/ssl/dhparams.pem;
|
||||||
|
|
||||||
server_name livekit.example.com;
|
server_name livekit.example.com;
|
||||||
|
|
||||||
# This is lk-jwt-service
|
# This is lk-jwt-service
|
||||||
location ~ ^(/sfu/get|/healthz) {
|
location ~ ^(/sfu/get|/healthz) {
|
||||||
proxy_pass http://[::1]:8080;
|
proxy_pass http://[::1]:8080;
|
||||||
|
@ -18,20 +18,20 @@ server {
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
}
|
}
|
||||||
|
|
||||||
location / {
|
location / {
|
||||||
proxy_pass http://[::1]:7880;
|
proxy_pass http://[::1]:7880;
|
||||||
proxy_set_header Connection "upgrade";
|
proxy_set_header Connection "upgrade";
|
||||||
proxy_set_header Upgrade $http_upgrade;
|
proxy_set_header Upgrade $http_upgrade;
|
||||||
#add_header Access-Control-Allow-Origin "*" always;
|
#add_header Access-Control-Allow-Origin "*" always;
|
||||||
|
|
||||||
proxy_set_header Host $host;
|
proxy_set_header Host $host;
|
||||||
proxy_set_header X-Forwarded-Server $host;
|
proxy_set_header X-Forwarded-Server $host;
|
||||||
proxy_set_header X-Real-IP $remote_addr;
|
proxy_set_header X-Real-IP $remote_addr;
|
||||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||||
proxy_set_header X-Forwarded-Proto $scheme;
|
proxy_set_header X-Forwarded-Proto $scheme;
|
||||||
}
|
}
|
||||||
|
|
||||||
access_log /var/log/nginx/livekit-access.log;
|
access_log /var/log/nginx/livekit-access.log;
|
||||||
error_log /var/log/nginx/livekit-error.log;
|
error_log /var/log/nginx/livekit-error.log;
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,7 @@ server {
|
||||||
location ~ ^/_matrix/client/(r0|v3)/rooms/([^/]*)/report/(.*)$ {
|
location ~ ^/_matrix/client/(r0|v3)/rooms/([^/]*)/report/(.*)$ {
|
||||||
# The r0 endpoint is deprecated but still used by many clients.
|
# The r0 endpoint is deprecated but still used by many clients.
|
||||||
# As of this writing, the v3 endpoint is the up-to-date version.
|
# As of this writing, the v3 endpoint is the up-to-date version.
|
||||||
|
|
||||||
# Alias the regexps, to ensure that they're not rewritten.
|
# Alias the regexps, to ensure that they're not rewritten.
|
||||||
set $room_id $2;
|
set $room_id $2;
|
||||||
set $event_id $3;
|
set $event_id $3;
|
||||||
|
@ -53,7 +53,7 @@ server {
|
||||||
client_max_body_size 50M;
|
client_max_body_size 50M;
|
||||||
proxy_http_version 1.1;
|
proxy_http_version 1.1;
|
||||||
}
|
}
|
||||||
|
|
||||||
# The rest of the admin endpoint shouldn't be public
|
# The rest of the admin endpoint shouldn't be public
|
||||||
location ~ ^/_synapse/admin {
|
location ~ ^/_synapse/admin {
|
||||||
allow 127.0.0.1;
|
allow 127.0.0.1;
|
||||||
|
|
|
@ -1,16 +1,16 @@
|
||||||
server {
|
server {
|
||||||
listen 443 ssl;
|
listen 443 ssl;
|
||||||
listen [::]:443 ssl;
|
listen [::]:443 ssl;
|
||||||
|
|
||||||
ssl_certificate /etc/letsencrypt/live/admin.example.com/fullchain.pem;
|
ssl_certificate /etc/letsencrypt/live/admin.example.com/fullchain.pem;
|
||||||
ssl_certificate_key /etc/letsencrypt/live/admin.example.com/privkey.pem;
|
ssl_certificate_key /etc/letsencrypt/live/admin.example.com/privkey.pem;
|
||||||
include /etc/letsencrypt/options-ssl-nginx.conf;
|
include /etc/letsencrypt/options-ssl-nginx.conf;
|
||||||
ssl_dhparam /etc/ssl/dhparams.pem;
|
ssl_dhparam /etc/ssl/dhparams.pem;
|
||||||
|
|
||||||
server_name admin.example.com;
|
server_name admin.example.com;
|
||||||
|
|
||||||
root /var/www/synapse-admin;
|
root /var/www/synapse-admin;
|
||||||
|
|
||||||
access_log /var/log/nginx/admin-access.log;
|
access_log /var/log/nginx/admin-access.log;
|
||||||
error_log /var/log/nginx/admin-error.log;
|
error_log /var/log/nginx/admin-error.log;
|
||||||
}
|
}
|
||||||
|
|
|
@ -282,7 +282,7 @@ Now that we have defined the workers and/or worker pools, we have to forward
|
||||||
the right traffic to the right workers. The Synapse documentation about
|
the right traffic to the right workers. The Synapse documentation about
|
||||||
[available worker
|
[available worker
|
||||||
types](https://element-hq.github.io/synapse/latest/workers.html#available-worker-applications)
|
types](https://element-hq.github.io/synapse/latest/workers.html#available-worker-applications)
|
||||||
lists which endpoints a specific worker type can handle.
|
lists which endpoints a specific worker type can handle.
|
||||||
|
|
||||||
## Login
|
## Login
|
||||||
|
|
||||||
|
@ -323,7 +323,7 @@ requests:
|
||||||
```
|
```
|
||||||
|
|
||||||
We forward those to our 2 worker pools making sure the heavy initial syncs go
|
We forward those to our 2 worker pools making sure the heavy initial syncs go
|
||||||
to the `initial_sync` pool, and the normal ones to `normal_sync`. We use the
|
to the `initial_sync` pool, and the normal ones to `normal_sync`. We use the
|
||||||
variable `$sync`for that, which we defined in maps.conf.
|
variable `$sync`for that, which we defined in maps.conf.
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
# should be stored under /etc/nginx/conf.d so that it is loaded whenever nginx starts.
|
# should be stored under /etc/nginx/conf.d so that it is loaded whenever nginx starts.
|
||||||
|
|
||||||
# List of allowed origins, can only send one.
|
# List of allowed origins, can only send one.
|
||||||
map $http_origin $allow_origin {
|
map $http_origin $allow_origin {
|
||||||
~^https?://element.example.com$ $http_origin;
|
~^https?://element.example.com$ $http_origin;
|
||||||
~^https?://call.example.com$ $http_origin;
|
~^https?://call.example.com$ $http_origin;
|
||||||
~^https?://someserver.example.com$ $http_origin;
|
~^https?://someserver.example.com$ $http_origin;
|
||||||
|
|
|
@ -192,7 +192,7 @@ See the included files for more elaborate examples, and check
|
||||||
Synapse should probably be able to send out e-mails; notifications for those
|
Synapse should probably be able to send out e-mails; notifications for those
|
||||||
who want that, and password reset for those who need one.
|
who want that, and password reset for those who need one.
|
||||||
|
|
||||||
You configure this under the section `email` (yes, really).
|
You configure this under the section `email` (yes, really).
|
||||||
|
|
||||||
First of all, you need an SMTP-server that is configured to send e-mail for
|
First of all, you need an SMTP-server that is configured to send e-mail for
|
||||||
your domain. Configuring that is out of scope, we'll assume we can use the
|
your domain. Configuring that is out of scope, we'll assume we can use the
|
||||||
|
@ -294,7 +294,7 @@ password_config:
|
||||||
|
|
||||||
With this bit, we configure Synapse to let users pick and change their own
|
With this bit, we configure Synapse to let users pick and change their own
|
||||||
passwords, as long as they meet the configured conditions. Mind you: `pepper` is
|
passwords, as long as they meet the configured conditions. Mind you: `pepper` is
|
||||||
a secret random string that should *NEVER* be changed after initial setup.
|
a secret random string that should *NEVER* be changed after initial setup.
|
||||||
|
|
||||||
But in a bigger environment you'll probably want to use some authentication
|
But in a bigger environment you'll probably want to use some authentication
|
||||||
backend, such as LDAP. LDAP is configured by means of a module (see
|
backend, such as LDAP. LDAP is configured by means of a module (see
|
||||||
|
|
|
@ -4,7 +4,7 @@ password_config:
|
||||||
policy:
|
policy:
|
||||||
enabled: only_for_reauth
|
enabled: only_for_reauth
|
||||||
localdb_enabled: false
|
localdb_enabled: false
|
||||||
|
|
||||||
password_providers:
|
password_providers:
|
||||||
- module: "ldap_auth_provider.LdapAuthProvider"
|
- module: "ldap_auth_provider.LdapAuthProvider"
|
||||||
config:
|
config:
|
||||||
|
|
|
@ -153,7 +153,7 @@ listeners:
|
||||||
type: http
|
type: http
|
||||||
resources:
|
resources:
|
||||||
- names:
|
- names:
|
||||||
- replication
|
- replication
|
||||||
```
|
```
|
||||||
|
|
||||||
This means Synapse will create two sockets under `/run/matrix-synapse`: one
|
This means Synapse will create two sockets under `/run/matrix-synapse`: one
|
||||||
|
|
|
@ -3,54 +3,54 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
}
|
}
|
||||||
|
|
||||||
.column {
|
.column {
|
||||||
flex-basis: calc(50% - 10px); /* Adjust width as necessary */
|
flex-basis: calc(50% - 10px); /* Adjust width as necessary */
|
||||||
}
|
}
|
||||||
|
|
||||||
.list {
|
.list {
|
||||||
list-style-type: none;
|
list-style-type: none;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
.list-item {
|
.list-item {
|
||||||
margin-bottom: 10px;
|
margin-bottom: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.link {
|
.link {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
color: inherit;
|
color: inherit;
|
||||||
}
|
}
|
||||||
|
|
||||||
.title {
|
.title {
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hr-list {
|
.hr-list {
|
||||||
border: 0;
|
border: 0;
|
||||||
border-top: 1px solid #ccc;
|
border-top: 1px solid #ccc;
|
||||||
margin-top: 5px;
|
margin-top: 5px;
|
||||||
margin-bottom: 5px;
|
margin-bottom: 5px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.list-item {
|
.list-item {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: space-between;
|
justify-content: space-between;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.content {
|
.content {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
.link {
|
.link {
|
||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
.time {
|
.time {
|
||||||
text-align: right;
|
text-align: right;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
.grid-container {
|
.grid-container {
|
||||||
display: grid;
|
display: grid;
|
||||||
|
@ -78,12 +78,12 @@
|
||||||
.read-more-link {
|
.read-more-link {
|
||||||
color: #FF6E00; /* Use the variable defined in theme.json */
|
color: #FF6E00; /* Use the variable defined in theme.json */
|
||||||
}
|
}
|
||||||
|
|
||||||
.center-wrapper {
|
.center-wrapper {
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
align-items: center;
|
align-items: center;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.grid-container-small {
|
.grid-container-small {
|
||||||
|
@ -102,7 +102,7 @@
|
||||||
display: flex;
|
display: flex;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.hr-list2 {
|
.hr-list2 {
|
||||||
|
@ -115,7 +115,7 @@
|
||||||
.header-with-image2 {
|
.header-with-image2 {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
}
|
}
|
||||||
|
|
||||||
.header-with-image2 img {
|
.header-with-image2 img {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
|
||||||
|
|
|
@ -34,7 +34,7 @@ features3:
|
||||||
button:
|
button:
|
||||||
enable: true
|
enable: true
|
||||||
label: "Learn more"
|
label: "Learn more"
|
||||||
link: "/oid"
|
link: "/oid"
|
||||||
|
|
||||||
- title: "Tweag"
|
- title: "Tweag"
|
||||||
image: "/images/users.svg"
|
image: "/images/users.svg"
|
||||||
|
@ -42,7 +42,7 @@ features3:
|
||||||
button:
|
button:
|
||||||
enable: true
|
enable: true
|
||||||
label: "Learn more"
|
label: "Learn more"
|
||||||
link: "/tweag"
|
link: "/tweag"
|
||||||
|
|
||||||
- title: "NORDUnet"
|
- title: "NORDUnet"
|
||||||
image: "/images/users.svg"
|
image: "/images/users.svg"
|
||||||
|
@ -50,7 +50,7 @@ features3:
|
||||||
button:
|
button:
|
||||||
enable: true
|
enable: true
|
||||||
label: "Learn more"
|
label: "Learn more"
|
||||||
link: "/nordunet"
|
link: "/nordunet"
|
||||||
|
|
||||||
features:
|
features:
|
||||||
- title: "Fediversity Grants"
|
- title: "Fediversity Grants"
|
||||||
|
@ -59,7 +59,7 @@ features:
|
||||||
button:
|
button:
|
||||||
enable: true
|
enable: true
|
||||||
label: "Learn more"
|
label: "Learn more"
|
||||||
link: "/grants"
|
link: "/grants"
|
||||||
|
|
||||||
features2:
|
features2:
|
||||||
- title: "Individuals"
|
- title: "Individuals"
|
||||||
|
|
|
@ -18,5 +18,5 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
|
@ -58,7 +58,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</article>
|
</article>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -61,4 +61,4 @@
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
{{ end }}
|
{{ end }}
|
|
@ -14,14 +14,14 @@
|
||||||
<a class="link" href="{{ .RelPermalink }}" style="color: #FF6E00">{{ .Title }}</a>
|
<a class="link" href="{{ .RelPermalink }}" style="color: #FF6E00">{{ .Title }}</a>
|
||||||
</div>
|
</div>
|
||||||
<hr class="hr-list">
|
<hr class="hr-list">
|
||||||
|
|
||||||
<time class="g time" datetime="{{ dateFormat "2006-01-02" .Date }}">{{ dateFormat "02-01-2006" .Date }}</time>
|
<time class="g time" datetime="{{ dateFormat "2006-01-02" .Date }}">{{ dateFormat "02-01-2006" .Date }}</time>
|
||||||
<hr class="hr-list2">
|
<hr class="hr-list2">
|
||||||
</li>
|
</li>
|
||||||
<div class="line"></div>
|
<div class="line"></div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
</section>
|
</section>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
|
@ -63,7 +63,7 @@
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</article>
|
</article>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="grid-container">
|
<div class="grid-container">
|
||||||
{{ range $i, $e := .Params.features3 }}
|
{{ range $i, $e := .Params.features3 }}
|
||||||
|
|
||||||
<div class="grid-item">
|
<div class="grid-item">
|
||||||
|
|
||||||
<div class="header-with-image2">
|
<div class="header-with-image2">
|
||||||
|
@ -89,7 +89,7 @@
|
||||||
>
|
>
|
||||||
<h2 class="mb-4">{{ .title | markdownify }}</h2>
|
<h2 class="mb-4">{{ .title | markdownify }}</h2>
|
||||||
<p class="mb-8 text-lg">{{ .content | markdownify }}</p>
|
<p class="mb-8 text-lg">{{ .content | markdownify }}</p>
|
||||||
<ul>
|
<ul>
|
||||||
{{ range .bulletpoints }}
|
{{ range .bulletpoints }}
|
||||||
<li class="relative mb-4 pl-6">
|
<li class="relative mb-4 pl-6">
|
||||||
<i class="fa fa-check absolute left-0 top-1.5"></i>
|
<i class="fa fa-check absolute left-0 top-1.5"></i>
|
||||||
|
@ -147,7 +147,7 @@
|
||||||
{{ if gt (len (where .Site.RegularPages "Section" "blog")) 0 }}
|
{{ if gt (len (where .Site.RegularPages "Section" "blog")) 0 }}
|
||||||
<section>
|
<section>
|
||||||
|
|
||||||
<div class="center-wrapper">
|
<div class="center-wrapper">
|
||||||
<div class="grid-container-small">
|
<div class="grid-container-small">
|
||||||
<div class="column">
|
<div class="column">
|
||||||
<ul class="list">
|
<ul class="list">
|
||||||
|
@ -164,7 +164,7 @@
|
||||||
<a class="link" href="{{ .RelPermalink }}" style="color: #FF6E00">{{ .Title }}</a>
|
<a class="link" href="{{ .RelPermalink }}" style="color: #FF6E00">{{ .Title }}</a>
|
||||||
</div>
|
</div>
|
||||||
<hr class="hr-list">
|
<hr class="hr-list">
|
||||||
|
|
||||||
<time class="g time" datetime="{{ dateFormat "2006-01-02" .Date }}">{{ dateFormat "02-01-2006" .Date }}</time>
|
<time class="g time" datetime="{{ dateFormat "2006-01-02" .Date }}">{{ dateFormat "02-01-2006" .Date }}</time>
|
||||||
<hr class="hr-list2">
|
<hr class="hr-list2">
|
||||||
</li>
|
</li>
|
||||||
|
@ -189,7 +189,7 @@
|
||||||
<a class="link" href="{{ .RelPermalink }}" style="color: #FF6E00">{{ .Title }}</a>
|
<a class="link" href="{{ .RelPermalink }}" style="color: #FF6E00">{{ .Title }}</a>
|
||||||
</div>
|
</div>
|
||||||
<hr class="hr-list">
|
<hr class="hr-list">
|
||||||
|
|
||||||
<time class="g time" datetime="{{ dateFormat "2006-01-02" .Date }}">{{ dateFormat "02-01-2006" .Date }}</time>
|
<time class="g time" datetime="{{ dateFormat "2006-01-02" .Date }}">{{ dateFormat "02-01-2006" .Date }}</time>
|
||||||
<hr class="hr-list2">
|
<hr class="hr-list2">
|
||||||
</li>
|
</li>
|
||||||
|
|
Loading…
Add table
Reference in a new issue