many changes

This commit is contained in:
2024-09-03 14:47:06 +02:00
parent fb32b88798
commit 92099bd1e9
44 changed files with 900 additions and 658 deletions

View File

@@ -8,7 +8,7 @@ keys:
- &git-server age106n5n3rrrss45eqqzz8pq90la3kqdtnw63uw0sfa2mahk5xpe30sxs5x58 - &git-server age106n5n3rrrss45eqqzz8pq90la3kqdtnw63uw0sfa2mahk5xpe30sxs5x58
- &web-01-server age1y6lvl5jkwc47p5ae9yz9j9kuwhy7rtttua5xhygrgmr7ehd49svsszyt42 - &web-01-server age1y6lvl5jkwc47p5ae9yz9j9kuwhy7rtttua5xhygrgmr7ehd49svsszyt42
- &web-02 age1gjm4c3swt8u88e36gf2qlg3syxfc0ly94u64c42f2tsf24npw4csa6e4fw - &web-02 age1gjm4c3swt8u88e36gf2qlg3syxfc0ly94u64c42f2tsf24npw4csa6e4fw
- &web-arm age136s4znrmkheztq6mps46dj5z4avy2umzz3the58fqtlsksvx5skq9ljqgk - &web-arm age1ylrpaytkm0k5kcecsxvyv5xd9ts4md0uap48g6wsmj9pwm4lf5esffu0gw
- &home-assistant-server age1ezq2j34qngky22enhnslx6hzh4ekwk8dtmn6c9us0uqxqpn7hgpsspjz58 - &home-assistant-server age1ezq2j34qngky22enhnslx6hzh4ekwk8dtmn6c9us0uqxqpn7hgpsspjz58
- &ldap-server-test age1azmxsw5llmp2nnsv3yc2l8paelmq9rfepxd8jvmswgsmax0qyyxqdnsc7t - &ldap-server-test age1azmxsw5llmp2nnsv3yc2l8paelmq9rfepxd8jvmswgsmax0qyyxqdnsc7t
- &testmodules age1zkzpnfeakyvg3fqtyay32sushjx2hqe28y6hs6ss7plemzqjqa5s6s5yu3 - &testmodules age1zkzpnfeakyvg3fqtyay32sushjx2hqe28y6hs6ss7plemzqjqa5s6s5yu3
@@ -52,6 +52,7 @@ creation_rules:
key_groups: key_groups:
- age: - age:
- *dominik - *dominik
- *dominik2
- *web-arm - *web-arm
- path_regex: hosts/mail.cloonar.com/[^/]+\.yaml$ - path_regex: hosts/mail.cloonar.com/[^/]+\.yaml$
key_groups: key_groups:
@@ -68,6 +69,7 @@ creation_rules:
- *git-server - *git-server
- *web-01-server - *web-01-server
- *web-02 - *web-02
- *web-arm
- *home-assistant-server - *home-assistant-server
- *ldap-server-arm - *ldap-server-arm
- *ldap-server-test - *ldap-server-test
@@ -92,25 +94,6 @@ creation_rules:
- *dominik - *dominik
- *dominik2 - *dominik2
- *web-01-server - *web-01-server
- path_regex: hosts/mail.cloonar.com/modules/openldap/[^/]+\.yaml$
key_groups:
- age:
- *dominik
- *dominik2
- *ldap-server-arm
- *ldap-server-test
- path_regex: hosts/web-01.cloonar.com/modules/authelia/[^/]+\.yaml$
key_groups:
- age:
- *dominik
- *dominik2
- *web-01-server
- path_regex: hosts/web-01.cloonar.com/modules/nextcloud/[^/]+\.yaml$
key_groups:
- age:
- *dominik
- *dominik2
- *web-01-server
- path_regex: utils/modules/promtail/[^/]+\.yaml$ - path_regex: utils/modules/promtail/[^/]+\.yaml$
key_groups: key_groups:
- age: - age:
@@ -118,6 +101,7 @@ creation_rules:
- *dominik2 - *dominik2
- *git-server - *git-server
- *web-01-server - *web-01-server
- *web-arm
- *home-assistant-server - *home-assistant-server
- *ldap-server-arm - *ldap-server-arm
- *ldap-server-test - *ldap-server-test
@@ -131,6 +115,7 @@ creation_rules:
- *dominik2 - *dominik2
- *git-server - *git-server
- *web-01-server - *web-01-server
- *web-arm
- *home-assistant-server - *home-assistant-server
- *ldap-server-arm - *ldap-server-arm
- *ldap-server-test - *ldap-server-test

View File

@@ -32,6 +32,10 @@ chmod 755 /var/www
- run nix-shell -p netdata --run "netdata-claim.sh -id=$(uuidgen)" as root - run nix-shell -p netdata --run "netdata-claim.sh -id=$(uuidgen)" as root
- your node should be registered in Netdata cloud - your node should be registered in Netdata cloud
# Borg Backup
add ssh key to hetzner
cat ~/.ssh/id_rsa.pub | ssh -p23 u149513-subx@u149513-subx.your-backup.de install-ssh-key
# 4. Add new Host # 4. Add new Host
```console ```console
sftp host.cloonar.com@git.cloonar.com:/config/bootstrap.sh ./ sftp host.cloonar.com@git.cloonar.com:/config/bootstrap.sh ./

View File

