Skip to content

Commit 8828b70

Browse files
authored
Merge pull request #3235 from element-hq/fkwp/refactor_dev_backend
DevX: Properly server .well-known and use endpoint routing as described in self-hosting.md
2 parents aee30d8 + b7e5b81 commit 8828b70

20 files changed

+343
-227
lines changed

README.md

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -192,11 +192,6 @@ To use it, create a local config by, e.g.,
192192
The `config.devenv.json` config should work with the backend development
193193
environment as outlined in the next section out of box.
194194

195-
> [!NOTE]
196-
> Be aware, that this `config.devenv.json` is exposing a deprecated fallback
197-
> LiveKit config key. If the homeserver advertises SFU backend via
198-
> `.well-known/matrix/client` this has precedence.
199-
200195
You're now ready to launch the development server:
201196

202197
```sh
@@ -212,12 +207,20 @@ See also:
212207
A docker compose file `dev-backend-docker-compose.yml` is provided to start the
213208
whole stack of components which is required for a local development environment:
214209

215-
- Minimum Synapse Setup (servername: `synapse.localhost`)
216-
- LiveKit JWT Service (Note requires Federation API and hence a TLS reverse proxy)
217-
- Minimum TLS reverse proxy (servername: `synapse.localhost`) Note certificates
218-
are valid for at least 10 years from now
210+
- Minimum Synapse Setup (servername: `synapse.m.localhost`)
211+
- LiveKit Authorization Service (Note requires Federation API and hence a TLS reverse proxy)
219212
- Minimum LiveKit SFU Setup using dev defaults for config
220213
- Redis db for completeness
214+
- Minimum `localhost` Certificate Authority (CA) for Transport Layer Security (TLS)
215+
- Hostnames: `m.localhost`, `*.m.localhost`
216+
- Add [./backend/dev_tls_local-ca.crt](./backend/dev_tls_local-ca.crt) to your web browsers trusted
217+
certificates
218+
- Minimum TLS reverse proxy for
219+
- Synapse homeserver: `synapse.m.localhost`
220+
- MatrixRTC backend: `matrix-rtc.m.localhost`
221+
- Local Element Call development `call.m.localhost` via `yarn dev --host `
222+
- Element Web `app.m.localhost`
223+
- Note certificates will expire on Thu, 03 May 2035 10:32:02 GMT
221224

222225
These use a test 'secret' published in this repository, so this must be used
223226
only for local development and **_never be exposed to the public Internet._**
@@ -230,6 +233,16 @@ yarn backend
230233
# podman-compose -f dev-backend-docker-compose.yml up
231234
```
232235

236+
> [!NOTE]
237+
> To ensure your local development frontend functions properly, you’ll need to
238+
> add certificate exceptions in your browser for `https://localhost:3000`,
239+
> `https://matrix-rtc.m.localhost/livekit/jwt/healthz` and
240+
> `https://synapse.m.localhost/.well-known/matrix/client`. This can be either
241+
> done by adding the minimum localhost CA
242+
> ([./backend/dev_tls_local-ca.crt](./backend/dev_tls_local-ca.crt)) to your web
243+
> browsers trusted certificates or by simply copying and pasting each URL into
244+
> your browser’s address bar and follow the prompts to add the exception.
245+
233246
### Playwright tests
234247

235248
Our Playwright tests run automatically as part of our CI along with our other

backend/dev_homeserver.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
server_name: "synapse.localhost"
2-
public_baseurl: http://synapse.localhost:8008/
1+
server_name: "synapse.m.localhost"
2+
public_baseurl: https://synapse.m.localhost/
33

44
pid_file: /data/homeserver.pid
55

backend/dev_nginx.conf

Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
# Synapse reverse proxy including .well-known/matrix/client
2+
server {
3+
listen 80;
4+
listen [::]:80;
5+
listen 443 ssl;
6+
listen 8448 ssl;
7+
listen [::]:443 ssl;
8+
listen [::]:8448 ssl;
9+
server_name synapse.m.localhost;
10+
ssl_certificate /root/ssl/cert.pem;
11+
ssl_certificate_key /root/ssl/key.pem;
12+
13+
# well-known config adding rtc_foci backend
14+
# Note well-known is currently not effective due to:
15+
# https://spec.matrix.org/v1.12/client-server-api/#well-known-uri the spec
16+
# says it must be at https://$server_name/... (implied port 443) Hence, we
17+
# currently rely for local development environment on deprecated config.json
18+
# setting for livekit_service_url
19+
location /.well-known/matrix/client {
20+
add_header Access-Control-Allow-Origin *;
21+
return 200 '{"m.homeserver": {"base_url": "https://synapse.m.localhost"}, "org.matrix.msc4143.rtc_foci": [{"type": "livekit", "livekit_service_url": "https://matrix-rtc.m.localhost/livekit/jwt"}]}';
22+
default_type application/json;
23+
}
24+
25+
# Reverse proxy for Matrix Synapse Homeserver
26+
# This is also required for development environment.
27+
# Reason: the lk-jwt-service uses the federation API for the openid token
28+
# verification, which requires TLS
29+
location / {
30+
proxy_pass "http://homeserver:8008";
31+
proxy_http_version 1.1;
32+
proxy_set_header Upgrade $http_upgrade;
33+
proxy_set_header Connection "upgrade";
34+
proxy_set_header Host $host;
35+
proxy_set_header X-Forwarded-For $remote_addr;
36+
proxy_set_header X-Forwarded-Proto $scheme;
37+
}
38+
39+
error_page 500 502 503 504 /50x.html;
40+
41+
}
42+
43+
# MatrixRTC reverse proxy
44+
# - MatrixRTC Authorization Service
45+
# - LiveKit SFU websocket signaling connection
46+
server {
47+
listen 80;
48+
listen [::]:80;
49+
listen 443 ssl;
50+
listen [::]:443 ssl;
51+
listen 8448 ssl;
52+
listen [::]:8448 ssl;
53+
server_name matrix-rtc.m.localhost;
54+
ssl_certificate /root/ssl/cert.pem;
55+
ssl_certificate_key /root/ssl/key.pem;
56+
57+
58+
location ^~ /livekit/jwt/ {
59+
60+
proxy_set_header Host $host;
61+
proxy_set_header X-Real-IP $remote_addr;
62+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
63+
proxy_set_header X-Forwarded-Proto $scheme;
64+
65+
# JWT Service running at port 8080
66+
proxy_pass http://auth-server:8080/;
67+
}
68+
69+
location ^~ /livekit/sfu/ {
70+
proxy_set_header Host $host;
71+
proxy_set_header X-Real-IP $remote_addr;
72+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
73+
proxy_set_header X-Forwarded-Proto $scheme;
74+
75+
proxy_send_timeout 120;
76+
proxy_read_timeout 120;
77+
proxy_buffering off;
78+
79+
proxy_set_header Accept-Encoding gzip;
80+
proxy_set_header Upgrade $http_upgrade;
81+
proxy_set_header Connection "upgrade";
82+
83+
# LiveKit SFU websocket connection running at port 7880
84+
proxy_pass http://livekit-sfu:7880/;
85+
}
86+
87+
error_page 500 502 503 504 /50x.html;
88+
89+
}
90+
91+
# Convenience reverse proxy for the call.m.localhost domain to yarn dev --host
92+
server {
93+
listen 80;
94+
listen [::]:80;
95+
server_name call.m.localhost;
96+
97+
return 301 https://$host$request_uri;
98+
}
99+
100+
server {
101+
listen 443 ssl;
102+
listen [::]:443 ssl;
103+
server_name call.m.localhost;
104+
ssl_certificate /root/ssl/cert.pem;
105+
ssl_certificate_key /root/ssl/key.pem;
106+
107+
108+
location ^~ / {
109+
110+
proxy_set_header Host $host;
111+
proxy_set_header X-Real-IP $remote_addr;
112+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
113+
proxy_set_header X-Forwarded-Proto $scheme;
114+
115+
proxy_pass https://host.docker.internal:3000;
116+
proxy_ssl_verify off;
117+
118+
}
119+
120+
error_page 500 502 503 504 /50x.html;
121+
122+
}
123+
124+
# Convenience reverse proxy app.m.localhost for element web
125+
server {
126+
listen 80;
127+
listen [::]:80;
128+
server_name app.m.localhost;
129+
130+
return 301 https://$host$request_uri;
131+
}
132+
133+
server {
134+
listen 443 ssl;
135+
listen [::]:443 ssl;
136+
server_name app.m.localhost;
137+
ssl_certificate /root/ssl/cert.pem;
138+
ssl_certificate_key /root/ssl/key.pem;
139+
140+
141+
location ^~ / {
142+
143+
proxy_set_header Host $host;
144+
proxy_set_header X-Real-IP $remote_addr;
145+
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
146+
proxy_set_header X-Forwarded-Proto $scheme;
147+
148+
proxy_pass http://element-web:81;
149+
proxy_ssl_verify off;
150+
151+
}
152+
153+
error_page 500 502 503 504 /50x.html;
154+
155+
}

