parent
5ab56b0dcd
commit
b89bbbcdf6
@ -0,0 +1,27 @@ |
||||
version: '3' |
||||
services: |
||||
postgres: |
||||
image: postgres:13.4-alpine |
||||
restart: unless-stopped |
||||
volumes: |
||||
- ./data/postgresdata:/var/lib/postgresql/data |
||||
environment: |
||||
- POSTGRES_DB=synapse |
||||
- POSTGRES_USER=synapse |
||||
- POSTGRES_PASSWORD=STRONGPASSWORD |
||||
|
||||
element: |
||||
image: vectorim/element-web:latest |
||||
restart: unless-stopped |
||||
volumes: |
||||
- ./element-config.json:/app/config.json |
||||
ports: |
||||
- "5000:80" |
||||
|
||||
synapse: |
||||
image: matrixdotorg/synapse:latest |
||||
restart: unless-stopped |
||||
volumes: |
||||
- ./data/synapse:/data |
||||
ports: |
||||
- "5008:8008" |
@ -0,0 +1,73 @@ |
||||
{ |
||||
"default_server_config": { |
||||
"m.homeserver": { |
||||
"base_url": "https://matrix.hackerspace.zone", |
||||
"server_name": "hackerspace.zone" |
||||
}, |
||||
"m.identity_server": { |
||||
"base_url": "https://vector.im" |
||||
} |
||||
}, |
||||
"brand": "Element", |
||||
"integrations_ui_url": "https://scalar.vector.im/", |
||||
"integrations_rest_url": "https://scalar.vector.im/api", |
||||
"integrations_widgets_urls": [ |
||||
"https://scalar.vector.im/_matrix/integrations/v1", |
||||
"https://scalar.vector.im/api", |
||||
"https://scalar-staging.vector.im/_matrix/integrations/v1", |
||||
"https://scalar-staging.vector.im/api", |
||||
"https://scalar-staging.riot.im/scalar/api" |
||||
], |
||||
"hosting_signup_link": "https://element.io/matrix-services?utm_source=element-web&utm_medium=web", |
||||
"bug_report_endpoint_url": "https://element.io/bugreports/submit", |
||||
"uisi_autorageshake_app": "element-auto-uisi", |
||||
"showLabsSettings": true, |
||||
"piwik": { |
||||
"url": "https://piwik.riot.im/", |
||||
"siteId": 1, |
||||
"policyUrl": "https://element.io/cookie-policy" |
||||
}, |
||||
"roomDirectory": { |
||||
"servers": [ |
||||
"matrix.org", |
||||
"gitter.im", |
||||
"libera.chat" |
||||
] |
||||
}, |
||||
"enable_presence_by_hs_url": { |
||||
"https://matrix.org": false, |
||||
"https://matrix-client.matrix.org": false |
||||
}, |
||||
"terms_and_conditions_links": [ |
||||
{ |
||||
"url": "https://element.io/privacy", |
||||
"text": "Privacy Policy" |
||||
}, |
||||
{ |
||||
"url": "https://element.io/cookie-policy", |
||||
"text": "Cookie Policy" |
||||
} |
||||
], |
||||
"hostSignup": { |
||||
"brand": "Element Home", |
||||
"cookiePolicyUrl": "https://element.io/cookie-policy", |
||||
"domains": [ |
||||
"matrix.org" |
||||
], |
||||
"privacyPolicyUrl": "https://element.io/privacy", |
||||
"termsOfServiceUrl": "https://element.io/terms-of-service", |
||||
"url": "https://ems.element.io/element-home/in-app-loader" |
||||
}, |
||||
"sentry": { |
||||
"dsn": "https://029a0eb289f942508ae0fb17935bd8c5@sentry.matrix.org/6", |
||||
"environment": "develop" |
||||
}, |
||||
"posthog": { |
||||
"projectApiKey": "phc_Jzsm6DTm6V2705zeU5dcNvQDlonOR68XvX2sh1sEOHO", |
||||
"apiHost": "https://posthog.element.io" |
||||
}, |
||||
"features": { |
||||
"feature_spotlight": true |
||||
}, |
||||
"map_style_url": "https://api.maptiler.com/maps/streets/style.json?key=fU3vlMsMn4Jb6dnEIFsx" |
||||
} |
@ -0,0 +1 @@ |
||||
# variables |
@ -0,0 +1,60 @@ |
||||
#!/bin/bash |
||||
die() { echo >&2 "$@" ; exit 1 ; } |
||||
|
||||
DIRNAME="$(dirname $0)" |
||||
cd "$DIRNAME" |
||||
source ../env.production || die "no top levle env?" |
||||
source env.production || die "no local env?" |
||||
|
||||
docker-compose down |
||||
|
||||
HOMESERVER_YAML="data/synapse/homeserver.yaml" |
||||
if [ -r "$HOMESERVER_YAML" ]; then |
||||
echo "home server already configured? delete data directory to force reconfig" |
||||
exit 0 |
||||
fi |
||||
|
||||
# This will create a *delegated* matrix server, |
||||
# where the "servername" is just the top level domain, |
||||
# but it is hosted on "matrix.DOMAIN_NAME". |
||||
# the syntax here is confusing and it is not clear in |
||||
# the docs *which* have to be updated. |
||||
docker run -it --rm \ |
||||
-v "`pwd`/data/synapse:/data" \ |
||||
-e "SYNAPSE_SERVER_NAME=$DOMAIN_NAME" \ |
||||
-e SYNAPSE_REPORT_STATS=yes \ |
||||
matrixdotorg/synapse:latest generate \ |
||||
|| die "unable to generate synapse config" |
||||
|
||||
MATRIX_CLIENT_SECRET="$(openssl rand -hex 20)" |
||||
#MATRIX_CLIENT_SECRET="abcdef1234" |
||||
|
||||
cat <<EOF >> "$HOMESERVER_YAML" |
||||
web_client_location: https://${MATRIX_HOSTNAME}/ |
||||
public_baseurl: https://${MATRIX_HOSTNAME}/ |
||||
oidc_providers: |
||||
- idp_id: keycloak |
||||
idp_name: "KeyCloak" |
||||
issuer: "https://${KEYCLOAK_HOSTNAME}/realms/${REALM}" |
||||
client_id: "synapse" |
||||
client_secret: "${MATRIX_CLIENT_SECRET}" |
||||
scopes: ["openid", "profile"] |
||||
user_mapping_provider: |
||||
config: |
||||
localpart_template: "{{ user.preferred_username }}" |
||||
display_name_template: "{{ user.name }}" |
||||
EOF |
||||
|
||||
../keycloak/client-delete 'synapse' || echo "client did not exist?" |
||||
|
||||
../keycloak/client-create << EOF || die "unable to create client id" |
||||
{ |
||||
"clientId": "synapse", |
||||
"rootUrl": "https://$MATRIX_HOSTNAME/", |
||||
"adminUrl": "https://$MATRIX_HOSTNAME/", |
||||
"redirectUris": [ "https://$MATRIX_HOSTNAME/*" ], |
||||
"webOrigins": [ "https://$MATRIX_HOSTNAME" ], |
||||
"clientAuthenticatorType": "client-secret", |
||||
"secret": "$MATRIX_CLIENT_SECRET" |
||||
} |
||||
EOF |
Loading…
Reference in new issue