Compare commits

..

3 commits

Author SHA1 Message Date
6cdc944451 add proxy for some apps 2026-03-06 21:07:52 +07:00
9a8557c39a use omv for shares 2026-03-06 21:06:47 +07:00
590b3e0fea add shellc conf to server 2026-03-06 21:06:05 +07:00
6 changed files with 37 additions and 7 deletions

View file

@ -65,7 +65,7 @@
in { in {
nixosConfigurations = { nixosConfigurations = {
thinkpad = nixosConfigWithHome "thinkpad"; thinkpad = nixosConfigWithHome "thinkpad";
homelab = nixosConfig "homelab"; homelab = nixosConfigWithHome "homelab";
bootstrap = nixosConfig "bootstrap"; bootstrap = nixosConfig "bootstrap";
}; };
homeConfigurations = { homeConfigurations = {

5
hosts/homelab/home.nix Normal file
View file

@ -0,0 +1,5 @@
{ ... }: {
imports = [
../../modules/home
];
}

View file

@ -6,9 +6,9 @@
}; };
in { in {
fileSystems = { fileSystems = {
"/mnt/share" = globalOpts // { # "/mnt/share" = globalOpts // {
device = homelab.disks.share; # device = homelab.disks.share;
}; # };
"/mnt/data" = globalOpts // { "/mnt/data" = globalOpts // {
device = homelab.disks.data; device = homelab.disks.data;
}; };

View file

@ -52,11 +52,17 @@
[ "CDN" "http://localhost:3000/" ] [ "CDN" "http://localhost:3000/" ]
[ "Proxy" "https://proxy.${homelab.domain}/" ] [ "Proxy" "https://proxy.${homelab.domain}/" ]
]; ];
external = [
[ "Proxmox" "proxmox" "https://server.proxy.${homelab.domain}" "http://server.dns.${homelab.domain}:8006/" ]
[ "OpenWRT" "openwrt" "https://router.proxy.${homelab.domain}" "http://router.dns.${homelab.domain}:80/" ]
[ "HomeAssistant" "homeassistant" "https://home.proxy.${homelab.domain}" "http://home.dns.${homelab.domain}:8123/" ]
[ "OpenMediaVault" "openmediavault" "https://nas.proxy.${homelab.domain}" "http://nas.dns.${homelab.domain}:80/" ]
[ "ApacheHTTPD" "apache" "https://cdn.proxy.${homelab.domain}" "http://nas.dns.${homelab.domain}:3000/" ]
];
services = [ services = [
[ "PocketID" "authentik" "https://auth.${homelab.domain}" "http://localhost:1411/" ] [ "PocketID" "authentik" "https://auth.${homelab.domain}" "http://localhost:1411/" ]
[ "Forgejo" "forgejo" "https://git.${homelab.domain}" "http://localhost:5080/" ] [ "Forgejo" "forgejo" "https://git.${homelab.domain}" "http://localhost:5080/" ]
[ "AdGuardHome" "adguard" "https://dns.proxy.${homelab.domain}" "http://localhost:8088/" ] [ "AdGuardHome" "adguard" "https://dns.proxy.${homelab.domain}" "http://localhost:8088/" ]
[ "ApacheHTTPD" "apache" "https://cdn.proxy.${homelab.domain}" "http://localhost:3000/" ]
[ "Immich" "immich" "https://gallery.proxy.${homelab.domain}" "http://localhost:2283/" ] [ "Immich" "immich" "https://gallery.proxy.${homelab.domain}" "http://localhost:2283/" ]
[ "Jellyfin" "jellyfin" "https://media.proxy.${homelab.domain}" "http://localhost:8096/" ] [ "Jellyfin" "jellyfin" "https://media.proxy.${homelab.domain}" "http://localhost:8096/" ]
[ "VaultWarden" "vaultwarden" "https://pass.proxy.${homelab.domain}" "http://localhost:8060/" ] [ "VaultWarden" "vaultwarden" "https://pass.proxy.${homelab.domain}" "http://localhost:8060/" ]
@ -258,6 +264,19 @@ in {
type = "server-stats"; type = "server-stats";
servers = [{ type = "local"; }]; servers = [{ type = "local"; }];
} }
{
type = "monitor";
cache = "1m";
title = "External";
sites = map (e: {
same-tab = true;
allow-insecure = true;
title = builtins.elemAt e 0;
icon = "si:${builtins.elemAt e 1}";
url = builtins.elemAt e 2;
check-url = builtins.elemAt e 3;
}) external;
}
{ {
type = "monitor"; type = "monitor";
cache = "1m"; cache = "1m";

View file

@ -1,13 +1,18 @@
{ homelab, lib, ... }: let { homelab, lib, ... }: let
base = "proxy.${homelab.domain}"; base = "proxy.${homelab.domain}";
hosts = { hosts = {
"server" = { dest = "http://server.dns.${homelab.domain}:8006"; auth = false; };
"router" = { dest = "http://router.dns.${homelab.domain}:80"; auth = false; };
"home" = { dest = "http://home.dns.${homelab.domain}:8123"; auth = false; };
"nas" = { dest = "http://nas.dns.${homelab.domain}:80"; auth = false; };
"cdn" = { dest = "http://nas.dns.${homelab.domain}:3000"; auth = false; };
"dns" = { dest = "http://localhost:8088"; auth = true; }; "dns" = { dest = "http://localhost:8088"; auth = true; };
"ai" = { dest = "http://localhost:8080"; auth = true; }; "ai" = { dest = "http://localhost:8080"; auth = true; };
"containers" = { dest = "http://localhost:5001"; auth = false; }; "containers" = { dest = "http://localhost:5001"; auth = false; };
"remote" = { dest = "http://localhost:8085"; auth = false; }; "remote" = { dest = "http://localhost:8085"; auth = false; };
"pass" = { dest = "http://localhost:8060"; auth = false; }; "pass" = { dest = "http://localhost:8060"; auth = false; };
"cdn" = { dest = "http://localhost:3000"; auth = false; };
"gallery" = { dest = "http://localhost:2283"; auth = false; }; "gallery" = { dest = "http://localhost:2283"; auth = false; };
"media" = { dest = "http://localhost:8096"; auth = false; }; "media" = { dest = "http://localhost:8096"; auth = false; };

View file

@ -6,12 +6,13 @@
]; ];
in { in {
imports = [ imports = [
# ./homelab/share.nix # gonna use omv for now
./homelab/containers.nix ./homelab/containers.nix
./homelab/gallery.nix ./homelab/gallery.nix
./homelab/tunnels.nix ./homelab/tunnels.nix
./homelab/remote.nix ./homelab/remote.nix
./homelab/media.nix ./homelab/media.nix
./homelab/share.nix
./homelab/proxy.nix ./homelab/proxy.nix
./homelab/auth.nix ./homelab/auth.nix
./homelab/pass.nix ./homelab/pass.nix