aboutsummaryrefslogtreecommitdiff
path: root/nix/per-host/rproxy-2
diff options
context:
space:
mode:
authorKumar Damani <me@kumardamani.net>2026-07-01 04:09:21 +0000
committerKumar Damani <me@kumardamani.net>2026-07-01 04:12:25 +0000
commit02926f70770ceb90cf382da2b54f888ba969f423 (patch)
tree0a7cc1fc1c68ae91ae49070bea5cd3708b875819 /nix/per-host/rproxy-2
parentbc1ad567d2eac46088285ed7d2d688fffc91a82f (diff)
nix based config
Diffstat (limited to 'nix/per-host/rproxy-2')
-rw-r--r--nix/per-host/rproxy-2/configuration.nix190
1 files changed, 190 insertions, 0 deletions
diff --git a/nix/per-host/rproxy-2/configuration.nix b/nix/per-host/rproxy-2/configuration.nix
new file mode 100644
index 0000000..d1580e8
--- /dev/null
+++ b/nix/per-host/rproxy-2/configuration.nix
@@ -0,0 +1,190 @@
+{ config, pkgs, modulesPath, lib, system, ... }:
+
+{
+ config = {
+ sops.age.sshKeyPaths = [ "/etc/ssh/ssh_host_ed25519_key" ];
+ sops.defaultSopsFile = ../../secrets/rproxy-2.yaml;
+ sops.secrets."caddy/env" = {
+ owner = "caddy";
+ restartUnits = [ "caddy.service" ];
+ };
+
+ networking.hostName = "rproxy-2";
+ networking.firewall.allowedTCPPorts = [ 80 443 ];
+
+ services.caddy = {
+ enable = true;
+ package = pkgs.caddy.withPlugins {
+ plugins = [ "github.com/caddy-dns/namecheap@v1.0.0" ];
+ hash = "sha256-G+iBYwqKNB0kyQ060R9J2brbwsRl/WgvB6Tkc6MC5yU=";
+ };
+ environmentFile = config.sops.secrets."caddy/env".path;
+
+ # Test config only
+ # virtualHosts."rproxy2.kumardamani.net:80".extraConfig = ''
+ # respond "Hello, world! {$NAMECHEAP_API_USER}"
+ # tls internal
+ # '';
+
+ virtualHosts."lidarr.kumardamani.net:443".extraConfig = ''
+ reverse_proxy med-dl:8686
+ tls {
+ dns namecheap {
+ api_key {$NAMECHEAP_API_KEY}
+ user {$NAMECHEAP_API_USER}
+ }
+ }
+ '';
+
+ virtualHosts."radarr.kumardamani.net:443".extraConfig = ''
+ reverse_proxy med-dl:7878
+ tls {
+ dns namecheap {
+ api_key {$NAMECHEAP_API_KEY}
+ user {$NAMECHEAP_API_USER}
+ }
+ }
+ '';
+
+ virtualHosts."sonarr.kumardamani.net:443".extraConfig = ''
+ reverse_proxy med-dl:8989
+ tls {
+ dns namecheap {
+ api_key {$NAMECHEAP_API_KEY}
+ user {$NAMECHEAP_API_USER}
+ }
+ }
+ '';
+
+ virtualHosts."namemydragon.lol:443".extraConfig = ''
+ reverse_proxy sites:84
+ tls {
+ dns namecheap {
+ api_key {$NAMECHEAP_API_KEY}
+ user {$NAMECHEAP_API_USER}
+ }
+ }
+ '';
+
+ virtualHosts."www.namemydragon.lol:443".extraConfig = ''
+ reverse_proxy sites:84
+ tls {
+ dns namecheap {
+ api_key {$NAMECHEAP_API_KEY}
+ user {$NAMECHEAP_API_USER}
+ }
+ }
+ '';
+
+ virtualHosts."metrics2.kumardamani.net:443".extraConfig = ''
+ reverse_proxy monitoring:9090
+ tls {
+ dns namecheap {
+ api_key {$NAMECHEAP_API_KEY}
+ user {$NAMECHEAP_API_USER}
+ }
+ }
+ '';
+
+ virtualHosts."torrents.kumardamani.net:443".extraConfig = ''
+ reverse_proxy torrents:9091
+ tls {
+ dns namecheap {
+ api_key {$NAMECHEAP_API_KEY}
+ user {$NAMECHEAP_API_USER}
+ }
+ }
+ '';
+
+ virtualHosts."vault.kumardamani.net:443".extraConfig = ''
+ reverse_proxy vault:8989
+ tls {
+ dns namecheap {
+ api_key {$NAMECHEAP_API_KEY}
+ user {$NAMECHEAP_API_USER}
+ }
+ }
+ '';
+
+ virtualHosts."nc.kumardamani.net:443".extraConfig = ''
+ reverse_proxy nc-kumar:11000
+ tls {
+ dns namecheap {
+ api_key {$NAMECHEAP_API_KEY}
+ user {$NAMECHEAP_API_USER}
+ }
+ }
+ '';
+
+ virtualHosts."kumardamani.net:443".extraConfig = ''
+ reverse_proxy sites:83
+ tls {
+ dns namecheap {
+ api_key {$NAMECHEAP_API_KEY}
+ user {$NAMECHEAP_API_USER}
+ }
+ }
+ '';
+
+ virtualHosts."www.kumardamani.net:443".extraConfig = ''
+ reverse_proxy sites:83
+ tls {
+ dns namecheap {
+ api_key {$NAMECHEAP_API_KEY}
+ user {$NAMECHEAP_API_USER}
+ }
+ }
+ '';
+
+ virtualHosts."damanistuff.net:443".extraConfig = ''
+ reverse_proxy sites:82
+ tls {
+ dns namecheap {
+ api_key {$NAMECHEAP_API_KEY}
+ user {$NAMECHEAP_API_USER}
+ }
+ }
+ '';
+
+ virtualHosts."www.damanistuff.net:443".extraConfig = ''
+ reverse_proxy sites:82
+ tls {
+ dns namecheap {
+ api_key {$NAMECHEAP_API_KEY}
+ user {$NAMECHEAP_API_USER}
+ }
+ }
+ '';
+
+ virtualHosts."kavisjourneys.com".extraConfig = ''
+ reverse_proxy sites:81
+ tls {
+ dns namecheap {
+ api_key {$NAMECHEAP_API_KEY}
+ user {$NAMECHEAP_API_USER}
+ }
+ }
+ '';
+
+ virtualHosts."www.kavisjourneys.com".extraConfig = ''
+ reverse_proxy sites:81
+ tls {
+ dns namecheap {
+ api_key {$NAMECHEAP_API_KEY}
+ user {$NAMECHEAP_API_USER}
+ }
+ }
+ '';
+
+ virtualHosts."*.min.kumardamani.net".extraConfig = ''
+ reverse_proxy minio:9000
+ tls {
+ dns namecheap {
+ api_key {$NAMECHEAP_API_KEY}
+ user {$NAMECHEAP_API_USER}
+ }
+ }
+ '';
+ };
+ };
+}