@@ -47,6 +47,11 @@
} }
]; ];
reservations = [ reservations = [
{
hw-address = "04:7c:16:d5:63:5e";
ip-address = "10.42.96.5";
server-hostname = "omada.cloonar.com";
}
]; ];
} }
{ {

View File

@@ -72,6 +72,9 @@
# enable flow offloading for better throughput # enable flow offloading for better throughput
# ip protocol { tcp, udp } flow offload @f # ip protocol { tcp, udp } flow offload @f
# broadcast
iifname "server" oifname { "lan", "multimedia" } udp dport { 9 } counter accept comment "wakeonlan"
# multimedia airplay # multimedia airplay
iifname "multimedia" oifname { "lan" } counter accept iifname "multimedia" oifname { "lan" } counter accept
iifname "multimedia" oifname "server" tcp dport { 1704, 1705 } counter accept iifname "multimedia" oifname "server" tcp dport { 1704, 1705 } counter accept
@@ -89,9 +92,9 @@
# lan and vpn to any # lan and vpn to any
# TODO: disable wan when finished # TODO: disable wan when finished
iifname { "lan", "server", "vserver", "wg_cloonar" } oifname { "lan", "vb-*", "vm-*", "server", "vserver", "infrastructure", "multimedia", "smart", "wg_cloonar" } counter accept iifname { "lan", "server", "vserver", "wg_cloonar" } oifname { "lan", "vb-*", "vm-*", "server", "vserver", "infrastructure", "multimedia", "smart", "wg_cloonar" } counter log prefix "basic forward allow rule" accept
iifname { "lan", "server", "wg_cloonar" } oifname { "wrwks", "wg_epicenter", "wg_ghetto_at" } counter accept iifname { "lan", "server", "wg_cloonar" } oifname { "wrwks", "wg_epicenter", "wg_ghetto_at" } counter accept
iifname { "infrastructure" } oifname { "server", "vserver" } log prefix "Infrastructure connection: " accept iifname { "infrastructure" } oifname { "server", "vserver" } counter accept
iifname { "lan", "wan" } udp dport { 8211, 27015 } counter accept comment "palworld" iifname { "lan", "wan" } udp dport { 8211, 27015 } counter accept comment "palworld"
# accept palword server # accept palword server
@@ -132,6 +135,7 @@
content = '' content = ''
chain prerouting { chain prerouting {
type nat hook prerouting priority filter; policy accept; type nat hook prerouting priority filter; policy accept;
iifname "server" ip daddr 10.42.96.255 udp dport { 9 } dnat to 10.42.96.255
iifname "wan" tcp dport { 22 } dnat to 10.42.97.50 iifname "wan" tcp dport { 22 } dnat to 10.42.97.50
iifname "wan" tcp dport { 80, 443 } dnat to 10.42.97.5 iifname "wan" tcp dport { 80, 443 } dnat to 10.42.97.5
iifname "wan" tcp dport { 5000 } dnat to 10.42.97.51 iifname "wan" tcp dport { 5000 } dnat to 10.42.97.51

View File

@@ -1,14 +1,4 @@
{ config, ... }: { config, ... }: {
let
unstable = import
(builtins.fetchTarball https://github.com/nixos/nixpkgs/tarball/nixpkgs-unstable)
# reuse the current configuration
{ config = config.nixpkgs.config; };
in {
services.home-assistant.customComponents = with unstable.home-assistant-custom-components; [
moonraker
];
services.home-assistant.config = { services.home-assistant.config = {
sensor = [ sensor = [
{ {
@@ -53,7 +43,6 @@ in {
]; ];
"automation 3d printer state" = { "automation 3d printer state" = {
alias = "3d printer state change"; alias = "3d printer state change";
hide_entity = true;
trigger = [ trigger = [
{ {
platform = "template"; platform = "template";

View File

@@ -21,7 +21,6 @@
]; ];
"automation ac_livingroom" = { "automation ac_livingroom" = {
alias = "ac_livingroom"; alias = "ac_livingroom";
hide_entity = true;
trigger = [ trigger = [
{ {
platform = "state"; platform = "state";
@@ -46,7 +45,6 @@
}; };
"automation ac_eco" = { "automation ac_eco" = {
alias = "ac_eco"; alias = "ac_eco";
hide_entity = true;
trigger = { trigger = {
platform = "state"; platform = "state";
entity_id = [ entity_id = [
@@ -70,7 +68,6 @@
}; };
"automation bedroom_ac_on" = { "automation bedroom_ac_on" = {
alias = "bedroom ac on"; alias = "bedroom ac on";
hide_entity = true;
trigger = { trigger = {
platform = "time"; platform = "time";
at = "00:30:00"; at = "00:30:00";
@@ -96,7 +93,6 @@
}; };
"automation bedroom_ac_off" = { "automation bedroom_ac_off" = {
alias = "bedroom ac on"; alias = "bedroom ac on";
hide_entity = true;
trigger = { trigger = {
platform = "template"; platform = "template";
value_template = '' value_template = ''

View File

@@ -32,6 +32,9 @@ in
hostBridge = "server"; hostBridge = "server";
hostAddress = "10.42.97.1"; hostAddress = "10.42.97.1";
localAddress = "10.42.97.20/24"; localAddress = "10.42.97.20/24";
extraFlags = [
"--capability=CAP_NET_ADMIN"
];
allowedDevices = [ allowedDevices = [
{ {
modifier = "rwm"; modifier = "rwm";
@@ -97,6 +100,10 @@ in
nameservers = [ "10.42.97.1" ]; nameservers = [ "10.42.97.1" ];
}; };
environment.systemPackages = [
pkgs.wol
];
services.nginx.enable = true; services.nginx.enable = true;
services.nginx.virtualHosts."${domain}" = { services.nginx.virtualHosts."${domain}" = {
sslCertificate = "/var/lib/acme/hass/fullchain.pem"; sslCertificate = "/var/lib/acme/hass/fullchain.pem";

View File

@@ -3,6 +3,7 @@
"deconz" "deconz"
"shelly" "shelly"
"sun" "sun"
"nanoleaf"
]; ];
services.home-assistant.config = { services.home-assistant.config = {
@@ -15,7 +16,6 @@
}; };
"automation light_sunrise" = { "automation light_sunrise" = {
alias = "light_sunrise"; alias = "light_sunrise";
hide_entity = true;
trigger = { trigger = {
platform = "sun"; platform = "sun";
event = "sunrise"; event = "sunrise";
@@ -33,7 +33,6 @@
}; };
"automation light_sunset" = { "automation light_sunset" = {
alias = "light_sunset"; alias = "light_sunset";
hide_entity = true;
trigger = { trigger = {
platform = "sun"; platform = "sun";
event = "sunset"; event = "sunset";
@@ -51,7 +50,6 @@
}; };
"automation light_on" = { "automation light_on" = {
alias = "light_on"; alias = "light_on";
hide_entity = true;
trigger = { trigger = {
platform = "state"; platform = "state";
entity_id = [ entity_id = [
@@ -201,7 +199,6 @@
"automation bathroom light small" = { "automation bathroom light small" = {
alias = "bathroom light small"; alias = "bathroom light small";
mode = "restart"; mode = "restart";
hide_entity = true;
trigger = { trigger = {
platform = "state"; platform = "state";
entity_id = [ entity_id = [
@@ -222,7 +219,6 @@
"automation bathroom light" = { "automation bathroom light" = {
alias = "bathroom light"; alias = "bathroom light";
mode = "restart"; mode = "restart";
hide_entity = true;
trigger = { trigger = {
platform = "state"; platform = "state";
entity_id = [ entity_id = [
@@ -246,7 +242,6 @@
"automation bed_led" = { "automation bed_led" = {
alias = "bed_led"; alias = "bed_led";
mode = "restart"; mode = "restart";
hide_entity = true;
trigger = { trigger = {
platform = "state"; platform = "state";
entity_id = [ entity_id = [
@@ -269,7 +264,6 @@
}; };
"automation hallway_motion" = { "automation hallway_motion" = {
alias = "Hallway Motion"; alias = "Hallway Motion";
hide_entity = true;
trigger = { trigger = {
platform = "state"; platform = "state";
entity_id = "binary_sensor.hallway_motion_motion"; entity_id = "binary_sensor.hallway_motion_motion";

View File

@@ -7,7 +7,6 @@
"automation house_door" = { "automation house_door" = {
alias = "house_door"; alias = "house_door";
mode = "restart"; mode = "restart";
hide_entity = true;
trigger = { trigger = {
platform = "state"; platform = "state";
entity_id = [ entity_id = [
@@ -57,6 +56,60 @@
} }
]; ];
} }
{
conditions = [ "{{ state.house_door != \"unlocked\" }}" ];
sequence = [
{
service = "notify.mobile_app_dominiks_iphone";
data = {
message = "Someone is at the door!";
actions = [
{
action = "action_open";
title = "Open house door";
}
{
action = "action_ignore";
title = "Ignore";
}
];
};
}
{
wait_for_trigger = [
{
platform = "event";
event_type = "mobile_app_notification_action";
event_data = {
action = "{{ action_open }}";
};
}
{
platform = "event";
event_type = "mobile_app_notification_action";
event_data = {
action = "{{ action_ignore }}";
};
}
];
}
{
choose = [
{
conditions = "{{ wait.trigger.event.data.action == action_open }}";
sequence = [{
service = "lock.open";
target = {
entity_id = "lock.house_door";
};
}];
}
];
}
];
}
]; ];
} }
]; ];

View File

@@ -58,51 +58,58 @@
}; };
} }
]; ];
# "automation tv scene" = { script = {
# alias = "auto tv scene"; turn_on_tv = {
# hide_entity = true; sequence = [
# trigger = { {
# platform = "event"; choose = [
# event_type = "button_pressed"; {
# event_data = { conditions = [
# id = [ 254 235 105 198 ]; {
# }; condition = "state";
# }; entity_id = "media_player.android_tv_metz_cloonar_multimedia";
# action = { state = "unavailable";
# service_template = "switch.turn_on"; }
# data_template = { ];
# entity_id = "switch.computer"; sequence = [
# }; {
# }; service = "remote.send_command";
# }; target = {
# "automation beamer switch" = { entity_id = "remote.rmproplus";
# alias = "auto beamer scene"; };
# hide_entity = true; data = {
# trigger = { num_repeats = 1;
# platform = "state"; delay_secs = 0.4;
# entity_id = "sensor.computer_power"; hold_secs = 0;
# }; command = "b64:JgBOAJaSFREVNRU2FTUVERURFRAVERURFTUVNhU1FREVERUQFREVERUQFTYVNRURFREVEBURFTYVNRURFRAVNhU1FTYVNRUABfmWkhURFQANBQAAAAAAAAAAAAA=";
# condition = { };
# condition = "and"; }
# conditions = [ ];
# { }
# condition = "numeric_state"; {
# entity_id = "sensor.computer_power"; conditions = [
# below = 15; {
# } condition = "state";
# "{{ (as_timestamp(now()) - as_timestamp(states.switch.computer.last_changed)) > 300 }}" entity_id = "media_player.android_tv_metz_cloonar_multimedia";
# ]; state = "off";
# }; }
# action = { ];
# service = "switch.turn_off"; sequence = [
# target = { {
# entity_id = [ "switch.computer" ]; service = "media_player.turn_on";
# }; target = {
# }; entity_id = "media_player.android_tv_metz_cloonar_multimedia";
# }; };
}
];
}
];
}
];
};
};
"automation steamdeck on" = { "automation steamdeck on" = {
alias = "steamdeck on"; alias = "steamdeck on";
hide_entity = true;
trigger = { trigger = {
platform = "template"; platform = "template";
value_template = "{% if is_state('binary_sensor.steamdeck', 'on') and (states('sensor.steamdeck_power') | float > 5) %}true{% endif %}"; value_template = "{% if is_state('binary_sensor.steamdeck', 'on') and (states('sensor.steamdeck_power') | float > 5) %}true{% endif %}";
@@ -121,7 +128,6 @@
}; };
"automation xbox on" = { "automation xbox on" = {
alias = "xbox on"; alias = "xbox on";
hide_entity = true;
trigger = { trigger = {
platform = "state"; platform = "state";
entity_id = "binary_sensor.xbox"; entity_id = "binary_sensor.xbox";
@@ -141,7 +147,6 @@
}; };
"automation firetv on" = { "automation firetv on" = {
alias = "firetv on"; alias = "firetv on";
hide_entity = true;
trigger = { trigger = {
platform = "state"; platform = "state";
entity_id = "media_player.fire_tv_firetv_living_cloonar_multimedia"; entity_id = "media_player.fire_tv_firetv_living_cloonar_multimedia";
@@ -161,7 +166,6 @@
}; };
"automation ps5 on" = { "automation ps5 on" = {
alias = "ps5 on"; alias = "ps5 on";
hide_entity = true;
trigger = { trigger = {
platform = "state"; platform = "state";
entity_id = "binary_sensor.ps5"; entity_id = "binary_sensor.ps5";
@@ -202,6 +206,32 @@
command = "/goform/formiPhoneAppDirect.xml?PWSTANDBY"; command = "/goform/formiPhoneAppDirect.xml?PWSTANDBY";
}; };
} }
# silverscreen up
{
service = "remote.send_command";
target = {
entity_id = "remote.rmproplus";
};
data = {
num_repeats = 2;
delay_secs = 1;
hold_secs = 0;
command = "b64:sgBqAgkaBBoJCRsJHBoKGgoJGgQaCQkaBAgbGwoIHAgcGwkJGwgAARkbCRsJGwkJGgQaCgkaBAgbCRsbCQkbGwkJGgQIGxwJGwkJGxsJCRwIHBoKCBsECBsbCAQIGwkAARgbChoKGgoJGxsJCRoECBsJHBsJCRoEGgkJGwkcGgobCQkbGwkJGwkbGwoIHAkbGwkJGwkAARgbCRsJGwoIGxwJCRsJGwkbGwoIGxwIChoKGhwJGwkJHBsJCRsJGxsJCRsJHBsJCRsJAAEYGwkbCRsKCBscCQkbCRsJGxsJCRwbCQkbCRsbCRsJCRscCQgcCRocCQkbCRsbCQobCQABGBsJGwkbCQkbHAkJGwkbCRsbCQkbGwoJGwkbGwkbCQkbGwoIHAkbGwkJGgobGwkKGwkAARccCRsJGwkJHBsJCRsJGwkbGwkJGxsKCRsIHBsJGwkJGxsKCRoJGxwJCRsJGxsJChsIAAEZGwgcCRsJCRscCQkbCRsJGhwJCRscCQkaChsbCRsJCRscCQgcCRocCQkbCRsbCggcCQABGBsJGwkbCggcGwkJGwkbCRsbCggcGgoJGwkbGwkbCggcGwkJGwkbGwkJHAgcGwkJGwkAARgbChoKGgoJGhwJCRsJGwkcGgoJGxsJCRsJGxsJHAkJGxsJCRsJGhwJCRwJGhwJCRsJAAEYGwoaChsJCRsbCQkaChsJGxwJCRsbCQkbCRsbChsJCRsbCQkbCRsbCgkbCRsbCQkcCAABFwQaChsJGwkJGxsKCBwIHAgcGwkJGxsKCBwIGwQaCRsJCRwaCggcCBwbCQkbCRwaCggcCAAF3AAAAAAAAAAAAAAAAAAA";
};
}
# turn off beamer
{
service = "remote.send_command";
target = {
entity_id = "remote.rmproplus";
};
data = {
num_repeats = 2;
delay_secs = 1;
hold_secs = 0;
command = "b64:JgDaAAABKZMUERMSExITEhMSExETEhMSExITEhMSExETNxQ2ExITEhMSEzcTNxM3ExITEhM3ExITNxMSEhITEhM3EzcTEhM3EwAFyAABKJQUERMSEhITEhMSExITEhMSEhITEhMSExITNxM3ExITEhMREzcTNxQ3EhITEhM3ExITNxMSExITEhM3EzcTEhM3EwAFyAABKJQUERMSExETEhMSExITEhMSExETEhMSExITNxM3ExITEhMREzcTOBI4ExETEhM3ExITNxMSExITEhM3EzcTEhM3E5IGAA0FAAAAAAAAAAAAAAAAAAA=";
};
}
]; ];
}; };
"automation all_multimedia_on" = { "automation all_multimedia_on" = {
@@ -211,65 +241,12 @@
entity_id = "binary_sensor.multimedia_device_on"; entity_id = "binary_sensor.multimedia_device_on";
to = "on"; to = "on";
}; };
condition = {
condition = "or";
conditions = [
{
condition = "state";
entity_id = "media_player.android_tv_metz_cloonar_multimedia";
state = "off";
}
{
condition = "state";
entity_id = "media_player.android_tv_metz_cloonar_multimedia";
state = "unavailable";
}
];
};
action = [ action = [
{ {
choose = [ service = "script.turn_on";
{ target = {
conditions = [ entity_id = "script.turn_on_tv";
{ };
condition = "state";
entity_id = "media_player.android_tv_metz_cloonar_multimedia";
state = "off";
}
];
sequence = [
{
service = "media_player.turn_on";
target = {
entity_id = "media_player.android_tv_metz_cloonar_multimedia";
};
}
];
}
{
conditions = [
{
condition = "state";
entity_id = "media_player.android_tv_metz_cloonar_multimedia";
state = "unavailable";
}
];
sequence = [
{
service = "remote.send_command";
target = {
entity_id = "remote.rmproplus";
};
data = {
num_repeats = 1;
delay_secs = 0.4;
hold_secs = 0;
command = "b64:JgBOAJaSFREVNRU2FTUVERURFRAVERURFTUVNhU1FREVERUQFREVERUQFTYVNRURFREVEBURFTYVNRURFRAVNhU1FTYVNRUABfmWkhURFQANBQAAAAAAAAAAAAA=";
};
}
];
}
];
} }
{ {
delay = 5; delay = 5;
@@ -287,7 +264,6 @@
}; };
"automation bedroom tv off" = { "automation bedroom tv off" = {
alias = "bedroom tv off"; alias = "bedroom tv off";
hide_entity = true;
trigger = { trigger = {
platform = "state"; platform = "state";
entity_id = "media_player.fire_tv_firetv_bedroom_cloonar_multimedia"; entity_id = "media_player.fire_tv_firetv_bedroom_cloonar_multimedia";
@@ -310,13 +286,14 @@
event_type = "button_pressed"; event_type = "button_pressed";
event_data = { event_data = {
id = [ 254 235 105 198 ]; id = [ 254 235 105 198 ];
onoff = 1;
}; };
} }
{ {
platform = "event"; platform = "event";
event_type = "ios.action_fired"; event_type = "ios.action_fired";
event_data = { event_data = {
actionName = "Home Cinema"; actionID = "Home Cinema";
}; };
} }
]; ];
@@ -347,6 +324,20 @@
} }
]; ];
sequence = [ sequence = [
# silver screen down
{
service = "remote.send_command";
target = {
entity_id = "remote.rmproplus";
};
data = {
num_repeats = 2;
delay_secs = 1;
hold_secs = 0;
command = "b64:sQs0AB0JCxsLGx0IHQgLGh0ICxoLGx0JCxodCQobCxoLAAEXHQgdCR0JCxodCQsbCxsLGx0JCxoAAAAA";
};
}
# turn on beamer
{ {
service = "remote.send_command"; service = "remote.send_command";
target = { target = {
@@ -356,34 +347,21 @@
num_repeats = 1; num_repeats = 1;
delay_secs = 0.4; delay_secs = 0.4;
hold_secs = 0; hold_secs = 0;
command = "b64:sQs0AB0JCxsLGx0IHQgLGh0ICxoLGx0JCxodCQobCxoLAAEXHQgdCR0JCxodCQsbCxsLGx0JCxoAAAAA"; command = "b64:JgAgAQABKZMUERMSExETEhMSExITEhMSExETEhMSExITNxM3ExITERM3EzgSOBM3ExETEhM3ExITEhMSExITERM3EzcTEhM3EwAFyAABKZMTEhMRExITEhMSExITEhMRExITEhMSExITNxM3ExITERM3EzcTNxM3ExITEhM3ExITEhMSExETEhM3EzcTEhM3EwAFyAABKZMUERMRExITEhMSExITERMSExITEhMSExITNxM3ExISEhM3EzcTNxM3ExITEhM3ExITEhMSExETEhM3EzcTEhM3EwAFxwABKZQUERMRFBETEhMSExITEhISExITEhMSExITNxM3ExITERM3EzcTNxM3FBETEhM3ExITEhMSExITERM3EzcTEhM3EwANBQAAAAAAAAAA";
}; };
} }
{
delay = 1;
}
{
service = "remote.send_command";
target = {
entity_id = "remote.rmproplus";
};
data = {
num_repeats = 1;
delay_secs = 0.4;
hold_secs = 0;
command = "b64:sQs0AB0JCxsLGx0IHQgLGh0ICxoLGx0JCxodCQobCxoLAAEXHQgdCR0JCxodCQsbCxsLGx0JCxoAAAAA";
};
}
{
delay = 1;
}
# TODO turn on beamer
{ {
service = "media_player.turn_off"; service = "media_player.turn_off";
target = { target = {
entity_id = "media_player.android_tv_metz_cloonar_multimedia"; entity_id = "media_player.android_tv_metz_cloonar_multimedia";
}; };
} }
{
service = "media_player.turn_on";
target = {
entity_id = "media_player.marantz_sr6015";
};
}
]; ];
} }
{ {
@@ -411,66 +389,29 @@
entity_id = "remote.rmproplus"; entity_id = "remote.rmproplus";
}; };
data = { data = {
num_repeats = 1; num_repeats = 2;
delay_secs = 0.4; delay_secs = 1;
hold_secs = 0; hold_secs = 0;
command = "b64:sgBqAgkaBBoJCRsJHBoKGgoJGgQaCQkaBAgbGwoIHAgcGwkJGwgAARkbCRsJGwkJGgQaCgkaBAgbCRsbCQkbGwkJGgQIGxwJGwkJGxsJCRwIHBoKCBsECBsbCAQIGwkAARgbChoKGgoJGxsJCRoECBsJHBsJCRoEGgkJGwkcGgobCQkbGwkJGwkbGwoIHAkbGwkJGwkAARgbCRsJGwoIGxwJCRsJGwkbGwoIGxwIChoKGhwJGwkJHBsJCRsJGxsJCRsJHBsJCRsJAAEYGwkbCRsKCBscCQkbCRsJGxsJCRwbCQkbCRsbCRsJCRscCQgcCRocCQkbCRsbCQobCQABGBsJGwkbCQkbHAkJGwkbCRsbCQkbGwoJGwkbGwkbCQkbGwoIHAkbGwkJGgobGwkKGwkAARccCRsJGwkJHBsJCRsJGwkbGwkJGxsKCRsIHBsJGwkJGxsKCRoJGxwJCRsJGxsJChsIAAEZGwgcCRsJCRscCQkbCRsJGhwJCRscCQkaChsbCRsJCRscCQgcCRocCQkbCRsbCggcCQABGBsJGwkbCggcGwkJGwkbCRsbCggcGgoJGwkbGwkbCggcGwkJGwkbGwkJHAgcGwkJGwkAARgbChoKGgoJGhwJCRsJGwkcGgoJGxsJCRsJGxsJHAkJGxsJCRsJGhwJCRwJGhwJCRsJAAEYGwoaChsJCRsbCQkaChsJGxwJCRsbCQkbCRsbChsJCRsbCQkbCRsbCgkbCRsbCQkcCAABFwQaChsJGwkJGxsKCBwIHAgcGwkJGxsKCBwIGwQaCRsJCRwaCggcCBwbCQkbCRwaCggcCAAF3AAAAAAAAAAAAAAAAAAA"; command = "b64:sgBqAgkaBBoJCRsJHBoKGgoJGgQaCQkaBAgbGwoIHAgcGwkJGwgAARkbCRsJGwkJGgQaCgkaBAgbCRsbCQkbGwkJGgQIGxwJGwkJGxsJCRwIHBoKCBsECBsbCAQIGwkAARgbChoKGgoJGxsJCRoECBsJHBsJCRoEGgkJGwkcGgobCQkbGwkJGwkbGwoIHAkbGwkJGwkAARgbCRsJGwoIGxwJCRsJGwkbGwoIGxwIChoKGhwJGwkJHBsJCRsJGxsJCRsJHBsJCRsJAAEYGwkbCRsKCBscCQkbCRsJGxsJCRwbCQkbCRsbCRsJCRscCQgcCRocCQkbCRsbCQobCQABGBsJGwkbCQkbHAkJGwkbCRsbCQkbGwoJGwkbGwkbCQkbGwoIHAkbGwkJGgobGwkKGwkAARccCRsJGwkJHBsJCRsJGwkbGwkJGxsKCRsIHBsJGwkJGxsKCRoJGxwJCRsJGxsJChsIAAEZGwgcCRsJCRscCQkbCRsJGhwJCRscCQkaChsbCRsJCRscCQgcCRocCQkbCRsbCggcCQABGBsJGwkbCggcGwkJGwkbCRsbCggcGgoJGwkbGwkbCggcGwkJGwkbGwkJHAgcGwkJGwkAARgbChoKGgoJGhwJCRsJGwkcGgoJGxsJCRsJGxsJHAkJGxsJCRsJGhwJCRwJGhwJCRsJAAEYGwoaChsJCRsbCQkaChsJGxwJCRsbCQkbCRsbChsJCRsbCQkbCRsbCgkbCRsbCQkcCAABFwQaChsJGwkJGxsKCBwIHAgcGwkJGxsKCBwIGwQaCRsJCRwaCggcCBwbCQkbCRwaCggcCAAF3AAAAAAAAAAAAAAAAAAA";
}; };
} }
{ # turn off beamer
delay = 1;
}
{ {
service = "remote.send_command"; service = "remote.send_command";
target = { target = {
entity_id = "remote.rmproplus"; entity_id = "remote.rmproplus";
}; };
data = { data = {
num_repeats = 1; num_repeats = 2;
delay_secs = 0.4; delay_secs = 1;
hold_secs = 0; hold_secs = 0;
command = "b64:sgBqAgkaBBoJCRsJHBoKGgoJGgQaCQkaBAgbGwoIHAgcGwkJGwgAARkbCRsJGwkJGgQaCgkaBAgbCRsbCQkbGwkJGgQIGxwJGwkJGxsJCRwIHBoKCBsECBsbCAQIGwkAARgbChoKGgoJGxsJCRoECBsJHBsJCRoEGgkJGwkcGgobCQkbGwkJGwkbGwoIHAkbGwkJGwkAARgbCRsJGwoIGxwJCRsJGwkbGwoIGxwIChoKGhwJGwkJHBsJCRsJGxsJCRsJHBsJCRsJAAEYGwkbCRsKCBscCQkbCRsJGxsJCRwbCQkbCRsbCRsJCRscCQgcCRocCQkbCRsbCQobCQABGBsJGwkbCQkbHAkJGwkbCRsbCQkbGwoJGwkbGwkbCQkbGwoIHAkbGwkJGgobGwkKGwkAARccCRsJGwkJHBsJCRsJGwkbGwkJGxsKCRsIHBsJGwkJGxsKCRoJGxwJCRsJGxsJChsIAAEZGwgcCRsJCRscCQkbCRsJGhwJCRscCQkaChsbCRsJCRscCQgcCRocCQkbCRsbCggcCQABGBsJGwkbCggcGwkJGwkbCRsbCggcGgoJGwkbGwkbCggcGwkJGwkbGwkJHAgcGwkJGwkAARgbChoKGgoJGhwJCRsJGwkcGgoJGxsJCRsJGxsJHAkJGxsJCRsJGhwJCRwJGhwJCRsJAAEYGwoaChsJCRsbCQkaChsJGxwJCRsbCQkbCRsbChsJCRsbCQkbCRsbCgkbCRsbCQkcCAABFwQaChsJGwkJGxsKCBwIHAgcGwkJGxsKCBwIGwQaCRsJCRwaCggcCBwbCQkbCRwaCggcCAAF3AAAAAAAAAAAAAAAAAAA"; command = "b64:JgDaAAABKZMUERMSExITEhMSExETEhMSExITEhMSExETNxQ2ExITEhMSEzcTNxM3ExITEhM3ExITNxMSEhITEhM3EzcTEhM3EwAFyAABKJQUERMSEhITEhMSExITEhMSEhITEhMSExITNxM3ExITEhMREzcTNxQ3EhITEhM3ExITNxMSExITEhM3EzcTEhM3EwAFyAABKJQUERMSExETEhMSExITEhMSExETEhMSExITNxM3ExITEhMREzcTOBI4ExETEhM3ExITNxMSExITEhM3EzcTEhM3E5IGAA0FAAAAAAAAAAAAAAAAAAA=";
}; };
} }
];
# TODO turn off beamer
}
{
conditions = [
{ {
condition = "state"; service = "script.turn_on";
entity_id = "media_player.android_tv_metz_cloonar_multimedia";
state = "off";
}
];
sequence = [
{
service = "media_player.turn_on";
target = { target = {
entity_id = "media_player.android_tv_metz_cloonar_multimedia"; entity_id = "script.turn_on_tv";
};
}
];
}
{
conditions = [
{
condition = "state";
entity_id = "media_player.android_tv_metz_cloonar_multimedia";
state = "unavailable";
}
];
sequence = [
{
service = "remote.send_command";
target = {
entity_id = "remote.rmproplus";
};
data = {
num_repeats = 1;
delay_secs = 0.4;
hold_secs = 0;
command = "b64:JgBOAJaSFREVNRU2FTUVERURFRAVERURFTUVNhU1FREVERUQFREVERUQFTYVNRURFREVEBURFTYVNRURFRAVNhU1FTYVNRUABfmWkhURFQANBQAAAAAAAAAAAAA=";
}; };
} }
]; ];

View File

@@ -1,46 +1,71 @@
{ {
services.home-assistant.extraComponents = [
"wake_on_lan"
];
services.home-assistant.config = { services.home-assistant.config = {
ios = {
actions = [
{
name = "Turn on PC";
label.text = "Turn on PC";
icon = {
icon = "controller";
color = "#ffffff";
};
show_in_watch = true;
}
];
};
wake_on_lan = {};
"automation pc_switch" = { "automation pc_switch" = {
alias = "switch pc"; alias = "switch pc";
hide_entity = true;
trigger = { trigger = {
platform = "event"; platform = "event";
event_type = "button_pressed"; event_type = "button_pressed";
event_data = { event_data = {
id = [ 254 235 105 198 ]; id = [ 254 235 105 198 ];
onoff = 0;
}; };
}; };
action = { action = {
service_template = "switch.turn_on"; service = "script.turn_on";
data_template = { target = {
entity_id = "switch.computer"; entity_id = "script.turn_on_pc";
}; };
}; };
}; };
"automation pc power" = { script = {
alias = "auto pc power off"; turn_on_pc = {
hide_entity = true; sequence = [
trigger = {
platform = "state";
entity_id = "sensor.computer_power";
};
condition = {
condition = "and";
conditions = [
{ {
condition = "numeric_state"; service = "wake_on_lan.send_magic_packet";
entity_id = "sensor.computer_power"; data = {
below = 15; mac = "04:7c:16:d5:63:5e";
broadcast_address = "10.42.96.5";
broadcast_port = 9;
};
} }
"{{ (as_timestamp(now()) - as_timestamp(states.switch.computer.last_changed)) > 300 }}"
]; ];
}; };
action = { };
service = "switch.turn_off"; "automation turn on pc" = {
target = { trigger = [
entity_id = [ "switch.computer" ]; {
}; platform = "event";
}; event_type = "ios.action_fired";
event_data = {
actionID = "Turn on PC";
};
}
];
action = [
{
service = "script.turn_on";
target = {
entity_id = "script.turn_on_pc";
};
}
];
}; };
}; };
} }

View File

@@ -6,7 +6,6 @@
services.home-assistant.config = { services.home-assistant.config = {
"automation roborock" = { "automation roborock" = {
alias = "roborock"; alias = "roborock";
hide_entity = false;
trigger = { trigger = {
platform = "state"; platform = "state";
entity_id = [ entity_id = [

View File

@@ -2,7 +2,6 @@
services.home-assistant.config = { services.home-assistant.config = {
"automation scene_switch" = { "automation scene_switch" = {
alias = "switch scene"; alias = "switch scene";
hide_entity = true;
trigger = { trigger = {
platform = "event"; platform = "event";
event_type = "button_pressed"; event_type = "button_pressed";

View File

@@ -2,7 +2,6 @@
services.home-assistant.config = { services.home-assistant.config = {
"automation wakeup" = { "automation wakeup" = {
alias = "wakeup"; alias = "wakeup";
hide_entity = true;
trigger = { trigger = {
platform = "time"; platform = "time";
at = "input_datetime.wakeup"; at = "input_datetime.wakeup";
@@ -27,7 +26,6 @@
}; };
"automation sleep" = { "automation sleep" = {
alias = "sleep"; alias = "sleep";
hide_entity = true;
trigger = [ trigger = [
{ {
platform = "event"; platform = "event";

View File

@@ -8,7 +8,6 @@
# }; # };
"automation toilett_music" = { "automation toilett_music" = {
alias = "toilett music"; alias = "toilett music";
hide_entity = true;
trigger = { trigger = {
platform = "state"; platform = "state";
entity_id = "light.toilett_switch"; entity_id = "light.toilett_switch";
@@ -48,7 +47,6 @@
}; };
"automation piano" = { "automation piano" = {
alias = "piano"; alias = "piano";
hide_entity = true;
trigger = { trigger = {
platform = "state"; platform = "state";
entity_id = "media_player.snapcast_client_e4_5f_01_96_c1_1e"; entity_id = "media_player.snapcast_client_e4_5f_01_96_c1_1e";

View File

@@ -23,9 +23,9 @@ let
cfg = { cfg = {
remote-control.control-enable = true; remote-control.control-enable = true;
server = { server = {
include = [ # include = [
"\"${adblockLocalZones}\"" # "\"${adblockLocalZones}\""
]; # ];
interface = [ "0.0.0.0" "::0" ]; interface = [ "0.0.0.0" "::0" ];
interface-automatic = "yes"; interface-automatic = "yes";
access-control = [ access-control = [
@@ -47,6 +47,7 @@ let
"\"fw.cloonar.com A 10.42.97.1\"" "\"fw.cloonar.com A 10.42.97.1\""
"\"fw A 10.42.97.1\"" "\"fw A 10.42.97.1\""
"\"pc.cloonar.com IN A 10.42.96.5\""
"\"omada.cloonar.com IN A 10.42.97.2\"" "\"omada.cloonar.com IN A 10.42.97.2\""
"\"switch.cloonar.com IN A 10.42.97.10\"" "\"switch.cloonar.com IN A 10.42.97.10\""
"\"mopidy.cloonar.com IN A 10.42.97.21\"" "\"mopidy.cloonar.com IN A 10.42.97.21\""
@@ -58,12 +59,19 @@ let
"\"git.cloonar.com IN A 10.42.97.50\"" "\"git.cloonar.com IN A 10.42.97.50\""
"\"sync.cloonar.com IN A 10.42.97.51\"" "\"sync.cloonar.com IN A 10.42.97.51\""
"\"feeds.cloonar.com IN A 188.34.191.144\""
# "\"paraclub.cloonar.dev IN A 49.12.244.139\""
# "\"api.paraclub.cloonar.dev IN A 49.12.244.139\""
# "\"module.paraclub.cloonar.dev IN A 49.12.244.139\""
# "\"tandem.paraclub.cloonar.dev IN A 49.12.244.139\""
"\"stage.wsw.at IN A 10.254.235.22\"" "\"stage.wsw.at IN A 10.254.235.22\""
"\"prod.wsw.at IN A 10.254.217.23\"" "\"prod.wsw.at IN A 10.254.217.23\""
"\"piwik.wohnservice-wien.at IN A 10.254.240.109\"" "\"piwik.wohnservice-wien.at IN A 10.254.240.109\""
"\"wohnservice-wien.at IN A 10.254.240.109\"" "\"wohnservice-wien.at IN A 10.254.240.109\""
"\"mieterhilfe.at IN A 10.254.240.109\"" "\"mieterhilfe.at IN A 10.254.240.109\""
"\"wohnpartner-wien.at IN A 10.254.240.109\"" "\"wohnpartner-wien.at IN A 10.254.240.109\""
"\"new.wohnberatung-wien.at IN A 10.254.240.109\""
"\"wohnberatung-wien.at IN A 10.254.240.109\"" "\"wohnberatung-wien.at IN A 10.254.240.109\""
"\"wienbautvor.at IN A 10.254.240.109\"" "\"wienbautvor.at IN A 10.254.240.109\""
"\"wienwohntbesser.at IN A 10.254.240.109\"" "\"wienwohntbesser.at IN A 10.254.240.109\""
@@ -84,6 +92,7 @@ let
"\"b.stage.wohnservice-wien.at IN A 10.254.240.110\"" "\"b.stage.wohnservice-wien.at IN A 10.254.240.110\""
"\"b.stage.mieterhilfe.at IN A 10.254.240.110\"" "\"b.stage.mieterhilfe.at IN A 10.254.240.110\""
"\"b.stage.wohnpartner-wien.at IN A 10.254.240.110\"" "\"b.stage.wohnpartner-wien.at IN A 10.254.240.110\""
"\"b.stage.new.wohnberatung-wien.at IN A 10.254.240.110\""
"\"b.stage.wohnberatung-wien.at IN A 10.254.240.110\"" "\"b.stage.wohnberatung-wien.at IN A 10.254.240.110\""
"\"b.stage.wienbautvor.at IN A 10.254.240.110\"" "\"b.stage.wienbautvor.at IN A 10.254.240.110\""
"\"b.stage.wienwohntbesser.at IN A 10.254.240.110\"" "\"b.stage.wienwohntbesser.at IN A 10.254.240.110\""

View File

@@ -5,6 +5,7 @@
efiSupport = true; efiSupport = true;
efiInstallAsRemovable = true; efiInstallAsRemovable = true;
device = "nodev"; device = "nodev";
configurationLimit = 2;
}; };
fileSystems."/boot" = { device = "/dev/disk/by-uuid/105A-0CC0"; fsType = "vfat"; }; fileSystems."/boot" = { device = "/dev/disk/by-uuid/105A-0CC0"; fsType = "vfat"; };
boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "xen_blkfront" ]; boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "xen_blkfront" ];

View File

@@ -2,19 +2,15 @@
let let
in { in {
services.printing.enable = true; services.printing.enable = true;
# services.printing.drivers = [ pkgs.brlaser ];
# services.avahi.enable = true;
# services.avahi.nssmdns = true;
# services.avahi.openFirewall = true;
hardware.printers = { hardware.printers = {
ensureDefaultPrinter = "Cloonar"; ensureDefaultPrinter = "Cloonar";
ensurePrinters = [ ensurePrinters = [
{ # {
name = "epicenter.works"; # name = "epicenter.works";
deviceUri = "ipp://mercury.epicenter.intra/ipp/print"; # deviceUri = "ipp://mercury.epicenter.intra/ipp/print";
model = "everywhere"; # model = "everywhere";
} # }
{ {
name = "Cloonar"; name = "Cloonar";
deviceUri = "ipp://brn30055c566237.cloonar.multimedia/ipp/print"; deviceUri = "ipp://brn30055c566237.cloonar.multimedia/ipp/print";

View File

@@ -6,11 +6,21 @@ let
name = "signal-work"; name = "signal-work";
desktopName = "Signal with work profile"; desktopName = "Signal with work profile";
icon = "signal-desktop"; icon = "signal-desktop";
exec = "signal-desktop --user-data-dir=/home/dominik/.config/Signal-work -- %u"; exec = "signal-desktop --enable-dev-tools --enable-features=VaapiVideoDecoder --user-data-dir=/home/dominik/.config/Signal-work -- %u";
}; };
in { in {
environment.systemPackages = [ environment.systemPackages = [
pkgs.signal-cli
pkgs.signal-desktop pkgs.signal-desktop
pkgs.zbar
signalWorkDesktopItem signalWorkDesktopItem
]; ];
} }
# signal-cli is a command line interface for Signal
# use it like follows:
# signal-cli -u +4300000000 register
# signal-cli -u +4300000000 verify 123-456
# zbarimg /tmp/qr.png
# QR-Code:tsdevice:/?uuid...
# convert svg to png
# signal-cli -u +4300000000 addDevice --uri "tsdevice:/?uuid=xxx"

View File

@@ -1,3 +1,5 @@
/home/dominik/projects/cloonar/bento
/home/dominik/projects/cloonar/freescout
/home/dominik/projects/cloonar/support-invoiced /home/dominik/projects/cloonar/support-invoiced
/home/dominik/projects/cloonar/cloonar-nixos /home/dominik/projects/cloonar/cloonar-nixos
/home/dominik/projects/cloonar/cloonar-website /home/dominik/projects/cloonar/cloonar-website

View File

@@ -80,6 +80,56 @@ let
} }
''; '';
firefoxSearchSettings = {
force = true;
default = "Perplexity";
privateDefault = "Perplexity";
order = [
"Perplexity"
"Duckduckgo"
"Nix Packages"
"Nix Options"
];
engines = {
"Nix Packages" = {
urls = [{
template = "https://search.nixos.org/packages";
params = [
{ name = "type"; value = "packages"; }
{ name = "query"; value = "{searchTerms}"; }
];
}];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@np" ];
};
"Nix Options" = {
urls = [{
template = "https://search.nixos.org/options";
params = [
{ name = "type"; value = "packages"; }
{ name = "query"; value = "{searchTerms}"; }
];
}];
icon = "${pkgs.nixos-icons}/share/icons/hicolor/scalable/apps/nix-snowflake.svg";
definedAliases = [ "@no" ];
};
"Perplexity" = {
urls = [{
template = "https://www.perplexity.ai/search";
params = [
{ name = "q"; value = "{searchTerms}"; }
];
}];
iconUpdateURL = "https://perplexity.ai/favicon.ico";
definedAliases = [ "@perplexity" ];
};
"Google".metaData.hidden = true;
"Bing".metaData.hidden = true;
};
};
firefoxExtensions = with pkgs.nur.repos.rycee.firefox-addons; [ firefoxExtensions = with pkgs.nur.repos.rycee.firefox-addons; [
bitwarden bitwarden
multi-account-containers multi-account-containers
@@ -107,14 +157,18 @@ in
".config/OrcaSlicer" ".config/OrcaSlicer"
".config/rustdesk" ".config/rustdesk"
".config/Signal" ".config/Signal"
".config/Signal-work"
".config/sops" ".config/sops"
".config/VirtualBox"
".local/share/keyrings" ".local/share/keyrings"
".mozilla" ".mozilla"
".ssh" ".ssh"
".thunderbird" ".thunderbird"
"cloud.cloonar.com" "cloud.cloonar.com"
"nextcloud.cloonar.com"
"cloud.epicenter.works" "cloud.epicenter.works"
"OpenAudible" "OpenAudible"
"VirtualBox VMs"
"projects" "projects"
"go" "go"
]; ];
@@ -202,6 +256,11 @@ in
thunderbird = { thunderbird = {
enable = true; enable = true;
profiles = [ "private" "cloonar" "work" ]; profiles = [ "private" "cloonar" "work" ];
settings = id: {
"mail.identity.id_${id}.reply_on_top" = 1;
"mail.identity.id_${id}.sig_bottom" = false;
"mail.identity.id_${id}.htmlSigFormat" = true;
};
}; };
}; };
"office@cloonar.com" = { "office@cloonar.com" = {
@@ -223,6 +282,11 @@ in
thunderbird = { thunderbird = {
enable = true; enable = true;
profiles = [ "cloonar" "work" ]; profiles = [ "cloonar" "work" ];
settings = id: {
"mail.identity.id_${id}.reply_on_top" = 1;
"mail.identity.id_${id}.sig_bottom" = false;
"mail.identity.id_${id}.htmlSigFormat" = true;
};
}; };
}; };
"dominik.polakovics@cloonar.com" = { "dominik.polakovics@cloonar.com" = {
@@ -283,6 +347,11 @@ in
thunderbird = { thunderbird = {
enable = true; enable = true;
profiles = [ "work" ]; profiles = [ "work" ];
settings = id: {
"mail.identity.id_${id}.reply_on_top" = 1;
"mail.identity.id_${id}.sig_bottom" = false;
"mail.identity.id_${id}.htmlSigFormat" = true;
};
}; };
}; };
}; };
@@ -295,18 +364,14 @@ in
isDefault = true; isDefault = true;
settings = firefoxSettings; settings = firefoxSettings;
userChrome = firefoxUserChrome; userChrome = firefoxUserChrome;
search.default = "DuckDuckGo"; search = firefoxSearchSettings;
search.privateDefault = "DuckDuckGo";
search.force = true;
extensions = firefoxExtensions; extensions = firefoxExtensions;
}; };
social = { social = {
id = 1; id = 1;
settings = firefoxSettings; settings = firefoxSettings;
userChrome = firefoxUserChrome; userChrome = firefoxUserChrome;
search.default = "DuckDuckGo"; search = firefoxSearchSettings;
search.privateDefault = "DuckDuckGo";
search.force = true;
containersForce = true; containersForce = true;
containers = { containers = {
"private" = { "private" = {
@@ -348,6 +413,8 @@ in
set +eu set +eu
ssh-keygen -R git.cloonar.com ssh-keygen -R git.cloonar.com
ssh-keyscan git.cloonar.com >> ~/.ssh/known_hosts ssh-keyscan git.cloonar.com >> ~/.ssh/known_hosts
git clone git@github.com:dpolakovics/bento.git /nix/persist/user/dominik/cloonar/bento 2>/dev/null
git clone gitea@git.cloonar.com:Cloonar/freescout.git /nix/persist/user/dominik/projects/cloonar/freescout 2>/dev/null
git clone gitea@git.cloonar.com:Cloonar/support-invoiced.git /nix/persist/user/dominik/projects/cloonar/support-invoiced 2>/dev/null git clone gitea@git.cloonar.com:Cloonar/support-invoiced.git /nix/persist/user/dominik/projects/cloonar/support-invoiced 2>/dev/null
git clone gitea@git.cloonar.com:Cloonar/nixos.git /nix/persist/user/dominik/projects/cloonar/cloonar-nixos 2>/dev/null git clone gitea@git.cloonar.com:Cloonar/nixos.git /nix/persist/user/dominik/projects/cloonar/cloonar-nixos 2>/dev/null
git clone gitea@git.cloonar.com:Cloonar/website.git /nix/persist/user/dominik/projects/cloonar/cloonar-website 2>/dev/null git clone gitea@git.cloonar.com:Cloonar/website.git /nix/persist/user/dominik/projects/cloonar/cloonar-website 2>/dev/null

View File

@@ -1,4 +1,4 @@
{ ... }: { { pkgs, ... }: {
imports = [ imports = [
./utils/bento.nix ./utils/bento.nix
./utils/modules/sops.nix ./utils/modules/sops.nix
@@ -55,6 +55,11 @@
"openssl-1.1.1w" "openssl-1.1.1w"
]; ];
environment.systemPackages = with pkgs; [
wkhtmltopdf-bin
];
time.timeZone = "Europe/Vienna"; time.timeZone = "Europe/Vienna";
services.logind.extraConfig = "RuntimeDirectorySize=2G"; services.logind.extraConfig = "RuntimeDirectorySize=2G";

View File

@@ -1,4 +1,4 @@
{ ... }: { { lib, pkgs, ... }: {
imports = [ imports = [
./utils/bento.nix ./utils/bento.nix
./utils/modules/sops.nix ./utils/modules/sops.nix
@@ -10,7 +10,7 @@
./modules/bitwarden ./modules/bitwarden
./modules/authelia ./modules/authelia
./modules/collabora.nix ./modules/collabora.nix
# ./modules/nextcloud ./modules/nextcloud
./modules/rustdesk.nix ./modules/rustdesk.nix
./modules/postgresql.nix ./modules/postgresql.nix
./modules/grafana.nix ./modules/grafana.nix
@@ -28,10 +28,12 @@
./modules/web/stack.nix ./modules/web/stack.nix
./sites/autoconfig.cloonar.com.nix ./sites/autoconfig.cloonar.com.nix
./sites/feeds.cloonar.com.nix
./sites/cloonar.com.nix ./sites/cloonar.com.nix
./sites/gbv-aktuell.at.nix ./sites/gbv-aktuell.at.nix
./sites/matomo.cloonar.com.nix ./sites/matomo.cloonar.com.nix
./sites/support.cloonar.dev.nix
./sites/cloonar.dev.nix ./sites/cloonar.dev.nix
./sites/paraclub.cloonar.dev.nix ./sites/paraclub.cloonar.dev.nix
@@ -48,6 +50,14 @@
"openssl-1.1.1w" "openssl-1.1.1w"
]; ];
environment.systemPackages = with pkgs; [
vim
davfs2
screen
ucommon
];
services.davfs2.enable = true;
time.timeZone = "Europe/Vienna"; time.timeZone = "Europe/Vienna";
services.logind.extraConfig = "RuntimeDirectorySize=2G"; services.logind.extraConfig = "RuntimeDirectorySize=2G";
@@ -70,9 +80,7 @@
]; ];
# backups # backups
borgbackup.repo = "u149513-sub5@u149513-sub5.your-backup.de:borg"; borgbackup.repo = "u149513-sub8@u149513-sub8.your-backup.de:borg";
services.borgbackup.jobs.default.startAt = "Fri 2012-11-23 11:12:13"
networking.firewall = { networking.firewall = {
enable = true; enable = true;

View File

@@ -1,8 +1,14 @@
{ modulesPath, ... }: { modulesPath, ... }:
{ {
imports = [ (modulesPath + "/profiles/qemu-guest.nix") ]; imports = [ (modulesPath + "/profiles/qemu-guest.nix") ];
boot.loader.grub.device = "/dev/sda"; boot.loader.grub = {
boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "vmw_pvscsi" "xen_blkfront" ]; efiSupport = true;
efiInstallAsRemovable = true;
device = "nodev";
configurationLimit = 2;
};
fileSystems."/boot" = { device = "/dev/disk/by-uuid/82F0-EC7D"; fsType = "vfat"; };
boot.initrd.availableKernelModules = [ "ata_piix" "uhci_hcd" "xen_blkfront" ];
boot.initrd.kernelModules = [ "nvme" ]; boot.initrd.kernelModules = [ "nvme" ];
fileSystems."/" = { device = "/dev/sda1"; fsType = "ext4"; }; fileSystems."/" = { device = "/dev/sda1"; fsType = "ext4"; };

View File

@@ -3,31 +3,24 @@
{ {
sops.secrets.authelia-jwt-secret = { sops.secrets.authelia-jwt-secret = {
owner = "authelia-main"; owner = "authelia-main";
sopsFile = ./secrets.yaml;
}; };
sops.secrets.authelia-backend-ldap-password = { sops.secrets.authelia-backend-ldap-password = {
owner = "authelia-main"; owner = "authelia-main";
sopsFile = ./secrets.yaml;
}; };
sops.secrets.authelia-storage-encryption-key = { sops.secrets.authelia-storage-encryption-key = {
owner = "authelia-main"; owner = "authelia-main";
sopsFile = ./secrets.yaml;
}; };
sops.secrets.authelia-session-secret = { sops.secrets.authelia-session-secret = {
owner = "authelia-main"; owner = "authelia-main";
sopsFile = ./secrets.yaml;
}; };
sops.secrets.authelia-identity-providers-oidc-hmac-secret = { sops.secrets.authelia-identity-providers-oidc-hmac-secret = {
owner = "authelia-main"; owner = "authelia-main";
sopsFile = ./secrets.yaml;
}; };
sops.secrets.authelia-identity-providers-oidc-issuer-certificate-chain = { sops.secrets.authelia-identity-providers-oidc-issuer-certificate-chain = {
owner = "authelia-main"; owner = "authelia-main";
sopsFile = ./secrets.yaml;
}; };
sops.secrets.authelia-identity-providers-oidc-issuer-private-key = { sops.secrets.authelia-identity-providers-oidc-issuer-private-key = {
owner = "authelia-main"; owner = "authelia-main";
sopsFile = ./secrets.yaml;
}; };
services.authelia.instances.main = { services.authelia.instances.main = {
@@ -150,9 +143,6 @@
notifier = { notifier = {
disable_startup_check = false; disable_startup_check = false;
# filesystem = {
# filename = "/var/lib/authelia-main/notification.txt";
# };
smtp = { smtp = {
host = "mail.cloonar.com"; host = "mail.cloonar.com";
port = 25; port = 25;
@@ -164,6 +154,21 @@
oidc = { oidc = {
## The other portions of the mandatory OpenID Connect 1.0 configuration go here. ## The other portions of the mandatory OpenID Connect 1.0 configuration go here.
## See: https://www.authelia.com/c/oidc ## See: https://www.authelia.com/c/oidc
# authorization_policies = {
# support = {
# default_policy = "deny";
# rules = [
# {
# policy = "two_factor";
# subject = "group:support"; # Deny access to users of services group
# }
# {
# policy = "two_factor";
# subject = "group:admin"; # Deny access to users of services group
# }
# ];
# };
# };
clients = [ clients = [
{ {
id = "gitea"; id = "gitea";
@@ -183,12 +188,11 @@
{ {
id = "nextcloud"; id = "nextcloud";
description = "Nextcloud"; description = "Nextcloud";
secret = "$pbkdf2-sha512$310000$UqX35Fh.7uTZLQqD.mk5wg$e139D4g9SGUFc.ZdKt3RAZljC8A7C9nixUQd7rQoHFMKop643SuwfazjNn0ehdyAjydM2zV.KzKnMLgSajo.xw"; secret = "$pbkdf2-sha512$310000$jPzRYxmYCCDC/Go0Xti9rg$5K70qyNktBEs6PVnJYMrve4insptBzRD1eTi76zFVnJ2aFEc1.7f3yzRTpQ9HVWfEfxRoowXNMNdLxHeDcbLDw";
public = false; public = false;
authorization_policy = "one_factor"; authorization_policy = "one_factor";
redirect_uris = [ redirect_uris = [
"https://nextcloud.cloonar.com/apps/oidc_login/oidc" "https://nextcloud.cloonar.com/apps/oidc_login/oidc"
"https://cloud.cloonar.com/apps/user_oidc/code"
]; ];
pre_configured_consent_duration = "1y"; pre_configured_consent_duration = "1y";
scopes = [ scopes = [
@@ -215,6 +219,22 @@
]; ];
userinfo_signing_algorithm = "none"; userinfo_signing_algorithm = "none";
} }
{
id = "freescout";
description = "FreeScout Support platform";
secret = "$pbkdf2-sha512$310000$5D3wUR7CnuoeHu3eNWfETw$SY0GTnZor3BlZKPyU3evH9QTlQG6Bm32RoPAlUgdIRJ8HmL3jRLVtmPLxOcJj06ZS/dDTRfkYej2RmD5cA3T4A";
public = false;
authorization_policy = "one_factor";
redirect_uris = [ "https://support.cloonar.dev/oauth-login/callback/fryg87l64" ];
pre_configured_consent_duration = "1y";
scopes = [
"openid"
"profile"
"email"
"groups"
];
userinfo_signing_algorithm = "none";
}
]; ];
}; };
}; };

View File

@@ -50,7 +50,7 @@ in {
}; };
systemd.services.vaultwarden.serviceConfig = { systemd.services.vaultwarden.serviceConfig = {
EnvironmentFile = [config.sops.secrets.bitwarden-smtp-password.path]; EnvironmentFile = [config.sops.secrets.vaultwarden-env.path];
}; };
systemd.services.vaultwarden_ldap = { systemd.services.vaultwarden_ldap = {
@@ -58,8 +58,8 @@ in {
preStart = '' preStart = ''
sed \ sed \
-e "s=@LDAP_PASSWORD@=$(<${config.sops.secrets.bitwarden-ldap-password.path})=" \ -e "s=@LDAP_PASSWORD@=$(<${config.sops.secrets.vaultwarden-ldap-password.path})=" \
-e "s=@ADMIN_TOKEN@=$(<${config.sops.secrets.bitwarden-admin-token.path})=" \ -e "s=@ADMIN_TOKEN@=$(<${config.sops.secrets.vaultwarden-admin-token.path})=" \
${ldapConfigFile} \ ${ldapConfigFile} \
> /run/vaultwarden_ldap/config.toml > /run/vaultwarden_ldap/config.toml
''; '';
@@ -97,10 +97,9 @@ in {
}; };
sops.secrets = { sops.secrets = {
bitwarden-admin-token.owner = "vaultwarden_ldap"; vaultwarden-admin-token.owner = "vaultwarden_ldap";
bitwarden-ldap-password.owner = "vaultwarden_ldap"; vaultwarden-ldap-password.owner = "vaultwarden_ldap";
bitwarden-db-password.owner = "vaultwarden"; vaultwarden-env.owner = "vaultwarden";
bitwarden-smtp-password.owner = "vaultwarden";
}; };
users.users.vaultwarden_ldap = { users.users.vaultwarden_ldap = {
@@ -110,5 +109,16 @@ in {
users.groups.vaultwarden_ldap = {}; users.groups.vaultwarden_ldap = {};
services.mysqlBackup.databases = [ "bitwarden" ]; services.mysql = {
ensureUsers = [
{
name = "vaultwarden";
ensurePermissions = {
"vaultwarden.*" = "ALL PRIVILEGES";
};
}
];
ensureDatabases = [ "vaultwarden" ];
};
services.mysqlBackup.databases = [ "vaultwarden" ];
} }

View File

@@ -6,7 +6,8 @@
ports = [ "9980:9980/tcp" ]; ports = [ "9980:9980/tcp" ];
environment = { environment = {
server_name = "code.cloonar.com"; server_name = "code.cloonar.com";
aliasgroup1 = "https://cloud.cloonar.com:443"; aliasgroup1 = "https://nextcloud.cloonar.com:443";
aliasgroup2 = "https://cloud.cloonar.com:443";
dictionaries = "en_US"; dictionaries = "en_US";
extra_params = "--o:ssl.enable=false --o:ssl.termination=true"; extra_params = "--o:ssl.enable=false --o:ssl.termination=true";
}; };

View File

@@ -15,7 +15,7 @@ let
[servers.attributes] [servers.attributes]
name = "givenName" name = "givenName"
surname = "sn" surname = "sn"
username = "uid" username = "mail"
email = "mail" email = "mail"
member_of = "memberOf" member_of = "memberOf"
@@ -27,13 +27,17 @@ let
}; };
in in
{ {
systemd.services.grafana.script = lib.mkBefore "export GF_AUTH_GENERIC_OAUTH_CLIENT_SECRET=$(cat /run/secrets/grafana-oauth-secret)"; systemd.services.grafana.script = lib.mkBefore ''
export GF_AUTH_GENERIC_OAUTH_CLIENT_SECRET=$(cat /run/secrets/grafana-oauth-secret)
export PUSHOVER_API_TOKEN=$(cat /run/secrets/pushover-api-token)
export PUSHOVER_USER_KEY=$(cat /run/secrets/pushover-user-key)
'';
services.grafana = { services.grafana = {
enable = true; enable = true;
settings = { settings = {
analytics.reporting_enabled = false; analytics.reporting_enabled = false;
# "auth.ldap".enabled = true; "auth.ldap".enabled = true;
# "auth.ldap".config_file = toString ldap; "auth.ldap".config_file = toString ldap;
"auth.generic_oauth" = { "auth.generic_oauth" = {
enabled = true; enabled = true;
@@ -47,6 +51,8 @@ in
api_url = "https://auth.cloonar.com/api/oidc/userinfo"; api_url = "https://auth.cloonar.com/api/oidc/userinfo";
login_attribute_path = "preferred_username"; login_attribute_path = "preferred_username";
groups_attribute_path = "groups"; groups_attribute_path = "groups";
role_attribute_path = "contains(groups, 'Administrators') && 'Admin' || contains(groups, 'editor') && 'Editor' || 'Viewer'";
allow_assign_grafana_admin = true;
name_attribute_path = "name"; name_attribute_path = "name";
use_pkce = true; use_pkce = true;
}; };
@@ -81,6 +87,37 @@ in
security.admin_password = "$__file{${config.sops.secrets.grafana-admin-password.path}}"; security.admin_password = "$__file{${config.sops.secrets.grafana-admin-password.path}}";
}; };
provision = {
alerting = {
contactPoints.settings = {
apiVersion = 1;
contactPoints = [{
orgId = 1;
name = "cp_dominik";
receivers = [{
uid = "dominik";
type = "pushover";
settings = {
security.apiToken = "$__file{${config.sops.secrets.pushover-api-token.path}}";
security.userKey = "$__file{${config.sops.secrets.pushover-user-key.path}}";
apiToken = "\${PUSHOVER_API_TOKEN}";
userKey = "\${PUSHOVER_USER_KEY}";
device = "iphone";
priority = "2";
retry = "30";
expire = "120";
sound = "siren";
okSound = "magic";
message = ''
{{ template "default.message" . }}
'';
};
}];
}];
};
};
};
}; };
services.nginx.virtualHosts."grafana.cloonar.com" = { services.nginx.virtualHosts."grafana.cloonar.com" = {
@@ -103,5 +140,7 @@ in
grafana-admin-password.owner = "grafana"; grafana-admin-password.owner = "grafana";
grafana-ldap-password.owner = "grafana"; grafana-ldap-password.owner = "grafana";
grafana-oauth-secret.owner = "grafana"; grafana-oauth-secret.owner = "grafana";
pushover-api-token.owner = "grafana";
pushover-user-key.owner = "grafana";
}; };
} }

View File

@@ -103,15 +103,15 @@ in
limits_config.ingestion_burst_size_mb = 16; limits_config.ingestion_burst_size_mb = 16;
# ruler = { ruler = {
# storage = { storage = {
# type = "local"; type = "local";
# local.directory = rulerDir; local.directory = rulerDir;
# }; };
# rule_path = "/var/lib/loki/ruler"; rule_path = "/var/lib/loki/ruler";
# alertmanager_url = "http://alertmanager.cloonar.com"; alertmanager_url = "http://alertmanager.cloonar.com";
# ring.kvstore.store = "inmemory"; ring.kvstore.store = "inmemory";
# }; };
query_range.cache_results = true; query_range.cache_results = true;
query_range.parallelise_shardable_queries = false; query_range.parallelise_shardable_queries = false;

View File

@@ -69,6 +69,8 @@ in {
settings = { settings = {
mysqld = { mysqld = {
max_allowed_packet = "64M"; max_allowed_packet = "64M";
transaction_isolation = "READ-COMMITTED";
binlog_format = "ROW";
}; };
}; };
}; };

View File

@@ -1,30 +1,67 @@
{ pkgs, config, ... }: { pkgs, config, ... }:
{ {
sops.secrets.nextcloud-adminpass.owner = "nextcloud"; sops.secrets.nextcloud-adminpass.owner = "nextcloud";
sops.secrets.nextcloud-secrets.owner = "nextcloud";
sops.secrets.nextcloud-smb-credentials.owner = "nextcloud";
services.nextcloud = { services.nextcloud = {
enable = true; enable = true;
hostName = "nextcloud.cloonar.com"; hostName = "nextcloud.cloonar.com";
https = true; https = true;
package = pkgs.nextcloud27; package = pkgs.nextcloud29;
# Instead of using pkgs.nextcloud27Packages.apps, # Instead of using pkgs.nextcloud27Packages.apps,
# we'll reference the package version specified above # we'll reference the package version specified above
extraApps = with config.services.nextcloud.package.packages.apps; { extraApps = {
inherit contacts calendar tasks deck; inherit (config.services.nextcloud.package.packages.apps) calendar contacts deck groupfolders mail richdocuments tasks;
oidc_login = pkgs.fetchNextcloudApp rec { oidc_login = pkgs.fetchNextcloudApp rec {
url = "https://github.com/pulsejet/nextcloud-oidc-login/releases/download/v2.6.0/oidc_login.tar.gz"; url = "https://github.com/pulsejet/nextcloud-oidc-login/releases/download/v3.1.1/oidc_login.tar.gz";
sha256 = "sha256-MZ/Pgqrb8Y9aH1vd3BfuPhfLOmYyZQO2xVasdj+rCo4="; sha256 = "sha256-EVHDDFtz92lZviuTqr+St7agfBWok83HpfuL6DFCoTE=";
license = "gpl3";
}; };
}; };
autoUpdateApps.enable = true;
extraAppsEnable = true; extraAppsEnable = true;
database.createLocally = true; database.createLocally = true;
enableBrokenCiphersForSSE = false;
caching.apcu = true;
configureRedis = true;
phpOptions."opcache.interned_strings_buffer" = "23";
config = { config = {
adminpassFile = config.sops.secrets.nextcloud-adminpass.path; adminpassFile = config.sops.secrets.nextcloud-adminpass.path;
dbtype = "mysql"; dbtype = "mysql";
}; };
secretFile = config.sops.secrets.nextcloud-secrets.path;
settings = {
log_type = "errorlog";
allow_user_to_change_display_name = false;
maintenance_window_start = 1;
lost_password_link = "disabled";
oidc_login_provider_url = "https://auth.cloonar.com";
oidc_login_client_id = "nextcloud";
oidc_login_button_text = "Log in with Authelia";
oidc_login_auto_redirect = false;
oidc_login_proxy_ldap = true;
oidc_login_attributes = {
id = "preferred_username";
name = "name";
mail = "email";
groups = "groups";
ldap_uid = "email";
};
oidc_login_scope = "openid profile email groups";
default_phone_region = "AT";
};
};
environment.systemPackages = [ pkgs.cifs-utils ];
fileSystems."/var/lib/nextcloud/data" = {
device = "//u149513.your-backup.de/u149513-sub4/";
fsType = "cifs";
options = let
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s,user,users,file_mode=0770,dir_mode=0770";
in ["${automount_opts},credentials=${config.sops.secrets.nextcloud-smb-credentials.path},uid=983,gid=964"];
}; };
services.nginx.virtualHosts.${config.services.nextcloud.hostName} = { services.nginx.virtualHosts.${config.services.nextcloud.hostName} = {
@@ -33,5 +70,17 @@
acmeRoot = null; acmeRoot = null;
}; };
services.mysql = {
ensureUsers = [
{
name = "nextcloud";
ensurePermissions = {
"nextcloud.*" = "ALL PRIVILEGES";
};
}
];
ensureDatabases = [ "nextcloud" ];
};
services.mysqlBackup.databases = [ "nextcloud" ]; services.mysqlBackup.databases = [ "nextcloud" ];
} }

View File

@@ -1,117 +0,0 @@
{ config, pkgs, ... }:
{
services.zammad = {
enable = true;
port = 3010;
secretKeyBaseFile = config.sops.secrets.zammad-key-base.path;
database = {
createLocally = true;
};
};
services.nginx.enable = true;
services.nginx.virtualHosts."support.cloonar.com" = {
forceSSL = true;
enableACME = true;
acmeRoot = null;
extraConfig = ''
# Virtual endpoint created by nginx to forward auth requests.
location /authelia {
internal;
set $upstream_authelia http://127.0.0.1:9091/api/verify;
proxy_pass_request_body off;
proxy_pass $upstream_authelia;
proxy_set_header Content-Length "";
# Timeout if the real server is dead
proxy_next_upstream error timeout invalid_header http_500 http_502 http_503;
# [REQUIRED] Needed by Authelia to check authorizations of the resource.
# Provide either X-Original-URL and X-Forwarded-Proto or
# X-Forwarded-Proto, X-Forwarded-Host and X-Forwarded-Uri or both.
# Those headers will be used by Authelia to deduce the target url of the user.
# Basic Proxy Config
client_body_buffer_size 128k;
proxy_set_header Host $host;
proxy_set_header X-Original-URL $scheme://$http_host$request_uri;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Uri $request_uri;
proxy_set_header X-Forwarded-Ssl on;
proxy_redirect http:// $scheme://;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_cache_bypass $cookie_session;
proxy_no_cache $cookie_session;
proxy_buffers 4 32k;
# Advanced Proxy Config
send_timeout 5m;
proxy_read_timeout 240;
proxy_send_timeout 240;
proxy_connect_timeout 240;
}
'';
locations."/" = {
proxyPass = "http://127.0.0.1:3010";
proxyWebsockets = true;
extraConfig =
"proxy_connect_timeout 300;" +
"proxy_send_timeout 300;" +
"proxy_read_timeout 300;" +
"send_timeout 300;"
;
};
locations."/auth/sso" = {
proxyPass = "http://127.0.0.1:3010";
proxyWebsockets = true;
extraConfig = ''
# Basic Authelia Config
# Send a subsequent request to Authelia to verify if the user is authenticated
# and has the right permissions to access the resource.
auth_request /authelia;
# Set the `target_url` variable based on the request. It will be used to build the portal
# URL with the correct redirection parameter.
auth_request_set $target_url $scheme://$http_host$request_uri;
# Set the X-Forwarded-User and X-Forwarded-Groups with the headers
# returned by Authelia for the backends which can consume them.
# This is not safe, as the backend must make sure that they come from the
# proxy. In the future, it's gonna be safe to just use OAuth.
auth_request_set $user $upstream_http_remote_user;
auth_request_set $groups $upstream_http_remote_groups;
auth_request_set $name $upstream_http_remote_name;
auth_request_set $email $upstream_http_remote_email;
proxy_set_header Remote-User $user;
proxy_set_header Remote-Groups $groups;
proxy_set_header Remote-Name $name;
proxy_set_header Remote-Email $email;
# If Authelia returns 401, then nginx redirects the user to the login portal.
# If it returns 200, then the request pass through to the backend.
# For other type of errors, nginx will handle them as usual.
error_page 401 =302 https://auth.cloonar.com/?rd=$target_url;
'';
};
locations."/ws" = {
proxyPass = "http://127.0.0.1:6042";
proxyWebsockets = true;
extraConfig =
"proxy_read_timeout 86400;" +
"send_timeout 300;"
;
};
};
sops.secrets = {
zammad-db-password.sopsFile = ./secrets.yaml;
zammad-key-base.owner = "zammad";
};
services.postgresqlBackup.enable = true;
services.postgresqlBackup.databases = [ "zammad" ];
}

View File

@@ -1,40 +0,0 @@
zammad-db-password: ENC[AES256_GCM,data:FFsTnwQcL8V1ZWvZ9a15FWcHnsrC7nuDW155reSmfg/IRhRfrtnvbCDQ0N3AMh7TBiyG3x5za/6orV04CplUgQ==,iv:inQXkwlTbGaKgU3nfOtIYMcheBdGv8xa7dCad8WrGEc=,tag:fxjNRCUpS6RMipk4D08new==,type:str]
zammad-key-base: ENC[AES256_GCM,data:z2v1GrjRFoaDY9tPaAsUJPVRHZhSOrXWCZhhm5E6rmH4s6QWU1EW7aY4PPgditdcathLRWkDlBT5c3SQ8Cd2DPLp/SVn9Xd8w8g/lrplhNC2sJXUyB+CUgdEnBBN0XPMsFWNx9EIrqGrF/A8js5eKtQON9fCNytaHMOsCCc0rNE=,iv:oHKiXE9U0h846XVpCrcD/dFJ1MAXCYrnM80CwaWgALc=,tag:W88DsRWvdudMscH+UBPy/Q==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age16veg3fmvpfm7a89a9fc8dvvsxmsthlm70nfxqspr6t8vnf9wkcwsvdq38d
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUc0RlQUt4VHU1eWZrdlF5
UFhjSU5TWFlGbTIwbzVlaStHaWRTdS92d0YwCkJQRlh0eWVNRW9SdUFXQUZzNFYw
dktoSmFqbWxDbXR0dDNTNy8zTHYwQUEKLS0tIFFwQkdvK2QvSmFGaVRBaVFMeEFi
YUZ6b1dzUGZkL2t4aU5tTjA4UC9KU3cKmhugvvIexQqpVtGp7aLKU7WSQNxk0cTO
+8MWF1v0mztJlGbiWk5OOzT9L8TO7GDGXfi8GyMVgVBvaA7tFF709w==
-----END AGE ENCRYPTED FILE-----
- recipient: age1v6p8dan2t3w9h94fz4flldl32082j3s9x6zqq7u5j66keth9aphsd6pvch
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFZGRWbnVxVUdHWndEanlk
Wmp4WS8yUjdrVSsxTHFNcjFUWm5IZytaZVRzCmorZTJRSnBRTE5qK2xiZGtYNXZH
RjBDdWE5NjE3ZWtXRU5Fc2FaVFkzNUEKLS0tIGwvUjVBL2NpdTFsY04zbktJRGxF
QWo1Vm56dnZWQ2l1K3hzVlZDL3BaTHMKw9CjtbS9hyW42prUhlTIcmcb4Z6OaxRr
T7RJZxXefEr4myJYI5B3pqbXlBpSLLwS4lgtoqHmmYuSNjL8/xoksw==
-----END AGE ENCRYPTED FILE-----
- recipient: age1y6lvl5jkwc47p5ae9yz9j9kuwhy7rtttua5xhygrgmr7ehd49svsszyt42
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBicStLZGZvdGJyMyszMkFo
S2xTeUM5ZEIrbUxqbXBxQTUyeHhJVTAzUm40Ck5KbngvdWYvVk5VYTRCUWhZeFkw
eFJKVEZ3VnpuL3BmOFVQdCs2K3hoTUUKLS0tIEhFRXZyRlpPZUpEanFMU1oweVJ2
RVJjc0FUb0NFMHk2M3gxTmhMYjlrTDgKR0tfq1CWU8OdeeigOsKqNx2sszVtPWjH
yXcqe/jLAnvS/Ut/afEyfGYEiyyzJXLp9TGjV1fAp9y2K2noD8/TwQ==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2022-11-29T10:54:56Z"
mac: ENC[AES256_GCM,data:OX49RTucGWdH1RkbXfkiMLH2Lj65v554WSfJxkCkIu/dFagCH90QSRiX/15HTsI//ffwKVurDivC6H6OByK2eWdaeCYTEn2029GjdL4RhJhXy0RLXEq5D/KVRu73O9Xe6M36asc/OenzPcmbHAvddD14y9vaOsVTL0H15ydVrwg=,iv:+uBt1Mvj+WMM4CvAOwmOXhZJVZBXVDCXA8iSXpdjktU=,tag:AeipsBJ8PA22OfUxXA8bIA==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.7.3

View File

@@ -1,9 +1,8 @@
borg-passphrase: ENC[AES256_GCM,data:V77hfP5jk/DXcvRiZKu6RLAqsJhlIelkQwA6ClYJKNmMtvAXG+g6794YJ+ooof1h8qcnMoctEWMUcsBetjaguA==,iv:OyJF/dftfEaGUnmbzrcn0P0tvnUZX4l6Vk0Qf0NwwfE=,tag:AAkRMD+jq01BPq2LSYPQGA==,type:str] borg-passphrase: ENC[AES256_GCM,data:l4yO6pdxeaiyyYhTVpr00HPwCgBsrvJzN+YjQb+sf0HdmSiXpiwVvD7MuVcN1OgdupJ3uVR4sfDa0fM0wXJZjw==,iv:xp8rcuBicg/JhOvBe9dv7vUzqjlp6qAR3/gDt0dX8ZY=,tag:yYXPN8GVbYbi1DrLbDjgNw==,type:str]
borg-ssh-key: ENC[AES256_GCM,data:7F7uUlTP3ZKkpySj6/AGfH3K1/8/GzIdfp+ch1hU55zX51KgRs/KuGmj+yKyH9ua41oR4FR94MoiTb3u3MRpUj6dqO4VjVm6fRgJFNXOBhTUcelRR98Nq2QClkRqcNmPiHQC4bxjyW9C1tZfCA52AIILGh9O1Q9XnYAz2q8JwbrY+eTXS/U/1Fh1D+0Y9q1n+oingehal2huHzeVsLxFlip3TmGJx8QBlnAbANABKrMFxkHAlkvAVCrF1MULzeDeeWscHi5T80OvJfOZBSonNEZosw6QJVscMYxh047Yyl6YJ/sxIJjZjC7GiLuG/FC0FCLKRhD8PkZFjrDt/6xwrqePxIb7yIKZRpsvNVCplDDdVOB/V0AqRWAeZh3z813Zi+tnjynHPYaphso/qY2r/HZKlGInzW+QCUBdPVifhVL+y2TKytCWcp4A+c/3Dc2Ut59sfO+hqE946nYGl2S+kpNASHhBa7o6cnaMtfz8NT6rVtYN/3l1snlxeOUZo85XAuYCIerGsMkdVENg5RIJwIzwM0oaGwNzruq8cul5MfAf8hFMXpoLggYECynHk9TNdhsNtUzmsS9cXAyPnnzZT6HGI2/5cgU1weCHbbXAq+ZU9WZwOT41Fpwda/WrNJuMJYFCOFer2hcSLEyxsCfqmPSdwpYRRSYHiaCuVghV6lWyi1IVV5EsX9H6hD+Uetux1SEN95ga8edME16W2dubA0yukcOq+XHI7PMEHAs20H+dybsmVx1XjIsiV/XBWkrooFBXQp950p93XOK49vwNmHNohhCvmERkH0dczGQ5vTAMXwIYqydTqXWERDRzJVvK+pbzKiecEzhFHFge345poUKQS7BWNsv+eehgBAH4HEddtzzzjcPGYMHAhafAm1VqO2BvKg2r3XnzElUCjxWlGfrMkU+LhIgAjom8Mk9+Kha+OD84+iZnuoq73TjpqaUgC0TbkxLAm0DPgk8LsLE9XfJaroftKnrE7P7kyNGSQZfGYcl7ssLck5LJA07dTvDtytlL1Kk8RJe4FwFNPLtdiAnCVvKBe0kcClvCWrrxRt1QT85b+9IwG1yhRxlxheleePX1Fwlg/d2xj6AB3Cz7kAVO2phGPAF16Ke/UQeMxhbOIcy20g7RoiCpfx9jvdwExhDmbmUR7cleL1seFH+wgAM6uQwh80+q8IDJWPNyeXOwiA2siPwexb20xN+n1kIMa03U5Bn+lBqYoh0xXhlDHP3FiKew6xjSducNUtzyKm24kQaWSOfYIqTxYFRTI0bDgRu6xWGmZL37VSMWqDj3TIWOMBoLy0JBsRl6Jj07keJ0CwaNEa4cCWZ0s6nu49mp04JfJWF2r9ksX+2OVeDjSgX5JBB/V79j3I8iu4Nlp0pjyBKPlST/FUDAl1jT12X1grkYjXO8UyJ9AQqqnqK5lM+KYVR15Ui1lBb/vISPqiiw45bcUyHfVAAt7hcFpYLaYB0om3mernccN2fi26lawhhambRd7FGkILKA3byE9ytqGvDQ2CxtjA30kbGxeqXVFsyzROahR0c3KdKlnuCO9Uar4J5VEXgv2obNlNUfSMa9uleWDuhveBaE+2jtKUJd2P4wIIzF/VJGxgWGSge/ji0EV36EFfMg/Tyizdw5wtv4rQF0M+Uu6j/n/l62SmHnT/30H8IFCFuXWmtEo1xcssMymY4ricU3kJIgjGO9h+DrBP1GBczj7yVjLHTpEhRF0yP790xgsJrP4IQB2lOtGf5MCXLrBDYkOZ5xM3+Rq5ZNH0SAHRU/qtFUmLtfkcidjkPiwdqJ0e1LUtLwmSlsot1CkPs7hKORassyUrug7dCtv9QjRMDbtW61PlIbXqa59Aimql4IUcWyUybx12E8wRqmgcX5kG2wGfd9ZFUj6mXhQINFqChsTjXSavQw3u3m8kvd1mJXfjKS12ajr2X1e5wPDUEpLzc3wTOvVgZizGeykKTcKG+GXSjPXLR61ueAO26rboYiDAeSd73shFX/vvut/aB47kZobMOooljGVtnfZjVGY8dWzdNeGvBeLws7vnFrH1u/WXPxpktGz2/eJ0L8ANJd+BZ2+wC+R3OnHeDiXHfofm3dZJTncgxYPqboKKCXRzMviSCWB3poQTm5vEltsQOR6Lj17UmHu5MX7os7t7TrfW/op4Qko9ViWT5vtrUrCZzVqJS+d8hq4lm6ANMhi3Ql+nIMIxK+hjGZNBuKZEyKY+r+Lhz9E/xdOBGVB8QH4g32DWsYvaHfpcvJC8CkGO1nRIGFyrMc10lrv++XQYtiZ1Z4a0oOtQGAXaPGQTJB4KzwlGWc0+kguV+lK4h0QIvHvuorghYC4EJerNdRUviRxZB5mTDyJc1gGq6YgMr4d/a4tyXwoEzPbPGc/3YJATZPYLXOMaGDo0rd2961CFfrsneElNIZ71DWoy41P1fJG7qrfN0gLjU0aSC1vVnzDM8GQvoJGV35cONT7N7u+hjjFBFciLBNEE1DKge156EnP6VbR2LSptWrHeq3zOe9fN3FFR1WWor+lOl+SFztt7uVHCLuWxYPV+csOeBLQi6OhFnh9r4mLTc43wjPkbuci2jqEVM6Bf5gXQoEGzybhDb/3HfQK00NXovru5uEdREYDaj5NVyzyBhOT29JuOvqX7wEMNDqE//Me6Tx8bU12cuUM7Lne7grgYQMbYfLs3gKzRbeuYCqGCIz6KQMDOZvTR38EXqJxysrPb/HuiPfoSGHoAIHviJeIsy6bF7hKA8BikrMmoNc4762pKNKNzBGR+/HeQ1trDBCbYrTmlqoXPJaeANUZlD9NdwiopTJCBzjP/F61s5bpurAiJF6Ymx5yUHljZGVPFOH/ZawfhEcfYGvMUnAOup+EJCih5WQsrn2vodbVYFJ5GNMrDH9//uMi/cwqFWlBqnKGgnGdyqzXlLYTTMlv7fuh3XxkjRRTh6ZVuLyBqEBnXzSWwlcLOUdw3r/48JJ0JC2/rTLVnb+R7T2/+7uXVQISIrBx1ijtRCzFwaFWAPqsL+nMevAHnjpWl9NvanNWKIPIQ6cHGywxdi/7ynEnCYlY13fyIpagFKrgywsHcHuez8cyNtGLpg6hwbSEeN2wZYld+DQc5UH9pqPvvTuNHu3J62WJHZlkc6yBs/hiZBT/sEZUrL2Bf3SNFjzt/IcNSjlVbpP6dd6HpIH6tuN+lQJNypRe//TgKviHBkN0mzmw7IuRIDz1tcVA28COCo8NkzyD194zxDJ8yYKfKH/YwN5q8/R/r/EuUcY4qbeAokaS7XcIkOp/QFKHVM6AYKZ3SPyB5ZjkHFoHBG7YNDrx8AHDNemG+WUev/flmsEv3ykgTztgOoCmTqH/rduS+BGcKwsNW0iMwni9mUiJfuNdYLqhWohGLWb/mkUVoTgycXtsJ8x5BGkk4wSuGSwGCur8yVel7+Fr6CzsVGiPJOa0RHO6sN+Y9jnSMPIVm+mx16j3Q==,iv:ZGV3C0nvqdEnukiPkeMxDD66OjeXQF4anQLkALmBno8=,tag:ELar6NeP5bjL5L/Z5m7Piw==,type:str] borg-ssh-key: ENC[AES256_GCM,data:bS84F9jvxuUR3190aBOhTuKbC+ieKmTby64PUTKQiWuhI9aChRSrgmPRPEwGW1aV7lWzC3rBmWwC9BRMuL7J0ZqYlijssO0h8cMZ5RR3REhmZf9ypfS015EBmyB3cUk0sYuQSSzNV6yYNvaparPlK+LOqCguWNtpHnstfh1doHbvaFXcm4dULU+n4b5yKu2vOG7c4HOJIefFeN06ZH1ikOtW5u9sVxPVB5vCvyM1GE6A/pBVZN6fNisnPNTUZLEwDnM01FS/jdkBIHJtV44tspWxwUcCySCL04VTa991TGqVFz0LzSByNmdFcpvdzTBYdUu5e6mRXwRZ6NUytRDcAL/iA6IWK9MOceY+dF0ykaR4y7XAs9TnfUk69Lveb9xFF1Tv43EsLW2yLwkm28p2FLgdhv1jck97mQa7wJKU73mV0YLYPkourEeiMMdyYLlK9wfGluAekRwMAxjfmAZzu2+s8JpvNHmggYXV4McvuWkPiF7yOGFeijl6BOaOxJKiNSpdmszpxxmI52X9nO8L,iv:Evd5X9tDKytlfn5WZt8+IOAm0vA2k6gAUYXcZoevGoQ=,tag:SFjOnpeNDufZBvgQjzLJKQ==,type:str]
bitwarden-admin-token: ENC[AES256_GCM,data:WWkkhaSwJA423FSeSoEmssACB6qjyM2usKFQhGqzP+es5bIbr4SxpC1vhWHoS3om+OndVsWzQe4NZ9bNvWAefw==,iv:S/JBDXLZDaCG6EvFigIdSv6GvmFAL8w0BJZFYoGgkl8=,tag:bc7bjJUlcyHEsO3AEd4sxQ==,type:str] vaultwarden-admin-token: ENC[AES256_GCM,data:61qZTUh60L09dAn5Cbj1VVPIrs0xiw5oWDxvJ7CvPHi3urtjnU0QarclgMtYDo7ES0yBV8omFLb27hQZ4OY7ww==,iv:QHtGNhzJiefIWXdaq50dnLKl6qsD3k3zGI7BZ91N0ic=,tag:R3vsVE6vXrB45rb2RaepBQ==,type:str]
bitwarden-db-password: ENC[AES256_GCM,data:ues1754DstLekOtmjbi1LgpA4nV+4i9xUcUH05xPQSa1osvig1prh3JVnyYxJpy2zOqeRF0adZuRyb7/P/SLpA==,iv:AZG8FGPrcgfgNCtYjCVvIEHI3bkIjWVf82QRJ+qQdRA=,tag:IHnlKpWdyAjrgrzYaJtYiA==,type:str] vaultwarden-ldap-password: ENC[AES256_GCM,data:ZHSGJslZLG4Zan+LZo4FxHjVjOv8u/s3Mu2572VR4HyxtsFzzsIU/1G4As0Dj9HnWx9Jad695udtzSsREf2TGw==,iv:ruyPj++6tLxbzRoOTl1bT+4M8ZpV5gu1GLj4EavMuVU=,tag:y3kaiXrGjuhwx2SOJ9ZCMA==,type:str]
bitwarden-ldap-password: ENC[AES256_GCM,data:gz8ntl7mwA9f2I8LjTR2lBky7J3xYYTyQwXBrunF8/6eEgAme0zxeA5u3DTUrQ4BNfUqPfxHOIX38IxiLKRyzg==,iv:5J+KIER7R+93wdaiK7FAfS5+m8qFDruyTYh2a3n6PIg=,tag:dsT7s2TKWKcwgl3yOE3I5g==,type:str] vaultwarden-env: ENC[AES256_GCM,data:wDhfHW7BcO0eGq30jJNT6OLv5+LLOQskQrJjtKzUXQg6ptMGQuPmDlgetUq602HplP5mDWULoleyUBYCQB44FrU2nq+FXCCeUk/5N9cyfCsnXcpF4eZhLLT6jVFfSOZMs6vPYVl/Er+wklwbztguyLMtBHqc4p8XqVSigs8Bod6iLBO7Pbr1qm8gWUNcy++cLl9ZHncpLbcIfIqo/rQXMujXu/+wTSQPwR6x/cRV9zqUdPB2EEOCoGBSbYfHIxLBpOK5nbFoi4m03XHF8e68z+TE2e8KmhqoLH0J8MYGtH50WCc172pDTWzQ17BKr87KrL2YgSqe2g==,iv:XZKq5AC5ziaxtdd5/KVteEY0O7CcF8KKX3V7lyxVR5w=,tag:3r26CTdVvYsuYOam4wwQsg==,type:str]
bitwarden-smtp-password: ENC[AES256_GCM,data:og0n7HJhplyAUDY45iuKtjnOOwmW9wD2UUwrt7/Mf/DgWbhLiYJH/NVPiUhSERMimZjTkjuHHp3bNGiIPRojX0ukJTbfiX01/BipDon1TVleLNq/tYB+VjL9KDoYi5Og5gg2ZG0DfXu8IKYshF0UD9gpYHmmxDWlZ+ZTi19cDKkiVErj44ov3Bia7hs22FHqg2J946PmWJbWDTuYKRqyynAoOtfwmrSXVW+Q+xmHNYIfOiNHo/33V1xj0Ldl49g3ry3nFBP9OGnPKOOYmekv14ehJ4eixDuZQT9gpU5m2zdHRAcapW3T8TGZIibOGlMeYRbPzBoISOr+q419bsAuB90lzpGLZfkvriHxuxtpGSg=,iv:WTvc7i4hrDi5aSc+PCL+gTuf4KKZehwk6WfgXumnRPE=,tag:TOHJsAJi2t6L9ahrikS67Q==,type:str]
authelia-jwt-secret: ENC[AES256_GCM,data:sr3+B5UPtPsAYq8Dwqrbb/hXKuY49nWKhkQ11DGfSSgdIEOnDHP7jnyDCB1Mt536djovmrl1AlOG6/JKyxvakQ==,iv:r/LtU4sef4bwSY+T9TFccZq+bKrcdZ/lPsY9QInQ3xk=,tag:GNC4kVLRuxxShLwIPGKZmg==,type:str] authelia-jwt-secret: ENC[AES256_GCM,data:sr3+B5UPtPsAYq8Dwqrbb/hXKuY49nWKhkQ11DGfSSgdIEOnDHP7jnyDCB1Mt536djovmrl1AlOG6/JKyxvakQ==,iv:r/LtU4sef4bwSY+T9TFccZq+bKrcdZ/lPsY9QInQ3xk=,tag:GNC4kVLRuxxShLwIPGKZmg==,type:str]
authelia-backend-ldap-password: ENC[AES256_GCM,data:36qJ5r/ddjgxzq82/EkvYVM8VAKoHpNUbIKlimm7eABk2FkEw+U/7h5ZLjFPmKtKkbOUSI7R48xY0cKkodKwuA==,iv:jG0rXAX8Yi2okp1Y6ZSiGgSSAVFJakKEI781EpVgOLc=,tag:cPd4wmAaF81KbVsnmIy+NQ==,type:str] authelia-backend-ldap-password: ENC[AES256_GCM,data:36qJ5r/ddjgxzq82/EkvYVM8VAKoHpNUbIKlimm7eABk2FkEw+U/7h5ZLjFPmKtKkbOUSI7R48xY0cKkodKwuA==,iv:jG0rXAX8Yi2okp1Y6ZSiGgSSAVFJakKEI781EpVgOLc=,tag:cPd4wmAaF81KbVsnmIy+NQ==,type:str]
authelia-storage-encryption-key: ENC[AES256_GCM,data:A0w+CuVEUZZruXYbPiM3Mv7DcsXlu0+PvzLUS0oX71YAX7jnYBrJBFQ+sg7Y19JhQOvugCn2VJoSkcXErPq7Fg==,iv:p90bnFfoXOVEZ+BalN+Qs6PMWG8cIAqHE8jGQAaJAJU=,tag:1yp9z6UyrasKPYHHTRyHlA==,type:str] authelia-storage-encryption-key: ENC[AES256_GCM,data:A0w+CuVEUZZruXYbPiM3Mv7DcsXlu0+PvzLUS0oX71YAX7jnYBrJBFQ+sg7Y19JhQOvugCn2VJoSkcXErPq7Fg==,iv:p90bnFfoXOVEZ+BalN+Qs6PMWG8cIAqHE8jGQAaJAJU=,tag:1yp9z6UyrasKPYHHTRyHlA==,type:str]
@@ -17,6 +16,10 @@ grafana-oauth-secret: ENC[AES256_GCM,data:OXsKChjgnDEKG58LarUpdJlDy4FJTrs1lrHH9I
promtail-nginx-password: ENC[AES256_GCM,data:zk/Wq+Nss6Md0GdhoOcysPrDBqfoAobmqb4LMDkJBjpCn/mdP3/HPiIYdZnZ0vV0JmYpQVqgVFPMlA==,iv:TA19kKllw0Vco6RRlbW4eUqeGQ0SQJRr/TATmyZBMrs=,tag:10/87/svXdL1hpUcTOtY0w==,type:str] promtail-nginx-password: ENC[AES256_GCM,data:zk/Wq+Nss6Md0GdhoOcysPrDBqfoAobmqb4LMDkJBjpCn/mdP3/HPiIYdZnZ0vV0JmYpQVqgVFPMlA==,iv:TA19kKllw0Vco6RRlbW4eUqeGQ0SQJRr/TATmyZBMrs=,tag:10/87/svXdL1hpUcTOtY0w==,type:str]
victoria-nginx-password: ENC[AES256_GCM,data:+rKDzML5eQX47JF1i/ZU9jwdeLgRXPyzwSCt+iDzsCx8RKSn+omTESs/P4lj9dBPO0zjo6w=,iv:o4JW6EIwTMt3SAqhGscnc9iQBwWr6VYFSIA5sc86+pc=,tag:OvupW1Py8pCu5IAemdc81w==,type:str] victoria-nginx-password: ENC[AES256_GCM,data:+rKDzML5eQX47JF1i/ZU9jwdeLgRXPyzwSCt+iDzsCx8RKSn+omTESs/P4lj9dBPO0zjo6w=,iv:o4JW6EIwTMt3SAqhGscnc9iQBwWr6VYFSIA5sc86+pc=,tag:OvupW1Py8pCu5IAemdc81w==,type:str]
nextcloud-adminpass: ENC[AES256_GCM,data:/vt17v+aaucz8sq/uYUA0hlj1urKNYcmCN0LbgGAMhWoTiTwzYr5FzrygOuZWZBeaAFH1pWItTZRXj74OX8XqutLPlYDg/jZqLszU0/9HgSBoHb5ZnPUpzIjNI9dpMttPphpo5TVrYKoh/vR3OWjJa3ObcpGLdvMQc1r8ABEvvg=,iv:0xW7++80CwZy0O4J3bFElqp0ZMC+RpO5kcczshM1pzg=,tag:PJj5PHfkoHE8jRbS4mpq6Q==,type:str] nextcloud-adminpass: ENC[AES256_GCM,data:/vt17v+aaucz8sq/uYUA0hlj1urKNYcmCN0LbgGAMhWoTiTwzYr5FzrygOuZWZBeaAFH1pWItTZRXj74OX8XqutLPlYDg/jZqLszU0/9HgSBoHb5ZnPUpzIjNI9dpMttPphpo5TVrYKoh/vR3OWjJa3ObcpGLdvMQc1r8ABEvvg=,iv:0xW7++80CwZy0O4J3bFElqp0ZMC+RpO5kcczshM1pzg=,tag:PJj5PHfkoHE8jRbS4mpq6Q==,type:str]
nextcloud-secrets: ENC[AES256_GCM,data:FwP+z4B03m0VEFEb8c/UwBKMcWXo+2dnlBAuO4SCVXNBLdq3IK+e8gGzKima+sac+WZ3k3ncPAqyIomBLwEmIUB/24xYx4SL6AddwDoyytZbVDv5Zt7Vpvy6aheOvARoqez3pWMaC+rW11JFVw==,iv:BT9eGRUhHMbwkhuQ+cC32zHICRbm2hQQeVfIHrCB+JM=,tag:GNpdz1QYEcfVvmkjFJY1vg==,type:str]
nextcloud-smb-credentials: ENC[AES256_GCM,data:Ra1iVCP/Y1G87oDrn01JxorTQy6d80POKIVEbHPttrd6x5QgEvvyWIz6rCiK4mEH,iv:6wXHBSwq9P+tHrkB82ZReFXsUOF0rDi2hpZ8jXLU7OE=,tag:Fu4RB0hPyHFpN6YLTtfGDQ==,type:str]
pushover-api-token: ENC[AES256_GCM,data:itcWlyaJi+saBmhLabOOgbOej9yxQgCIiwU9uuOg,iv:dnD12MPZsENogsnCMGpZe1F0cC4eFfefSx7sP9Fl9Mw=,tag:lk1+pkvNab6yG0Sv/+TVIQ==,type:str]
pushover-user-key: ENC[AES256_GCM,data:swXKXMAeCyYbBQNAEEpDTJXjdNmFFVWnhExAqfnn,iv:AZd6phibpwEX97U/SzeiRoFFL3TviSONwOWkPsXdcKc=,tag:+mzfrxHpTWOzb3bEzN3D5Q==,type:str]
zammad-db-password: ENC[AES256_GCM,data:4LkMM06cs9H/ricsE+2LNin8PIn4MLbi+TaYpESeAhUz7M6JFcoLGdn2Rws3crGuCWVLColh1bv0hALLSYQs2Q==,iv:MIufiAixz6wLp1byQ2tiAx27jJGUAnVGs8KLWLaqk+4=,tag:Wbq6V3661r3Ue942q1jBRg==,type:str] zammad-db-password: ENC[AES256_GCM,data:4LkMM06cs9H/ricsE+2LNin8PIn4MLbi+TaYpESeAhUz7M6JFcoLGdn2Rws3crGuCWVLColh1bv0hALLSYQs2Q==,iv:MIufiAixz6wLp1byQ2tiAx27jJGUAnVGs8KLWLaqk+4=,tag:Wbq6V3661r3Ue942q1jBRg==,type:str]
zammad-key-base: ENC[AES256_GCM,data:IERHJKzK/kRa4P6EfpSzt/9Xj1I0/YGl/Fj8ISA/WQFn4+hu9VqdJzMoVgZexbjhpB+fPWmxwyGBhrsJRf77zJGosRzG+4MPWPw6Yggai6TGbZkxj5St+I7nm9KZbtkCbo3pH3YLXhKCFVZJuSNtBb9Y3sqd0h8XcygMQbaf2Js=,iv:FEZUOBulpPDGUuJztod+r/17MEmojKrOe+HptecMdTo=,tag:ZsFKuUKaCgc01/iDJgbkNQ==,type:str] zammad-key-base: ENC[AES256_GCM,data:IERHJKzK/kRa4P6EfpSzt/9Xj1I0/YGl/Fj8ISA/WQFn4+hu9VqdJzMoVgZexbjhpB+fPWmxwyGBhrsJRf77zJGosRzG+4MPWPw6Yggai6TGbZkxj5St+I7nm9KZbtkCbo3pH3YLXhKCFVZJuSNtBb9Y3sqd0h8XcygMQbaf2Js=,iv:FEZUOBulpPDGUuJztod+r/17MEmojKrOe+HptecMdTo=,tag:ZsFKuUKaCgc01/iDJgbkNQ==,type:str]
sops: sops:
@@ -28,23 +31,32 @@ sops:
- recipient: age16veg3fmvpfm7a89a9fc8dvvsxmsthlm70nfxqspr6t8vnf9wkcwsvdq38d - recipient: age16veg3fmvpfm7a89a9fc8dvvsxmsthlm70nfxqspr6t8vnf9wkcwsvdq38d
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTRTZCcnlXaHhiVlRhTlo2 YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4ZjFGT0N2SGZkQWx6NS9x
RWlWQkY0bkJseHdVU1BvVHRwcHhNNU1Yb2xvCm1ZeU1KY3Y4WkZPRmlvQ01HdTVP OWpsU2RsOG51akRUYlRoL1Rwd0NyZkl4ZTNFCmowdXl0QlplMlFhYlg4bFpwYVZm
b3lDTjZLVTRnV0NxQkU4ZVg2ck9FYTAKLS0tIFhnaTRSVVlpM28zaGI1OFJ6VkpW OTRXWE5wY0JJQzlaQVRuVE40Qi9XcE0KLS0tIGJ1MmhIc3RuR0U0WWhDTjl1aFJG
QkNTd1hzSm9zNnlmTzlpQ1hsa2loeXMKfWYt6gtlXRv97kmSeT31fSA+JfQFAeH/ aGNabFJKR216dlFETmRPMkdnT0J2bEkKDz9UCFSUgFxPHJLvs8Olm/UYowbuCEl8
e+Z8maFTUte0NF/toqsxDJPyLG8TPaWMiS+75RCRPXyvxtt58H5iOQ== wDCJFobtV7AYYB3gJmXA46DHefsC+7rbUJ2E5y50SFIeofcEK/oorQ==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age136s4znrmkheztq6mps46dj5z4avy2umzz3the58fqtlsksvx5skq9ljqgk - recipient: age1v6p8dan2t3w9h94fz4flldl32082j3s9x6zqq7u5j66keth9aphsd6pvch
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSM2NzUVVWZGZ2alJ4L0lC YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3MWk3dEpkYkZxdjJpVDdI
TE9UWHEvNmtaT0pnVS9mUUh5VHdkQ1lIaDBNClVmendCYW5PZUNqUTFEYUhldnRZ RTdvSElPcG9JdjdzVGI5RTJWNUtBTEt6cFRjCnJpQjBtdUdpTHlHUXZMaVIraDdE
UWJqVTU1ajJNa0FtcnBDdThFYnBETUUKLS0tIFFROVRoTFNUOHVLSjN6elZzb1RQ YlBKYWdBNzA3L09oVzRPdDEzOGJiOVUKLS0tIEpzTWhuUnR6VHpMMVhVdEpWKzBy
MXlOWjQ0cU1mUEhhTGlLWVNyS2V5c28KDNN6eK17Z+RZtb1/pH/tr8y9qk34cHPg WGo2cHEyZFg5UnZEcUlmeHoycERCUDQKEPymfQ8YOkDtamYtyXkws5H5yuylOjtD
UGKimFTU2o0CvZY7ZnA24XV2RgfKs2J7COUc8I34b1kWPge57yQbJw== 7C6nmKruZzFNIUs8Wf6u2TLtEPEsR2AX9k70ZjtOoygIHhvIpqY1uA==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2023-08-19T12:12:46Z" - recipient: age1ylrpaytkm0k5kcecsxvyv5xd9ts4md0uap48g6wsmj9pwm4lf5esffu0gw
mac: ENC[AES256_GCM,data:W7MGnXfVxBgS/AQ5Xl6PcK3P4rH+1OjbWGBJBlz7KaG3uZXf8rnZGb7OUgYadu1KjhWZIJf8i3iyOBSqPTnBbd2xYKRMmxJj1qMlGY6dx8eGv4Zlvahs4pzT0iGqhC9Ce0+mc1QQwiD7paq0PSgNAy8q2XudITCS6iIL9woc+CM=,iv:SyTmDoG49wp1WPYUsnjw6u28Ch4N8a3T6EFncCgel5I=,tag:xJk//KA/Zhq3bjy1GG1L3g==,type:str] enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJc0FIMmwyTFpHNlNOSEhv
TmM2eW5IZlZpekNwTERuLzRLbW5ZYk8vaFVnCnlTQlNiaVFwdU9BWHFrc1VnSWc2
d0R1eHhWbTJPQjBsV0J0WjFyckZXL00KLS0tIEdwY1oyeGsxZzBLeStJSmZKVW1V
ZFBWTUhrbVJHTERMMkdDaDBkMU16VEUKi214s0sjzOR8wTK55lZelBKO+ar03lG2
Ue4Rx1utf3DDskRY6ELqSroIYEMIWDk9rxQTovIQD978mP9vpXgfPA==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2024-08-31T15:45:49Z"
mac: ENC[AES256_GCM,data:BjoytvHEO/mvFUdAN/jf3EnwIjmWzSbY3TgCOjIp4zlVi+QrtwLD1G6fTN6q8tWOrYUBETS93q5FsCHKqCh58TEp/JZSnw2OhODBAn8LmdNvbvXX3dNFkVvjLsLH9rl4knMD5gr2fSc+YqHsTcb1sKBom7pFEsRppnnbU6h+FZo=,iv:ipoiDA2Er9gaqKg5bbjvVSC3RTiUV+t7J72ns5IEdac=,tag:1/4KRpnUnm14jGAdS6EoxA==,type:str]
pgp: [] pgp: []
unencrypted_suffix: _unencrypted unencrypted_suffix: _unencrypted
version: 3.7.3 version: 3.8.1

View File

@@ -0,0 +1,54 @@
{ pkgs, lib, config, ... }:
let
domain = "feeds.cloonar.com";
dataDir = "/var/www/${domain}";
in {
sops.secrets.nextcloud-smb-credentials-feeds = {
owner = "feeds_cloonar_com";
key = "nextcloud-smb-credentials";
};
fileSystems."${dataDir}/public" = {
device = "//u149513.your-backup.de/u149513-sub4/dominik.polakovics@cloonar.com/files/Audio\ Books/";
fsType = "cifs";
options = let
automount_opts = "x-systemd.automount,noauto,x-systemd.idle-timeout=60,x-systemd.device-timeout=5s,x-systemd.mount-timeout=5s,user,users,file_mode=0770,dir_mode=0770";
in ["${automount_opts},credentials=${config.sops.secrets.nextcloud-smb-credentials-feeds.path},uid=1011,gid=60"];
};
services.borgbackup.jobs.default.exclude = [
"${dataDir}/public"
];
services.webstack.instances."${domain}" = {
enableDefaultLocations = false;
enableMysql = false;
authorizedKeys = [
"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDDBGlzrg6NP5ezRFVu1CV8r0uCcS2oIgYG2/u6Cit++ARWQRO5Y0+9qC1Y2RNUaLPbvTmXg7ShskolUeuLryqvp10K2kXQ4E9NlmJ3BNLiAfWCzfe6gAgr6u5unVlXHttnP0leYpGGMUCKuiJpzy/bR6rMIUrCQC6W/MeXkwysNWKvL+ZD0IeQbogtfMFZmag9PO04RKZZvuUn9YvlgkTEK97g5dtyP1NxdtE9dDYf0G+0HcHITcw+lVmGNNwi43nAoUHieQd1kWc8YmxFB+y5O+vRH2O6pZBSdr0tdK6bPcezxd3Gk6i3a54yZfbvSislWA+o7s6uw/qExocpZb7xWa5ymPrGlEPbpYdT1y3hFO25+L1lR4QdG9oUNtJ974bL+EmYmHU+j32K3f8fxDg6BRo8FuriLtAzP7/2/7W8K4nIdMoosS+Ond2JE6XFkg1kSrXCivDBQoetZLO2y+ZPYcsQwIZsdjOnZqVr76nTepqCGIKYCuNM/9sl4AWCsyU="
];
extraConfig = ''
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
index index.php
charset utf-8;
error_page 404 /index.php;
'';
locations."/favicon.ico".extraConfig = ''
log_not_found off;
access_log off;
'';
locations."/robots.txt".extraConfig = ''
access_log off;
log_not_found off;
'';
locations."/".extraConfig = ''
try_files $uri $uri/ /index.php$is_args$args;
'';
phpPackage = pkgs.php82;
};
}

View File

@@ -113,5 +113,16 @@ in {
}; };
}; };
services.mysql = {
ensureUsers = [
{
name = "matomo";
ensurePermissions = {
"matomo.*" = "ALL PRIVILEGES";
};
}
];
ensureDatabases = [ "matomo" ];
};
services.mysqlBackup.databases = [ "matomo" ]; services.mysqlBackup.databases = [ "matomo" ];
} }

View File

@@ -38,12 +38,12 @@
''; '';
}; };
systemd.services."stage-myhidden-life-schedule" = { # systemd.services."stage-myhidden-life-schedule" = {
startAt = "*:0/1:0"; # startAt = "*:0/1:0";
serviceConfig = { # serviceConfig = {
Type = "oneshot"; # Type = "oneshot";
User = "stage_myhidden_life"; # User = "stage_myhidden_life";
ExecStart = "${pkgs.php83}/bin/php /var/www/stage.myhidden.life/artisan schedule:run"; # ExecStart = "${pkgs.php83}/bin/php /var/www/stage.myhidden.life/artisan schedule:run";
}; # };
}; # };
} }

View File

@@ -0,0 +1,72 @@
{ pkgs, lib, config, ... }:
let
domain = "support.cloonar.dev";
user = "support_cloonar_dev";
# phpPackage = pkgs.php82.withExtensions ({ enabled, all }:
# enabled ++ [ all.imagick all.pcntl all.mbstring ]);
phpPackage = pkgs.php83.buildEnv {
extensions = ({ enabled, all }: enabled ++ (with all; [
imagick
mbstring
pcntl
imap
gd
curl
intl
zip
]));
};
in {
services.webstack.instances."${domain}" = {
enableDefaultLocations = false;
enableMysql = true;
authorizedKeys = [
"ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIChPB1wdZUO/VTt2J9e0+mLYhXcsWSL487HNQfmt23vB"
];
extraConfig = ''
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
index index.php
charset utf-8;
error_page 404 /index.php;
'';
locations."/favicon.ico".extraConfig = ''
log_not_found off;
access_log off;
'';
locations."/robots.txt".extraConfig = ''
access_log off;
log_not_found off;
'';
locations."/".extraConfig = ''
try_files $uri $uri/ /index.php$is_args$args;
'';
phpPackage = phpPackage;
};
systemd.services."freescout-worker" = {
enable = true;
serviceConfig = {
User = "${user}";
ExecStart = "${phpPackage}/bin/php /var/www/${domain}/artisan queue:work --queue=emails,default,a5b8cea21bd06d071d2d8da9307d9e04 --sleep=5 --tries=1 --timeout=1800";
};
};
systemd.services."freescout-cron" = {
startAt = "*:*";
wants = [ "freescout-worker.service" ];
serviceConfig = {
Type = "oneshot";
User = "${user}";
ExecStart = "${phpPackage}/bin/php /var/www/${domain}/artisan schedule:run --no-interaction";
};
};
}

View File

@@ -35,7 +35,7 @@ in
''; '';
}; };
hardware.deviceTree.filter = "bcm2710-rpi-zero-2-w.dtb"; hardware.deviceTree.filter = "bcm2835-rpi-zero-2-w.dtb";
hardware.deviceTree = { hardware.deviceTree = {
enable = true; enable = true;
overlays = [ overlays = [
@@ -46,7 +46,7 @@ in
/plugin/; /plugin/;
/ { / {
compatible = "brcm,bcm2710,bcm2837"; compatible = "brcm,bcm2835";
fragment@0 { fragment@0 {
target-path = "/"; target-path = "/";

View File

@@ -70,6 +70,8 @@ in {
"/var/lib/docker/" "/var/lib/docker/"
"/var/lib/containers/" "/var/lib/containers/"
"/var/lib/containerd" "/var/lib/containerd"
# dont backup nextcloud as it is already backed up
"/var/lib/nextcloud/"
# dont backup logs and temp stuff # dont backup logs and temp stuff
"/var/log" "/var/log"
"/var/cache" "/var/cache"

View File

@@ -8,101 +8,110 @@ sops:
- recipient: age16veg3fmvpfm7a89a9fc8dvvsxmsthlm70nfxqspr6t8vnf9wkcwsvdq38d - recipient: age16veg3fmvpfm7a89a9fc8dvvsxmsthlm70nfxqspr6t8vnf9wkcwsvdq38d
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJMXJwSnlPZSswdE0zcjht YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzalcxQ2wySWNGZ3B1M3pT
SVU5QzhkQWhQQndKWUFHeW5PRHFkTXB1YkZ3CjNONDJ4dmNmdjZDbUFWbmlibitu d0tDaTFGMVlZN2tUeFFEOWpmbG1EVWpkb0Y0Cmp5aWFYaEFuTEpVNUFoZHRUVzN6
eDZzNDd2VysvNTJHVTJtUkhRb0h2SEEKLS0tIFhzZ2VjK2EyUTRxWTQ1VVAyT1BO K0ZjakpyQ3RXNEk3aTNLMTR0am0xaWMKLS0tIGhDbExpM0hLQzNyL3NoLzZzSkp2
S1dmN3RKdmNlQlMxWDJXeGhvV01JWHMK5vekesz0Rul/62RL3G/vcDF9ZmO5TIPY b3ZZbDJ2cjRNakdsMEE1TFdFaHRHb0kKGQCXJ602pCk1GqtN7/UiQqzGYmVWuSo+
YdAzZrjAt5Z87kobunkZbey0CJIBq25eIidg8PdbGmrx6VFoutns9Q== Pu1wBTNWaR8kjZX8+Kmuaqy4Be33bvqlKZio91RkATSdp618zSH7bA==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1v6p8dan2t3w9h94fz4flldl32082j3s9x6zqq7u5j66keth9aphsd6pvch - recipient: age1v6p8dan2t3w9h94fz4flldl32082j3s9x6zqq7u5j66keth9aphsd6pvch
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDMmxHZnJjVHp0Vks2WG51 YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBTVkY2dDhTL2YzZVhsdDJ5
N1BGdjI5bzRUWDVyQmRjWVYxWktFSlB0TGcwCncxeE1uSTlRTzNjL2dMOUhJbmJI NWpWdnVITmhuVUlDSUU4TmM5bjNCU1IvRm44CnE0aFhWcXBVWExuYzN4Z3hXRVoy
bFNTaUYrTlBUL29rbEZDdkNISjlOSkEKLS0tIGNiM2RFRXhUV3RmY0M0N0UrTE41 cWVVN3l6ajFCRE4yNUFKeFNKSlRyQlkKLS0tIFpPSGQ1eUlhdldsdWdYbDFhVjhI
M0liVXlsMFJzVmR2T1hHUUt0d0VSbmsKANZB5eDBTVhG6jPA1mUQyN9VEWC3V4uC NTFuaURGVzI4Um1rWmlBR0RwZkFPTU0KgEnu51tjyxqxU0Bl7I0wkqhIwMC3FFHg
eBXdxs79ZSw8MHzqVpyCLh6+ztY4oVrw2dkMYVlsK1Oe/9fEMeH4+g== czn+bfwC3O85ZIl4/30DZ7I1LEGhg9byFp6Ge6ywiUcRg2KEGR5gMQ==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age106n5n3rrrss45eqqzz8pq90la3kqdtnw63uw0sfa2mahk5xpe30sxs5x58 - recipient: age106n5n3rrrss45eqqzz8pq90la3kqdtnw63uw0sfa2mahk5xpe30sxs5x58
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHUWFPNTB6MG9iSGRNSTlZ YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSVG9qQTlGcGcxaXVSUTUx
c1R6TGtOTW94eE9mS0ZCSjRkUEloNkF5TnlrCmJjaUIxU0dKaVJub2NQTlV2Uksy bitjSU40U3hKRHdkdkZ0Ly96MzlzOXFadWowCmp5Wk9NWHo5a0w0U0l6dmdaMzRj
Rm9NaDBWN2VuNEFIdUNrdFNBbDdsdW8KLS0tIGF3TExLK2Q3VEs2YWQvVUxVbWlr d09sd3IvVnpxaTNZbWRzQ2dqd3JkVEUKLS0tICtmb3dJbkxMOHlEdzMyWEcyR0lm
em9hQXlSZ2VKZkN4MVMzWFNQOFJvWGMKc567TYejDxyH4Jx2iQvPpQkeyDA4w0of c0dvaHNYcHk0WUpIZ0V6ejZNcWJTV1UKjUsp7EtC35qhTGDzaqpSzr5jnpSZbpZ/
ZIlW0vfJE61pkuWJs6lQ2F+0VzMHmpIsC2wR4p4+JfQEES3jCG3P3w== 7XgT84m0Y0j2uuOpbuG/GqSLj0QI0WJzxsSVq3lW5COKtrC1yqcaMQ==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1y6lvl5jkwc47p5ae9yz9j9kuwhy7rtttua5xhygrgmr7ehd49svsszyt42 - recipient: age1y6lvl5jkwc47p5ae9yz9j9kuwhy7rtttua5xhygrgmr7ehd49svsszyt42
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBuYk9LQ1RrUVp2U1RDekxR YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4S1RNZlpkTzl0cXZQa2lx
OWZXcmJsNWdGK0pnRDhJempoSWlUc2t1elVNCnoyRE5RRGJ6QkYzZ1lOc3pveGty MGcxZVZyc0dvT3ovRmtRY3h4VFpjWndiYXhBCkZ4enpQejFnVGp5Y1NCVER1OGJJ
aUNKczVDamJuc3lRVm5Ca3Z6bWViYXMKLS0tIHZwTDd3emVLMzQ1QjNuY3EvZXVQ ZDNnQklhWkZKWmNOWXo5ZW5sWEhXR0EKLS0tIFdRVnkveitRWW5JWE5Cb2dPbVo5
emt1K21WNndYbnh4b1c0SERqTEJjNHMKKEUxjSAVO53bL9jGkbLn8xoj5motIlC9 eVFoalhMOFF4M0cvcDlLNVZHdHBCZnMK64lm47z0AkLPP0T9XOLWCqgvLtEe9E2v
d2UvlsPGU6Vi6zdg6ugf58WMD/pgr0NjmVFL0nk7XmNL19+eBuDPqw== ydmCqYIRyp8DuGWzcjUZ8dQ2RaPBjcBtbm7GpwdqOvsdHfFhrBTNyQ==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1gjm4c3swt8u88e36gf2qlg3syxfc0ly94u64c42f2tsf24npw4csa6e4fw - recipient: age1gjm4c3swt8u88e36gf2qlg3syxfc0ly94u64c42f2tsf24npw4csa6e4fw
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzTGVCOTlJQkZ1WDRkaHh6 YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2R05XU3JDTjBhRm5WdDJJ
dUlEcVBhMDRmZjJYdHdpUUhyZkxsaXFLd2dBCnZMVFhudGJTNmpDWEFEM0pRM3JJ b3hjYnVKRXYzZ1F1Yk5xWmJsTUJLekpiRUdjCmdaekMxTDZBVG1Pb09mOGdGVVpa
cURqLzdsMHdxRG9oNGhXOE1VU1NCRmcKLS0tIGJodWoyYlhIQzBMRnRKTzFPckll TTc3QmJJSkp5TVFxdXZnWW1XbTYwMHMKLS0tIER1bXk4SkxmbDZhWTRLSjF4YWdC
YjM5cGFFWlZocUs3dXRSaHJDYndCeEEK50eynm0a4FYdT+BTB1mj/BXu/sXAGYnk MGowS3M4WUZqdVlEemdlb3E3RjRBb2MKO9FnhZhNPI+yQraaI7/0HTavIpAGZKTz
jrWzH2HMdQARszniSHflguIOLo/oVCefF0EbAWyEa5XbpSVyRyYQxw== Oz4uUsRS+7GD7ylp8dJW8r1pz1//YeVODT5d4fsImknsDu8MSLEI/A==
-----END AGE ENCRYPTED FILE-----
- recipient: age1ylrpaytkm0k5kcecsxvyv5xd9ts4md0uap48g6wsmj9pwm4lf5esffu0gw
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBdmczbDhVWkJVNlJGQ1JI
TkNoSlNVSThqM3RBaGt2MG1tOEh4RzQ5a2tzClUzdm1uMGVleXRhU0loRGQyK3E2
L1ZQYno4VlRnK1Zqd1ArZ3doc1VlM3MKLS0tIG5JM08zM3hMMlJZY0diSC9ZRUxO
SUh6WnpYV2RVZjBWa1Y2d3pSZk56cGsK4gB1IcWHIw1DOCtttU2LoZ0j2kNdGXIr
Z5y1ita0fsiHEwiI1k+aRZre6OL4s2dCrswjcvX4EYFeUSlpuXxn9A==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1ezq2j34qngky22enhnslx6hzh4ekwk8dtmn6c9us0uqxqpn7hgpsspjz58 - recipient: age1ezq2j34qngky22enhnslx6hzh4ekwk8dtmn6c9us0uqxqpn7hgpsspjz58
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB6K0dNUlQ1UVBTVUJsRXBu YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhWlVQckZCUy9aVTI3RWRS
cVY4NDYwUTUwaTVYTlZaNy9mdHUvbXpOVlJNCnRHanBuVkJMbEkvUSsyU2gwd3R2 WFNyM0tlL1lpTjdWOTYwN05DV3JWdERDMnlrCkxqSTk3M2tLKzFyTVMvMnA5V2xU
RG5IM2c4N2w1UjZVWG9QbzhyRTNyd00KLS0tIDVVOE5FZlNYaGsxdHJ4RUlTRjYz WkVaN1ZiZDhkMzlZVkg0OTkzOURjVEUKLS0tIG0vZ1FrZCszQVpkOWswclBWSDh6
Z0xuVVAzemF6b3dBZGNYdFRUdktYR1EKX7QXdIGBry3j1QfFDGqYFGBVo84NcW4B UHoycDk2TEEvMzVFcFlMMmNpVjZJd0kKj0K/EKZ8hrNA3Q8pI+1HHEEQ2JC8qLP2
wz8ijaCnFb8FR6+PIOfXe44KGXgpqelUP2KjGyo8XbBgFzrHH+BX4A== IKrm1c7CREB5dpxnhbj0ToDVBQd9iGpso03RL0sd/DAA5w3RCnsB1w==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1jyeppc8yl2twnv8fwcewutd5gjewnxl59lmhev6ygds9qel8zf8syt7zz4 - recipient: age1jyeppc8yl2twnv8fwcewutd5gjewnxl59lmhev6ygds9qel8zf8syt7zz4
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlVmpyQ281MHl3L1k2aVls YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBMT2t2U3dpcjBYL0NoV2lw
UDBXbnNqa3pIZEs1TXFCanphY2NCcmdLUVU4CmVOZ3FWT0ptOEE0Y1NPQXlTS0Q3 MHVBNXZsbDhEcG55UjY2RE01YkFzOXU5bzJNCmxtTWtYaEpPVkJpekVUVFlHS1FX
QVFpazNmMkx1Zkp2eXR2RXZEQjc5MU0KLS0tIGxIRmtjNllrbmVFZVZWZ21VNlZC SWFFU3UwbEhqa1hyMFBVU0hJbUpoQWcKLS0tIHJtazBWR1BiYUxjeTNUc1JGNzFq
WmZKNFBzTkNBNlJkSmRXRWpqdk9HMlUKYeLz0i+P1i6zo8DT/AX+b81vWoQ8c6I7 Rmc4aDROQnNmTzVDMU9EcUl3dXFjWkUKHdwYkwWVXG5AMY9IuKh3l4CmNtmrHuKa
p4xBmiGr+wvtAcA8viR4q65F3ZfFxY5GOsEtvtiSROj7Jcr/TIi+iA== G63acQDm4L7sbAE6TiHs4aFgmhwDPqOS64MZOEKUWt+/60zH3gbU4w==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1azmxsw5llmp2nnsv3yc2l8paelmq9rfepxd8jvmswgsmax0qyyxqdnsc7t - recipient: age1azmxsw5llmp2nnsv3yc2l8paelmq9rfepxd8jvmswgsmax0qyyxqdnsc7t
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDY0pvTEhPVnY3U3BrNENl YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWb2YrZkUwWVRyTWRRbW5o
NTE3S0NHQmVMRFc4b0VoRXp1ZEtkZnBseGtNCjc1ZWhDeWZmZHR1cHYyaEFGQm00 cmVHZWZSWnF4K24za2dLUWpUUjdZNTk4bVRJCjhHeXRnalhybnVwTkNrN3ZTYWdC
dXE1WXZFd3FzcEJpSzcrQ2x2LzNUUkkKLS0tIGhhRW9RNk5Da21JdElMd1kyd1RQ VFFEWUNxYkVKemVSL2pMbG42alNpeUUKLS0tIHBVRWF4TDZwWTdSQjUrNWdjN1Fl
VVVrYUJmamdnU1BZK09qN2pqWWZyV2sKXu0CGOeSxi8KXvJbZ85KlmhYez7LflaA TVRvQUZlbTAxUXNiQXJXNFQrVUQ5c28KDlB4prV+/bNTFIp7P0jBzqxWAZioZ8Tq
PPiJbrbvVLR5Ui18zOZFAUewqKANTS15ut75V3rUoa2JVeSfpi617g== I6OVD/xKJ8soKhXeIyeGFKZyaWu0MsZiebbNKEQjhQhewaHUtZW0rA==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1zkzpnfeakyvg3fqtyay32sushjx2hqe28y6hs6ss7plemzqjqa5s6s5yu3 - recipient: age1zkzpnfeakyvg3fqtyay32sushjx2hqe28y6hs6ss7plemzqjqa5s6s5yu3
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBQN0JLWlFLRUdkT0Z4MmlF YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBCYlVBai9TK0pnL1ZxVnI1
R2pMNktUR1BPNG0xdmp5VGVKcFVCYW1iZldzCjBXdXFlaVRVYmNYU2FKb0I2WXp5 azJJMVliNFJZZDRLcVh0bDJGaEZaSEM2UTBVCmlaa0JnUzVyUG1Fa0hZeW5qK1p5
V21YTUxWTytTbUZ6OGVoaVhaZjlNKzAKLS0tIGlrRGVtUjM5OUNUZkxtcE5RcFBF RUJtM1lNY0pYYkdxRVBHNW0rWHM0QXMKLS0tIGV0K1IrVnpjTEdoOHd6MkVrcHFG
VGJ0V0YwS08zQW1Ua0dESmtWNjNZbGsKQ2eAGtCydscSQvLfHBxtUJyPgxNymWyT RFRiZU8ybTB0ckRxVkR2VGlrV212aUkKBO9fi4n77ysamlZ3opIP1P1uEC5Kubaz
wcMty732aWZw/uroJYYcrlfTm3q5Qs4+1mT57sxGBiL2XE6ruWdKgg== j8vSgaPs6qGkon/xknjwVo3RLYzS6zYIAzMIGf2Ru7pPn3ybJV3TYg==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age14uarclad0ty5supc8ep09793xrnwkv8a4h9j0fq8d8lc92n2dadqkf64vw - recipient: age14uarclad0ty5supc8ep09793xrnwkv8a4h9j0fq8d8lc92n2dadqkf64vw
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkN0R6Y3JPS2tRcnB0VFBo YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyL01hMWNGdDJQZlN5blEv
YzNNaVhodERUcnlTTmtNc2tzcy8yS0x5R0RBCmJtb2RMMkFjdUd3OUc2MFZoZnU4 d3NpZDF5N3JLYjdNcElYbUsxL1J4VERHSlQ4CmtmM293MHV4MVhSR0RTZS83YVdr
M0hGUW5YU000c09zR1hHZUs3cUVqOTgKLS0tIEFsVENreWcrZCtiNjg1YS9hVHpQ eE5sWlZOT0lXODBSdDFNY25KaW9zbFEKLS0tIG1wdENYVHFuK0ExbEdBU2o1QXlx
WGVNNVZOV0JNQllpUnNSdHJiTDdOWFkKcwPzK8difry1xwjHZkOLDNcUaPUd1RCo cWt2cVZOOE5VdXRnMjEzSkwxUWRKK0EKo9NInApXiycrBJ1AiWkksFiFixgi7iJu
QeW8SPusotYscSQmVckxOUppdhpewF95isfCdoy4JtVulkNQCOJJVg== pUh6ZDGUR2PvnUNId+73YBCoX4DS/raymtAXvfS2Y5NlEJouxCu2Tg==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1wq82xjyj80htz33x7agxddjfumr3wkwh3r24tasagepxw7ka893sau68df - recipient: age1wq82xjyj80htz33x7agxddjfumr3wkwh3r24tasagepxw7ka893sau68df
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkRHMrMDdLSEhLUjliblhB YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKb0ZxeEFic2d4dFNIK2RI
WUFZTUkrOEFnRkl5a21RaXhoMnJRc3lDRldvCk4wZ1ZJaXRxaEVNYTVwOFZVcUNH QjYvU1lqRldCclJiMnpKU2FRYlVSMENqMUQ4CktnQlFQRUhza09mVEQ4dG1GRmJM
cDl6QThwTVhXMVdRY3h4R0hXSDJDLzAKLS0tIEppRFJMK2Y3dDZ2eTZPblNxQnA2 RStuOUpOYTFQekFvc05raVRHV1pkVWMKLS0tIERVc0t4dkZ5UU1EbmtQNTlVRFRR
S1hyR1VxNFJkRnp0aDI0aUR1cHI1bGcKVVpd18ll/IsHjYajG4ziu1jfn5px+I/y eHpPeXBwbk0wazBpazZwRzNuaFN0cWcKmVkaXDQ4dBJdc9Fcgtxe3Um4K5kyafR6
s2eWJY9CAHAFStl0MV8AoBWpZ+KoeMbBDZ1HXwK8UBZhCsjm0nnyfw== mYDXC1PHkYOr+7JD+NZS9JSwnnAUvH5T8cDsfsfkV2i1tWpxJco16g==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2022-11-09T07:12:13Z" lastmodified: "2022-11-09T07:12:13Z"
mac: ENC[AES256_GCM,data:gqsD5gTtE5ZqWzWKAAIscecvIsGSC9j4Cnbik6Yk7Jf7Z5/NIxbkInzDsLmlU3ObbLZAhGAlOAKIrUVy37rCcEZ+I04ICXK1dmUdsVud6E4SvTdDjh9qlXTbEkcDCY2YqXlTuQl6IZyveaPuF6fRe1FMh8JEpDv/foZTl8+AuQQ=,iv:+nV6YW9m1B0qo7xbB1lw9dgiQ877GQ6OxMqjk7lei10=,tag:NmeSwBWRKpqlwZxYYC7trg==,type:str] mac: ENC[AES256_GCM,data:gqsD5gTtE5ZqWzWKAAIscecvIsGSC9j4Cnbik6Yk7Jf7Z5/NIxbkInzDsLmlU3ObbLZAhGAlOAKIrUVy37rCcEZ+I04ICXK1dmUdsVud6E4SvTdDjh9qlXTbEkcDCY2YqXlTuQl6IZyveaPuF6fRe1FMh8JEpDv/foZTl8+AuQQ=,iv:+nV6YW9m1B0qo7xbB1lw9dgiQ877GQ6OxMqjk7lei10=,tag:NmeSwBWRKpqlwZxYYC7trg==,type:str]

View File

@@ -4,7 +4,6 @@
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
imagemagick imagemagick
ghostscript ghostscript
wkhtmltopdf
]; ];
systemd.services.nginx.serviceConfig.ProtectHome = "read-only"; systemd.services.nginx.serviceConfig.ProtectHome = "read-only";

View File

@@ -8,92 +8,101 @@ sops:
- recipient: age16veg3fmvpfm7a89a9fc8dvvsxmsthlm70nfxqspr6t8vnf9wkcwsvdq38d - recipient: age16veg3fmvpfm7a89a9fc8dvvsxmsthlm70nfxqspr6t8vnf9wkcwsvdq38d
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoNlN1UmlKdjl2OXZEdzhu YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0SlZtbS9iS2c3Q1dXdkNt
U1V5R28yT3pNYnBMWC9VV0kyMlRUK0d5NVh3CmxPZGQyalU2b2wzTHI4T25vTWVB N3JpRUQ2K0hPcERQVXN2UHJrQVBVQkpPTTE4Cm5ycmU4R1cxL3JqUGI3ZFlhd0xz
RkZwb1IzM3o5N28vblRKUUpzUGk0bDgKLS0tIEQ2NUM0NDFHb1pTc0lQSmorM1Za VC9ON0tybWJZU3JzQ2Y3TzkvVk9iRVUKLS0tIEswQjlQL2tPejM3YnpJWVluR0FC
MW41UWwwanVRaW13bHR0b29KeHBQalEKn2L32WEORA//Ot4X3IVLOWDiwWXstYxN bGw1MjdqZVhJcE5ja051MnlFVkxjSncKORmQoZynBBzqJe30mnMV4WqQKO+EUaxI
FtCKgamUW3d9nYGT+9WTsfamA0JDxQxZIENV/Lq149VKP1tiYv0gWw== 5SFgveM549T/8BNHDrdI2t9EhJXB7ZnmjgVlbcrO9e/7dHXK0knPXg==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1v6p8dan2t3w9h94fz4flldl32082j3s9x6zqq7u5j66keth9aphsd6pvch - recipient: age1v6p8dan2t3w9h94fz4flldl32082j3s9x6zqq7u5j66keth9aphsd6pvch
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBlS2dseXhRTWFPN0x1UXBJ YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDeEhhaWpqbEprOWdaWTJH
WXphNWZKdU84bkp4cy9VMUdJZ0RTNzVhQ0hrCko5anhlZ2FFTUcvK1YwdXhzVDFq aUtxRDJYb04vcWxtUU1RN3lQS09oQzd5eDBrCjF3aGRWWTBkejJPUWt6MUYrd2pP
QjFtNFo5UlBvWGNWeitEMENXS1FSa00KLS0tIHpGeVhEb1pobkU2RlhLLzdSNjd6 VHRHQTlNZ2syYndTSStCYzc4eUxpaTgKLS0tIGlpVktoQXdwVmw3dGNEVlVYRnJo
MlczM1JDK1FFamZmYTNkbkdMRHdRMlEK0gau8fJEkNH255Gb8wER0c5xcp2pXgoN dkk1d1V5VEtHRnRlOWorNFZaaksrcU0K1N/7pGj7mY8gjInL9sdI5tG7VzUn6QCE
eo7jPPansVIuKjEV7oQD/oEyDVKnW3r2Mt3n6Po4/TbAQbnHXUfeiA== mZ6XW7jvYlGIlnqXB4tkq1UWmL0V4KUrs704F8D1bixIr1WW1p8b/w==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age106n5n3rrrss45eqqzz8pq90la3kqdtnw63uw0sfa2mahk5xpe30sxs5x58 - recipient: age106n5n3rrrss45eqqzz8pq90la3kqdtnw63uw0sfa2mahk5xpe30sxs5x58
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1WkZOemhKUzZFQVFPSkpD YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBWnJCN2hoSlgzYjlia21K
T0JORjNydGJpN0I3WGozTmp3aklScWNuZEdRCitTTHplK0o4VnZrT0IyaGhqSVJz U0FTSHdhdXV2YnJLSHJuTk1TSDZBV1FvVndvCnNYakh3V2V1QXBpZTBmUnMyMXhF
dWcwU0RIazRWV3RrTkp2Y0E0NGVkOVEKLS0tIE1TOFRuTEV2ZWVpaVdtK1VYZ3dS d1B4ZHovOWlCcEtKbnN0Q0pUeEF0cEkKLS0tIG9MNmlQRTRnVnQ4a0ZEMXRZQUNM
djFoODMyQ2VnR0dkVWpwcEQzVzhPbEEKk+B8SOS/H87UxpHMcPG1mRku6bnUVmk6 UWlHZVJiTnBYUUlDU3Fhb2VJc2tkcGsK89srvqDXzawAKc9PQIXw0vyLQNb+UkOF
sRKkpQsyPF4+RVvWvICAfGUV5ELAqZ5ha4+xwxb/gf/T/36UIHIlow== f8UCXpjhdd9iRn2RpXlH4uz9sXJTg2/5X/NuaigabnM/KrP5aWDjLw==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1y6lvl5jkwc47p5ae9yz9j9kuwhy7rtttua5xhygrgmr7ehd49svsszyt42 - recipient: age1y6lvl5jkwc47p5ae9yz9j9kuwhy7rtttua5xhygrgmr7ehd49svsszyt42
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3RHM3d29nVU1MeVRBa29s YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3Y3l5YTdEMUx0ZlBKdk01
aU9HK1ZLSEVreG05dk13TnhpUHN5K0lJL3pFCjJRaVE3UGUvTlplSmRndE54bzRs T3RpUWJiZm9POEh0VHAybUNIZ01qblRha1ZrClNEakIxMENFZkMxZEdxMkFldEtQ
a1FSanFkc3duYlJQeHpLd0hVbXJmSzQKLS0tIDRIdVMyMktzcXd5K1A5c3l0MUFT bFhHS0tkV1U1Nkpucko1aTBzUGh5T1UKLS0tIGE0U2N2YjNvN2VWa3d5WDg3N3hs
Q054VzErR01wV05QWlBGSDlKbVkrV28KeYtjzy7E2gZvhC6SYa4HiDDce4LrHacH SER2RVk1VkVWb0M2d05oV3VJK3NaeFUKbjFAUyz4PS7EZaXqOaQpXr4viJeXTfnw
a0VChUYQd6eUzd8oeC5A64E1YftcyV3G6O9YTDspQYp9EURMatjNxg== wr6xkydPzdBp7lURiR3o5W+U/HDVDgIyWfjeHQU7s7gEz1POs3BPVQ==
-----END AGE ENCRYPTED FILE-----
- recipient: age1ylrpaytkm0k5kcecsxvyv5xd9ts4md0uap48g6wsmj9pwm4lf5esffu0gw
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFTURzdGxaT3hGb3I2aDB1
T3UzUm1ybjBNTEUvUkorUjB3NXJPSi9oS1JzCmNTNVMrUldoM09xUVJHM1I3eFBs
Wk5VMldudy9IR2lCR3NRdG5qOEZXdmMKLS0tIEEweVdCMkxKcVR6VUZTY3UrdVlJ
eEpNSWE2clhuS2Z3eWQ4Q2lrd0xCWlkKkJaQ80E1HOgtFY+YpPEBu2frscMUuwdh
Nd9nM+lmMfYAfo0mIHG5UwTgo5sFqVTDGHXd7RuRh873DQ7ckb/xnA==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1ezq2j34qngky22enhnslx6hzh4ekwk8dtmn6c9us0uqxqpn7hgpsspjz58 - recipient: age1ezq2j34qngky22enhnslx6hzh4ekwk8dtmn6c9us0uqxqpn7hgpsspjz58
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWb0E0cFoyenQrMnF3SnRQ YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBtaEgvMHdVK3RnekFJTi9v
b3Vpd2V4ZndlZUZucmFCcXE3Zit4Y2lOQUdnCmthSUxpRHhxemxTOE9nNGduM0xN RWpkQXFRU09sNkh2Y3BpcFVLYkI4Mmo2UkRZClBWYmYvaXRtc1NNUzhVN2pPY3RP
TUhNMVRrbmUrTUJMYUpaTWNNUE1CN2MKLS0tIDVmUVVNQkdQVDFqQjRyWG9YcHdt dE1acCs0N1RRZVI3ZGMzYlV6TWw4ZGMKLS0tIDBVcXkzZi8zVFBqU2cxdmVteElL
UGhiMEs4R0plVmVXOXBWZC9zVjNZdnMKl9yl008YfVJA2KIakq3iqyv483C6E60Q TmdkZDZjK3U5THo5V0lGeFk0TlJLdW8KH5W6ju7bXoov6JAKkyYWQBQ/ZCSabmsN
WGUtCDjfK03ZxSBWMBcLkyqZLb6M9DeLS1V1HEQ0UIDYYJZxuvBVhA== x+TTWre/fChdiX90ZcenaXvmp/XpqNRHwxgT787hD+C+eljoVj2CBw==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1jyeppc8yl2twnv8fwcewutd5gjewnxl59lmhev6ygds9qel8zf8syt7zz4 - recipient: age1jyeppc8yl2twnv8fwcewutd5gjewnxl59lmhev6ygds9qel8zf8syt7zz4
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDdExSczI5L2dTYmozdDBR YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVbzR5REtMdzJ0aS9uWFg5
QngyOG9aVTFiRmk5VC9MU05jcmx0Q2c0K3dZCngwYVVIWW4wOEhWaFlHZVJEV215 TzFsZUxmd2UvRnZzTUJBMlc3NS84NHFON0NJClJVR0szeFYyU2EzbzBmWHhBT2Vr
SnVjL2E2U2F1b3dBYitUMGludU1KTlEKLS0tIFdKaHlMQ2NPSkU5ZWF4Y29DMis4 bkN4TzE2TkI1SVJ5RlU2ZTdQdmNuV1kKLS0tIHlqQW13bEhpRlhSZTNKWXFBcGxa
L2p3RXc3YWZzMkduOWNoaHcwZlA3bHcKD4rmKTdXbJOMVGTuMIf7FRlCa9FKdtGz NUVCRXZ3cFIvWWdvZWpzNXhtQ3RPU0EKwpFed9e/DsKQfPMO89Ptxwq0BQabxImT
GsMdQtQXdEVRViO3Cn6KTad0bsFIcJhrsh0TlnEVyqpmpF64a/qJaw== /S0Uxg3Q5F1USt8soSpHc167UTY8XDh5IPkMcu8uGjUStkliouaklg==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1azmxsw5llmp2nnsv3yc2l8paelmq9rfepxd8jvmswgsmax0qyyxqdnsc7t - recipient: age1azmxsw5llmp2nnsv3yc2l8paelmq9rfepxd8jvmswgsmax0qyyxqdnsc7t
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyWG5hYVlQTUV6amcrbldu YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB3bzJDZHdxRVVLaVFybndH
TkdIQ2hmTWo4UUJWR09UdU1VV1ZWRGJNTGgwCldkU242SVQyVkZTOVlTSGRMdWNJ QmtnNnpzamhNZlVvMC94aEtLNlhYcm5oY1dRCks2cGVGRjV5QVhKZWJZS1N0S3Ar
TzhqbENrYm9DYklPcFJFR216dC9JVVUKLS0tIHpSU0xQM1NtQ3pQK0RkSHFlekVt ZlRrZ1VLL211SGJiUUI4SHRnOWU1VmsKLS0tIFBQVlhSWWxlcGxxUmdkWWU5TGE2
S2NRSEVHdzlUNklNVE9CdkVrbnEwUjAKhHIpG9Oi6lXxIX76dkXiVpVXItLJVfWx c1Q0NkZtV3A1dWVkOURUcDkzMTlqV0kK2ZiyOzGiFRj7qBWgbK07hNTpOxfhIQgR
pTcvNJzhrLnEHu41preJa9QQVND5Yy4NIM7zOCZce9SJv728nL+r0Q== Khdkwj8Cm4mP+kLbxnyxH4sGipu7hXebeQZU5x+rOLNfKTZoJ85NSA==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1zkzpnfeakyvg3fqtyay32sushjx2hqe28y6hs6ss7plemzqjqa5s6s5yu3 - recipient: age1zkzpnfeakyvg3fqtyay32sushjx2hqe28y6hs6ss7plemzqjqa5s6s5yu3
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBET2FYdjNQSFhTZDdNVUEz YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVRjBnSnlta01oQWZoaUJC
cEZLN1BNU1ZacmVsdmNFWWdzNFkwRnpYelgwCmo1UUQ4MExrNTAxaGFZVXRlV3dv YW9RZTExU2xTZU55aXlGc3pkaE1FTG9TZmlJCjVMdmgvdncyanBiWGc3OWg3UWE0
U1l2ZXJOVmkzUnNHSEdBQ0hHeGlvOE0KLS0tIE9LdkgrN0svVU1mQnpDZFJaL0Ir NkV3Y3BGTTQrOVhmSS9CTnQ1Q2ZWL1kKLS0tIGVEdE0xWmpNZVZvTDZBT1NDenNF
eWRYL3hyNXVWSWxKZ1g4SUFBTWE4YjgK0g+oQaZhD/dBBGcilflBoe+KsMLxAPwm K1RzM29IMDJzL081a2NXS3BJdkNmZkEKU9SAKVg4XQlIFIMWq2zRIu2/uEMICsUz
36R16c4J2lTxft7rj/oYQr7k1vFMOFCY80/67Wl0sSvTBWr9iw/2wA== KL5uyA1qC6evNZh+QsPMwBVlpBfbqZv+6ub5Z5oTbGkNdoWtTO+Pww==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age14uarclad0ty5supc8ep09793xrnwkv8a4h9j0fq8d8lc92n2dadqkf64vw - recipient: age14uarclad0ty5supc8ep09793xrnwkv8a4h9j0fq8d8lc92n2dadqkf64vw
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBWNzVSODMwQ3lxT245aVMr YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBMm9HNlRFSm1oMU1xck8v
T0wrTm9JU1pjdnZZLytYcjBYcWx5dFJIM0VJCk10ZWc0OUtKU2w3TmtnbGpzZGl0 aEYzelBnUjlBdlNpaWFWOUJISlE2eUtxZG5vCnZRSCtJTU53ZWdiR0RkclZlcVFZ
WEl1SWtFOGV2Y25yTENpZFhTYVhTYlUKLS0tIHplS3VEejhJY1psKzN6VDJPM25t K2tUZTNVSmtsQnIxVjZTbDVZbWJRWVEKLS0tIGxJUFI1S1Y2U2NubmxoaVJQRWVJ
elFoK0NvTFdWUVMrSnF1SVVoVVJHSFEK+rF/Y9J1L8BGjgBwTqZrVytVQ12B2MYR V0pxbHNCbzhScXdrUmJ0bWE0TFlVN00KRn/qB9axbzBJUf1qcrUo3c3tB5spQ8Ht
yE4d7yunQihfP8jF4ySc6IlTgtEMA444alqfw+IR7kG3MqqgGLAzWQ== Uo10Mq6NM1dnHOcV3b1pP2E8D3FE8JDzBP9LWM7QIUDjptmLfy3rcQ==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1wq82xjyj80htz33x7agxddjfumr3wkwh3r24tasagepxw7ka893sau68df - recipient: age1wq82xjyj80htz33x7agxddjfumr3wkwh3r24tasagepxw7ka893sau68df
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpa00wcldTV0paaUNKSVM4 YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBPOVVXQmhTSzFJRWpFOWxQ
a21VajQzN1pJQ3ROcXQvZnNkWTlPV2FjQXhVCjVoUHVxN0sxcVVicUZOOVVqS3kw N3kvSEwvend4T1hBSEZ1TkliUDlPd0hvYTBzCmZmVC9HL29MMEpoWGFiQ281cjJM
NmR0dG1rK2pyclhoZ0ZjLzVXa0tXN2cKLS0tIHErbFdZa2dsT3lpc2RFaHorTGJQ WHMzaHFYRUdzNUxHSEJ3L1BaOER0ZkUKLS0tIEFPTDlkbTR0Y2p3Qmw2aDIzVHk5
MW9zUm14OVFqcU1XankrVmdqL2had1EKkK9He8A7/wG+09W0mUNrS+0foR0Rxtye Qk9kQXJjaDRGaG1KVS9KNkxKV1Bxd0kKIwfnJNgGzt0H5NRwH1xjCx3oBnNYQ/PV
PQginkaSUbtu3S9y4Ei0ETJ3iUR3Iopf0YP39J3EP8BhplwbI9SA1A== oxFHbRZHtpkHHaxmsxJ58C6bSpuhypNO3RMHc5OIPtHlhuE106aQdw==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2023-08-19T00:05:00Z" lastmodified: "2023-08-19T00:05:00Z"
mac: ENC[AES256_GCM,data:BO3WZzW4MzXpOLKTi6vzVq5lFMATANvIH8Kl9HJPH4bRTRf+z/IX3GmmowjOQis8aGnbfbMja6K0hBWMSY0mY7WzMN9W2ARHTgbXre9/5l6PfFrW4q36sLwXOJU/mzLVz4errHSt6A3Te5AOqThlULuJO/F4pPX2i0Sgs2F1tVA=,iv:zOTWgbuUzuIhYbJFKocwEdR9DxZ3enjc2aIchkovfuA=,tag:x+2jEytk5XrSAGWvbB6bKw==,type:str] mac: ENC[AES256_GCM,data:BO3WZzW4MzXpOLKTi6vzVq5lFMATANvIH8Kl9HJPH4bRTRf+z/IX3GmmowjOQis8aGnbfbMja6K0hBWMSY0mY7WzMN9W2ARHTgbXre9/5l6PfFrW4q36sLwXOJU/mzLVz4errHSt6A3Te5AOqThlULuJO/F4pPX2i0Sgs2F1tVA=,iv:zOTWgbuUzuIhYbJFKocwEdR9DxZ3enjc2aIchkovfuA=,tag:x+2jEytk5XrSAGWvbB6bKw==,type:str]

View File

@@ -8,92 +8,101 @@ sops:
- recipient: age16veg3fmvpfm7a89a9fc8dvvsxmsthlm70nfxqspr6t8vnf9wkcwsvdq38d - recipient: age16veg3fmvpfm7a89a9fc8dvvsxmsthlm70nfxqspr6t8vnf9wkcwsvdq38d
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBZVDdFYThxK25KMzBaOGQv YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBIUXJVWXc2TnE2ODJYU1Rn
cGpQNGhnNUE0Q2xUalVubS9VaE1kRjdPeUJzCkJwQXEwT0I5MkV5TGc5bzluejYx SDNWeW5LMklTKzc0RWpaN3pVZ2V6VHR3RnpRCnlSUGlHNmFhRGtkMkJHbjNoSTdt
bld2OWYwanJKSjRyUjR1a2Z2aUYxTDAKLS0tIFp5SENBYng2elFUejlEaWIvdDhs N2JWZ1BjYWZpdVUvVnE1SWh2aTlEUW8KLS0tIGlkUkxweHZVTDlZN2V2YzdPRmtZ
NnRlK1dja1FyMkdPMVJwQ2pUbUFXUWsKeFCTINxibBefcTJnw38vBipaHg0ClhiP dElvOUpTME4xYlFLS0k2Uk4vMktiaGcKLuGeC7n2sj90/5IOQ/wGqxLGpdfvVZK5
p0fy73UasShGP91tkZ8nYLtZ2HpvLMQi5dVNLCwkv5boLhz/EzMNug== 2n8YuRbjlxdGcKlR/qPHcF57Y6M6Md2psbg5Ru29rOnimYFPTUvc2g==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1v6p8dan2t3w9h94fz4flldl32082j3s9x6zqq7u5j66keth9aphsd6pvch - recipient: age1v6p8dan2t3w9h94fz4flldl32082j3s9x6zqq7u5j66keth9aphsd6pvch
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBSWGZhRFVoVXhTK3hQTEZm YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBpSFphYUZVc2doS3g4Z1Fw
T3pYRGZmRUVZVUlnK0M5eWI4MUZQQU9WRWdzCjYzOUFISUw2YlJscUozMldxaWQ4 NHI2clRmWGczd2J0YUdwOG50VDA4YW5hVW1VCkFpN3dWNzgreW9rZytwTlJrVlpx
eW5jZVV6SEpxeFgySW43Tmt1dERuWUkKLS0tIEI2UndHZTNPcVliQVVDSHlVMU1Z bUl0aUNTb01nVC9PSTVhRmF3TUpEY3cKLS0tIEVrWVRRVXl3M1JSQ25Fcm4yRnBD
Nklva3N4RHFDcTYrV1MrTTZONnZoWkEKTRGcwXQiFw0DjrG1cTHnaC7/j5YLSTgr NEZYbEIyWVJ1a1M2REJFY1NoZFF5YTQKFCmtrT8e7GwYwR5PUVUcHIPR7rQYVNqS
1wwNgK4OtM89yLA+8MfnRkTucgxu4AZrihYuz2Q9K8m17qDLSEGQOA== eEoYPf/WSmTolIODr2YaCnATWa5ALO/Tkh0OjRDVB5qH1j/gCZeSng==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age106n5n3rrrss45eqqzz8pq90la3kqdtnw63uw0sfa2mahk5xpe30sxs5x58 - recipient: age106n5n3rrrss45eqqzz8pq90la3kqdtnw63uw0sfa2mahk5xpe30sxs5x58
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAyM3VvUHkzNlJKU2tscEx6 YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkR1JkZ2gzbkNJNGc3ZjVr
ZU1DMHZuUlZKMnRYNGp3WlFNMEUwSkV6SENBCjM3RC9kcGQxZG0raFFhOXdmVW1B MlY0bXZTRmpaejlVamZvSmNTZjBDYjYzOG40CkJwemR4UnZYTHFSQVlEVUJpRDJW
ZGlTRzdoSnQ0MFlCSG1nN3haKzd4NUkKLS0tIFVBeHJzSTR2T2FhUytEdGF2bWlG VEJxTWF4NzhIRitQaEJIT0E2Ykt3YTAKLS0tIDRyRTFFSmFHUzF2Ry83UVpRRnN2
YmVFZ1JLQmFNUnZFVXhLTEljR3hHZjAKe9wxnlMLqAH8gHDo63Rmt3KibTQWAdZl RHRnYmcwRTBWQzJCTm9KZDFCUWVpYkkK4LBYIZaz4S5KNj2gpZmECs8zOsHU+xPZ
BMKWjmmjLpraMuec2zLU/YPkZPs7lemmSmrp8QD4JYxRqqb4/BI3Yw== 71lPT6abiW1D1BwLe9PixCLuBNUlrFLXr/OTcVvJc8v/Se3l3dArMA==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1y6lvl5jkwc47p5ae9yz9j9kuwhy7rtttua5xhygrgmr7ehd49svsszyt42 - recipient: age1y6lvl5jkwc47p5ae9yz9j9kuwhy7rtttua5xhygrgmr7ehd49svsszyt42
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhQ0ViaGU5OWNIcjI0cWM3 YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4WFhraUNxOVJvRmRnUUN1
eVQwejdlcnlHWXIvNXhTcFVTUmNFVkloRFFJCkxnbWxRMGUzc0hQMDBBSkkvMmha TWRobndtZnIxWHIvTFhiMkduTXI0ZmRVNW1NClg1bGpSVS8vVUttNnBMaHdFTWZx
SVZvWktNbDN5cFB0ak9vTU8rcEtJeDgKLS0tIDg4MjNTMEFwbW9ZWDdUQUVwdUJx Q0RHWlE0cEhKYXpKV2JiNmpVY1l2TEEKLS0tIEVPT0M5eDEyUnJSM0pDUTlSUDRF
M1NVWjg0QkFiZi80RHdsVWJ2YVdRSTQKeinMXSQZMoB11wRUIGWHI9maml0J+781 NytwdGVKNFRoMXRvWEdNSTRFR01CNVUKWF55Z52rODbs2Jzz4oBybzbpApf4klY9
h1zKPA0E2udI6G+dLrGJ2MAWZOs2s+o7vYnBdLJGYLQKYUV3jmDXzg== YRAw08mrjcrPnRv45+D6txY3TZgpaMowrEIUut9FlrpSJlNZ3wqyiw==
-----END AGE ENCRYPTED FILE-----
- recipient: age1ylrpaytkm0k5kcecsxvyv5xd9ts4md0uap48g6wsmj9pwm4lf5esffu0gw
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaeTRsektCYXR4eHVOMlp6
bTJpaGN3ZTBjZFcyQ0g4ZVEvdVFadGtNVEFvCkZMUDFiV1pGVThFeHhUUFR3ZFdz
TlZCV1FCckQ1OG5XNW5mSVdURlR1cTQKLS0tIFRhQ2JFNnNqaFdEeGtKYkloRFZa
aDQ5N1N5WTVxLzhHNVBzNVo0SmtlRlkKqxV7lOwmcqwobiiMHDvAmcDG4v7depF6
cHjil9JJP/aQwVM+p6Q179pXggy1vNj4mmoliNCeq6v4m5gSvunfHw==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1ezq2j34qngky22enhnslx6hzh4ekwk8dtmn6c9us0uqxqpn7hgpsspjz58 - recipient: age1ezq2j34qngky22enhnslx6hzh4ekwk8dtmn6c9us0uqxqpn7hgpsspjz58
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBoaW9MclBYR3FSZDQ0OFZW YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaem43dCtZQVNTclNsa3Iz
SVN1UzF3UXVXZHdIM01EdGJWQ3EveW5YVTNJCnFkR1E1c0IwN3FqcXdVenVFUU1V Z0hsckJ6NUV1dlFNY1VSVkd6SFZoL3FyNGtnClpIOGVGUTllTlRlQjBHenVJWHVx
clBDeTNxa1FoRjZ5N3JkSnZOTHFodmcKLS0tIFRvZHpKMEZ5RlIyQnRYSkg4MWdV QnJSZll5Y0YzRWM5cVJPMVlodDMvaEUKLS0tIC9aR2I0dUJWN2IzejJMV29pcmw3
R0hxTG5KRE5aTk55Yy9pRzFHSG9tb0EK7+2mAfhJUZlMYpJCVpdRpyJiBXuqP2Bb TEdaaUlCaDduTzhlWG9VaExidFFrNmMKlJ1FXJvBs2DKrh68d5CNt7CVP/02PJij
R2YX9u/bHvvniXydLjNeX8YoPl3adTwaQoI2aDMpBo8JlQxRnpLaxg== dO6PstwPHlrrGzkDFFsCo2/klnNr6/u1onKrxoF4SIDqKe5uc7lCew==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1jyeppc8yl2twnv8fwcewutd5gjewnxl59lmhev6ygds9qel8zf8syt7zz4 - recipient: age1jyeppc8yl2twnv8fwcewutd5gjewnxl59lmhev6ygds9qel8zf8syt7zz4
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzeS9NL2FhbWI0R1FNS1p5 YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHVHFDSVlmZTBGNm9qMHAv
UlY2aUYwRWU5R3ZvQ21NVGd1SGRySlpMUGlvCk1lT0praThDT3Y4NTFnUitNTjQv WGlhbGg2RlEwWGgwUThZSDFMWCtaRkovUlJvCmhGdDRsWG05UzQrdnExakxMa012
Z1BzNy85a3p6QzcvczBtcGc5OEwxS2sKLS0tIFo2TGxUQXdFWHJZUk5GZnhlNFdj YzZMTHk0cngvdEVmMmRLVVJydE9lcUkKLS0tIHN2RS95bEhqZ3Z3TjlaSWZPOWxi
ZEdhZTQ1b0E2N3FvRTNGbk5ZWDE3V2MK2rUMFu7dmeWWP1aXEJLdKT9fWaw3kFRY Zmw1SlFmcXRHd0VCLzQ2MzJGeENFMVUKq2ZVDC9b2zaYqCp1ZmZG9Xrg6hzR3uSt
GqJE8fmCupfOj7q5BLQEE+WKgkLGRpfl5DkZD8xQ0MX8F46179MAvA== XyTTJZiiOb85iYsxs19MqvKYl74k4Yqmyz8ZjAkMDE1bSOF6BWKutw==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1azmxsw5llmp2nnsv3yc2l8paelmq9rfepxd8jvmswgsmax0qyyxqdnsc7t - recipient: age1azmxsw5llmp2nnsv3yc2l8paelmq9rfepxd8jvmswgsmax0qyyxqdnsc7t
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1SmQvMjFSSStGclVsblR2 YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAvZUhFZW5yaGxUUEo0WXhy
aDFseENHanZlMzM2b0hyTjlCa3BycGdxNnhBCnZWS2JTZ2VEdXZZVEM4bG1ybmJZ M1FLQVY2dzkxVzgrbW9qNEJhQm94dGtONFZZCkdreTZ0WklOK2ZSUytTZWNSbThv
VTRWRklYdWljcGhGcHF4aGFiZHVOalkKLS0tIDErS3dEMmJLaXR6YVczeFY1QS8x OEFFbW1jQkJxaDlZVXZYZlVXRUljbmcKLS0tIDcvRHMvVTNYZFBNamhhSFArMm1i
MVVaMDZydkcxdEpUS2ZlWCt2WXUva00K32w7T1BxQRI77ahVkb0wlnBac8e4Pai2 L3RUTFZVZzZicmwvT3g1ZHRPOWFzcmcKaHQqShGZFMtY8FliQ+OokvEYZIbjFsi9
1+LGOEN7lMwGGaD07wSHvjq5Epd2kwcO0Ebzu1cSF5neQP84ExkpPQ== zxUHYxDzcLtNkRioYnK4gb3Nv/lA8AOL4RaH0AlU0kQLaXwVVGhiIQ==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1zkzpnfeakyvg3fqtyay32sushjx2hqe28y6hs6ss7plemzqjqa5s6s5yu3 - recipient: age1zkzpnfeakyvg3fqtyay32sushjx2hqe28y6hs6ss7plemzqjqa5s6s5yu3
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0VTRlWXkweWZJeU0xRkNJ YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnSHJuajhUZ2hxODBJNVMx
ZGhZWVg5anhiL1hjTzFWWmJqelE2M00wMHhVCis3b1N3bU83alJGSkp0UUo3RFpi cTMrSGJKeHoxd2docUpqYS91TUszTHQwcHgwCnV6WG1UcVBmcUIreUVQYU5uODhO
ZmE2ODYyQUJIalhWWnMvNjlvN2RFRDQKLS0tIGVLbWFmVzFWRUJNalVmWHdxcjN2 QXVnKy9vUlRhWjRKcnJCWDdNMGVkcDAKLS0tICtoWXlESDB2c1M3UDh0V2k1VHhU
ZEVlOUV3aDlPZml3clJ4dTFvZHh5SVEKBw1fBY62X1hLRZUL3yqpAJCGb2H1UEIt SFhVd1Exd293NEZRK3dVNDBTcS92OUkKj6RDzuAKCX53kGLNL+lygtynYECTjOXn
jFcKnyBxA/u2GNZlbiX3EZy/WzWtm305BV+zW7ZltQ05azM6VkpX/w== KgKlvwcp32eNCmo4uzAiNv8seRsBbnV3SeZaGQyTVdEsz5hw8UNNxw==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age14uarclad0ty5supc8ep09793xrnwkv8a4h9j0fq8d8lc92n2dadqkf64vw - recipient: age14uarclad0ty5supc8ep09793xrnwkv8a4h9j0fq8d8lc92n2dadqkf64vw
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKRXUrTXZTdzhYWE9sZjVR YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBGZ3F0NDgxbGIwUUNTWGNu
akplZTdZNVFlV0ZEVW5pZlFJTENtdEFxaWhvCmZzOVpsbTdPc0NKbXh6RUczYXhz QWkxUVVIT1NNVDd3emdVSHVkVEtlZ2lGNmtNCjBPNFJQdm9JQnBNc2RtNmJvOWkr
VDhadWVvWENuQlVFaFExSWxLekhWV1EKLS0tIGM5RGliMEk3UkVJczNOQWdYSzF4 YjFrTVBqdEk1UncrcWtVaTI1MU9GRlEKLS0tIHlxV1QzN3NDcEROS0ZKbGFrRHBm
NHVCbHRTR25JcmZIOVR1Q3F0TUVzZFkKTZEtFBU0zQp3131jRsX5HmD4il8jNAMQ NDM0dWFqR3l5QjNxdDZjNVhaaGxIWkkKoIykk64vKTXtojm+iR8mhIHy3wwGKPvt
suP7S8BzHE9Qfdx4iFND0UNzg32en6fUjYJftSC7hIIZcJ8fLzDPfw== KI5kkqsHQ8cO8K8JUFJRgizyHd9dPcbcciaE1WrD3e5yhYqgh/VhrA==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
- recipient: age1wq82xjyj80htz33x7agxddjfumr3wkwh3r24tasagepxw7ka893sau68df - recipient: age1wq82xjyj80htz33x7agxddjfumr3wkwh3r24tasagepxw7ka893sau68df
enc: | enc: |
-----BEGIN AGE ENCRYPTED FILE----- -----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVQ2RheGx0ZWFyRkNiRTBP YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBFVng0TDlhSHNqOGpqbnZO
b2VnQ3VJVUxDaThBVllHNy85VURDN2FQc1hVCjFiM3FqaFMxQ1RVdnYydHpkVWE4 Q054VWQ1anR0Q21wUWhBRGhLVXF3cE5Ib0ZjCmYrS0NZYXJ1NHRQR0J3RVZBbDZy
NkNYWHpTUHd1Y3MwWTZ5d29RYzROWjgKLS0tIDdLM3BYTHhlQVdTTm5yMExCYUhh dmRpQXJoYzYwNDRXd2g4NkRKakNIVkUKLS0tIEhVV1Nwcmt3OGhqMzN6L3EzL0JI
d0N1QWtSdEMyZ2RBWDlkUUt2RkV4TTAKeqn287GKCUCIoeAIVOy1YiJzZJD5ueub YWxOZ2dUd2J3S09QNVl0WW9JWUlJaUUKZWgXbwGlqLwE5XN/kwYFYqWiKvmTJFJo
4k9iqWRYKvc3yDtS615eMRUQQUrXNj0WX4Y+D/maRti/PP9JK3tZQg== S1t+iZp5Uc8LFrPk+x6wdiXP/7FHCXqmy+4nOryJNM0evyydUZbVyQ==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2023-08-19T08:05:08Z" lastmodified: "2023-08-19T08:05:08Z"
mac: ENC[AES256_GCM,data:xggGGP0zLQHCh3p8b1K/1m+EfkU8lemWvV4jk4pujJv8ZcXwqbpz5REAibIKy42PHN0vfOQhTkcTBWd8sK9AkmeyrHwKkR8ecBbDf5t1RzJ0vXmy9Ro8OIbUwSPpbAjlOYoFU3NWTwOgOOyCNze8iXI48Zu4prdJoGiAhsOKvQ8=,iv:pYutJgy2lJnckDAG279El8Sas/YEWLHLIM1+/NHxxTQ=,tag:drMFDUQDZ8nJeq9/F5Y+mg==,type:str] mac: ENC[AES256_GCM,data:xggGGP0zLQHCh3p8b1K/1m+EfkU8lemWvV4jk4pujJv8ZcXwqbpz5REAibIKy42PHN0vfOQhTkcTBWd8sK9AkmeyrHwKkR8ecBbDf5t1RzJ0vXmy9Ro8OIbUwSPpbAjlOYoFU3NWTwOgOOyCNze8iXI48Zu4prdJoGiAhsOKvQ8=,iv:pYutJgy2lJnckDAG279El8Sas/YEWLHLIM1+/NHxxTQ=,tag:drMFDUQDZ8nJeq9/F5Y+mg==,type:str]