59 lines
1.5 KiB
Nix
59 lines
1.5 KiB
Nix
|
{
|
||
|
project.name = "stats";
|
||
|
|
||
|
networks.dmz = {
|
||
|
name = "dmz";
|
||
|
external = true;
|
||
|
};
|
||
|
networks.internal = {};
|
||
|
|
||
|
services = {
|
||
|
grafana.service = {
|
||
|
image = "grafana/grafana:10.4.4";
|
||
|
user = "1000";
|
||
|
container_name = "grafana";
|
||
|
labels = {
|
||
|
"traefik.enable" = "true";
|
||
|
|
||
|
"traefik.http.services.grafana.loadbalancer.server.port" = "3000";
|
||
|
"traefik.http.routers.grafana.service" = "grafana";
|
||
|
"traefik.http.routers.grafana.rule" = "Host(`grafana.ghoscht.com`)";
|
||
|
"traefik.http.routers.grafana.entrypoints" = "websecure";
|
||
|
"traefik.http.routers.grafana.tls" = "true";
|
||
|
"traefik.http.routers.grafana.tls.certresolver" = "letsencrypt";
|
||
|
};
|
||
|
volumes = [
|
||
|
"/storage/dataset/docker/stats/grafana_data:/var/lib/grafana"
|
||
|
];
|
||
|
networks = [
|
||
|
"dmz"
|
||
|
"internal"
|
||
|
];
|
||
|
};
|
||
|
loki.service = {
|
||
|
image = "grafana/loki:3.0.0";
|
||
|
volumes = [
|
||
|
"/storage/dataset/docker/stats/loki_data:/etc/loki"
|
||
|
];
|
||
|
ports = [
|
||
|
"3100:3100"
|
||
|
];
|
||
|
command = "-config.file=/etc/loki/loki-config.yml";
|
||
|
networks = [
|
||
|
"internal"
|
||
|
];
|
||
|
};
|
||
|
promtail.service = {
|
||
|
image = "grafana/promtail:3.0.0";
|
||
|
volumes = [
|
||
|
"/var/log:/var/log"
|
||
|
"/storage/dataset/docker/stats/promtail_data:/etc/promtail"
|
||
|
];
|
||
|
command = "-config.file=/etc/promtail/promtail-config.yml";
|
||
|
networks = [
|
||
|
"internal"
|
||
|
];
|
||
|
};
|
||
|
};
|
||
|
}
|