mirror of
https://github.com/Noratrieb/vps.git
synced 2026-01-14 16:55:00 +01:00
grafana
This commit is contained in:
parent
ec7be408a1
commit
d12f733cf7
23 changed files with 72 additions and 16 deletions
|
|
@ -148,13 +148,13 @@
|
||||||
./modules/ingress
|
./modules/ingress
|
||||||
./modules/garage
|
./modules/garage
|
||||||
./modules/podman
|
./modules/podman
|
||||||
|
./modules/registry
|
||||||
|
|
||||||
# apps
|
# apps
|
||||||
./apps/widetom
|
./apps/widetom
|
||||||
./apps/hugo-chat
|
./apps/hugo-chat
|
||||||
./apps/uptime
|
./apps/uptime
|
||||||
./apps/cargo-bisect-rustc-service
|
./apps/cargo-bisect-rustc-service
|
||||||
./apps/registry
|
|
||||||
];
|
];
|
||||||
|
|
||||||
deployment.tags = [ "ingress" "eu" "apps" "wg" ];
|
deployment.tags = [ "ingress" "eu" "apps" "wg" ];
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,7 @@ let
|
||||||
];
|
];
|
||||||
|
|
||||||
# --- infra
|
# --- infra
|
||||||
|
grafana = vps3;
|
||||||
infra.subdomains = hostsToDns;
|
infra.subdomains = hostsToDns;
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -71,8 +71,8 @@ in
|
||||||
}
|
}
|
||||||
|
|
||||||
${
|
${
|
||||||
if name == "vps1" then
|
if name == "vps1" || name == "vps3" then
|
||||||
builtins.readFile ./Caddyfile else ""
|
builtins.readFile ./${name}.Caddyfile else ""
|
||||||
}
|
}
|
||||||
''
|
''
|
||||||
);
|
);
|
||||||
|
|
|
||||||
4
newinfra/nix/modules/ingress/vps3.Caddyfile
Normal file
4
newinfra/nix/modules/ingress/vps3.Caddyfile
Normal file
|
|
@ -0,0 +1,4 @@
|
||||||
|
grafana.noratrieb.dev {
|
||||||
|
encode zstd gzip
|
||||||
|
reverse_proxy * localhost:3000
|
||||||
|
}
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
{ ... }: {
|
{ config, ... }: {
|
||||||
services.prometheus = {
|
services.prometheus = {
|
||||||
enable = true;
|
enable = true;
|
||||||
globalConfig = { };
|
globalConfig = { };
|
||||||
|
|
@ -27,6 +27,46 @@
|
||||||
{ targets = [ "vps5.local:9010" ]; }
|
{ targets = [ "vps5.local:9010" ]; }
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
{
|
||||||
|
job_name = "docker-registry";
|
||||||
|
static_configs = [
|
||||||
|
{ targets = [ "vps1.local:9011" ]; }
|
||||||
|
];
|
||||||
|
}
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
age.secrets.grafana_admin_password.file = ../../secrets/grafana_admin_password.age;
|
||||||
|
|
||||||
|
systemd.services.grafana.serviceConfig.EnvironmentFile = config.age.secrets.grafana_admin_password.path;
|
||||||
|
services.grafana = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
security = {
|
||||||
|
admin_user = "admin";
|
||||||
|
};
|
||||||
|
server = {
|
||||||
|
root_url = "https://grafana.noratrieb.dev";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
provision = {
|
||||||
|
enable = true;
|
||||||
|
datasources.settings = {
|
||||||
|
apiVersion = 1;
|
||||||
|
datasources = [
|
||||||
|
{
|
||||||
|
name = "Prometheus";
|
||||||
|
type = "prometheus";
|
||||||
|
access = "proxy";
|
||||||
|
url = "http://vps3.local:9090";
|
||||||
|
jsonData = {
|
||||||
|
httpMethod = "POST";
|
||||||
|
prometheusType = "Prometheus";
|
||||||
|
};
|
||||||
|
}
|
||||||
|
];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,8 @@
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
networking.firewall.interfaces.wg0.allowedTCPPorts = [ 9011 ]; # metrics
|
||||||
|
|
||||||
systemd.services.docker-registry.serviceConfig.EnvironmentFile = config.age.secrets.registry_s3_key_secret.path;
|
systemd.services.docker-registry.serviceConfig.EnvironmentFile = config.age.secrets.registry_s3_key_secret.path;
|
||||||
services.dockerRegistry = {
|
services.dockerRegistry = {
|
||||||
enable = true;
|
enable = true;
|
||||||
|
|
@ -37,6 +39,13 @@
|
||||||
http = {
|
http = {
|
||||||
host = "https://docker.noratrieb.dev";
|
host = "https://docker.noratrieb.dev";
|
||||||
draintimeout = "60s";
|
draintimeout = "60s";
|
||||||
|
debug = {
|
||||||
|
addr = ":9011";
|
||||||
|
prometheus = {
|
||||||
|
enabled = true;
|
||||||
|
path = "/metrics";
|
||||||
|
};
|
||||||
|
};
|
||||||
};
|
};
|
||||||
auth.htpasswd = {
|
auth.htpasswd = {
|
||||||
# TODO: ugh :(
|
# TODO: ugh :(
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
newinfra/nix/secrets/grafana_admin_password.age
Normal file
BIN
newinfra/nix/secrets/grafana_admin_password.age
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -14,6 +14,7 @@ in
|
||||||
"caddy_s3_key_secret.age".publicKeys = [ vps1 vps3 vps4 vps5 ];
|
"caddy_s3_key_secret.age".publicKeys = [ vps1 vps3 vps4 vps5 ];
|
||||||
"registry_htpasswd.age".publicKeys = [ vps1 ];
|
"registry_htpasswd.age".publicKeys = [ vps1 ];
|
||||||
"registry_s3_key_secret.age".publicKeys = [ vps1 ];
|
"registry_s3_key_secret.age".publicKeys = [ vps1 ];
|
||||||
|
"grafana_admin_password.age".publicKeys = [ vps3 ];
|
||||||
"wg_private_vps1.age".publicKeys = [ vps1 ];
|
"wg_private_vps1.age".publicKeys = [ vps1 ];
|
||||||
"wg_private_vps3.age".publicKeys = [ vps3 ];
|
"wg_private_vps3.age".publicKeys = [ vps3 ];
|
||||||
"wg_private_vps4.age".publicKeys = [ vps4 ];
|
"wg_private_vps4.age".publicKeys = [ vps4 ];
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 qM6TYg O7IcxaeSOGfOmQJudTMomwnl/bsPhAUKCPeidwbThXs
|
-> ssh-ed25519 qM6TYg vqaZ8FrH2/iw1skzhxcDVtTGNrvgacXe6yZ6FLR5NxA
|
||||||
e4Llj1rpB0QtY08AOQYSr9450fdLd7Io8MpXzCAma5c
|
YsksjwIhIsGqSuHsgE2bxEChfhezUiab1KCR2JwGJog
|
||||||
--- DnobWf9zRcr2T9fV32wFhZDmHoXdrLGoEbiOMg+ixyE
|
--- tBUyV+jlTZVRhpzYloVwoKozRDOgOv6lLsLj9y8yxqI
|
||||||
’ÓZŸeÆúNKÚh,Ÿðû $Æ!Ϲ¶ÿ<>bÿz‹/Û:—q–Ÿ^¹u1®ŒÌÉõqEíÇÿF-‹ƒ<E280B9>«F=7‰¤C%Іڥq®
|
%xTEÀâÿcÉ<63>cÃ1eó#È=¡
)ùh&•<>¡ÇKU㆑GÔ}J™o<14>¿„ê®Ã|4M*¸Ô©]xhpë›oð±Ãe
|
||||||
|
)œ<1A>
|
||||||
Binary file not shown.
|
|
@ -1,5 +1,5 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 51bcvA CjxIs41xJfD5FLvhNePVx4Z+oxLNGs18rIqA1oePZUA
|
-> ssh-ed25519 51bcvA cvlpm3reQDmA9Faca2wB1M8a4diEUTAYnZ7scmbt+i0
|
||||||
vbbgC5XDSpheko+opZcGdGOLRTkpy9oOKUDqJB5mHrA
|
DNQrAzPoVvbDR7UVCft8m/6kjHySIpT1l+xl22TW9bk
|
||||||
--- zIA/cJR2IvTe9PrxvsqYUtx3CVDMadur9Zab5yklQHk
|
--- PELEXNV7Ottz1Jgc+5U0ew9t2YEKfUVSsiaYehvwqnc
|
||||||
9öÖÞ_n5Ù~¡â\ÊÅC'qб]Ù+~jwº&âO4¸‚Ÿ‚NÁ
v‚ï<E2809A>€Uo$ÔÊ<C394>¤béÕØùˆEÍ…Gì¥kmkÞ\ú
|
WßÂLşŚ…Ł˙e·‘7Mč?Ěí™VŰý¬69)†ÚY%yú1›<31>J(uë<75>ż¸‚0)x@Y~Ąóhâ”<C3A2>żŽˇ çŇY5îËNÎd
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
age-encryption.org/v1
|
age-encryption.org/v1
|
||||||
-> ssh-ed25519 vT7ExA hiEMWjjGY/Elfd8oc9gB7p1bcV0G4u+NpvcChl06Kko
|
-> ssh-ed25519 vT7ExA ZtMI/PoOE6fF7heY5Eq12bhzgn/ViE/PzeLRJlFOZxo
|
||||||
TANojl91jyH5dIjj0e7FlyvWfblRWd1psLerI3AxKe4
|
kdRK08mwj0vCjhvJzX4TmI4H0dnRbnDC7kK+U7BW4mM
|
||||||
--- EZL4OcGAkc70DMOiFaiZab64IX+Cv952bGXgF/5XZNc
|
--- QSYK8SFsCQK0hrCG2ZjAG3KIpXPQTJqolMLj6aWHkcs
|
||||||
{KŸ¶´›Nnþ0§oí½íšjM£½r§ÕTOqÈ3ÂðMa‰p&;D qû–ASãótr<1E>©‚YÏ@åùúƒm4ñ©r®Om
|
՚<>b<EFBFBD>C<EFBFBD>C<>x<EFBFBD><78>T<EFBFBD><54><EFBFBD>><05>I<EFBFBD><49>n<EFBFBD><6E>e<0E><><01><>3<EFBFBD><33><EFBFBD><EFBFBD>F<EFBFBD><46>n.<2E><>=<3D><>V~<7E><>(G<>8ӚGi<47><69>(<28><>3Yd:e<>u<EFBFBD>
|
||||||
Binary file not shown.
Binary file not shown.
BIN
newinfra/secrets-git-crypt/grafana_admin_password
Normal file
BIN
newinfra/secrets-git-crypt/grafana_admin_password
Normal file
Binary file not shown.
Loading…
Add table
Add a link
Reference in a new issue