Commit Graph

47 Commits

Author SHA1 Message Date
Morgan Jones
05b6489eb2 nixos/mattermost: drop MySQL support
It's unsupported in the package since v11, so should be unsupported in
the module.
2026-04-26 03:39:57 -07:00
Dyego Aurélio
28096cc5e3 treewide: apply nixfmt 1.2.0 2026-01-22 18:37:56 -03:00
Morgan Jones
42f8f463bf nixos/mattermost: require Postgres for version 11+ 2025-10-27 20:26:11 -07:00
Morgan Jones
6cc8a8cdb5 nixos/mattermost: remove fallback charset for MySQL
This was causing issues on newer versions of MariaDB (breaking
NixOS tests) like:

```
Error 1064 (42000): You have an error in your SQL syntax;
check the manual that corresponds to your MariaDB server version
for the right syntax to use near '%2Cutf8' at line 1
```

Since this is simply a fallback character set and all supported versions
of MariaDB support utf8mb4, delete the fallback.

This change should be fully compatible with existing deployments.
2025-08-23 20:41:44 -07:00
Wolfgang Walther
5a0711127c treewide: run nixfmt 1.0.0 2025-07-24 13:55:40 +02:00
Wolfgang Walther
41c5662cbe nixos/postgresql: move postStart into separate unit
This avoids restarting the postgresql server, when only ensureDatabases
or ensureUsers have been changed. It will also allow to properly wait
for recovery to finish later.

To wait for "postgresql is ready" in other services, we now provide a
postgresql.target.

Resolves #400018

Co-authored-by: Marcel <me@m4rc3l.de>
2025-06-24 15:26:47 +02:00
Morgan Jones
a7e52b03c3 nixos/mattermost: correct file upload directory
Fix compatibility with previous versions by making sure all the uploads
and plugins end up in the correct directory. Add a test for the exact
path we care about to ensure that it doesn't work "on accident."

Discovered while updating instances to unstable.
2025-04-19 18:33:20 -07:00
Morgan Jones
9f23ed6644 nixos/mattermost: increase db connect timeouts 2025-04-01 22:17:57 -07:00
Morgan Jones
ea485e1207 mattermost: squash systemd-tmpfiles warning (+ other minor fixes)
There was a systemd-tmpfiles warning about not being able to remove the
'plugins' directory. Squash this warning through removal of unnecessary
systemd-tmpfiles options, and write a test for it.

Add the {option}`services.mattermost.pluginsBundle` option to allow
overriding the plugin directory and also using it for tests. Update
wording in option documentation so it is more clear.

Use formats.json instead of builtins.toJSON so module merging works.

Make the tests go faster by pipelining shutdowns of nodes.
2025-04-01 19:20:48 -07:00
dish
fe6a8e7b09 nixos/mattermost: fix documentation link formatting 2025-02-12 21:03:21 +01:00
Morgan Jones
672f423d0c nixos/mattermost: default preferNixConfig to true
Now that we are disabling telemetry by default, we should attempt to
override it and other options in existing mutable configs,
if the user had a mutable config and advances their system.stateVersion.
2025-01-27 10:29:37 +01:00
Morgan Jones
fc3f7c17e2 nixos/mattermost: disable telemetry by default
We should disable telemetry but enable security update checks. Make both
controlable in the module without digging into settings.

Disabling telemetry also makes NixOS tests faster because the server
tries to send telemetry on first start.
2025-01-27 10:29:37 +01:00
Morgan Jones
f8eac009ee nixos/mattermost: modernize, support MySQL and mmctl
Based on #198040. Prioritizes backwards compatibility, including
database and plugin compatibility, while adding more sensible
defaults like database peer authentication.

Expand the scope of tests to include plugins (including building
from source) and testing that a piece of media uploads and downloads
to make sure the storage directory doesn't vanish.
2025-01-20 08:07:45 +01:00
Silvan Mosberger
4f0dadbf38 treewide: format all inactive Nix files
After final improvements to the official formatter implementation,
this commit now performs the first treewide reformat of Nix files using it.
This is part of the implementation of RFC 166.

