Compare commits

...

2 commits

Author SHA1 Message Date
4b2c7464f0 cryptpad and copyparty
Some checks failed
Activate Homelab Configuration / rebuild (push) Failing after 2m15s
2026-04-13 08:16:16 +07:00
74754554e8 move tunnels to options.nix 2026-04-13 08:03:22 +07:00
4 changed files with 35 additions and 11 deletions

View file

@ -35,6 +35,8 @@ in {
dash = [
[ "PocketID" "authentik" "https://auth.${domain}" "http://localhost:1411/" ]
[ "Forgejo" "forgejo" "https://git.${domain}" "http://localhost:5080/" ]
[ "Copyparty" "files" "https://cdn.${domain}" "http://localhost:3923/" ]
[ "CryptPad" "cryptpad" "https://docs.${domain}" "http://localhost:7090/" ]
[ "CodeServer" "coder" "https://code.proxy.${domain}" "http://localhost:8443/" ]
[ "AdGuardHome" "adguard" "https://dns.proxy.${domain}" "http://localhost:8088/" ]
[ "Traefik" "traefikproxy" "https://dynamic.proxy.${domain}/dashboard/" "" ]
@ -46,6 +48,15 @@ in {
[ "SearXNG" "searxng" "https://search.proxy.${domain}" "http://localhost:8091/" ]
[ "Dockge" "docker" "https://containers.proxy.${domain}" "http://localhost:5001/" ]
];
routes = {
"git.${domain}" = "http://localhost:5080";
"cdn.${domain}" = "http://localhost:3923";
"docs.${domain}" = "http://localhost:7090";
"auth.${domain}" = "http://localhost:1411";
"dash.${domain}" = "http://localhost:5070";
"media.${domain}" = "http://localhost:8096";
"gallery.${domain}" = "http://localhost:2284";
};
proxy = {
base = "proxy.${domain}";
hosts = {
@ -65,6 +76,7 @@ in {
"pass" = d "http://localhost:8060";
"auth" = d "http://localhost:1411";
"git" = d "http://localhost:5080";
"cdn" = d "http://localhost:3923";
"ai" = d "http://localhost:8080";
"@" = d "http://localhost:5070";
};

View file

@ -0,0 +1,5 @@
{ pkgs, ... }: {
environment.systemPackages = with pkgs; [ copyparty-most ];
# TODO: systemd service
}

View file

@ -0,0 +1,15 @@
{ homelab, ... }: let
domain = "docs.${homelab.domain}";
in {
services.cryptpad = {
enable = true;
settings = {
httpPort = 7090;
websocketPort = 7080;
httpUnsafeOrigin = "https://${domain}";
httpSafeOrigin = "https://${domain}";
blockDailyCheck = true;
disableIntegratedEviction = true;
};
};
}

View file

@ -1,19 +1,11 @@
{ pkgs, lib, homelab, ... }: let
routes = {
"git.${homelab.domain}" = "http://localhost:5080";
"auth.${homelab.domain}" = "http://localhost:1411";
"dash.${homelab.domain}" = "http://localhost:5070";
"media.${homelab.domain}" = "http://localhost:8096";
"gallery.${homelab.domain}" = "http://localhost:2284";
};
in {
{ pkgs, lib, homelab, ... }: {
services.cloudflared = {
enable = true;
tunnels.homelab = {
credentialsFile = "/mnt/data/cloudflared/homelab.json";
certificateFile = "/mnt/data/cloudflared/cert.pem";
default = "http_status:404";
ingress = routes;
ingress = homelab.routes;
};
};
@ -32,6 +24,6 @@ in {
script = lib.concatMapStringsSep "\n" (domain: ''
echo "Ensuring DNS route for ${domain}..."
${pkgs.cloudflared}/bin/cloudflared tunnel --origincert /mnt/data/cloudflared/cert.pem route dns ${homelab.cf-tunnel-id} ${domain} || true
'') (builtins.attrNames routes);
'') (builtins.attrNames homelab.routes);
};
}