feat: + kestra for AZ-PRM-1

This commit is contained in:
2026-03-10 12:49:11 +01:00
parent e832ba3742
commit ad24a7a91c
11 changed files with 730 additions and 639 deletions

190
flake.nix
View File

@@ -178,96 +178,126 @@
};
};
homeConfigurations = {
"logistik@AZPILOGISTIK01" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages."aarch64-linux";
extraSpecialArgs = {
inherit inputs outputs;
hostname = "AZPILOGISTIK01";
username = "logistik";
"logistik@AZPILOGISTIK01" = let
system = "aarch64-linux";
in
home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.${system};
extraSpecialArgs = {
inherit inputs outputs system;
hostname = "AZPILOGISTIK01";
username = "logistik";
};
modules = [./home/users/logistik/AZPILOGISTIK01.nix];
};
modules = [./home/users/logistik/AZPILOGISTIK01.nix];
};
"logistik@AZPILOGISTIK02" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages."aarch64-linux";
extraSpecialArgs = {
inherit inputs outputs;
hostname = "AZPILOGISTIK02";
username = "logistik";
"logistik@AZPILOGISTIK02" = let
system = "aarch64-linux";
in
home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.${system};
extraSpecialArgs = {
inherit inputs outputs system;
hostname = "AZPILOGISTIK02";
username = "logistik";
};
modules = [./home/users/logistik/AZPILOGISTIK02.nix];
};
modules = [./home/users/logistik/AZPILOGISTIK02.nix];
};
"logistik@AZPILOGISTIK03" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages."aarch64-linux";
extraSpecialArgs = {
inherit inputs outputs;
hostname = "AZPILOGISTIK03";
username = "logistik";
"logistik@AZPILOGISTIK03" = let
system = "aarch64-linux";
in
home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.${system};
extraSpecialArgs = {
inherit inputs outputs system;
hostname = "AZPILOGISTIK03";
username = "logistik";
};
modules = [./home/users/logistik/AZPILOGISTIK03.nix];
};
modules = [./home/users/logistik/AZPILOGISTIK03.nix];
};
"logistik@AZPILOGISTIK04" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages."aarch64-linux";
extraSpecialArgs = {
inherit inputs outputs;
hostname = "AZPILOGISTIK04";
username = "logistik";
"logistik@AZPILOGISTIK04" = let
system = "aarch64-linux";
in
home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.${system};
extraSpecialArgs = {
inherit inputs outputs system;
hostname = "AZPILOGISTIK04";
username = "logistik";
};
modules = [./home/users/logistik/AZPILOGISTIK04.nix];
};
modules = [./home/users/logistik/AZPILOGISTIK04.nix];
};
"logistik@AZPILOGISTIK05" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages."aarch64-linux";
extraSpecialArgs = {
inherit inputs outputs;
hostname = "AZPILOGISTIK05";
username = "logistik";
"logistik@AZPILOGISTIK05" = let
system = "aarch64-linux";
in
home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.${system};
extraSpecialArgs = {
inherit inputs outputs system;
hostname = "AZPILOGISTIK05";
username = "logistik";
};
modules = [./home/users/logistik/AZPILOGISTIK05.nix];
};
modules = [./home/users/logistik/AZPILOGISTIK05.nix];
};
"logistik@AZPILOGISTIKTEST" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages."aarch64-linux";
extraSpecialArgs = {
inherit inputs outputs;
hostname = "AZPILOGISTIKTEST";
username = "logistik";
"logistik@AZPILOGISTIKTEST" = let
system = "aarch64-linux";
in
home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.${system};
extraSpecialArgs = {
inherit inputs outputs system;
hostname = "AZPILOGISTIKTEST";
username = "logistik";
};
modules = [./home/users/logistik/AZPILOGISTIKTEST.nix];
};
modules = [./home/users/logistik/AZPILOGISTIKTEST.nix];
};
"produktion@AZPIPRODUKTION01" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages."aarch64-linux";
extraSpecialArgs = {
inherit inputs outputs;
hostname = "AZPIPRODUKTION01";
username = "produktion";
"produktion@AZPIPRODUKTION01" = let
system = "aarch64-linux";
in
home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.${system};
extraSpecialArgs = {
inherit inputs outputs system;
hostname = "AZPIPRODUKTION01";
username = "produktion";
};
modules = [./home/users/produktion/AZPIPRODUKTION01.nix];
};
modules = [./home/users/produktion/AZPIPRODUKTION01.nix];
};
"produktion@AZPIPRODUKTION02" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages."aarch64-linux";
extraSpecialArgs = {
inherit inputs outputs;
hostname = "AZPIPRODUKTION02";
username = "produktion";
"produktion@AZPIPRODUKTION02" = let
system = "aarch64-linux";
in
home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.${system};
extraSpecialArgs = {
inherit inputs outputs system;
hostname = "AZPIPRODUKTION02";
username = "produktion";
};
modules = [./home/users/produktion/AZPIPRODUKTION02.nix];
};
modules = [./home/users/produktion/AZPIPRODUKTION02.nix];
};
"produktion@AZPIPRODUKTION03" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages."aarch64-linux";
extraSpecialArgs = {
inherit inputs outputs;
hostname = "AZPIPRODUKTION03";
username = "produktion";
"produktion@AZPIPRODUKTION03" = let
system = "aarch64-linux";
in
home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.${system};
extraSpecialArgs = {
inherit inputs outputs system;
hostname = "AZPIPRODUKTION03";
username = "produktion";
};
modules = [./home/users/produktion/AZPIPRODUKTION03.nix];
};
modules = [./home/users/produktion/AZPIPRODUKTION03.nix];
};
"produktion@AZPIPRODUKTION04" = home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages."aarch64-linux";
extraSpecialArgs = {
inherit inputs outputs;
hostname = "AZPIPRODUKTION04";
username = "produktion";
"produktion@AZPIPRODUKTION04" = let
system = "aarch64-linux";
in
home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.${system};
extraSpecialArgs = {
inherit inputs outputs system;
hostname = "AZPIPRODUKTION04";
username = "produktion";
};
modules = [./home/users/produktion/AZPIPRODUKTION04.nix];
};
modules = [./home/users/produktion/AZPIPRODUKTION04.nix];
};
};
deploy.nodes = {
AZ-CLD-1 = {

View File

@@ -73,7 +73,7 @@ in {
"librechat_uploads:/app/uploads"
"librechat_logs:/app/api/logs"
];
extraOptions = ["--ip=10.89.0.23" "--network=web"];
extraOptions = ["--ip=10.89.0.23" "--network=web" "--dns=8.8.8.8" "--dns=8.8.4.4"];
};
};

