mirror of
https://github.com/element-hq/element-docker-demo.git
synced 2026-03-26 11:50:58 +03:00
blank secrets to aid bootstrap
This commit is contained in:
@@ -56,5 +56,6 @@ docker compose exec mas mas-cli -c /data/config.yaml doctor
|
|||||||
* [x] sort out the networking
|
* [x] sort out the networking
|
||||||
* [x] make nginx do something useful when running on a local workstation
|
* [x] make nginx do something useful when running on a local workstation
|
||||||
* [ ] hook up letsencrypt to nginx properly
|
* [ ] hook up letsencrypt to nginx properly
|
||||||
* [ ] hook up livekit properly
|
* [x] hook up livekit properly
|
||||||
* [ ] make it work
|
* [x] make it work
|
||||||
|
|
||||||
@@ -6,13 +6,15 @@ secrets:
|
|||||||
postgres_password:
|
postgres_password:
|
||||||
file: secrets/postgres/postgres_password
|
file: secrets/postgres/postgres_password
|
||||||
synapse_signing_key:
|
synapse_signing_key:
|
||||||
file: secrets/synapse/${DOMAIN}.signing.key
|
file: secrets/synapse/signing.key
|
||||||
livekit_api_key:
|
livekit_api_key:
|
||||||
file: secrets/livekit/livekit_api_key
|
file: secrets/livekit/livekit_api_key
|
||||||
livekit_secret_key:
|
livekit_secret_key:
|
||||||
file: secrets/livekit/livekit_secret_key
|
file: secrets/livekit/livekit_secret_key
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
# XXX: consider factor out secret generation from the compose.yml
|
||||||
|
|
||||||
# dependencies for optionally generating default configs + secrets
|
# dependencies for optionally generating default configs + secrets
|
||||||
generate-synapse-secrets:
|
generate-synapse-secrets:
|
||||||
image: ghcr.io/element-hq/synapse:latest
|
image: ghcr.io/element-hq/synapse:latest
|
||||||
@@ -287,6 +289,7 @@ services:
|
|||||||
build:
|
build:
|
||||||
# evil hack to pull in bash so we can run an entrypoint.sh
|
# evil hack to pull in bash so we can run an entrypoint.sh
|
||||||
# FIXME: it's a bit wasteful; the alternative would be to modify lk-jwt-service to pick up secrets from disk
|
# FIXME: it's a bit wasteful; the alternative would be to modify lk-jwt-service to pick up secrets from disk
|
||||||
|
# Another alternative would be to factor out secret generation from compose.yml and create an .env up front
|
||||||
dockerfile_inline: |
|
dockerfile_inline: |
|
||||||
FROM ghcr.io/element-hq/lk-jwt-service:latest-ci AS builder
|
FROM ghcr.io/element-hq/lk-jwt-service:latest-ci AS builder
|
||||||
FROM alpine:latest
|
FROM alpine:latest
|
||||||
|
|||||||
10
init/init.sh
10
init/init.sh
@@ -9,7 +9,7 @@ set -e
|
|||||||
# by this point, synapse & mas should generated default config files & secrets
|
# by this point, synapse & mas should generated default config files & secrets
|
||||||
# via generate-synapse-secrets.sh and generate-mas-secrets.sh
|
# via generate-synapse-secrets.sh and generate-mas-secrets.sh
|
||||||
|
|
||||||
if [[ ! -f /secrets/synapse/${DOMAIN}.signing.key ]] # TODO: check for existence of other secrets?
|
if [[ ! -s /secrets/synapse/signing.key ]] # TODO: check for existence of other secrets?
|
||||||
then
|
then
|
||||||
# extract synapse secrets from the config and move them into ./secrets
|
# extract synapse secrets from the config and move them into ./secrets
|
||||||
echo "Extracting generated synapse secrets..."
|
echo "Extracting generated synapse secrets..."
|
||||||
@@ -19,7 +19,7 @@ then
|
|||||||
yq .$secret /data/synapse/homeserver.yaml.default > /secrets/synapse/$secret
|
yq .$secret /data/synapse/homeserver.yaml.default > /secrets/synapse/$secret
|
||||||
done
|
done
|
||||||
# ...and files too, just to keep all our secrets in one place
|
# ...and files too, just to keep all our secrets in one place
|
||||||
mv /data/synapse/${DOMAIN}.signing.key /secrets/synapse
|
mv /data/synapse/${DOMAIN}.signing.key /secrets/synapse/signing.key
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ! -f /secrets/mas/secrets ]] # TODO: check for existence of other secrets?
|
if [[ ! -f /secrets/mas/secrets ]] # TODO: check for existence of other secrets?
|
||||||
@@ -36,18 +36,18 @@ then
|
|||||||
head -c16 /dev/urandom | base64 | tr -d '=' > /secrets/mas/client.secret
|
head -c16 /dev/urandom | base64 | tr -d '=' > /secrets/mas/client.secret
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ ! -f /secrets/postgres/postgres_password ]]
|
if [[ ! -s /secrets/postgres/postgres_password ]]
|
||||||
then
|
then
|
||||||
mkdir -p /secrets/postgres
|
mkdir -p /secrets/postgres
|
||||||
head -c16 /dev/urandom | base64 | tr -d '=' > /secrets/postgres/postgres_password
|
head -c16 /dev/urandom | base64 | tr -d '=' > /secrets/postgres/postgres_password
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p /secrets/livekit
|
mkdir -p /secrets/livekit
|
||||||
if [[ ! -f /secrets/livekit/livekit_api_key ]]
|
if [[ ! -s /secrets/livekit/livekit_api_key ]]
|
||||||
then
|
then
|
||||||
(echo -n API; (head -c8 /dev/urandom | base64)) | tr -d '=' > /secrets/livekit/livekit_api_key
|
(echo -n API; (head -c8 /dev/urandom | base64)) | tr -d '=' > /secrets/livekit/livekit_api_key
|
||||||
fi
|
fi
|
||||||
if [[ ! -f /secrets/livekit/livekit_secret_key ]]
|
if [[ ! -s /secrets/livekit/livekit_secret_key ]]
|
||||||
then
|
then
|
||||||
head -c28 /dev/urandom | base64 | tr -d '=' > /secrets/livekit/livekit_secret_key
|
head -c28 /dev/urandom | base64 | tr -d '=' > /secrets/livekit/livekit_secret_key
|
||||||
fi
|
fi
|
||||||
|
|||||||
0
secrets/livekit/livekit_api_key
Normal file
0
secrets/livekit/livekit_api_key
Normal file
0
secrets/livekit/livekit_secret_key
Normal file
0
secrets/livekit/livekit_secret_key
Normal file
0
secrets/postgres/postgres_password
Normal file
0
secrets/postgres/postgres_password
Normal file
0
secrets/synapse/signing.key
Normal file
0
secrets/synapse/signing.key
Normal file
Reference in New Issue
Block a user