From a3d3cdf5d9fcfc086f7f83c4e9a4833f0e24e111 Mon Sep 17 00:00:00 2001 From: Maximilian Bosch Date: Mon, 8 Apr 2024 16:10:47 +0200 Subject: nixos/matrix-synapse: don't use `services.postgresql.initialScript` in setup example Closes #285688 This is misleading because `initialScript` will only be executed at the *very first* run of postgresql. I.e. when deploying synapse to a server with an existing postgresql, this won't work. We don't have a good way of automatically provisioning databases _declaratively_, so for now just explain what needs to be done here and leave it to the user how to include this into their deployment. --- nixos/modules/services/matrix/synapse.md | 29 +++++++++++++++++++++-------- 1 file changed, 21 insertions(+), 8 deletions(-) (limited to 'nixos') diff --git a/nixos/modules/services/matrix/synapse.md b/nixos/modules/services/matrix/synapse.md index 7f6587ce09df8..0ce13550d5b22 100644 --- a/nixos/modules/services/matrix/synapse.md +++ b/nixos/modules/services/matrix/synapse.md @@ -18,7 +18,27 @@ around Matrix. [Synapse](https://github.com/element-hq/synapse) is the reference homeserver implementation of Matrix from the core development -team at matrix.org. The following configuration example will set up a +team at matrix.org. + +Before deploying synapse server, a postgresql database must be set up. +For that, please make sure that postgresql is running and the following +SQL statements to create a user & database called `matrix-synapse` were +executed before synapse starts up: + +```sql +CREATE ROLE "matrix-synapse"; +CREATE DATABASE "matrix-synapse" WITH OWNER "matrix-synapse" + TEMPLATE template0 + LC_COLLATE = "C" + LC_CTYPE = "C"; +``` + +Usually, it's sufficient to do this once manually before +continuing with the installation. + +Please make sure to set a different password. + +The following configuration example will set up a synapse server for the `example.org` domain, served from the host `myhostname.example.org`. For more information, please refer to the @@ -41,13 +61,6 @@ in { networking.firewall.allowedTCPPorts = [ 80 443 ]; services.postgresql.enable = true; - services.postgresql.initialScript = pkgs.writeText "synapse-init.sql" '' - CREATE ROLE "matrix-synapse" WITH LOGIN PASSWORD 'synapse'; - CREATE DATABASE "matrix-synapse" WITH OWNER "matrix-synapse" - TEMPLATE template0 - LC_COLLATE = "C" - LC_CTYPE = "C"; - ''; services.nginx = { enable = true; -- cgit 1.4.1