diff --git a/public/v4/apps/matrix-synapse.yml b/public/v4/apps/matrix-synapse.yml index e07d75c..037685b 100644 --- a/public/v4/apps/matrix-synapse.yml +++ b/public/v4/apps/matrix-synapse.yml @@ -1,118 +1,116 @@ captainVersion: 4 services: - $$cap_appname-db: - image: postgres:$$cap_postgres_version - restart: unless-stopped - environment: - POSTGRES_DB: synapse_db - POSTGRES_PASSWORD: $$cap_db_password - POSTGRES_USER: synapse_user - POSTGRES_INITDB_ARGS: --encoding='UTF8' --lc-collate='C' --lc-ctype='C' - volumes: - - $$cap_appname-db:/var/lib/postgresql/data - caproverExtra: - notExposeAsWebApp: true - - $$cap_appname: - restart: unless-stopped - environment: - TZ: $$cap_time_zone - volumes: - - $$cap_appname-data:/data - caproverExtra: - containerHttpPort: '8008' - dockerfileLines: - - FROM matrixdotorg/synapse:$$cap_synapse_version - - RUN mkdir /data/ - - ENV SYNAPSE_SERVER_NAME=$$cap_appname.$$cap_root_domain - - ENV SYNAPSE_REPORT_STATS=$$cap_synapse_stats - - RUN /start.py generate - - RUN echo '\nserve_server_wellknown\072 true' >> /data/homeserver.yaml - - RUN echo "\nenable_registration\072 $$cap_enable_registration \nenable_registration_without_verification\072 true" >> /data/homeserver.yaml - - RUN echo "\nmax_upload_size\072 $$cap_max_upload_sizeM" >> /data/homeserver.yaml - - RUN sed -i '/^server_name.*/a public_baseurl\o072 "https://$$cap_appname.$$cap_root_domain"' /data/homeserver.yaml - - RUN sed -i 's/name\o072 sqlite3/name\o072 psycopg2/g' /data/homeserver.yaml - - RUN sed -i 's/database\o072 .*homeserver\.db/database\o072 synapse_db\n user\o072 synapse_user\n password\o072 $$cap_db_password\n host\o072 srv-captain--$$cap_appname-db\n port\o072 5432\n/g' /data/homeserver.yaml - + $$cap_appname-db: + image: postgres:$$cap_postgres_version + restart: unless-stopped + environment: + POSTGRES_DB: synapse_db + POSTGRES_PASSWORD: $$cap_db_password + POSTGRES_USER: synapse_user + POSTGRES_INITDB_ARGS: --encoding='UTF8' --lc-collate='C' --lc-ctype='C' + volumes: + - $$cap_appname-db:/var/lib/postgresql/data + caproverExtra: + notExposeAsWebApp: true + $$cap_appname: + restart: unless-stopped + environment: + TZ: $$cap_time_zone + volumes: + - $$cap_appname-data:/data + caproverExtra: + containerHttpPort: '8008' + dockerfileLines: + - FROM matrixdotorg/synapse:$$cap_synapse_version + - RUN mkdir /data/ + - ENV SYNAPSE_SERVER_NAME=$$cap_appname.$$cap_root_domain + - ENV SYNAPSE_REPORT_STATS=$$cap_synapse_stats + - RUN /start.py generate + - RUN echo '\nserve_server_wellknown\072 true' >> /data/homeserver.yaml + - RUN echo "\nenable_registration\072 $$cap_enable_registration \nenable_registration_without_verification\072 true" >> /data/homeserver.yaml + - RUN echo "\nmax_upload_size\072 $$cap_max_upload_sizeM" >> /data/homeserver.yaml + - RUN sed -i '/^server_name.*/a public_baseurl\o072 "https://$$cap_appname.$$cap_root_domain"' /data/homeserver.yaml + - RUN sed -i 's/name\o072 sqlite3/name\o072 psycopg2/g' /data/homeserver.yaml + - RUN sed -i 's/database\o072 .*homeserver\.db/database\o072 synapse_db\n user\o072 synapse_user\n password\o072 $$cap_db_password\n host\o072 srv-captain--$$cap_appname-db\n port\o072 5432\n/g' /data/homeserver.yaml caproverOneClickApp: - variables: - - id: '$$cap_synapse_version' - label: Synapse Version - defaultValue: 'v1.63.1' - description: Check out their Docker page for the valid tags https://hub.docker.com/r/matrixdotorg/synapse/tags - validRegex: '/^v[0-9]{1,}|latest$/' - - id: '$$cap_time_zone' - label: Time zone - defaultValue: Europe/Berlin - description: The time zone of your server https://en.wikipedia.org/wiki/List_of_tz_database_time_zones - validRegex: '/.{1,}/' - - id: '$$cap_synapse_stats' - label: Report stats - defaultValue: 'no' - description: 'Report stats' - validRegex: '/^(yes|no)$/i' - - id: '$$cap_enable_registration' - label: Enable public registration - defaultValue: 'false' - description: >- - Set this to true if you want EVERYONE to be able to register. - It's recommended to set this to false and create users manually. - validRegex: '/^(true|false)$/i' - - id: '$$cap_max_upload_size' - label: Max upload size - defaultValue: '300' - description: >- - The maximum size of a file that can be uploaded, in megabytes. - - If you set this higher than 500, you will will also need to increase the nginx "client_max_body_size". - validRegex: '/^[0-9]{1,}$/' - - id: '$$cap_postgres_version' - label: Postgres version - defaultValue: '14' - description: >- - The version of postgres that you want to use. - You can find the valid versions here: https://hub.docker.com/r/postgres/postgres/tags - validRegex: '/^[0-9]{1,}|latest$/' - - id: '$$cap_db_password' - label: Database password - defaultValue: $$cap_gen_random_hex(20) - description: >- - The password for the Synapse database. - validRegex: '/^[0-9a-zA-Z]{1,}$/' - instructions: - start: >- - Synapse is a server implementation of the matrix protocol that allows you to host your own messaging server. - - Matrix is build to federate with other servers, so you can communicate with people from other servers. - - More information about matrix can be found here: https://matrix.org/ - end: >- - Almost done. - - Enable and force https in the web interface - - Wait 30 seconds, go to https://$$cap_appname.$$cap_root_domain and should be able to see "It works! Synapse is running" - - $$cap_appname.$$cap_root_domain is the domain you enter in the custom homeserver field of your client - - Remember this is just the server, you also need a client like https://app.element.io/ to use this app. - - - If you set public registration to false, you can create new users with the following command: - - sudo docker exec -it $(sudo docker ps | grep -o srv-captain--$$cap_appname.*) register_new_matrix_user http://localhost:8008 -c /data/homeserver.yaml - - - You can always change the config file located in /var/lib/docker/volumes/srv-captain--$$cap_appname-data/_data/homeserver.yaml - - - link to the the configuration manual: https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html - - after a change restart the container by clicking "Save & Update" + variables: + - id: '$$cap_synapse_version' + label: Synapse Version + defaultValue: 'v1.63.1' + description: Check out their Docker page for the valid tags https://hub.docker.com/r/matrixdotorg/synapse/tags + validRegex: '/^v[0-9]{1,}|latest$/' + - id: '$$cap_time_zone' + label: Time zone + defaultValue: Europe/Berlin + description: The time zone of your server https://en.wikipedia.org/wiki/List_of_tz_database_time_zones + validRegex: '/.{1,}/' + - id: '$$cap_synapse_stats' + label: Report stats + defaultValue: 'no' + description: 'Report stats' + validRegex: '/^(yes|no)$/i' + - id: '$$cap_enable_registration' + label: Enable public registration + defaultValue: 'false' + description: >- + Set this to true if you want EVERYONE to be able to register. + It's recommended to set this to false and create users manually. + validRegex: '/^(true|false)$/i' + - id: '$$cap_max_upload_size' + label: Max upload size + defaultValue: '300' + description: >- + The maximum size of a file that can be uploaded, in megabytes. - displayName: Matrix Synapse - isOfficial: true - description: Server for the matrix protocol - documentation: https://github.com/matrix-org/synapse/tree/develop/docker + If you set this higher than 500, you will will also need to increase the nginx "client_max_body_size". + validRegex: '/^[0-9]{1,}$/' + - id: '$$cap_postgres_version' + label: Postgres version + defaultValue: '14' + description: >- + The version of postgres that you want to use. + You can find the valid versions here: https://hub.docker.com/r/postgres/postgres/tags + validRegex: '/^[0-9]{1,}|latest$/' + - id: '$$cap_db_password' + label: Database password + defaultValue: $$cap_gen_random_hex(20) + description: >- + The password for the Synapse database. + validRegex: '/^[0-9a-zA-Z]{1,}$/' + instructions: + start: >- + Synapse is a server implementation of the matrix protocol that allows you to host your own messaging server. + + Matrix is build to federate with other servers, so you can communicate with people from other servers. + + More information about matrix can be found here: https://matrix.org/ + end: >- + Almost done. + + Enable and force https in the web interface + + Wait 30 seconds, go to https://$$cap_appname.$$cap_root_domain and should be able to see "It works! Synapse is running" + + $$cap_appname.$$cap_root_domain is the domain you enter in the custom homeserver field of your client + + Remember this is just the server, you also need a client like https://app.element.io/ to use this app. + + + If you set public registration to false, you can create new users with the following command: + + sudo docker exec -it $(sudo docker ps | grep -o srv-captain--$$cap_appname.*) register_new_matrix_user http://localhost:8008 -c /data/homeserver.yaml + + + You can always change the config file located in /var/lib/docker/volumes/srv-captain--$$cap_appname-data/_data/homeserver.yaml + + + link to the the configuration manual: https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html + + after a change restart the container by clicking "Save & Update" + + displayName: Matrix Synapse + isOfficial: true + description: Server for the matrix protocol + documentation: https://github.com/matrix-org/synapse/tree/develop/docker