Unverified Commit 794c5b62 authored by Atemu's avatar Atemu Committed by GitHub
Browse files

nixos/redmine: symlink /run/redmine dirs in preStart (#483102)

parents 036b8bdb 871f07ed
Loading
Loading
Loading
Loading
+13 −10
Original line number Diff line number Diff line
@@ -356,16 +356,6 @@ in
      "d '${cfg.stateDir}/public/plugin_assets' 0750 ${cfg.user} ${cfg.group} - -"
      "d '${cfg.stateDir}/themes' 0750 ${cfg.user} ${cfg.group} - -"
      "d '${cfg.stateDir}/tmp' 0750 ${cfg.user} ${cfg.group} - -"

      "d /run/redmine/public - - - - -"
      "L+ /run/redmine/config - - - - ${cfg.stateDir}/config"
      "L+ /run/redmine/files - - - - ${cfg.stateDir}/files"
      "L+ /run/redmine/log - - - - ${cfg.stateDir}/log"
      "L+ /run/redmine/plugins - - - - ${cfg.stateDir}/plugins"
      "L+ /run/redmine/public/assets - - - - ${cfg.stateDir}/public/assets"
      "L+ /run/redmine/public/plugin_assets - - - - ${cfg.stateDir}/public/plugin_assets"
      "L+ /run/redmine/themes - - - - ${cfg.stateDir}/themes"
      "L+ /run/redmine/tmp - - - - ${cfg.stateDir}/tmp"
    ];

    systemd.services.redmine = {
@@ -392,6 +382,19 @@ in
        ++ lib.optional cfg.components.ghostscript ghostscript;

      preStart = ''
        # Create symlinks for the basic directory layout the redmine package
        # expects. This part must be done in preStart rather than tmpfiles,
        # because /run/redmine is re-created when the service is restarted
        mkdir /run/redmine/public
        ln -s "${cfg.stateDir}/config" /run/redmine/config
        ln -s "${cfg.stateDir}/files" /run/redmine/files
        ln -s "${cfg.stateDir}/log" /run/redmine/log
        ln -s "${cfg.stateDir}/plugins" /run/redmine/plugins
        ln -s "${cfg.stateDir}/public/assets" /run/redmine/public/assets
        ln -s "${cfg.stateDir}/public/plugin_assets" /run/redmine/public/plugin_assets
        ln -s "${cfg.stateDir}/themes" /run/redmine/themes
        ln -s "${cfg.stateDir}/tmp" /run/redmine/tmp

        rm -rf "${cfg.stateDir}/plugins/"*
        rm -rf "${cfg.stateDir}/themes/"*

+26 −0
Original line number Diff line number Diff line
@@ -46,4 +46,30 @@ in
    name = "pgsql";
    type = "postgresql";
  };

  restart = makeTest {
    name = "redmine-restart";
    nodes.machine =
      { config, pkgs, ... }:
      {
        services.redmine = {
          enable = true;
          package = pkgs.redmine;
        };
      };

    testScript = ''
      start_all()
      machine.wait_for_unit("redmine.service")
      machine.wait_for_open_port(3000)
      machine.succeed("curl --fail http://localhost:3000/")

      machine.systemctl("stop redmine.service")
      machine.systemctl("start redmine.service")

      machine.wait_for_unit("redmine.service")
      machine.wait_for_open_port(3000)
      machine.succeed("curl --fail http://localhost:3000/")
    '';
  };
}