diff options
| author | Irene Knapp <ireneista@internetsafetylabs.org> | 2025-06-05 18:01:02 -0700 |
|---|---|---|
| committer | Irene Knapp <ireneista@internetsafetylabs.org> | 2025-06-05 18:04:16 -0700 |
| commit | aecfac7a404b86b26d28bfe2a3077d3b0a41eee4 (patch) | |
| tree | c22cd7ba6160ab266b071b3ef7db2e2d6a4ee974 /services/mattermost/default.nix | |
| parent | bf3a4dff20feead2a87e5833988344fcc7970611 (diff) | |
add database setup; export everything from the flake as a module
database.nix is substantially copied from the ISL config repo, with a few changes to make it more generic and usable by others I also removed stuff in mattermost.nix that wasn't doing anything; I'll detail that in comments Change-Id: I0ff6ea69f293dc4070f277f30ae0fde5254cd87c
Diffstat (limited to 'services/mattermost/default.nix')
| -rw-r--r-- | services/mattermost/default.nix | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/services/mattermost/default.nix b/services/mattermost/default.nix new file mode 100644 index 0000000..f16f721 --- /dev/null +++ b/services/mattermost/default.nix @@ -0,0 +1,60 @@ +{ config, pkgs, lib, ... }: + +{ + systemd.services.mattermost = { + description = "Mattermost server"; + after = [ "network.target" "postgresql.service" ]; + wantedBy = [ "multi-user.target" ]; + + preStart = '' + mkdir -p /var/lib/mattermost/bin + mkdir -p /var/lib/mattermost/client + mkdir -p /var/lib/mattermost/config + mkdir -p /var/lib/mattermost/templates + cp -r ${pkgs.mattermost}/client/* /var/lib/mattermost/client/ + cp -r ${pkgs.mattermost}/bin/* /var/lib/mattermost/bin/ + cp -r ${pkgs.mattermost}/config/* /var/lib/mattermost/config/ + cp -r ${pkgs.mattermost}/templates/* /var/lib/mattermost/templates/ + chown -R mattermost:mattermost /var/lib/mattermost + ''; + + serviceConfig = { + User = "mattermost"; + Group = "mattermost"; + WorkingDirectory = "/var/lib/mattermost"; + ExecStart = "${pkgs.mattermost}/bin/mattermost"; + Environment = [ + "MM_SQLSETTINGS_DRIVERNAME=postgres" + "MM_SQLSETTINGS_DATASOURCE=postgres://mattermost@localhost:5432/mattermost?sslmode=disable&connect_timeout=10" + "MM_SERVICESETTINGS_SITEURL=http://islmm" + "MM_SERVICESETTINGS_LISTENADDRESS=:8065" + "MM_SERVICESETTINGS_ENABLEUSERCREATION=true" + "MM_SERVICESETTINGS_ALLOWCORSFROM=*" + ]; + Restart = "always"; + }; + }; + + users.users.mattermost = { + isSystemUser = true; + home = "/var/lib/mattermost"; + createHome = true; + group = "mattermost"; + }; + + users.groups.mattermost = { }; + + services.postgresql = { + enable = true; + + ensureDatabases = [ "mattermost" ]; + ensureUsers = [ + { + name = "mattermost"; + ensureDBOwnership = true; + } + ]; + }; + + services.postgresqlBackup.databases = [ "mattermost" ]; +} |