services.meilisearch: restrict write paths and add hardening option RemoveIPC

6543 fcf00a6c 63ac62c2

Changed files
+9 -1
nixos
modules
services
+9 -1
nixos/modules/services/search/meilisearch.nix
···
);
serviceConfig = {
+
Type = "simple";
+
DynamicUser = true;
+
Restart = "always";
LoadCredential = lib.mkMerge (
[
(lib.mkIf (cfg.masterKeyFile != null) [ "master_key:${cfg.masterKeyFile}" ])
···
) secrets-with-path
);
ExecStart = "${lib.getExe cfg.package} --config-file-path \${RUNTIME_DIRECTORY}/config.toml";
-
DynamicUser = true;
StateDirectory = "meilisearch";
WorkingDirectory = "%S/meilisearch";
RuntimeDirectory = "meilisearch";
RuntimeDirectoryMode = "0700";
+
ReadWritePaths = [
+
cfg.settings.db_path
+
cfg.settings.dump_dir
+
cfg.settings.snapshot_dir
+
];
ProtectSystem = "strict";
ProtectHome = true;
···
RestrictSUIDSGID = true;
LockPersonality = true;
MemoryDenyWriteExecute = true;
+
RemoveIPC = true;
# Meilisearch needs to determine cgroup memory limits to set its own memory limits.
# This means this can't be set to "pid"