nixos-config/services.nix

78 lines
2.2 KiB
Nix
Raw Normal View History

2018-04-01 15:04:49 +02:00
{ config, pkgs, ... }:
{
services.influxdb.enable = true;
2018-04-03 08:47:49 +02:00
services.influxdb.dataDir = "/var/db/influxdb";
2018-04-01 15:04:49 +02:00
services.telegraf.enable = true;
services.telegraf.extraConfig = {
inputs = {
zfs = { poolMetrics = true; };
net = { interfaces = [ "eno1" "eno2" "eno3" "eno4" ]; };
netstat = {};
cpu = { totalcpu = true; };
kernel = {};
mem = {};
processes = {};
system = {};
};
outputs = {
influxdb = { database = "telegraf"; urls = [ "http://localhost:8086" ]; };
};
};
services.grafana.enable = true;
services.grafana.addr = "0.0.0.0";
2018-04-03 08:47:49 +02:00
services.grafana.dataDir = "/var/lib/grafana";
2018-04-01 15:17:44 +02:00
services.emby.enable = true;
2018-04-03 08:47:49 +02:00
services.emby.dataDir = "/var/lib/emby/ProgramData-Server";
2018-04-01 15:17:44 +02:00
2018-04-03 19:21:26 +02:00
services.slimserver.enable = true;
services.slimserver.dataDir = "/var/lib/slimserver";
2018-04-03 08:47:49 +02:00
services.syncthing.enable = true;
services.syncthing.dataDir = "/var/lib/syncthing";
services.syncthing.openDefaultPorts = true;
systemd = {
services.duplicati = {
description = "Duplicati backup";
after = [ "network-online.target" ];
wants = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Slice = "machine.slice";
ExecStart = "${pkgs.rkt}/bin/rkt --insecure-options=image --pull-policy=update run --volume volume-config,kind=host,source=/var/lib/duplicati --volume volume-source,kind=host,source=/mnt/medias,readOnly=true --port 8200-tcp:8200 --dns 8.8.8.8 --dns 8.8.4.4 docker://linuxserver/duplicati";
2018-04-03 19:25:03 +02:00
ExecStopPost = "${pkgs.rkt}/bin/rkt gc --mark-only";
2018-04-03 08:47:49 +02:00
KillMode = "mixed";
Restart = "on-failure";
RestartSec = 3;
};
enable = true;
};
};
2018-04-03 18:55:07 +02:00
services.nfs.server = {
enable = true;
exports = ''
/exports/steam 192.168.1.0/24(rw,no_root_squash)
'';
statdPort = 4000;
lockdPort = 4001;
mountdPort = 4002;
};
2018-04-01 15:17:44 +02:00
networking.firewall.allowedTCPPorts = [
3000 # Grafana
8096 # Emby
2018-04-03 18:55:07 +02:00
111 2049 4000 4001 4002 # NFS
2018-04-03 20:17:09 +02:00
3483 9000 # Slimserver
8384 # Syncthing
2018-04-03 18:55:07 +02:00
];
networking.firewall.allowedUDPPorts = [
111 2049 4000 4001 4002 # NFS
2018-04-03 20:17:09 +02:00
3483 # Slimserver
2018-04-01 15:17:44 +02:00
];
2018-04-01 15:04:49 +02:00
}