backend/dev_tls_local-ca.crt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDGjCCAgKgAwIBAgIUGdiFHhH4KL2pqBjMQHQ+PVIkSV8wDQYJKoZIhvcNAQEL
3+
BQAwHjEcMBoGA1UEAwwTRWxlbWVudCBDYWxsIERldiBDQTAeFw0yNTA1MDUxMDMy
4+
MDJaFw0zNTA1MDMxMDMyMDJaMB4xHDAaBgNVBAMME0VsZW1lbnQgQ2FsbCBEZXYg
5+
Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDA2y0hjmNn1vRsVSdy
6+
8IOfo8N1q9UgkhQWpGKXzPh+D5d1fnuJEmHIVwtDEtS/PwQ43LTmegChPtKH9jdT
7+
tG0IihW9Ja5YNG+9xAwaoA/sB3CGCBYsz+2/XjVUpXoBJXIPoFBWsn+K0oeFw9fw
8+
eRO1z9abM4cl+LjKzMNM8CCyu9uI1MaGjYez2YIWvG854VucLxX7HSlMJxZNWnie
9+
Ui7fMakuJhB2+aiIQjdKxy4E5RHNhzYG/LXhvP+wBYBDPNRsP3rtzEaE9HAveL9K
10+
FGqd3R4cBia6r1WIXmpAzyu5RGP5Eou0TZlGkal96/bF0I7q/pKlL23Jt1BLPiQU
11+
KGKrAgMBAAGjUDBOMB0GA1UdDgQWBBQJqBjMu61c1p24txw/y+kv3D+V6DAfBgNV
12+
HSMEGDAWgBQJqBjMu61c1p24txw/y+kv3D+V6DAMBgNVHRMEBTADAQH/MA0GCSqG
13+
SIb3DQEBCwUAA4IBAQB8m2YfFGLugNt5vAAOvNxVqDA8c72yCVYr3CBCpmTIEY5Z
14+
d3qVGhG9//ux6+J8ntkSwd9nV5GJyYXHukCG1VavnAWolWdNF/WAllf0jhLuz7kD
15+
/cJnuI1By4tBsBmSz851i6HJ4t5k99Be+6GQVzi0e7zzfxTHZE4xP2J6Ox8QbPsP
16+
n0m76nIp/WbWaJqzvIIjJhmUUPPv+4wN+eOArgjiGLzptM2qTtGZtd0c9nS5gvep
17+
+mEbSUN9zkhAroZf80wf+hEvy+fJ94VbZ9QjTzTg7odZLrsXGIe8DaG63EYRQ25b
18+
W5iYBAreln5fGSt7qHsGfqwZibTEk/Lx3dydO1Kg
19+
-----END CERTIFICATE-----

