--- /dev/null
+{pkgs, lib, config, ...}:
+let inherit (config) networking;
+ inherit (config.services) redmine postgresql;
+in
+{
+ config = {
+ services = {
+ redmine = {
+ enable = true;
+ database = {
+ type = "postgresql";
+ host = "/tmp";
+ port = postgresql.port;
+ };
+ };
+ postgresql = {
+ users."${redmine.user}" = {
+ auth = "unix";
+ };
+ databases."${redmine.database.name}" = {
+ owner = redmine.user;
+ users = [ redmine.user ];
+ extraConfig = ''
+ GRANT USAGE ON SCHEMA pg_catalog TO ${redmine.user};
+ GRANT SELECT ON ALL TABLES IN SCHEMA pg_catalog TO ${redmine.user};
+ '';
+ };
+ };
+ nginx = {
+ upstreams."redmine" = {
+ servers = { "localhost:3000" = {}; };
+ };
+ virtualHosts."redmine" = {
+ serverName = "redmine.${networking.domain}";
+ serverAliases =
+ map (domainAlias: "redmine." + domainAlias)
+ config.networking.domainAliases;
+ locations = {
+ "/" = {
+ extraConfig = ''
+ proxy_next_upstream error timeout
+ invalid_header http_500 http_502 http_503;
+ proxy_pass http://localhost:3000;
+ '';
+ };
+ };
+ };
+ };
+ };
+ systemd.services.redmine = {
+ environment.REDMINE_LANG = lib.mkForce "fr";
+ };
+ #users.users."${redmine.user}" = {
+ # extraGroups = [ "postgres" ];
+ #};
+ };
+}