summaryrefslogtreecommitdiff
path: root/services/kanboard.nix
blob: c19b67386b94925520ea84c0a8efe32dae04540e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
{pkgs, config, lib, ...}:
  let 
    cfg = config.wilkuu.services.kanboard; 
    inherit (lib) mkEnableOption mkOption types mkIf; 
  in 
{
  options.wilkuu.services.kanboard = {
    enable = mkEnableOption "kanboard"; 
    domain = mkOption {
      type = types.str; 
      example = "kb.wilkuu.xyz";
    };
  }; 

  config = mkIf cfg.enable {
    wilkuu.services.mysql.unix_users = ["kanboard"];
    wilkuu.mjmap = { 
      enable = lib.mkDefault true; 
      users = ["kanboard"];
    };  
    sops.secrets."kanboard/db_password" = {
      sopsFile = ../secrets/${config.networking.hostName}/kanboard.yaml; 
      owner = "kanboard"; 
      mode = "500"; 
    };  
    sops.templates."kanboard-env" = {
      content = ''
        DB_PASSWORD=${config.sops.placeholder."kanboard/db_password"}
        PLUGIN_INSTALLER=true
      ''; 
      owner = "kanboard"; 
      mode  = "500"; 
    };
    systemd.services.phpfpm-kanboard.serviceConfig = {
      EnvironmentFile = config.sops.templates."kanboard-env".path; 
    };  
    services.kanboard = {
      nginx = {
        enableACME = false;
        forceSSL = false;
        addSSL = false; 
      };
      domain = cfg.domain; 
      enable = true; 
      settings = {
        PLUGIN_INSTALLER = "$PLUGIN_INSTALLER";
        PLUGINS_DIR = "${config.services.kanboard.dataDir}/plugins";
        MAIL_FROM = "Kanboard <noreply@wilkuu.nl>"; 
        MAIL_TRANSPORT = "sendmail";
        MAIL_SENDMAIL_COMMAND = "sendmail";
        DB_DRIVER = "mysql"; 
        DB_USERNAME = "kanboard"; 
        DB_HOSTNAME = "127.0.0.1;unix_socket=/run/mysqld/mysqld.sock";
        DB_PASSWORD = "$DB_PASSWORD"; 
        ENABLE_URL_REWRITE = true;
        TRUSTED_PROXY_HEADERS = "HOST,X-REAL-IP,X-FORWARDED-FOR,X-FORWARDED-HOST,X-FORWARDED-SERVER";
        TRUSTED_PROXY_NETWORKS = "192.168.80.0/24,192.168.88.0/24";
      };
    };
  };
}