backend/dev_tls_local-ca.key

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
-----BEGIN PRIVATE KEY-----
2+
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDA2y0hjmNn1vRs
3+
VSdy8IOfo8N1q9UgkhQWpGKXzPh+D5d1fnuJEmHIVwtDEtS/PwQ43LTmegChPtKH
4+
9jdTtG0IihW9Ja5YNG+9xAwaoA/sB3CGCBYsz+2/XjVUpXoBJXIPoFBWsn+K0oeF
5+
w9fweRO1z9abM4cl+LjKzMNM8CCyu9uI1MaGjYez2YIWvG854VucLxX7HSlMJxZN
6+
WnieUi7fMakuJhB2+aiIQjdKxy4E5RHNhzYG/LXhvP+wBYBDPNRsP3rtzEaE9HAv
7+
eL9KFGqd3R4cBia6r1WIXmpAzyu5RGP5Eou0TZlGkal96/bF0I7q/pKlL23Jt1BL
8+
PiQUKGKrAgMBAAECggEAAPX2kxi5AQ7ul82SzT1KgpSXyDHLdYaUyAoYnaX9RO+B
9+
8ylmpyeqygs4+KQS4EMJm9jpo85Oy37bIKdG3kljU6wQcKlL5Y+ZUOo1nzpV6fid
10+
hGVs6ts8VXw8KshKQ9AyccZ8L/pirUfgOffgTwfjY7/90zceAL/s98GuZWc62nkX
11+
55joQv/OikqYfAGP/U6Bp2Zyf23DwJB09Z3B6NnZj/ZyAbDrDEHuA15LhCOcCczp
12+
IU/mFEywBPHT9Tg4w4Beq78PeAETvku2UalYRLhP3RLlXr2oEbwUtINRVt2QjZ85
13+
Esps4uCqL/mgQluIebtudD9HL/YMlNPXue1mDXFxJQKBgQDgZZY4yJBcf488T1V6
14+
HNm06b/LvVGj253pKgw14hpY1xQu3Ymgzv1GEqzhSYdzxhpmj0tMUNHxAp+YdGQu
15+
SZ0wcPKhw0aYVkIjDRYDC3Wn5GJhyIEYHGYMo/n4l49UzHRBPOTDzp49DkHTKBgh
16+
XgIIazYT3CkjTIMRrkUv+qfIPQKBgQDcBGu/mqbjxs4sN3zqPS4aB21o6t6W0sXs
17+
ZP9w6RlTPQi5U2oRbftjZtYc0bbEgkMUImB1HwYPQT5pJ+MyC414xDvSc2exBr5d
18+
To6yyPIy78Tf5PHM12fpKV92nSvoz/pSjYcGxxDtKfPqu+t8mOJfjCV1lLLA+xuB
19+
DDaE4p8dBwKBgQCdAne6A5v/HMH8UQZeCxHJpESvKiiVnnU/UEx651nID7XvlNNX
20+
0X0mKqsMd4ZvW43ddSYan/JF0LAa3FW8jYWO/3jF9vzOWoysOdvNBZetgf/Uq5ao
21+
aDZ/YbzmVCXWD7jIbPMkjs3pqrAkL0mzDzQc7+dGviWKrV6IYIfIqnn7gQKBgDCz
22+
vdIk/qpO+JZrFfiX4Fucp0hhLTJ/p5ZDaRPqVVPKn+K+Jy2ChfIj8mNgvK9VEloj
23+
nexvGJ1J2PHYBX+vdPp1nbRhHWPfVUY8PHQw7QP/dToGaMvqJrNDGEGeWvjnCMc7
24+
UtdaO1H0Rm0AegkTopB56lTTvJnhO95eALd7nrMDAoGAEPdzJtWoKafp49svhSj0
25+
hiXQv2SPBwVUN4LZ4SOWiXUcmYYm80aNpYKLkBxYjrfqFWhE7NUHLGp8YorQWKY2
26+
acD9AReHk/xku0ABy6jeYmSCmCxASxst5liKD+l12sk0gB0rk5MBxB4Uu1MIbQZ2
27+
aCASX3AVD2/XyC2MKkzc8Eg=
28+
-----END PRIVATE KEY-----

