Add metrics-nekomesh host
This commit is contained in:
parent
1ad857a33a
commit
3fcd427251
10 changed files with 138 additions and 0 deletions
|
|
@ -46,6 +46,11 @@
|
||||||
sendOnly = true;
|
sendOnly = true;
|
||||||
aliases = [ "nyareply@nekover.se" ];
|
aliases = [ "nyareply@nekover.se" ];
|
||||||
};
|
};
|
||||||
|
"nekomesh@nekover.se" = {
|
||||||
|
hashedPasswordFile = "/secrets/mail-nekomesh-nekover-se.secret";
|
||||||
|
sendOnly = true;
|
||||||
|
aliases = [ "nyareply@nekover.se" ];
|
||||||
|
};
|
||||||
"social@nekover.se" = {
|
"social@nekover.se" = {
|
||||||
hashedPasswordFile = "/secrets/mail-social-nekover-se.secret";
|
hashedPasswordFile = "/secrets/mail-social-nekover-se.secret";
|
||||||
sendOnly = true;
|
sendOnly = true;
|
||||||
|
|
|
||||||
17
config/hosts/metrics-nekomesh/configuration.nix
Normal file
17
config/hosts/metrics-nekomesh/configuration.nix
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
boot.loader.grub = {
|
||||||
|
enable = true;
|
||||||
|
device = "/dev/vda";
|
||||||
|
};
|
||||||
|
|
||||||
|
networking = {
|
||||||
|
hostName = "metrics-nekomesh";
|
||||||
|
firewall = {
|
||||||
|
enable = true;
|
||||||
|
allowedTCPPorts = [ 80 443 ];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
system.stateVersion = "25.11";
|
||||||
|
}
|
||||||
9
config/hosts/metrics-nekomesh/default.nix
Normal file
9
config/hosts/metrics-nekomesh/default.nix
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
imports = [
|
||||||
|
./configuration.nix
|
||||||
|
./grafana.nix
|
||||||
|
./prometheus.nix
|
||||||
|
./nginx.nix
|
||||||
|
];
|
||||||
|
}
|
||||||
36
config/hosts/metrics-nekomesh/grafana.nix
Normal file
36
config/hosts/metrics-nekomesh/grafana.nix
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
{ config, ... }:
|
||||||
|
{
|
||||||
|
services.grafana = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
server = {
|
||||||
|
domain = "nekomesh.nekover.se";
|
||||||
|
root_url = "https://${config.services.grafana.settings.server.domain}";
|
||||||
|
};
|
||||||
|
security = {
|
||||||
|
cookie_secure = true;
|
||||||
|
cookie_samesite = "strict";
|
||||||
|
admin_user = "fi";
|
||||||
|
admin_password = "$__file{/secrets/metrics-nekomesh-grafana-admin-password.secret}";
|
||||||
|
admin_email = "fi@nekover.se";
|
||||||
|
};
|
||||||
|
smtp = {
|
||||||
|
enabled = true;
|
||||||
|
host = "mail.grzb.de:465";
|
||||||
|
user = "nekomesh@grzb.de";
|
||||||
|
password = "$__file{/secrets/mail-nekomesh-nekover-se.secret}";
|
||||||
|
from_address = "nyareply@nekover.se";
|
||||||
|
from_name = "Nekomesh";
|
||||||
|
startTLS_policy = "NoStartTLS";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
provision.datasources.settings.datasources = [
|
||||||
|
{
|
||||||
|
name = "Prometheus";
|
||||||
|
type = "prometheus";
|
||||||
|
url = "http://localhost:${builtins.toString config.services.prometheus.port}";
|
||||||
|
isDefault = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
27
config/hosts/metrics-nekomesh/nginx.nix
Normal file
27
config/hosts/metrics-nekomesh/nginx.nix
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
{ config, ... }:
|
||||||
|
{
|
||||||
|
services.nginx = {
|
||||||
|
enable = true;
|
||||||
|
virtualHosts = {
|
||||||
|
${config.services.grafana.settings.server.domain} = {
|
||||||
|
forceSSL = true;
|
||||||
|
enableACME = true;
|
||||||
|
listen = [
|
||||||
|
{
|
||||||
|
addr = "0.0.0.0";
|
||||||
|
port = 80;
|
||||||
|
}
|
||||||
|
{
|
||||||
|
addr = "0.0.0.0";
|
||||||
|
port = 443;
|
||||||
|
ssl = true;
|
||||||
|
}
|
||||||
|
];
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass = "http://${config.services.grafana.settings.server.http_addr}:${builtins.toString config.services.grafana.settings.server.http_port}";
|
||||||
|
proxyWebsockets = true;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
16
config/hosts/metrics-nekomesh/prometheus.nix
Normal file
16
config/hosts/metrics-nekomesh/prometheus.nix
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
{ ... }:
|
||||||
|
{
|
||||||
|
services.prometheus = {
|
||||||
|
enable = true;
|
||||||
|
retentionTime = "2y";
|
||||||
|
scrapeConfigs = [
|
||||||
|
{
|
||||||
|
job_name = "meshcore";
|
||||||
|
scrape_interval = "15m";
|
||||||
|
static_configs = [{
|
||||||
|
targets = [ "localhost:9091" ];
|
||||||
|
}];
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
||||||
21
config/hosts/metrics-nekomesh/secrets.nix
Normal file
21
config/hosts/metrics-nekomesh/secrets.nix
Normal file
|
|
@ -0,0 +1,21 @@
|
||||||
|
{ keyCommandEnv, ... }:
|
||||||
|
{
|
||||||
|
deployment.keys = {
|
||||||
|
"metrics-nekomesh-grafana-admin-password.secret" = {
|
||||||
|
keyCommand = keyCommandEnv ++ [ "pass" "metrics-nekomesh/grafana/admin-password" ];
|
||||||
|
destDir = "/secrets";
|
||||||
|
user = "grafana";
|
||||||
|
group = "grafana";
|
||||||
|
permissions = "0640";
|
||||||
|
uploadAt = "pre-activation";
|
||||||
|
};
|
||||||
|
"mail-nekomesh-nekover-se.secret" = {
|
||||||
|
keyCommand = keyCommandEnv ++ [ "pass" "mail/nekomesh-nekover-se" ];
|
||||||
|
destDir = "/secrets";
|
||||||
|
user = "grafana";
|
||||||
|
group = "grafana";
|
||||||
|
permissions = "0640";
|
||||||
|
uploadAt = "pre-activation";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -30,6 +30,7 @@
|
||||||
matrix-rtc.nekover.se 10.202.41.112:8443;
|
matrix-rtc.nekover.se 10.202.41.112:8443;
|
||||||
mewtube.nekover.se 127.0.0.1:8443;
|
mewtube.nekover.se 127.0.0.1:8443;
|
||||||
nekover.se 127.0.0.1:8443;
|
nekover.se 127.0.0.1:8443;
|
||||||
|
nekomesh.nekover.se 10.202.41.126:8443;
|
||||||
nix-cache.nekover.se 10.202.41.121:8443;
|
nix-cache.nekover.se 10.202.41.121:8443;
|
||||||
searx.nekover.se 10.202.41.105:8443;
|
searx.nekover.se 10.202.41.105:8443;
|
||||||
social.nekover.se 10.202.41.104:8443;
|
social.nekover.se 10.202.41.104:8443;
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@ let
|
||||||
"mas.nekover.se" = "matrix.vs.grzb.de";
|
"mas.nekover.se" = "matrix.vs.grzb.de";
|
||||||
"matrix.nekover.se" = "matrix.vs.grzb.de";
|
"matrix.nekover.se" = "matrix.vs.grzb.de";
|
||||||
"matrix-rtc.nekover.se" = "matrix.vs.grzb.de";
|
"matrix-rtc.nekover.se" = "matrix.vs.grzb.de";
|
||||||
|
"nekomesh.nekover.se" = "metrics-nekomesh.vs.grzb.de";
|
||||||
"netbox.grzb.de" = "netbox.vs.grzb.de";
|
"netbox.grzb.de" = "netbox.vs.grzb.de";
|
||||||
"git.nekover.se" = "forgejo.vs.grzb.de";
|
"git.nekover.se" = "forgejo.vs.grzb.de";
|
||||||
"grafana.grzb.de" = "metrics.vs.grzb.de";
|
"grafana.grzb.de" = "metrics.vs.grzb.de";
|
||||||
|
|
|
||||||
|
|
@ -76,6 +76,11 @@ in
|
||||||
site = "vs";
|
site = "vs";
|
||||||
environment = "proxmox";
|
environment = "proxmox";
|
||||||
};
|
};
|
||||||
|
metrics-nekomesh = {
|
||||||
|
hostNixpkgs = nixpkgs-unstable;
|
||||||
|
site = "vs";
|
||||||
|
environment = "proxmox";
|
||||||
|
};
|
||||||
nextcloud = {
|
nextcloud = {
|
||||||
site = "vs";
|
site = "vs";
|
||||||
environment = "proxmox";
|
environment = "proxmox";
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue