Changed caddy config
This commit is contained in:
parent
9fd98e97fe
commit
5da7636a42
@ -2,7 +2,7 @@
|
||||
# your system. Help is available in the configuration.nix(5) man page
|
||||
# and in the NixOS manual (accessible by running ‘nixos-help’).
|
||||
|
||||
{ modulesPath, ... }:
|
||||
{ modulesPath, lib, ... }:
|
||||
|
||||
{
|
||||
imports = [
|
||||
@ -12,6 +12,8 @@
|
||||
../../modules/system/default.nix
|
||||
];
|
||||
|
||||
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
|
||||
|
||||
settings = {
|
||||
hostname = "v-th-ctr-01";
|
||||
display-manager = "none";
|
||||
|
@ -57,6 +57,7 @@
|
||||
vikunja.enable = true;
|
||||
stalwart.enable = true;
|
||||
linkding.enable = true;
|
||||
jellyfin.enable = true;
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -49,11 +49,10 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs-local.routes = [{
|
||||
name = "beszel";
|
||||
settings.containers.caddy.routes.tbmrs-local.routes.beszel = {
|
||||
host = "monitor";
|
||||
url = "beszel:8090";
|
||||
}];
|
||||
};
|
||||
|
||||
sops.secrets = {
|
||||
"containers/beszel/key" = { };
|
||||
|
@ -5,6 +5,12 @@ with lib;
|
||||
let
|
||||
cfg = config.settings.containers.caddy;
|
||||
|
||||
toInternal = name: routesDef: {
|
||||
name = name;
|
||||
host = routesDef.host;
|
||||
url = routesDef.url;
|
||||
};
|
||||
|
||||
generateRoutes = domain: entries: lib.concatMapStrings (route: ''
|
||||
@${route.name} host ${route.host}.${domain}
|
||||
handle @${route.name} {
|
||||
@ -13,11 +19,8 @@ let
|
||||
'') entries;
|
||||
|
||||
routesOption = lib.mkOption {
|
||||
type = types.listOf (types.submodule {
|
||||
type = types.attrsOf (types.submodule {
|
||||
options = {
|
||||
name = mkOption {
|
||||
type = types.str;
|
||||
};
|
||||
url = mkOption {
|
||||
type = types.str;
|
||||
};
|
||||
@ -79,7 +82,7 @@ in {
|
||||
resolvers 1.1.1.1
|
||||
}
|
||||
|
||||
${generateRoutes cfg.routes.tbmrs.domain cfg.routes.tbmrs.routes}
|
||||
${generateRoutes cfg.routes.tbmrs.domain (mapAttrsToList toInternal cfg.routes.tbmrs.routes)}
|
||||
}
|
||||
|
||||
*.local.tbmrs.nl {
|
||||
@ -88,7 +91,7 @@ in {
|
||||
resolvers 1.1.1.1
|
||||
}
|
||||
|
||||
${generateRoutes cfg.routes.tbmrs-local.domain cfg.routes.tbmrs-local.routes}
|
||||
${generateRoutes cfg.routes.tbmrs-local.domain (mapAttrsToList toInternal cfg.routes.tbmrs-local.routes)}
|
||||
}
|
||||
'';
|
||||
};
|
||||
|
@ -29,10 +29,9 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs.routes = [{
|
||||
name = "forgejo";
|
||||
settings.containers.caddy.routes.tbmrs.routes.forgejo = {
|
||||
host = "git";
|
||||
url = "forgejo:3000";
|
||||
}];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -28,10 +28,9 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs-local.routes = [{
|
||||
name = "homeassistant";
|
||||
settings.containers.caddy.routes.tbmrs-local.routes.home-assistant = {
|
||||
host = "home-assistant";
|
||||
url = "homeassistant:8123";
|
||||
}];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -32,6 +32,11 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs.routes.homepage = {
|
||||
host = "home";
|
||||
url = "homepage:3000";
|
||||
};
|
||||
|
||||
home.file."containers/homepage/config/settings.yaml".source = (pkgs.formats.yaml { }).generate "settings" {
|
||||
title = "Timo's Server";
|
||||
description = "server from Timo";
|
||||
@ -125,12 +130,21 @@ in {
|
||||
};
|
||||
}
|
||||
{
|
||||
"Karakeep" = {
|
||||
href = "https://karakeep.local.tbmrs.nl";
|
||||
description = "Data hoarder";
|
||||
icon = "karakeep";
|
||||
"Linkding" = {
|
||||
href = "https://links.local.tbmrs.nl";
|
||||
description = "Bookmarks";
|
||||
icon = "linkding";
|
||||
server = "podman";
|
||||
container = "karakeep";
|
||||
container = "linkding";
|
||||
};
|
||||
}
|
||||
{
|
||||
"Stalwart" = {
|
||||
href = "https://mail.tbmrs.nl";
|
||||
description = "Mailserver";
|
||||
icon = "stalwart";
|
||||
server = "podman";
|
||||
container = "stalwart";
|
||||
};
|
||||
}
|
||||
];
|
||||
|
@ -72,10 +72,9 @@ in {
|
||||
exec = ''postgres -c shared_preload_libraries=vectors.so -c 'search_path="$$user", public, vectors' -c logging_collector=on -c max_wal_size=2GB -c shared_buffers=512MB -c wal_compression=on'';
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs.routes = [{
|
||||
name = "immich";
|
||||
settings.containers.caddy.routes.tbmrs.routes.immich = {
|
||||
host = "photos";
|
||||
url = "immich-server:2283";
|
||||
}];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
36
modules/home/containers/jellyfin.nix
Normal file
36
modules/home/containers/jellyfin.nix
Normal file
@ -0,0 +1,36 @@
|
||||
{ config, lib, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.settings.containers.jellyfin;
|
||||
in {
|
||||
options = {
|
||||
settings.containers.jellyfin.enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Enable jellyfin container
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
services.podman.containers.jellyfin = {
|
||||
image = "jellyfin:jellyfin";
|
||||
network = "proxy";
|
||||
volumes = [
|
||||
"%h/containers/jellyfin/data:/data"
|
||||
"%h/containers/jellyfin/cache:/cache"
|
||||
"%h/media:/media"
|
||||
];
|
||||
userNS = "keep-id";
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs.routes.jellyfin = {
|
||||
name = "jellyfin";
|
||||
host = "watch";
|
||||
url = "jellyfin:8096";
|
||||
};
|
||||
};
|
||||
}
|
@ -37,10 +37,9 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs.routes = [{
|
||||
name = "kanidm";
|
||||
settings.containers.caddy.routes.tbmrs.routes.kanidm = {
|
||||
host = "auth";
|
||||
url = "https://auth.tbmrs.nl";
|
||||
}];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -36,11 +36,10 @@ in {
|
||||
];
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs-local.routes = [{
|
||||
name = "linkding";
|
||||
settings.containers.caddy.routes.tbmrs-local.routes.linkding = {
|
||||
host = "links";
|
||||
url = "linkding:9090";
|
||||
}];
|
||||
};
|
||||
|
||||
settings.services.sops.enable = true;
|
||||
|
||||
|
@ -88,11 +88,10 @@ in {
|
||||
];
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs-local.routes = [{
|
||||
name = "paperless-ngx";
|
||||
settings.containers.caddy.routes.tbmrs-local.routes.paperless-ngx = {
|
||||
host = "paperless";
|
||||
url = "paperless-ngx:8000";
|
||||
}];
|
||||
};
|
||||
|
||||
sops.secrets = {
|
||||
"containers/paperless-ngx/db-password" = { };
|
||||
|
@ -39,11 +39,10 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs.routes = [{
|
||||
name = "pingvin-share";
|
||||
settings.containers.caddy.routes.tbmrs.routes.pingvin = {
|
||||
host = "share";
|
||||
url = "pingvin-share:3000";
|
||||
}];
|
||||
};
|
||||
|
||||
sops.templates = {
|
||||
"container-pingvin.yaml" = {
|
||||
|
@ -34,10 +34,9 @@ in {
|
||||
];
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs.routes = [{
|
||||
name = "stalwart";
|
||||
settings.containers.caddy.routes.tbmrs.routes.stalwart = {
|
||||
host = "mail";
|
||||
url = "stalwart:8080";
|
||||
}];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -44,16 +44,14 @@ in {
|
||||
];
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs-local.routes = [{
|
||||
name = "syncthing";
|
||||
settings.containers.caddy.routes.tbmrs-local.routes.sycnthing = {
|
||||
host = "syncthing";
|
||||
url = "syncthing:8384";
|
||||
}];
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs.routes = [{
|
||||
name = "dufs";
|
||||
settings.containers.caddy.routes.tbmrs.routes.dufs = {
|
||||
host = "files";
|
||||
url = "dufs:5000";
|
||||
}];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -24,10 +24,9 @@ in {
|
||||
];
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs.routes = [{
|
||||
name = "uptime-kuma";
|
||||
settings.containers.caddy.routes.tbmrs.routes.uptime-kuma = {
|
||||
host = "uptime";
|
||||
url = "uptime-kuma:3001";
|
||||
}];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -28,11 +28,10 @@ in {
|
||||
};
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs-local.routes = [{
|
||||
name = "vaultwarden";
|
||||
settings.containers.caddy.routes.tbmrs-local.routes.vaultwarden = {
|
||||
host = "vault";
|
||||
url = "vaultwarden:80";
|
||||
}];
|
||||
};
|
||||
|
||||
};
|
||||
}
|
||||
|
@ -26,10 +26,9 @@ in {
|
||||
];
|
||||
};
|
||||
|
||||
settings.containers.caddy.routes.tbmrs-local.routes = [{
|
||||
name = "vikunja";
|
||||
settings.containers.caddy.routes.tbmrs-local.routes.vikunja = {
|
||||
host = "tasks";
|
||||
url = "vikunja:3456";
|
||||
}];
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -46,6 +46,7 @@
|
||||
./containers/stalwart.nix
|
||||
./containers/static.nix
|
||||
./containers/linkding.nix
|
||||
./containers/jellyfin.nix
|
||||
];
|
||||
|
||||
config = {
|
||||
|
Loading…
x
Reference in New Issue
Block a user