View File

@@ -9,7 +9,7 @@
in {
virtualisation.oci-containers.containers.${serviceName} = {
#image = "ghcr.io/berriai/litellm:v1.78.5-stable";
image = "docker.litellm.ai/berriai/litellm:v1.81.14-stable.gpt-5.4_patch";
image = "docker.litellm.ai/berriai/litellm:v1.81.14-stable";
ports = ["127.0.0.1:${toString servicePort}:4000"];
environmentFiles = [config.age.secrets.litellm-env.path];
environment = {

View File

@@ -5,4 +5,7 @@
./secrets.nix
./services
];
extraServices = {
podman.enable = true;
};
}

View File

@@ -4,6 +4,11 @@
traefik-env = {
file = ../../secrets/traefik-env.age;
};
kestra-config = {
file = ../../secrets/kestra-config.age;
mode = "644";
};
kestra-env = {file = ../../secrets/kestra-env.age;};
n8n-env = {
file = ../../secrets/n8n-env.age;
};

View File

@@ -1,7 +1,7 @@
{lib, ...}: {
imports = [
#./baserow.nix
# ./kestra.nix
./kestra.nix
./stirling-pdf.nix
];
system.activationScripts.createPodmanNetworkWeb = lib.mkAfter ''

View File

@@ -1,12 +1,20 @@
{config, ...}: {
virtualisation.oci-containers.containers."kestra" = {
{
config,
lib,
...
}: let
serviceName = "kestra";
portUtils = import ../../../../lib/port-utils.nix {inherit lib;};
servicePort = portUtils.getPort serviceName "AZ-CLD-1";
in {
virtualisation.oci-containers.containers."${serviceName}" = {
image = "docker.io/kestra/kestra:latest";
environmentFiles = [config.age.secrets.kestra-env.path];
cmd = ["server" "standalone" "--config" "/etc/config/application.yaml"];
ports = ["127.0.0.1:3031:8080"];
ports = ["127.0.0.1:${toString servicePort}:8080"];
user = "root";
volumes = [
"/var/run/docker.sock:/var/run/docker.sock"
"/var/run/podman/podman.sock:/var/run/docker.sock"
"${config.age.secrets.kestra-config.path}:/etc/config/application.yaml"
"kestra_data:/app/storage"
"/tmp/kestra-wd:/tmp/kestra-wd"
@@ -20,7 +28,7 @@
# Traefik configuration specific to littlelink
services.traefik.dynamicConfigOptions.http = {
services.kestra.loadBalancer.servers = [{url = "http://localhost:3031/";}];
services.kestra.loadBalancer.servers = [{url = "http://localhost:${toString servicePort}/";}];
routers.kestra = {
rule = "Host(`k.l.az-gruppe.com`)";

View File

@@ -16,7 +16,8 @@ in {
"secrets/traefik-env.age".publicKeys = systems ++ users;
"secrets/baserow-db.age".publicKeys = systems ++ users;
"secrets/baserow-env.age".publicKeys = systems ++ users;
"secrets/kestra-db.age".publicKeys = systems ++ users;
"secrets/kestra-env.age".publicKeys = systems ++ users;
"secrets/kestra-config.age".publicKeys = systems ++ users;
"secrets/librechat-env.age".publicKeys = systems ++ users;
"secrets/librechat.age".publicKeys = systems ++ users;
"secrets/librechat-env-prod.age".publicKeys = systems ++ users;

26
secrets/kestra-config.age Normal file
View File

@@ -0,0 +1,26 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFpoVnNlZyB4TWJl
YUhxeXRVMDF5MnNMK1hQOTA2MFB1OWRCdjAzZ0ZSaWI3UGV6MHdvCjBlNTNRMVBB
cU0xZThjTUJvM0lOUGxMRUhiUUxrZXhKNzlRUmdMajQxbW8KLT4gc3NoLWVkMjU1
MTkgU3JIYXFBIE1BOCtTbGlmQXplU2pSSjBxUFQwMGlZbWJiMDR3cTFCaGRDNllj
ejU0ajQKRW9RWXVKc055QXlHemlaaU40ck9vS1Y2ckdPRENSdmZEd2hYQW9SbFFp
WQotPiBzc2gtZWQyNTUxOSBsR3FWWmcgNExQT2gyaU1xNStxZ21XVS9QMjRCR2FM
bWRWVjlHSVJlQXE3S2dEZVBFOApsdlE3a3ZZWDhGQ29QaG1CQ0VjYVRHMXFtbkJS
amlveTZTRE5tOXR6b2NZCi0+IHNzaC1lZDI1NTE5IENTTXloZyBjNXNOaW82VzY5
S1JOa2hLck9WamxXcEU3anYzM0Jwb290emRCVDUwaTFjCjNZN3NVNmNySWJXTzRi
bmhPTE1ic2hETTlVdDdRYmViRkpDYUwxNDllWFkKLT4gOy0tZ3JlYXNlIDRLPiFT
UCFVIEtibUYoIH5CdyBpLSU+VSEKMWFVRUI1eUlsQ1huRVkyUTFyYTdSSmFMN0xN
NEZnCi0tLSAxcWxjdXZSRWlQZGZtUzcxZkR2L0phcUNtRG1JQzZSalZDSzRoS05s
RkVVCh/SZUhAjpHGjXnnkPmXn7qcYbwXczOrA1z4GN81ntshqzoszx2WyDk7Wfgr
BjlHy/Jn3M8s5im+JfE5BS4PuhAjZDKIBXGlghEsvJVIyt5jZvJDdYp3wdu9+IAT
Y9qzT0De8xFQYg76hUf0RhoXyRMzgP0rImFcCdvMPdMnMD4Ea518Zex01DiexNEB
OtUBbo98spOBr6Ih1HN7thXvSrCA9g6VtNEm3WJWXGSWOQiFboVLh1Ds0WUFHkow
96Ip5TgliBdAZSrt6YWlcxDccjsMDwZ5an8l5QjqNNvFP1tdV/JwZ/vKfLsxp1le
1OujlZJUmOFYxyOnzggTesInvBvL6Fjku5xLFM+jKKuII35XSXzMWGQ7ekpYxMQ/
qDkHqmIZJFniU/13Tc2J2aVMo1ugWG3qKU7Xr31c+OTzH727Qec8xCkx9zllMwKE
H2AhVbWL+3j8aeeOU7mNyDnL0hU7pyfvb2Ni0xUaUyHUfFtz8jDKU3BYMiVxQlR0
NJSwrEdo9ncU2994AwNYwhCAVvNAt7DclaoxakD0hpWOfk7bOjvGTt2tIIdauenK
lhYqmsZCs5zv6EH9QneNxKsLwIu0xnSIGigllntYyqbk14XSciWCfmPgWLZ+1uRW
yNZhxNPID7NvhCreVSqgcz2qhk2vYwNG8+yY2Hq6Y3KEp0Wk8dJc7WW8S/4/y1dA
/XCEhQ/+6zAH8h1EzqMkNnmHDxWXwRGmCTE=
-----END AGE ENCRYPTED FILE-----

16
secrets/kestra-env.age Normal file
View File

@@ -0,0 +1,16 @@
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IHNzaC1lZDI1NTE5IFpoVnNlZyBjdmNT
bnJScmdlUUZPZSsvdmd2eFJZZEswcjdITDNPeU5zS092OVMyamlZCnNLYi83TFhK
YUhDaWlxL2REejNSdDllZVdmNFR5eXVWWlhVVnlIZ2QydEUKLT4gc3NoLWVkMjU1
MTkgU3JIYXFBIHBvUTJiZytRbGdJUkRzYm5YbFQ0bEJXaytaU2h1NkJTS2ltWXFw
dnFQaFUKSUdpU3hqTjZCTG5qRGpmcjNqaWMzSUoxRTNGY1JNYlJnUXV1TVBqMFF1
dwotPiBzc2gtZWQyNTUxOSBsR3FWWmcgK0o0YkptWkRUeWo1ZndudFpMVlJGZjNZ
UWVMNG5nMUJZU0NqYmpjcSszawo5TVViZ09heVl2bVBRWElxOXVOL1NsOFlZRS9q
TlpGZ25PZ3luZ2UvNm1rCi0+IHNzaC1lZDI1NTE5IENTTXloZyBTY0x5WEZLQnZk
KzFUVVV3UnFYU3AzRU44NXZibWJsTUk2Z0t6MU5CVkZFCjhiSE9taHdiV3prNUpC
OWZqK2RZVUJZZkxYMjlYRTVkZDYzdmRqaTU1U0kKLT4gbC9qNi4yQyktZ3JlYXNl
IHt0LQo2eUpaZ3RwZUEzVjk1Y3hFa1ZPdHVacHdvL3V0WVRUSFZyVndUU1o1REto
NWlxZWNOcWMxU0srQjg3cFQvVTh0CnkyRFhUMEtmQkRCcmgxWjdaSmlDZVRDUmJJ
ZjZlRkVPc0NTZgotLS0gR01PeFhpNW5EbExTT2pyeWFvelZ1SEEzazYybjd1b0dm
K0hyVVNFZGF3OAp3+MW8cSEB7t8dq6oHBdvo/1iVRmKrN64bdO0mxpLkbA==
-----END AGE ENCRYPTED FILE-----

File diff suppressed because it is too large Load Diff