backend/dev_tls_m.localhost.crt

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
-----BEGIN CERTIFICATE-----
2+
MIIDZzCCAk+gAwIBAgIUXizLjwkdqepX0bh0K3abeJxj68IwDQYJKoZIhvcNAQEL
3+
BQAwHjEcMBoGA1UEAwwTRWxlbWVudCBDYWxsIERldiBDQTAeFw0yNTA1MDUxMzU5
4+
MTFaFw0zNTA1MDMxMzU5MTFaMBgxFjAUBgNVBAMMDSoubS5sb2NhbGhvc3QwggEi
5+
MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrzGSScSgaQuZdELGFYiLiYRwr
6+
LKyUdNr0rsPcOo0bvbeZ3zQMeUMRNlA69zGFdarumiDRXUoAmZI39WmH95aX3d+A
7+
U7EFnWev7xpWSVhSYj8T0d4rke8HjGk3LpaffJ93tbJuagBIH1ouuN6AOdzWs8hp
8+
RYIomWleEeeuVnnfaMwaXOdc+ihJJ6wzm2hwQSfdpjZPWBDd/DFft1ZXxIZOCjDs
9+
rEIiI7uU8iZPLB3QEM/tgxSSAOxrcKvQvxZokk+FD7aMJFP71IfieLCEzMTP1VXa
10+
tP7UTAKAqB2NyDJ8m3IHbOINiqcdFvFR3R1D9bXOYE4oRynNvYZrQUGnL2RtAgMB
11+
AAGjgaIwgZ8wHwYDVR0jBBgwFoAUCagYzLutXNaduLccP8vpL9w/legwCQYDVR0T
12+
BAIwADALBgNVHQ8EBAMCBaAwEwYDVR0lBAwwCgYIKwYBBQUHAwEwMAYDVR0RBCkw
13+
J4IJbG9jYWxob3N0ggttLmxvY2FsaG9zdIINKi5tLmxvY2FsaG9zdDAdBgNVHQ4E
14+
FgQUfdh1p52ZgWyZcBgBXGwKi4EnUE0wDQYJKoZIhvcNAQELBQADggEBAKrHEuB6
15+
33j8+EwSHw3zrvt/DRXK2BDHI1Ir9JcztSunaKAjZXVvf/dvZp0Xs1dEdJIdnv6G
16+
iZYhBbOqDqpQZbf2h/h0kuu5yZSBUdnQXnYNxlhp2UaC/UEgw5iZT/p1rm7RjVie
17+
y4Dp2WytV5iZOLmLj6xDvd3DXazgJPWIRX8p8qJZbKTkwCjTr7nDIj8jjG1sVFf7
18+
1RJBO5/6WSnImrpDmlLUrvjiKvbxcdseDJyBOhTwdRdSk4S2M+s5tR5j2I1gXLOq
19+
J5ioN76+SCrTY0K0WKRy9oOXWO1/X3+VYcekp+0F3SGkd5w17jylCv1XIGHAdEsQ
20+
v2z2/aMI/7sAD2Q=
21+
-----END CERTIFICATE-----

backend/dev_tls_m.localhost.key

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
-----BEGIN PRIVATE KEY-----
2+
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCrzGSScSgaQuZd
3+
ELGFYiLiYRwrLKyUdNr0rsPcOo0bvbeZ3zQMeUMRNlA69zGFdarumiDRXUoAmZI3
4+
9WmH95aX3d+AU7EFnWev7xpWSVhSYj8T0d4rke8HjGk3LpaffJ93tbJuagBIH1ou
5+
uN6AOdzWs8hpRYIomWleEeeuVnnfaMwaXOdc+ihJJ6wzm2hwQSfdpjZPWBDd/DFf
6+
t1ZXxIZOCjDsrEIiI7uU8iZPLB3QEM/tgxSSAOxrcKvQvxZokk+FD7aMJFP71Ifi
7+
eLCEzMTP1VXatP7UTAKAqB2NyDJ8m3IHbOINiqcdFvFR3R1D9bXOYE4oRynNvYZr
8+
QUGnL2RtAgMBAAECggEAJaFQii8U/KOYt9vXNoMnZvSkaeSQLLhn2V6Kciu1CtWE
9+
aMTWLsFE6nk+G5xXkYcTmM3T0GghtH3u5CjyI6EcsEkeEorCZJt0wbmayDmqiekR
10+
LfMzOdHuTHX5+edPgMGYYG1BFyRKyYFsjH1b5zRFZhXdGQnrl5760GsVlz9D1KZQ
11+
iHcT+q1S2tmZeoUukQnADENKXUMCyTGM5FCddgNtsWnGDsTDayh7hUdvDkB+mW4G
12+
lSp+BZuc3PCwpbD6qkXvfugWs6CUAAtXoV3ceWgxQ+TEnNlwxaG1AyugfgNUBolk
13+
8xgeZt4r5QId03jsHDf7hpBAofcaCd5EMIIQYFvWoQKBgQDlbAvAzEFPTZZn2nRV
14+
Xagw4xjqVc1LLEKLCWq0N5rEkwn0h90Dz5N7/3NuonP/sIDsDHCbyiOYBI1Ck6Xi
15+
0WuB+OyKDh+xeF2mekN9G9ywPahdK5lT/TVsxXFyZlwtVv1x/6KBO4yv5URizxqU
16+
gyAPDDxfD/KcNjkOBaodWEwQGQKBgQC/s2gPDBtQkjLwkHXchBomLww5eLlVrac1
17+
WK4UX6uSdOgrjJ375OOgMTxe8NVZdOuAKytGXRWDwgH3nVWvuZhe7dGlX3JMuSer
18+
e9VwDpBESrvqcR4ruL6wm8wej6BXyjH0wD3FHb0S5HfuBDxTn+4bDwrbRzOUMNgy
19+
lSppuflxdQKBgQDiZcIfazFT8evn5nMAvuC4BZNTxIJHmZC9JfjPiUPIkpWzYtOe
20+
7BvNtKOT3Op9uw8uYYRKqKqBXJSNy6ha8XCXHS9HeXKbLn20SFkLQBCDNwVLlDfF
21+
40zyXtF6JDr4XyzSb4NM5pgKCER5AYloXxGm59s3sEQpFXUuOjbKqJS/GQKBgAoI
22+
c7vF4HAZFr1sch62cz/oWnVvkhOf4Q5zs7ixQSOLJtOQqnwSgK9TpFs7s47ZBbJR
23+
kBRAru2Ua9Hv1Bo8VnMxczV6h1roneDlvEf/GyHX33nnrbKQGrrXjJlU3wl5NaAf
24+
p5v3cHvapUQ5yIZ/6lBUOzc6xMJOxCHxmKSr7Rg5AoGAbEE4lt6Xh2dnBPJ81eNI
25+
IDrw/3ITY53qAY4Bx88CByIFuu8CEUdUZprh98jSl6ic1tMinZfUhRMwABLrUD51
26+
DGst8iGLPD9u83iMcUHI/L+p7AbxrKLvWXZrF5UZm440c9mSWqfhPaTBosPtNDsG
27+
LfETwH1flKXMTXd2xA9RTE4=
28+
-----END PRIVATE KEY-----

