Refactors Komodo host configs
• Moves Caddy configuration from optional to dedicated host config file • Relocates container configs for authentik and Komodo under new host config path • Updates default host config to import the new structure • Bumps system stateVersion to 25.05
This commit is contained in:
parent
2942d4bf9a
commit
5fb3d590c6
11 changed files with 120 additions and 129 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -1,5 +1,4 @@
|
|||
|
||||
nixos/modules/nextcloud/nextcloud-admin-pass
|
||||
.BAK/
|
||||
.chat
|
||||
.logs
|
||||
*.bak
|
|
@ -1,24 +1,16 @@
|
|||
{
|
||||
pkgs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{
|
||||
imports = [
|
||||
## Required Configs ##
|
||||
../common/core # required
|
||||
|
||||
## Host-specific Optional Configs ##
|
||||
];
|
||||
|
||||
# Useful for this host
|
||||
home.file = {
|
||||
Pool.source = config.lib.file.mkOutOfStoreSymlink "/pool";
|
||||
DockerStorage.source = config.lib.file.mkOutOfStoreSymlink "/mnt/DockerStorage";
|
||||
};
|
||||
|
||||
## Packages with no needed configs ##
|
||||
# home.packages = builtins.attrValues {
|
||||
# inherit (pkgs)
|
||||
# ;
|
||||
# };
|
||||
}
|
||||
|
|
|
@ -1,10 +0,0 @@
|
|||
{ config, ... }:
|
||||
{
|
||||
imports = [
|
||||
"./${config.hostSpec.hostName}.nix"
|
||||
];
|
||||
|
||||
services.caddy = {
|
||||
enable = true;
|
||||
};
|
||||
}
|
|
@ -1,100 +0,0 @@
|
|||
{
|
||||
services.caddy.virtualHosts = {
|
||||
# "ryot.foo" = {
|
||||
# useACMEHost = "ryot.foo";
|
||||
# extraConfig = ''
|
||||
# reverse_proxy 104.40.3.44:80
|
||||
# '';
|
||||
# };
|
||||
|
||||
"auth.ryot.foo" = {
|
||||
useACMEHost = "ryot.foo";
|
||||
extraConfig = ''
|
||||
reverse_proxy localhost:9000 {
|
||||
header_up Host {host}
|
||||
header_up X-Forwarded-For {remote}
|
||||
header_up X-Forwarded-Proto {scheme}
|
||||
header_up X-Forwarded-Protocol {scheme}
|
||||
header_up X-Forwarded-Port {server_port}
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
"frp.ryot.foo" = {
|
||||
useACMEHost = "ryot.foo";
|
||||
extraConfig = ''
|
||||
reverse_proxy localhost:4041
|
||||
'';
|
||||
};
|
||||
|
||||
"grafana.ryot.foo" = {
|
||||
useACMEHost = "ryot.foo";
|
||||
extraConfig = ''
|
||||
reverse_proxy localhost:3001
|
||||
'';
|
||||
};
|
||||
|
||||
"git.ryot.foo" = {
|
||||
useACMEHost = "ryot.foo";
|
||||
extraConfig = ''
|
||||
reverse_proxy localhost:3003
|
||||
'';
|
||||
};
|
||||
|
||||
"influx.ryot.foo" = {
|
||||
useACMEHost = "ryot.foo";
|
||||
extraConfig = ''
|
||||
reverse_proxy localhost:8086
|
||||
'';
|
||||
};
|
||||
|
||||
"home.ryot.foo" = {
|
||||
useACMEHost = "ryot.foo";
|
||||
extraConfig = ''
|
||||
reverse_proxy localhost:7475
|
||||
'';
|
||||
};
|
||||
|
||||
"komodo.ryot.foo" = {
|
||||
useACMEHost = "ryot.foo";
|
||||
extraConfig = ''
|
||||
reverse_proxy localhost:9120
|
||||
'';
|
||||
};
|
||||
|
||||
"mail.ryot.foo" = {
|
||||
useACMEHost = "ryot.foo";
|
||||
extraConfig = ''
|
||||
reverse_proxy localhost:9002
|
||||
'';
|
||||
};
|
||||
|
||||
"map.ryot.foo" = {
|
||||
useACMEHost = "ryot.foo";
|
||||
extraConfig = ''
|
||||
reverse_proxy localhost:25566
|
||||
'';
|
||||
};
|
||||
|
||||
"outline.ryot.foo" = {
|
||||
useACMEHost = "ryot.foo";
|
||||
extraConfig = ''
|
||||
reverse_proxy localhost:3480
|
||||
'';
|
||||
};
|
||||
|
||||
"plane.ryot.foo" = {
|
||||
useACMEHost = "ryot.foo";
|
||||
extraConfig = ''
|
||||
reverse_proxy localhost:3000
|
||||
'';
|
||||
};
|
||||
|
||||
"upsnap.ryot.foo" = {
|
||||
useACMEHost = "ryot.foo";
|
||||
extraConfig = ''
|
||||
reverse_proxy localhost:8090
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
|
@ -1,6 +1,10 @@
|
|||
# Auto-generated using compose2nix v0.3.1.
|
||||
{ pkgs, lib, ... }:
|
||||
|
||||
{
|
||||
pkgs,
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
let
|
||||
# Only available in the Komodo LXC
|
||||
DockerStorage = "/mnt/DockerStorage/komodo/stacks/authentik";
|
103
hosts/nixos/komodo/config/caddy.nix
Normal file
103
hosts/nixos/komodo/config/caddy.nix
Normal file
|
@ -0,0 +1,103 @@
|
|||
{
|
||||
services.caddy = {
|
||||
enable = true;
|
||||
virtualHosts = {
|
||||
# "ryot.foo" = {
|
||||
# useACMEHost = "ryot.foo";
|
||||
# extraConfig = ''
|
||||
# reverse_proxy 104.40.3.44:80
|
||||
# '';
|
||||
# };
|
||||
|
||||
"auth.ryot.foo" = {
|
||||
useACMEHost = "ryot.foo";
|
||||
extraConfig = ''
|
||||
reverse_proxy localhost:9000 {
|
||||
header_up Host {host}
|
||||
header_up X-Forwarded-For {remote}
|
||||
header_up X-Forwarded-Proto {scheme}
|
||||
header_up X-Forwarded-Protocol {scheme}
|
||||
header_up X-Forwarded-Port {server_port}
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
||||
"frp.ryot.foo" = {
|
||||
useACMEHost = "ryot.foo";
|
||||
extraConfig = ''
|
||||
reverse_proxy localhost:4041
|
||||
'';
|
||||
};
|
||||
|
||||
"grafana.ryot.foo" = {
|
||||
useACMEHost = "ryot.foo";
|
||||
extraConfig = ''
|
||||
reverse_proxy localhost:3001
|
||||
'';
|
||||
};
|
||||
|
||||
"git.ryot.foo" = {
|
||||
useACMEHost = "ryot.foo";
|
||||
extraConfig = ''
|
||||
reverse_proxy localhost:3003
|
||||
'';
|
||||
};
|
||||
|
||||
"influx.ryot.foo" = {
|
||||
useACMEHost = "ryot.foo";
|
||||
extraConfig = ''
|
||||
reverse_proxy localhost:8086
|
||||
'';
|
||||
};
|
||||
|
||||
"home.ryot.foo" = {
|
||||
useACMEHost = "ryot.foo";
|
||||
extraConfig = ''
|
||||
reverse_proxy localhost:7475
|
||||
'';
|
||||
};
|
||||
|
||||
"komodo.ryot.foo" = {
|
||||
useACMEHost = "ryot.foo";
|
||||
extraConfig = ''
|
||||
reverse_proxy localhost:9120
|
||||
'';
|
||||
};
|
||||
|
||||
"mail.ryot.foo" = {
|
||||
useACMEHost = "ryot.foo";
|
||||
extraConfig = ''
|
||||
reverse_proxy localhost:9002
|
||||
'';
|
||||
};
|
||||
|
||||
"map.ryot.foo" = {
|
||||
useACMEHost = "ryot.foo";
|
||||
extraConfig = ''
|
||||
reverse_proxy localhost:25566
|
||||
'';
|
||||
};
|
||||
|
||||
"outline.ryot.foo" = {
|
||||
useACMEHost = "ryot.foo";
|
||||
extraConfig = ''
|
||||
reverse_proxy localhost:3480
|
||||
'';
|
||||
};
|
||||
|
||||
"plane.ryot.foo" = {
|
||||
useACMEHost = "ryot.foo";
|
||||
extraConfig = ''
|
||||
reverse_proxy localhost:3000
|
||||
'';
|
||||
};
|
||||
|
||||
"upsnap.ryot.foo" = {
|
||||
useACMEHost = "ryot.foo";
|
||||
extraConfig = ''
|
||||
reverse_proxy localhost:8090
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
4
hosts/nixos/komodo/config/default.nix
Normal file
4
hosts/nixos/komodo/config/default.nix
Normal file
|
@ -0,0 +1,4 @@
|
|||
{ lib, ... }:
|
||||
{
|
||||
imports = lib.custom.scanPaths ./.;
|
||||
}
|
|
@ -6,7 +6,6 @@
|
|||
###############################################################
|
||||
|
||||
{
|
||||
inputs,
|
||||
lib,
|
||||
config,
|
||||
pkgs,
|
||||
|
@ -19,6 +18,9 @@ let
|
|||
in
|
||||
{
|
||||
imports = lib.flatten [
|
||||
## Komodo Only ##
|
||||
./config
|
||||
|
||||
## Hardware ##
|
||||
./hardware.nix
|
||||
|
||||
|
@ -28,12 +30,9 @@ in
|
|||
|
||||
## Optional Configs ##
|
||||
"hosts/common/optional/acme"
|
||||
"hosts/common/optional/caddy"
|
||||
"hosts/common/optional/docker.nix"
|
||||
"hosts/common/containers/authentik"
|
||||
"hosts/common/containers/komodo"
|
||||
|
||||
## Komodo Specific ##
|
||||
## Host User ##
|
||||
"hosts/users/${username}" # # Not the best solution but I always have one user so ¯\_(ツ)_/¯
|
||||
])
|
||||
];
|
||||
|
@ -66,5 +65,5 @@ in
|
|||
];
|
||||
|
||||
# https://wiki.nixos.org/wiki/FAQ/When_do_I_update_stateVersion
|
||||
system.stateVersion = "24.11";
|
||||
system.stateVersion = "25.05";
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue