started refactoring caddy & homelab config

This commit is contained in:
chloe 2024-07-17 14:30:30 +02:00
parent 1b6335ed72
commit 343becaa57
4 changed files with 97 additions and 30 deletions

11
customs/caddy/default.nix Normal file
View file

@ -0,0 +1,11 @@
let
pkgs = import <nixpkgs> { };
in
{
name = "caddy";
buildInputs = with pkgs; [
xcaddy
go
];
}

17
features/caddy.nix Normal file
View file

@ -0,0 +1,17 @@
{ }:
{
services.caddy = {
enable = true;
virtualHosts.":80".extraConfig = ''
reverse_proxy :8082
'';
virtualHosts.":3001".extraConfig = ''
reverse_proxy :3000
'';
virtualHosts.":4001".extraConfig = ''
reverse_proxy :4000
'';
};
}

View file

@ -44,13 +44,21 @@ in
prowlarr = { }; prowlarr = { };
proxmoxPassword = { }; proxmoxPassword = { };
proxmoxUsername = { }; proxmoxUsername = { };
uptimekuma = { };
}; };
services.homepage-dashboard = { services.homepage-dashboard = {
enable = true; enable = true;
settings = { settings = {
"headerStyle" = "boxed"; headerStyle = boxed;
"language" = "fr"; "language" = "fr";
title = "sillybox home !!";
layout = {
"Vidéos & Séries" = {
style = row;
columns = 4;
};
};
}; };
widgets = [ widgets = [
{ {
@ -71,18 +79,27 @@ in
services = [ services = [
{ {
"Divertissement" = [ "Divertissement" = [
{ {
"Jellyfin" = { "Serveur Minecraft poulet" = {
icon = "jellyfin"; icon = "minecraft";
description = "Permet de regarder ou écouter du contenu."; description = "serveur des trois poulets";
href = "http://${ip}:8096";
widget = { widget = {
type = "jellyfin"; type = "minecraft";
url = "http://${ip}:8096"; url = "udp://${ip}:25565";
key = config.sops.secrets.jellyfin;
}; };
}; };
} }
{
"Crafty-controller" = {
description = "Gestionnaire de serveur Minecraft";
href = "https://192.168.1.177:8443";
};
}
];
}
{
"Lecture" = [
{ {
"Calibre-web" = { "Calibre-web" = {
icon = "calibre"; icon = "calibre";
@ -91,15 +108,30 @@ in
}; };
} }
{ {
"Serveur Minecraft poulet" = { "Freshrss" = {
icon = "minecraft"; icon = "freshrss";
description = "serveur des trois poulets"; description = "Récupère les articles";
}; };
} }
]; ];
} }
{ {
"Téléchargement" = [ "Vidéos & Séries" = [
{
"Jellyfin" = {
icon = "jellyfin";
description = "Permet de regarder ou écouter du contenu.";
href = "http://${ip}:8096";
widget = {
type = "jellyfin";
url = "http://${ip}:8096";
enableBlocks = true;
key = config.sops.secrets.jellyfin;
};
};
}
{ {
"Jellyseerr" = { "Jellyseerr" = {
icon = "jellyseerr"; icon = "jellyseerr";
@ -149,7 +181,7 @@ in
"Radarr" = { "Radarr" = {
icon = "radarr"; icon = "radarr";
description = "Moteur de recherche pour les films"; description = "Moteur de recherche pour les films";
href = "http://${ip}:7878/"; href = "http://${ip}:7878";
widget = { widget = {
type = "radarr"; type = "radarr";
key = config.sops.secrets.radarr; key = config.sops.secrets.radarr;
@ -157,6 +189,17 @@ in
}; };
}; };
} }
{
"Bazarr" = {
icon = "bazarr";
description = "Vérifie les sous titres des films/séries.";
href = "http://${ip}:6767";
widget = {
type = "bazarr";
key = config.sops.secrets.bazarr;
};
};
}
{ {
"Transmission" = { "Transmission" = {
@ -222,7 +265,7 @@ in
widget = { widget = {
type = "pihole"; type = "pihole";
key = config.sops.secrets.pihole; key = config.sops.secrets.pihole;
url = "http://${cfg.piholeURL}/admin"; url = "http://${cfg.piholeURL}";
}; };
}; };
} }
@ -247,6 +290,17 @@ in
href = "http://${ip}:4001"; href = "http://${ip}:4001";
}; };
} }
{
"Uptime Robot" = {
icon = "uptimerobot";
description = "Surveille l'état des sites (hors réseau maison)";
widget = {
type = "uptimerobot";
url = "https://api.uptimerobot.com";
key = config.sops.secrets.uptimekuma;
};
};
}
]; ];
} }
]; ];

View file

@ -13,6 +13,7 @@ in
imports = [ imports = [
./features/arr-suite.nix ./features/arr-suite.nix
./features/authentik.nix ./features/authentik.nix
./features/caddy.nix
./features/calibre-web.nix ./features/calibre-web.nix
./features/containers.nix ./features/containers.nix
./features/freshrss.nix ./features/freshrss.nix
@ -108,20 +109,4 @@ in
openFirewall = true; openFirewall = true;
}; };
services.caddy = {
enable = true;
virtualHosts.":80".extraConfig = ''
reverse_proxy :8082
'';
virtualHosts.":3001".extraConfig = ''
reverse_proxy :3000
'';
virtualHosts.":4001".extraConfig = ''
reverse_proxy :4000
'';
virtualHosts.":8400".extraConfig = ''
reverse_proxy :8443
'';
};
} }