summaryrefslogtreecommitdiffstats
path: root/krebs/3modules/gollum.nix
diff options
context:
space:
mode:
authorlassulus <lassulus@lassul.us>2021-06-09 11:37:27 +0200
committerlassulus <lassulus@lassul.us>2021-06-09 11:37:27 +0200
commit85cd96ed8bffc97307400e80933548fbfbb353f9 (patch)
tree7fa4430927f9521ba659582e8c10febef86f1366 /krebs/3modules/gollum.nix
parent899b6874ab1b8925d7f28742583939ad00101fee (diff)
gollum: follow upstream
Diffstat (limited to 'krebs/3modules/gollum.nix')
-rw-r--r--krebs/3modules/gollum.nix112
1 files changed, 0 insertions, 112 deletions
diff --git a/krebs/3modules/gollum.nix b/krebs/3modules/gollum.nix
deleted file mode 100644
index 4b4e04d16..000000000
--- a/krebs/3modules/gollum.nix
+++ /dev/null
@@ -1,112 +0,0 @@
-{ config, lib, pkgs, ... }:
-
-with lib;
-
-let
- cfg = config.krebs.gollum;
-in
-
-{
- options.krebs.gollum = {
- enable = mkOption {
- type = types.bool;
- default = false;
- description = "Enable the Gollum service.";
- };
-
- address = mkOption {
- type = types.str;
- default = "0.0.0.0";
- description = "IP address on which the web server will listen.";
- };
-
- port = mkOption {
- type = types.int;
- default = 4567;
- description = "Port on which the web server will run.";
- };
-
- extraConfig = mkOption {
- type = types.lines;
- default = "";
- description = "Content of the configuration file";
- };
-
- mathjax = mkOption {
- type = types.bool;
- default = false;
- description = "Enable support for math rendering using MathJax";
- };
-
- allowUploads = mkOption {
- type = types.nullOr (types.enum [ "dir" "page" ]);
- default = null;
- description = "Enable uploads of external files";
- };
-
- emoji = mkOption {
- type = types.bool;
- default = false;
- description = "Parse and interpret emoji tags";
- };
-
- branch = mkOption {
- type = types.str;
- default = "master";
- example = "develop";
- description = "Git branch to serve";
- };
-
- stateDir = mkOption {
- type = types.path;
- default = "/var/lib/gollum";
- description = "Specifies the path of the repository directory. If it does not exist, Gollum will create it on startup.";
- };
-
- };
-
- config = mkIf cfg.enable {
-
- users.users.gollum = {
- group = config.users.users.gollum.name;
- description = "Gollum user";
- home = cfg.stateDir;
- createHome = false;
- isSystemUser = true;
- };
-
- users.groups.gollum = { };
-
- systemd.tmpfiles.rules = [
- "d '${cfg.stateDir}' - ${config.users.users.gollum.name} ${config.users.groups.gollum.name} - -"
- ];
-
- systemd.services.gollum = {
- description = "Gollum wiki";
- after = [ "network.target" ];
- wantedBy = [ "multi-user.target" ];
- path = [ pkgs.git ];
-
- preStart = ''
- # This is safe to be run on an existing repo
- git init ${cfg.stateDir}
- '';
-
- serviceConfig = {
- User = config.users.users.gollum.name;
- Group = config.users.groups.gollum.name;
- ExecStart = ''
- ${pkgs.gollum}/bin/gollum \
- --port ${toString cfg.port} \
- --host ${cfg.address} \
- --config ${pkgs.writeText "gollum-config.rb" cfg.extraConfig} \
- --ref ${cfg.branch} \
- ${optionalString cfg.mathjax "--mathjax"} \
- ${optionalString cfg.emoji "--emoji"} \
- ${optionalString (cfg.allowUploads != null) "--allow-uploads ${cfg.allowUploads}"} \
- ${cfg.stateDir}
- '';
- };
- };
- };
-}