backend/dev_tls_setup

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
#!/bin/bash
2+
3+
# Step 1: Create a Root CA key and cert
4+
openssl genrsa -out dev_tls_local-ca.key 2048
5+
openssl req -x509 -new -nodes \
6+
-days 3650 \
7+
-subj "/CN=Element Call Dev CA" \
8+
-key dev_tls_local-ca.key \
9+
-out dev_tls_local-ca.crt \
10+
-sha256 -addext "basicConstraints=CA:TRUE"
11+
12+
# Step 2: Create a private key and CSR for *.m.localhost
13+
openssl req -new -nodes -newkey rsa:2048 \
14+
-keyout dev_tls_m.localhost.key \
15+
-out dev_tls_m.localhost.csr \
16+
-subj "/CN=*.m.localhost"
17+
18+
# Step 3: Sign the CSR with your CA
19+
openssl x509 \
20+
-req -in dev_tls_m.localhost.csr \
21+
-CA dev_tls_local-ca.crt -CAkey dev_tls_local-ca.key \
22+
-CAcreateserial \
23+
-out dev_tls_m.localhost.crt \
24+
-days 3650 \
25+
-sha256 \
26+
-extfile <( cat <<EOF
27+
authorityKeyIdentifier=keyid,issuer
28+
basicConstraints=CA:FALSE
29+
keyUsage = digitalSignature, keyEncipherment
30+
extendedKeyUsage = serverAuth
31+
subjectAltName = @alt_names
32+
33+
[alt_names]
34+
DNS.1 = localhost
35+
DNS.2 = m.localhost
36+
DNS.3 = *.m.localhost
37+
EOF
38+
)

backend/ew.test.config.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
{
22
"default_server_config": {
33
"m.homeserver": {
4-
"base_url": "http://synapse.localhost:8008",
5-
"server_name": "synapse.localhost"
4+
"base_url": "https://synapse.m.localhost",
5+
"server_name": "synapse.m.localhost"
66
}
77
},
88
"disable_custom_urls": false,

backend/playwright_homeserver.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
1-
server_name: "synapse.localhost"
2-
public_baseurl: http://synapse.localhost:8008/
1+
server_name: "synapse.m.localhost"
2+
public_baseurl: https://synapse.m.localhost/
33

44
pid_file: /data/homeserver.pid
55

0 commit comments

Comments
 (0)