summaryrefslogtreecommitdiff
path: root/nix/nixops/garbage.nix
blob: b588594b258f1ca5a295a612f4972971dd162a54 (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

  # compare with nginx etc and consider publishing this shit (along instructions how to run with mariadb+icingaweb2 admin..)
  environment.etc = with pkgs;
	let defaultIcinga2Const = builtins.readFile "${icinga2}/etc/icinga2/constants.conf";
	in
	{
		"icinga2/features-available".source="${icinga2}/etc/icinga2/features-available";
		"icinga2/scripts".source="${icinga2}/etc/icinga2/scripts";
		"icinga2/zones.d".source="${icinga2}/etc/icinga2/zones.d";
		"icinga2/conf.d".source="${icinga2}/etc/icinga2/conf.d";
		"icinga2/constants.conf".text=builtins.replaceStrings ["bin"] ["${monitoring-plugins}/bin"] defaultIcinga2Const;
		"icinga2/icinga2.conf".source="${icinga2}/etc/icinga2/icinga2.conf";
		"icinga2/zones.conf".source="${icinga2}/etc/icinga2/zones.conf";
		"icinga2/features-enabled/checker.conf".source="${icinga2}/etc/icinga2/features-available/checker.conf";
		"icinga2/features-enabled/mainlog.conf".source="${icinga2}/etc/icinga2/features-available/mainlog.conf";
		"icinga2/features-enabled/notification.conf".source="${icinga2}/etc/icinga2/features-available/notification.conf";
		"icinga2/features-enabled/ido-mysql.conf".text='' object IdoMysqlConnection "ido-mysql" { user = "icinga", password = "8fg$1%X58G4geX", host = "comet.softwarefools.com", database = "ICINGA_IDO" } '';
	};

   systemd.services.icinga2 = {
     enable = true;
     description = "Icinga host/service/network monitoring system";
     #After=postgresql.service mariadb.service carbon-cache.service mysql.service yslog.target
 
     serviceConfig = with pkgs; {
 	Type="simple";
 	User="icinga2";
 	Group="icinga2";
 	UMask=0007; #what is this good for?
 	ExecStart="${icinga2}/bin/icinga2 daemon -c /etc/icinga2/icinga2.conf";
 	ExecReload="${icinga2}/lib/icinga2/safe-reload /usr/lib/icinga2/icinga2";
 	PIDFile="/run/icinga2/icinga2.pid";
 	RuntimeDirectory="icinga2";
 	CacheDirectory="icinga2";
 	LogsDirectory="icinga2";
 	StateDirectory="icinga2";
     };
 
     wantedBy=[ "multi-user.target" ];
   };

  users.groups.icinga2 = {};
  users.users.icinga2 = {
        isSystemUser = true;
	extraGroups = ["icinga2"];
        group = "icinga2";
  };

  # ICINGAWEB2
   services.icingaweb2.enable = true;
   services.icingaweb2.modules.monitoring.enable = false;
   services.icingaweb2.virtualHost = "icinga.softwarefools.com";
   services.nginx.virtualHosts."icinga.softwarefools.com" = {
     forceSSL = true;
     enableACME = true;
   };