diff options
author | Vincent Ambo <mail@tazj.in> | 2020-06-13T20·52+0100 |
---|---|---|
committer | tazjin <mail@tazj.in> | 2020-06-13T23·52+0000 |
commit | 268729083eb80c93aa402883085c37e32c8a08cf (patch) | |
tree | 0916bace8073d30976ec752bb9de8c19a06027ae /ops/nixos/hound.nix | |
parent | 9658e96a87178e972b656db0acf3219937013b88 (diff) |
refactor(ops/nixos): Move my NixOS configurations to //users/tazjin r/941
NixOS modules move one level up because it's unlikely that //ops/nixos will contain actual systems at this point (they're user-specific). This is the first users folder, so it is also added to the root readTree invocation for the repository. Change-Id: I546c701145fa204b7ba7518a8a56a783588629e0 Reviewed-on: https://cl.tvl.fyi/c/depot/+/244 Reviewed-by: tazjin <mail@tazj.in>
Diffstat (limited to 'ops/nixos/hound.nix')
-rw-r--r-- | ops/nixos/hound.nix | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/ops/nixos/hound.nix b/ops/nixos/hound.nix new file mode 100644 index 000000000000..690055bde3b6 --- /dev/null +++ b/ops/nixos/hound.nix @@ -0,0 +1,62 @@ +# This module serves hound. +# +# https://github.com/hound-search/hound +{ pkgs, config, lib, ... }: + +let + cfg = config.services.depot.hound; + configJson = with builtins; toFile "config.json" (toJSON { + inherit (cfg) title repos; + max-concurrent-indexers = cfg.maxConcurrentIndexers; + dbpath = "/var/lib/hound"; + health-check-uri = "/healthz"; + }); +in { + options.services.depot.hound = with lib; { + enable = mkOption { + type = types.bool; + default = false; + description = '' + Whether to enable the hound code search engine to forward + journald logs to Stackdriver Logging. + ''; + }; + + repos = mkOption { + type = lib.types.attrs; + description = "Repository configuration for hound."; + }; + + port = mkOption { + type = lib.types.int; + default = 6080; + description = "The port hound should listen on."; + }; + + title = mkOption { + type = lib.types.str; + description = "Page title for this hound instance"; + }; + + maxConcurrentIndexers = mkOption { + type = lib.types.int; + default = 2; + }; + }; + + config = { + systemd.services.hound = { + description = "Code search engine"; + script = "${config.depot.third_party.hound}/bin/houndd -addr ':${toString cfg.port}' -conf '${configJson}'"; + wantedBy = [ "multi-user.target" ]; + path = [ pkgs.git ]; + + serviceConfig = { + Restart = "always"; + DynamicUser = true; + StateDirectory = "hound"; + SupplementaryGroups = "git"; + }; + }; + }; +} |