inital setup after poc
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
.env
|
||||||
59
README.md
59
README.md
@@ -1,3 +1,62 @@
|
|||||||
# compose-matrix
|
# compose-matrix
|
||||||
|
|
||||||
Matrix Stack bestehend aus Matrix Server "Synapse" sowie dem Frontend "Element".
|
Matrix Stack bestehend aus Matrix Server "Synapse" sowie dem Frontend "Element".
|
||||||
|
|
||||||
|
## Inital setup
|
||||||
|
1. Copy env file: `cp env.sample .env`
|
||||||
|
2. Edit env file: `nano .env`
|
||||||
|
1. Basedir: Full path to dir with compose file (important for swarm shares)
|
||||||
|
2. Versionnumbers
|
||||||
|
3. DB settings
|
||||||
|
4. Domain! (no default)
|
||||||
|
2. Genreate inital config for synapse:
|
||||||
|
1. `source .env`
|
||||||
|
2. `docker run -it --rm -v --env-file .env ${BASEDIR:-.}/files/:/data -e SYNAPSE_SERVER_NAME=$DOMAIN -e SYNAPSE_REPORT_STATS=no matrixdotorg/synapse:latest generate`
|
||||||
|
- This generate certs and basic inital config (homeserver.yml) for $DOMAIN only for first setup needed
|
||||||
|
|
||||||
|
Postgress by default not in use!
|
||||||
|
Default DB is SQLite.
|
||||||
|
|
||||||
|
3. (optional) Set db in config: `nano $BASEDIR/files/synapse/homeserver.yaml`
|
||||||
|
4. Edit element config: `nano files/element-config.json`
|
||||||
|
1. set "default_server_name" to your domain for Synapse
|
||||||
|
2. set "m.homeserver" => "base_url" to your domain for Element
|
||||||
|
3. Hint: by default connection to main servers of matrix.org is enabled
|
||||||
|
4. Hint: by default jitsi (cloud!) is uses for **group** videocalls
|
||||||
|
- > [^jitsi]: 1:1 calls, or calls between you and one other person, do not use Jitsi. Instead, those calls work directly between clients or via TURN servers configured on the respective homeservers.
|
||||||
|
- Hint: Jisi can be selfhost (no templace exist atm)
|
||||||
|
|
||||||
|
5. Run stack `docker compose up`
|
||||||
|
|
||||||
|
## howto
|
||||||
|
|
||||||
|
### enable registration
|
||||||
|
1. edit `homeserver.yaml`
|
||||||
|
1. set "enable_registration" to "True"
|
||||||
|
2. set "enable_registration_without_verification" to "True" # note: maybe not comming soon..
|
||||||
|
|
||||||
|
For disable ... well you know, set "enable_registration" to "False"
|
||||||
|
|
||||||
|
### create user via cli
|
||||||
|
1. Import .env or set $DOMAIN manually
|
||||||
|
2. Set env $USERNAME and $USERPASS oder replace it directly
|
||||||
|
```
|
||||||
|
source .env
|
||||||
|
docker exec -it matrix_app_1 register_new_matrix_user -u $USERNAME -p $USERPASS -a -c /data/homeserver.yaml $DOMAIN
|
||||||
|
```
|
||||||
|
|
||||||
|
## todo
|
||||||
|
- setup script to auto edits
|
||||||
|
- db in homeserver.yml
|
||||||
|
- domain in config.json (element)
|
||||||
|
|
||||||
|
## sources
|
||||||
|
- https://docs.docker.com/reference/cli/docker/container/run/
|
||||||
|
- https://adfinis.com/en/blog/how-to-set-up-your-own-matrix-org-homeserver-with-federation/
|
||||||
|
- https://zerowidthjoiner.net/2020/03/20/setting-up-matrix-and-riot-with-docker
|
||||||
|
- https://linuxhandbook.com/install-matrix-synapse-docker/
|
||||||
|
- https://cyberhost.uk/element-matrix-setup/
|
||||||
|
- https://raw.githubusercontent.com/vector-im/element-web/v1.5.13/config.sample.json
|
||||||
|
- https://github.com/element-hq/element-web/blob/develop/docs/jitsi.md
|
||||||
|
|
||||||
|
[^jitsi]: https://github.com/element-hq/element-web/blob/develop/docs/jitsi.md
|
||||||
84
docker-compose.yml
Normal file
84
docker-compose.yml
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
services:
|
||||||
|
## matrix server
|
||||||
|
synapse:
|
||||||
|
image: matrixdotorg/synapse:${SYNAPSETAG:-latest}
|
||||||
|
restart: unless-stopped
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
ports:
|
||||||
|
- 8008:8008
|
||||||
|
- 91:91
|
||||||
|
- 92:92
|
||||||
|
deploy:
|
||||||
|
replicas: 1
|
||||||
|
placement:
|
||||||
|
max_replicas_per_node: 1
|
||||||
|
update_config:
|
||||||
|
parallelism: 1
|
||||||
|
delay: 10s
|
||||||
|
volumes:
|
||||||
|
- ${BASEDIR:-.}/files/synapse:/data
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
- matrixnet
|
||||||
|
|
||||||
|
## server db (optional; default is sqlite3, if not use remove db from depends_on)
|
||||||
|
db:
|
||||||
|
image: postgres:${POSTGRESSTAG:-11} # recommend to set fix version ! db major release can have breaking changes
|
||||||
|
restart: unless-stopped
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
volumes:
|
||||||
|
- ${BASEDIR:-.}/files/postgresdata:/var/lib/postgresql/data
|
||||||
|
environment:
|
||||||
|
- POSTGRES_DB=${DBNAME:-synapse}
|
||||||
|
- POSTGRES_USER=${DBUSER:-synapse}
|
||||||
|
- POSTGRES_PASSWORD=${DBPASS:-synapse}
|
||||||
|
- POSTGRES_INITDB_ARGS=--lc-collate C --lc-ctype C --encoding UTF8
|
||||||
|
networks:
|
||||||
|
- matrixnet
|
||||||
|
|
||||||
|
## server (user / channel) managment (optional)
|
||||||
|
# synapse-admin:
|
||||||
|
# image: awesometechnologies/synapse-admin:${SYNAPSEADMINTAG:-latest}
|
||||||
|
# restart: unless-stopped
|
||||||
|
# env_file:
|
||||||
|
# - .env
|
||||||
|
# depends_on:
|
||||||
|
# - synapse
|
||||||
|
# ports:
|
||||||
|
# - 8888:80
|
||||||
|
# networks:
|
||||||
|
# - backend
|
||||||
|
# - matrixnet
|
||||||
|
|
||||||
|
## webfrontend (optional)
|
||||||
|
element:
|
||||||
|
image: vectorim/element-web:${ELEMENTTAG:-latest}
|
||||||
|
restart: unless-stopped
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
depends_on:
|
||||||
|
- synapse
|
||||||
|
volumes:
|
||||||
|
- ${BASEDIR:-.}/files/element-config.json:/app/config.json
|
||||||
|
ports:
|
||||||
|
- 8080:80
|
||||||
|
- 8443:8443
|
||||||
|
deploy:
|
||||||
|
replicas: 1
|
||||||
|
placement:
|
||||||
|
max_replicas_per_node: 1
|
||||||
|
update_config:
|
||||||
|
parallelism: 1
|
||||||
|
delay: 10s
|
||||||
|
networks:
|
||||||
|
- backend
|
||||||
|
|
||||||
|
networks:
|
||||||
|
backend:
|
||||||
|
name: ${INTRANET:-backend}
|
||||||
|
# external: true
|
||||||
|
matrixnet:
|
||||||
16
env.sample
Normal file
16
env.sample
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
#BASEDIR=
|
||||||
|
#INTRANET=maxtrix-network
|
||||||
|
|
||||||
|
# versionen
|
||||||
|
#SYNAPSETAG=
|
||||||
|
#POSTGRESSTAG=
|
||||||
|
#SYNAPSEADMINTAG=
|
||||||
|
#ELEMENTTAG=
|
||||||
|
|
||||||
|
# db settings
|
||||||
|
DBNAME=synapse
|
||||||
|
DBUSER=synapse
|
||||||
|
DBPASS=STRONGPASSWORD
|
||||||
|
|
||||||
|
# application settings
|
||||||
|
DOMAIN=
|
||||||
56
files/element-config.json
Normal file
56
files/element-config.json
Normal file
@@ -0,0 +1,56 @@
|
|||||||
|
{
|
||||||
|
"default_server_config": {
|
||||||
|
"m.homeserver": {
|
||||||
|
"base_url": "https://matrix-client.matrix.org",
|
||||||
|
"server_name": "matrix.org"
|
||||||
|
},
|
||||||
|
"m.identity_server": {
|
||||||
|
"base_url": "https://vector.im"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"disable_custom_urls": false,
|
||||||
|
"disable_guests": true,
|
||||||
|
"disable_login_language_selector": false,
|
||||||
|
"disable_3pid_login": false,
|
||||||
|
"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"
|
||||||
|
],
|
||||||
|
"integrations_jitsi_widget_url": "https://scalar.vector.im/api/widgets/jitsi.html",
|
||||||
|
"bug_report_endpoint_url": "https://riot.im/bugreports/submit",
|
||||||
|
"defaultCountryCode": "DE",
|
||||||
|
"showLabsSettings": false,
|
||||||
|
"features": {
|
||||||
|
"feature_pinning": "labs",
|
||||||
|
"feature_custom_status": "labs",
|
||||||
|
"feature_custom_tags": "labs",
|
||||||
|
"feature_state_counters": "labs"
|
||||||
|
},
|
||||||
|
"default_federate": true,
|
||||||
|
"default_theme": "light",
|
||||||
|
"roomDirectory": {
|
||||||
|
"servers": [
|
||||||
|
"matrix.org"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"welcomeUserId": "@riot-bot:matrix.org",
|
||||||
|
"piwik": {
|
||||||
|
"url": "https://piwik.riot.im/",
|
||||||
|
"whitelistedHSUrls": ["https://matrix.org"],
|
||||||
|
"whitelistedISUrls": ["https://vector.im", "https://matrix.org"],
|
||||||
|
"siteId": 1
|
||||||
|
},
|
||||||
|
"enable_presence_by_hs_url": {
|
||||||
|
"https://matrix.org": false,
|
||||||
|
"https://matrix-client.matrix.org": false
|
||||||
|
},
|
||||||
|
"settingDefaults": {
|
||||||
|
"breadcrumbs": true
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user