about summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2019-03-13 07:57:20 -0400
committerBen Gamari <ben@smart-cactus.org>2019-03-25 15:18:35 -0400
commitf2bdc91b3563e50f714c3fbdd82e3377b39b5348 (patch)
tree5d9e625e07207757887a778b328e69e958ac013d /nixos
parent698a3f7eddeb206078cf285e8f39ce4009320eea (diff)
downloadnixlib-f2bdc91b3563e50f714c3fbdd82e3377b39b5348.tar
nixlib-f2bdc91b3563e50f714c3fbdd82e3377b39b5348.tar.gz
nixlib-f2bdc91b3563e50f714c3fbdd82e3377b39b5348.tar.bz2
nixlib-f2bdc91b3563e50f714c3fbdd82e3377b39b5348.tar.lz
nixlib-f2bdc91b3563e50f714c3fbdd82e3377b39b5348.tar.xz
nixlib-f2bdc91b3563e50f714c3fbdd82e3377b39b5348.tar.zst
nixlib-f2bdc91b3563e50f714c3fbdd82e3377b39b5348.zip
nixos/gitlab: Allow configuration of extra initializers
This adds a configuration option allowing the addition of additional
initializers in config/extra-gitlab.rb.
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/services/misc/gitlab.nix23
1 files changed, 23 insertions, 0 deletions
diff --git a/nixos/modules/services/misc/gitlab.nix b/nixos/modules/services/misc/gitlab.nix
index baa1c855c116..17c8c3ce51f4 100644
--- a/nixos/modules/services/misc/gitlab.nix
+++ b/nixos/modules/services/misc/gitlab.nix
@@ -160,6 +160,8 @@ let
      '';
   };
 
+  extraGitlabRb = pkgs.writeText "extra-gitlab.rb" cfg.extraGitlabRb;
+
   smtpSettings = pkgs.writeText "gitlab-smtp-settings.rb" ''
     if Rails.env.production?
       Rails.application.config.action_mailer.delivery_method = :smtp
@@ -266,6 +268,26 @@ in {
         description = "Extra configuration in config/database.yml.";
       };
 
+      extraGitlabRb = mkOption {
+        type = types.str;
+        default = "";
+        example = ''
+          if Rails.env.production?
+            Rails.application.config.action_mailer.delivery_method = :sendmail
+            ActionMailer::Base.delivery_method = :sendmail
+            ActionMailer::Base.sendmail_settings = {
+              location: "/run/wrappers/bin/sendmail",
+              arguments: "-i -t"
+            }
+          end
+        '';
+        description = ''
+          Extra configuration to be placed in config/extra-gitlab.rb. This can
+          be used to add configuration not otherwise exposed through this module's
+          options.
+        '';
+      };
+
       host = mkOption {
         type = types.str;
         default = config.networking.hostName;
@@ -586,6 +608,7 @@ in {
         [ -L /run/gitlab/uploads ] || ln -sf ${cfg.statePath}/uploads /run/gitlab/uploads
         cp ${cfg.packages.gitlab}/share/gitlab/VERSION ${cfg.statePath}/VERSION
         cp -rf ${cfg.packages.gitlab}/share/gitlab/config.dist/* ${cfg.statePath}/config
+        ln -sf ${extraGitlabRb} ${cfg.statePath}/config/initializers/extra-gitlab.rb
         ${optionalString cfg.smtp.enable ''
           ln -sf ${smtpSettings} ${cfg.statePath}/config/initializers/smtp_settings.rb
         ''}