diff options
Diffstat (limited to 'nixops/modules/databases/redis.nix')
-rw-r--r-- | nixops/modules/databases/redis.nix | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/nixops/modules/databases/redis.nix b/nixops/modules/databases/redis.nix new file mode 100644 index 0000000..7379685 --- /dev/null +++ b/nixops/modules/databases/redis.nix | |||
@@ -0,0 +1,37 @@ | |||
1 | { lib, pkgs, config, myconfig, mylibs, ... }: | ||
2 | let | ||
3 | cfg = config.services.myDatabases; | ||
4 | in { | ||
5 | options.services.myDatabases = { | ||
6 | redis = { | ||
7 | enable = lib.mkOption { | ||
8 | default = cfg.enable; | ||
9 | example = true; | ||
10 | description = "Whether to enable redis database"; | ||
11 | type = lib.types.bool; | ||
12 | }; | ||
13 | }; | ||
14 | }; | ||
15 | |||
16 | config = lib.mkIf cfg.enable { | ||
17 | ids.uids.redis = myconfig.env.users.redis.uid; | ||
18 | ids.gids.redis = myconfig.env.users.redis.gid; | ||
19 | users.users.redis.uid = config.ids.uids.redis; | ||
20 | users.groups.redis.gid = config.ids.gids.redis; | ||
21 | services.redis = rec { | ||
22 | enable = config.services.myDatabases.redis.enable; | ||
23 | bind = "127.0.0.1"; | ||
24 | unixSocket = myconfig.env.databases.redis.socket; | ||
25 | extraConfig = '' | ||
26 | unixsocketperm 777 | ||
27 | maxclients 1024 | ||
28 | ''; | ||
29 | }; | ||
30 | system.activationScripts.redis = '' | ||
31 | mkdir -p $(dirname ${myconfig.env.databases.redis.socket}) | ||
32 | chown redis $(dirname ${myconfig.env.databases.redis.socket}) | ||
33 | ''; | ||
34 | |||
35 | }; | ||
36 | } | ||
37 | |||