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/
|
.BAK/
|
||||||
.chat
|
.chat
|
||||||
|
.logs
|
||||||
*.bak
|
*.bak
|
|
@ -1,24 +1,16 @@
|
||||||
{
|
{
|
||||||
pkgs,
|
pkgs,
|
||||||
|
config,
|
||||||
...
|
...
|
||||||
}:
|
}:
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
## Required Configs ##
|
## Required Configs ##
|
||||||
../common/core # required
|
../common/core # required
|
||||||
|
|
||||||
## Host-specific Optional Configs ##
|
|
||||||
];
|
];
|
||||||
|
|
||||||
# Useful for this host
|
|
||||||
home.file = {
|
home.file = {
|
||||||
Pool.source = config.lib.file.mkOutOfStoreSymlink "/pool";
|
Pool.source = config.lib.file.mkOutOfStoreSymlink "/pool";
|
||||||
DockerStorage.source = config.lib.file.mkOutOfStoreSymlink "/mnt/DockerStorage";
|
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.
|
# Auto-generated using compose2nix v0.3.1.
|
||||||
{ pkgs, lib, ... }:
|
{
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
config,
|
||||||
|
...
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
# Only available in the Komodo LXC
|
# Only available in the Komodo LXC
|
||||||
DockerStorage = "/mnt/DockerStorage/komodo/stacks/authentik";
|
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,
|
lib,
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
@ -19,6 +18,9 @@ let
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
imports = lib.flatten [
|
imports = lib.flatten [
|
||||||
|
## Komodo Only ##
|
||||||
|
./config
|
||||||
|
|
||||||
## Hardware ##
|
## Hardware ##
|
||||||
./hardware.nix
|
./hardware.nix
|
||||||
|
|
||||||
|
@ -28,12 +30,9 @@ in
|
||||||
|
|
||||||
## Optional Configs ##
|
## Optional Configs ##
|
||||||
"hosts/common/optional/acme"
|
"hosts/common/optional/acme"
|
||||||
"hosts/common/optional/caddy"
|
|
||||||
"hosts/common/optional/docker.nix"
|
"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 ¯\_(ツ)_/¯
|
"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
|
# 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