Only "inactive" files are reformatted, meaning only files that
aren't being touched by any PR with activity in the past 2 months.
This is to avoid conflicts for PRs that might soon be merged.
Later we can do a full treewide reformat to get the rest,
which should not cause as many conflicts.

A CI check has already been running for some time to ensure that new and
already-formatted files are formatted, so the files being reformatted here
should also stay formatted.

This commit was automatically created and can be verified using

    nix-build a08b3a4d19.tar.gz \
      --argstr baseRev b32a094368
    result/bin/apply-formatting $NIXPKGS_PATH
2024-12-10 20:26:33 +01:00
stuebinm
6afb255d97 nixos: remove all uses of lib.mdDoc
these changes were generated with nixq 0.0.2, by running

  nixq ">> lib.mdDoc[remove] Argument[keep]" --batchmode nixos/**.nix
  nixq ">> mdDoc[remove] Argument[keep]" --batchmode nixos/**.nix
  nixq ">> Inherit >> mdDoc[remove]" --batchmode nixos/**.nix

two mentions of the mdDoc function remain in nixos/, both of which
are inside of comments.

Since lib.mdDoc is already defined as just id, this commit is a no-op as
far as Nix (and the built manual) is concerned.
2024-04-13 10:07:35 -07:00
h7x4
f5d513c573 treewide: use new tmpfiles api 2024-01-24 05:13:17 +01:00
h7x4
e6a98c8254 nixos/mattermost: fix mkPackageOption default name 2023-12-04 23:12:25 +01:00
h7x4
0a37316d6c treewide: use mkPackageOption
This commit replaces a lot of usages of `mkOption` with the package
type, to be `mkPackageOption`, in order to reduce the amount of code.
2023-11-27 01:28:36 +01:00
nikstur
168b967b32 nixos/mattermost: replace activationScript via tmpfiles 2023-10-26 01:43:56 +02:00
Felix Buehler
ed3b102d1e treewide: use use lib.optionalAttrs instead of 'then {}' 2023-06-06 22:54:31 +02:00
stuebinm
c29ca6704d mattermost: add environmentFile option to allow declarative secrets
This adds an option `services.mattermost.environmentFile`, intended to be
useful especially when `services.mattermost.mutableConfig` is set to `false`.
Since all mattermost configuration options can also be set by environment
variables, this allows managing secret configuration values in a declarative
manner without placing them in the nix store.
2023-03-27 20:46:01 +02:00
figsoda
6bb0dbf91f nixos: fix typos 2022-12-17 19:31:14 -05:00
Naïm Favier
0ff3b35356 nixos/doc: fix some options 2022-12-08 17:52:52 +01:00
pennae
ef176dcf7e nixos/*: automatically convert option descriptions
conversions were done using https://github.com/pennae/nix-doc-munge
using (probably) rev f34e145 running

    nix-doc-munge nixos/**/*.nix
    nix-doc-munge --import nixos/**/*.nix

the tool ensures that only changes that could affect the generated
manual *but don't* are committed, other changes require manual review
and are discarded.
2022-08-31 16:32:53 +02:00
pennae
2e751c0772 treewide: automatically md-convert option descriptions
the conversion procedure is simple:

 - find all things that look like options, ie calls to either `mkOption`
   or `lib.mkOption` that take an attrset. remember the attrset as the
   option
 - for all options, find a `description` attribute who's value is not a
   call to `mdDoc` or `lib.mdDoc`
 - textually convert the entire value of the attribute to MD with a few
   simple regexes (the set from mdize-module.sh)
 - if the change produced a change in the manual output, discard
 - if the change kept the manual unchanged, add some text to the
   description to make sure we've actually found an option. if the
   manual changes this time, keep the converted description

this procedure converts 80% of nixos options to markdown. around 2000
options remain to be inspected, but most of those fail the "does not
change the manual output check": currently the MD conversion process
does not faithfully convert docbook tags like <code> and <package>, so
any option using such tags will not be converted at all.
2022-07-30 15:16:34 +02:00
Morgan Jones
9db1fb4772 nixos/mattermost: update release notes 2022-01-16 22:34:37 -07:00
Morgan Jones
38ee2de29d nixos/mattermost: update service for 6.0+ 2021-12-31 23:49:00 -05:00
Morgan Jones
c37cb3b243 nixos/mattermost: silence startup warnings from chmod/chown; improve API 2021-12-31 23:49:00 -05:00
Morgan Jones
7cf6855c7f nixos/mattermost: Simplify plugin derivation build, improve startup perf 2021-12-31 23:49:00 -05:00
Morgan Jones
73fc80e0d7 nixos/mattermost: Support declarative Mattermost plugins 2021-12-31 23:49:00 -05:00
Morgan Jones
174b340406 nixos/mattermost: add preferNixConfig option and tests
One use case for Mattermost configuration is doing a "mostly
mutable" configuration where NixOS module options take priority
over Mattermost's config JSON.

Add a preferNixConfig option that prefers configured Nix options
over what's configured in Mattermost config if mutableConfig is set.

Remove the reliance on readFile (it's flake incompatible) and use
jq instead.

Merge Mattermost configs together on Mattermost startup, depending
on configured module options.

Write tests for mutable, mostly mutable, and immutable configurations.
2021-12-31 23:49:00 -05:00
zowoq
c59c4e3589 nixos/*: use $out instead of $bin with buildGoPackage 2020-04-28 20:30:29 +10:00
Ryan Mulligan
5a358eade8 Merge pull request #69125 from jslight90/mattermost-5.15
mattermost: 5.9.0 -> 5.15.0
2020-02-12 20:56:00 -08:00
rnhmjoj
1d61efb7f1 treewide: use attrs instead of list for types.loaOf options 2020-01-06 10:39:18 -05:00
Jeff Slight
346a6ce265 nixos/mattermost: use database config if set to immutable 2019-09-23 14:56:41 -07:00
Jeff Slight
366be2ea32 nixos/mattermost: unescape unicode characters in config.json 2019-09-19 16:41:37 -07:00
Florian Klink
fff5923686 nixos/modules: users.(extraUsers|extraGroup->users|group) 2018-06-30 03:02:58 +02:00
Franz Pletz
8f4f748810 Merge pull request #42306 from ryantm/mattermost
mattermost: 4.10.0 -> 5.0.0
2018-06-20 20:52:04 +00:00
Ryan Mulligan
b83152c135 mattermost: 4.10.0 -> 5.0.0 2018-06-19 17:12:13 -07:00
Ryan Mulligan
24f176f016 nixos/mattermost: fix JoinsNamespaceOf config location 2018-06-11 09:47:01 -07:00
Ryan Mulligan
e8c8370425 nixos/mattermost: fix for webapp being renamed to client 2017-11-05 13:53:50 -08:00
elseym
aeeac71231 mattermost: create role and db with postgres superuser
Recently, the postgres superuser name has changed. Using the configured
and correct username here fixes database initialisation.
2017-10-10 20:08:21 +02:00
Ryan Mulligan
8585898909 nixos/mattermost: fix create role
postgresql create role no longer supports NOCREATEUSER option. See
https://www.postgresql.org/docs/9.6/static/release-9-6.html for
details.
2017-09-01 14:24:44 -07:00
Franz Pletz
cce8aab9de mattermost service: PrivateTmp broken with local postgresql 2017-05-08 09:18:32 +02:00
Arian van Putten
252fbbf2d2 mattermost sevice: JoinsNamespaceOf for local pgsql (#22899) 2017-02-20 04:43:04 +01:00
Ruslan Babayev
159412db2e mattermost: cosmetic: remove stray character (#17897) 2016-08-21 19:20:10 +02:00
Franz Pletz
7c6d253544 mattermost service: init 2016-08-15 04:15:11 +02:00