This commit is contained in:
xunuwu 2024-10-25 10:39:48 +02:00
parent b794d397a7
commit d94b4723d4
Signed by: xun
SSH key fingerprint: SHA256:Uot/1WoAjWAeqLOHA5vYy4phhVydsH7jCPmBjaPZfgI
89 changed files with 6 additions and 10 deletions

View file

@ -0,0 +1,22 @@
{config, ...}: {
boot = {
initrd = {
systemd.enable = true;
};
consoleLogLevel = 3;
kernelParams = [
"quiet"
"systemd.show_status=auto"
"rd.udev.log_level=3"
];
loader = {
# systemd-boot on UEFI
efi.canTouchEfiVariables = true;
systemd-boot.enable = true;
};
plymouth.enable = true;
};
}

View file

@ -0,0 +1,69 @@
{
self,
super,
root,
}: {pkgs, ...}: let
list-of-libraries = with pkgs; [
alsa-lib
at-spi2-atk
at-spi2-core
atk
cairo
cups
curl
dbus
expat
fontconfig
freetype
fuse3
gdk-pixbuf
glib
gtk3
icu
libGL
libappindicator-gtk3
libdrm
libglvnd
libnotify
libpulseaudio
libunwind
libusb1
libuuid
libxkbcommon
libxml2
mesa
nspr
nss
openssl
pango
pipewire
stdenv.cc.cc
systemd
vulkan-loader
xorg.libX11
xorg.libXScrnSaver
xorg.libXcomposite
xorg.libXcursor
xorg.libXdamage
xorg.libXext
xorg.libXfixes
xorg.libXi
xorg.libXrandr
xorg.libXrender
xorg.libXtst
xorg.libxcb
xorg.libxkbfile
xorg.libxshmfence
zlib
];
in {
programs.appimage = {
enable = true;
package = pkgs.appimage-run.override {
extraPkgs = p: list-of-libraries;
};
};
programs.nix-ld.enable = true;
programs.nix-ld.libraries = list-of-libraries;
}

View file

@ -0,0 +1,14 @@
{
self,
super,
root,
}: {
imports = [
super.security
super.users
super.ssh
super.locale
root.nix.default
root.programs.zsh
];
}

View file

@ -0,0 +1,15 @@
{
self,
super,
root,
}: {pkgs, ...}: {
documentation = {
dev.enable = true;
# man.generateCaches = true; # this does slow down builds by quite a lot
};
environment.systemPackages = with pkgs; [
linux-manual
man-pages
man-pages-posix
];
}

View file

@ -0,0 +1,3 @@
{
services.gvfs.enable = true;
}

View file

@ -0,0 +1,4 @@
{
#TODO: add stuff here
# use lynis mayb
}

View file

@ -0,0 +1,11 @@
{...}: {lib, ...}: {
i18n = {
defaultLocale = "en_US.UTF-8";
supportedLocales = [
"en_US.UTF-8/UTF-8"
];
};
services.xserver.xkb.layout = "eu";
time.timeZone = lib.mkDefault "Europe/Berlin";
}

View file

@ -0,0 +1,65 @@
# security tweaks borrowed from @hlissner
{
boot.kernel.sysctl = {
# The Magic SysRq key is a key combo that allows users connected to the
# system console of a Linux kernel to perform some low-level commands.
# Disable it, since we don't need it, and is a potential security concern.
"kernel.sysrq" = 0;
## TCP hardening
# Prevent bogus ICMP errors from filling up logs.
"net.ipv4.icmp_ignore_bogus_error_responses" = 1;
# Reverse path filtering causes the kernel to do source validation of
# packets received from all interfaces. This can mitigate IP spoofing.
"net.ipv4.conf.default.rp_filter" = 1;
"net.ipv4.conf.all.rp_filter" = 1;
# Do not accept IP source route packets (we're not a router)
"net.ipv4.conf.all.accept_source_route" = 0;
"net.ipv6.conf.all.accept_source_route" = 0;
# Don't send ICMP redirects (again, we're not a router)
"net.ipv4.conf.all.send_redirects" = 0;
"net.ipv4.conf.default.send_redirects" = 0;
# Refuse ICMP redirects (MITM mitigations)
"net.ipv4.conf.all.accept_redirects" = 0;
"net.ipv4.conf.default.accept_redirects" = 0;
"net.ipv4.conf.all.secure_redirects" = 0;
"net.ipv4.conf.default.secure_redirects" = 0;
"net.ipv6.conf.all.accept_redirects" = 0;
"net.ipv6.conf.default.accept_redirects" = 0;
# Protects against SYN flood attacks
"net.ipv4.tcp_syncookies" = 1;
# Incomplete protection again TIME-WAIT assassination
"net.ipv4.tcp_rfc1337" = 1;
## TCP optimization
# TCP Fast Open is a TCP extension that reduces network latency by packing
# data in the senders initial TCP SYN. Setting 3 = enable TCP Fast Open for
# both incoming and outgoing connections:
"net.ipv4.tcp_fastopen" = 3;
# Bufferbloat mitigations + slight improvement in throughput & latency
"net.ipv4.tcp_congestion_control" = "bbr";
"net.core.default_qdisc" = "cake";
};
boot.kernelModules = ["tcp_bbr"];
# Change me later!
#users.users.root.initialPassword = "nixos";
security = {
# allow wayland lockers to unlock the screen
pam.services.swaylock.text = "auth include login";
# userland niceness
rtkit.enable = true;
# don't ask for password for wheel group
sudo.wheelNeedsPassword = false;
# allow running as any id without them being listed in /etc/passwd
# this might be a security problem but whatever
sudo.extraConfig = ''
Defaults runas_allow_unknown_id
'';
};
}

View file

@ -0,0 +1,22 @@
{lib, ...}: {
services.openssh = {
enable = lib.mkDefault true;
settings = {
# Use only public keys
PasswordAuthentication = lib.mkForce false;
KbdInteractiveAuthentication = lib.mkForce false;
# root login is never welcome, except for remote builders
PermitRootLogin = lib.mkForce "prohibit-password";
};
startWhenNeeded = lib.mkDefault true;
openFirewall = lib.mkDefault true;
hostKeys = [
{
path = "/etc/ssh/ssh_host_ed25519_key";
type = "ed25519";
}
];
};
}

View file

@ -0,0 +1,7 @@
{...}: {pkgs, ...}: {
environment.systemPackages = with pkgs; [
htop
btop
vim
];
}

View file

@ -0,0 +1,16 @@
{...}: {pkgs, ...}: {
users.users.xun = {
isNormalUser = true;
initialPassword = "nixos";
shell = pkgs.zsh;
extraGroups = [
"wheel"
"input"
"kvm"
"libvirt"
"video"
"render"
"audio"
];
};
}

View file

@ -0,0 +1,9 @@
{
imports = [
./x11
];
services.xserver = {
enable = true;
windowManager.awesome.enable = true;
};
}

View file

@ -0,0 +1,5 @@
{
programs.hyprland = {
enable = true;
};
}

View file

@ -0,0 +1,3 @@
{
services.displayManager.ly.enable = true;
}

View file

@ -0,0 +1,9 @@
{
programs.sway = {
enable = true;
wrapperFeatures = {
base = true;
gtk = true;
};
};
}

View file

@ -0,0 +1,5 @@
{...}: {
imports = [
./xclip.nix
];
}

View file

@ -0,0 +1,8 @@
{
services.xserver.serverFlagsSection = ''
Option "BlankTime" "0"
Option "StandbyTime" "0"
Option "SuspendTime" "0"
Option "OffTime" "0"
'';
}

View file

@ -0,0 +1,3 @@
{pkgs, ...}: {
environment.systemPackages = with pkgs; [xclip];
}

View file

@ -0,0 +1,5 @@
{
hardware.bluetooth = {
enable = true;
};
}

View file

@ -0,0 +1,6 @@
{
hardware.graphics = {
enable = true;
enable32Bit = true;
};
}

View file

@ -0,0 +1,3 @@
{
hardware.keyboard.qmk.enable = true;
}

View file

@ -0,0 +1,3 @@
{
hardware.steam-hardware.enable = true;
}

View file

@ -0,0 +1,13 @@
{
# network discovery, mDNS
services.avahi = {
enable = true;
nssmdns4 = true;
publish = {
enable = true;
domain = true;
userServices = true;
};
openFirewall = true;
};
}

View file

@ -0,0 +1,6 @@
{
networking.firewall = {
allowedTCPPorts = [47584];
allowedUDPPorts = [47584];
};
}

View file

@ -0,0 +1,12 @@
{
self,
super,
root,
}: {pkgs, ...}: {
environment.systemPackages = with pkgs; [
localsend
];
networking.firewall.allowedTCPPorts = [53317];
networking.firewall.allowedUDPPorts = [53317];
}

View file

@ -0,0 +1,13 @@
{
networking.useNetworkd = true;
systemd.network = {
enable = true;
};
services.resolved = {
enable = true;
dnssec = "true";
domains = ["~."];
};
# TODO use networkd-dispatcher to do some things when network connectivity changes maybe
}

View file

@ -0,0 +1,12 @@
{
self,
super,
root,
}: {config, ...}: {
services.tailscale = {
enable = true;
openFirewall = true;
useRoutingFeatures = "client";
#authKeyFile = config.sops.secrets.tailscale-auth.path;
};
}

View file

@ -0,0 +1,5 @@
{
networking.wireless = {
iwd.enable = true;
};
}

View file

@ -0,0 +1,38 @@
{
self,
super,
root,
}: {
config,
pkgs,
inputs,
lib,
...
}: {
imports = [
super.substituters
];
# git is needed for flakes
environment.systemPackages = [pkgs.git];
nix = {
# pin the registry to avoid downloading and evaling a new nixpkgs version every time
registry = lib.mapAttrs (_: v: {flake = v;}) inputs;
# set the path for channels compat
nixPath = lib.mapAttrsToList (key: _: "${key}=flake:${key}") config.nix.registry;
settings = {
#auto-optimise-store = true;
builders-use-substitutes = true;
experimental-features = ["flakes" "nix-command"];
# for direnv GC roots
keep-outputs = true;
keep-derivations = true;
trusted-users = ["root" "@wheel"];
};
};
}

View file

@ -0,0 +1,7 @@
{
nix.gc = {
automatic = true;
options = "--delete-older-than 14d";
};
nix.optimise.automatic = true;
}

View file

@ -0,0 +1,18 @@
{
self,
super,
root,
}: {
nix.settings = {
substituters = [
# high priority since it's almost always used
"https://cache.nixos.org?priority=10"
"https://nix-community.cachix.org"
];
trusted-public-keys = [
"cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY="
"nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="
];
};
}

View file

@ -0,0 +1,39 @@
# patchelf --replace-needed libbinaryninjacore.so.1 ${symlinkJoin} $out/opt/binaryninja
{
self,
super,
root,
}: {
pkgs,
self,
...
}: {
environment.systemPackages = let
il2cppdumper = pkgs.callPackage ./il2cppdumper {};
ilspy = pkgs.callPackage ./ilspy {};
in
with pkgs; [
(ghidra.withExtensions (ps:
with ps; [
gnudisassembler
machinelearning
]))
(cutter.withPlugins (ps:
with ps; [
rz-ghidra
]))
self.packages.${pkgs.system}.binaryninja-personal
self.packages.${pkgs.system}.ida-pro
# il2cppdumper
# ilspy
gdb
];
networking.hosts = {
"0.0.0.0" = ["master.binary.ninja"]; # idk my binary ninja crack [AMPED] told me to
};
}
## NOTE: you still need to run keygen.exe to generate a key

View file

@ -0,0 +1,33 @@
{
buildDotnetModule,
dotnetCorePackages,
fetchFromGitHub,
}:
buildDotnetModule rec {
pname = "il2cppdumper";
version = "6.7.46";
src = fetchFromGitHub {
owner = "Perfare";
repo = pname;
rev = "v${version}";
sha256 = "sha256-pMxxwBpuZ2EuP7O99XTJcnS3Dq8MdxvUGQHJ0U3bnTY=";
};
projectFile = "Il2CppDumper/Il2CppDumper.csproj";
nugetDeps = ./deps.nix;
dotnet-sdk = with dotnetCorePackages; combinePackages [sdk_7_0 sdk_6_0];
dotnet-runtime = dotnetCorePackages.runtime_7_0;
dotnetBuildFlags = [
"-f"
"net7.0"
];
dotnetInstallFlags = dotnetBuildFlags;
executables = [
"Il2CppDumper"
];
}

View file

@ -0,0 +1,22 @@
{fetchNuGet}: [
(fetchNuGet {
pname = "Microsoft.AspNetCore.App.Ref";
version = "6.0.31";
sha256 = "0hki4z9x60vzcg53s8cxnig4g1xnpqcj629r2cg5q1xw0sknfp5d";
})
(fetchNuGet {
pname = "Microsoft.NETCore.App.Host.linux-x64";
version = "6.0.31";
sha256 = "10s0p30qzfn9zibp1ldnqar87hqs47ni3rwqpvwx4jn3589cl9sn";
})
(fetchNuGet {
pname = "Microsoft.NETCore.App.Ref";
version = "6.0.31";
sha256 = "19a4ainxj8jxij7ckglbmlnvrjxp72xfgx0r6lbglzh9dhsakwm7";
})
(fetchNuGet {
pname = "Mono.Cecil";
version = "0.11.4";
sha256 = "1yxa7mh432s7g7p9r7scqxvxjk5ypwc567qdbf0gmk8fbf0d3f8y";
})
]

View file

@ -0,0 +1,27 @@
{
buildDotnetModule,
dotnetCorePackages,
fetchFromGitHub,
powershell,
}:
buildDotnetModule rec {
pname = "ilspy";
version = "9.0-preview2";
src = fetchFromGitHub {
owner = "icsharpcode";
repo = "ILSpy";
rev = "v${version}";
sha256 = "sha256-JaFyKq5ZyHLvodY2/Ybwb/FmDeWQ5BawmA1ss+Qry20=";
};
buildInputs = [
powershell
];
projectFile = "ICSharpCode.ILSpyCmd/ICSharpCode.ILSpyCmd.csproj";
dotnet-sdk = dotnetCorePackages.sdk_8_0;
dotnet-runtime = dotnetCorePackages.runtime_8_0;
nugetDeps = ./deps.nix;
}

View file

@ -0,0 +1,374 @@
# This file was automatically generated by passthru.fetch-deps.
# Please dont edit it manually, your changes might get overwritten!
{fetchNuGet}: [
(fetchNuGet {
pname = "K4os.Compression.LZ4";
version = "1.3.8";
sha256 = "0813zra3gp35z9nwzqps534v2b34d8hsmmxy1hcrkamq0ckzfr1s";
})
(fetchNuGet {
pname = "McMaster.Extensions.CommandLineUtils";
version = "4.1.1";
sha256 = "0jp4q30lfh42y3h8057y2icllnil7cbigkry4l514wbayj8jwp9b";
})
(fetchNuGet {
pname = "McMaster.Extensions.Hosting.CommandLine";
version = "4.1.1";
sha256 = "0w18sn248pga1g83z5qakdfvzp8729h9da01kd14xg5l115jngj3";
})
(fetchNuGet {
pname = "Microsoft.Build.Tasks.Git";
version = "8.0.0";
sha256 = "0055f69q3hbagqp8gl3nk0vfn4qyqyxsxyy7pd0g7wm3z28byzmx";
})
(fetchNuGet {
pname = "Microsoft.Extensions.Configuration";
version = "8.0.0";
sha256 = "080kab87qgq2kh0ijry5kfdiq9afyzb8s0k3jqi5zbbi540yq4zl";
})
(fetchNuGet {
pname = "Microsoft.Extensions.Configuration.Abstractions";
version = "6.0.0";
sha256 = "0w6wwxv12nbc3sghvr68847wc9skkdgsicrz3fx4chgng1i3xy0j";
})
(fetchNuGet {
pname = "Microsoft.Extensions.Configuration.Abstractions";
version = "8.0.0";
sha256 = "1jlpa4ggl1gr5fs7fdcw04li3y3iy05w3klr9lrrlc7v8w76kq71";
})
(fetchNuGet {
pname = "Microsoft.Extensions.Configuration.Binder";
version = "8.0.0";
sha256 = "1m0gawiz8f5hc3li9vd5psddlygwgkiw13d7div87kmkf4idza8r";
})
(fetchNuGet {
pname = "Microsoft.Extensions.Configuration.CommandLine";
version = "8.0.0";
sha256 = "026f7f2iv6ph2dc5rnslll0bly8qcx5clmh2nn9hgyqjizzc4qvy";
})
(fetchNuGet {
pname = "Microsoft.Extensions.Configuration.EnvironmentVariables";
version = "8.0.0";
sha256 = "13qb8wz3k59ihq0mjcqz1kwrpyzxn5da4dhk2pvcgc42z9kcbf7r";
})
(fetchNuGet {
pname = "Microsoft.Extensions.Configuration.FileExtensions";
version = "8.0.0";
sha256 = "1jrmlfzy4h32nzf1nm5q8bhkpx958b0ww9qx1k1zm4pyaf6mqb04";
})
(fetchNuGet {
pname = "Microsoft.Extensions.Configuration.Json";
version = "8.0.0";
sha256 = "1n3ss26v1lq6b69fxk1vz3kqv9ppxq8ypgdqpd7415xrq66y4bqn";
})
(fetchNuGet {
pname = "Microsoft.Extensions.Configuration.UserSecrets";
version = "8.0.0";
sha256 = "1br01zhzhnxjzqx63bxd25x48y9xs69hcs71pjni8y9kl50zja7z";
})
(fetchNuGet {
pname = "Microsoft.Extensions.DependencyInjection";
version = "8.0.0";
sha256 = "0i7qziz0iqmbk8zzln7kx9vd0lbx1x3va0yi3j1bgkjir13h78ps";
})
(fetchNuGet {
pname = "Microsoft.Extensions.DependencyInjection.Abstractions";
version = "6.0.0";
sha256 = "1vi67fw7q99gj7jd64gnnfr4d2c0ijpva7g9prps48ja6g91x6a9";
})
(fetchNuGet {
pname = "Microsoft.Extensions.DependencyInjection.Abstractions";
version = "8.0.0";
sha256 = "1zw0bpp5742jzx03wvqc8csnvsbgdqi0ls9jfc5i2vd3cl8b74pg";
})
(fetchNuGet {
pname = "Microsoft.Extensions.Diagnostics";
version = "8.0.0";
sha256 = "0ghwkld91k20hcbmzg2137w81mzzdh8hfaapdwckhza0vipya4kw";
})
(fetchNuGet {
pname = "Microsoft.Extensions.Diagnostics.Abstractions";
version = "8.0.0";
sha256 = "15m4j6w9n8h0mj7hlfzb83hd3wn7aq1s7fxbicm16slsjfwzj82i";
})
(fetchNuGet {
pname = "Microsoft.Extensions.FileProviders.Abstractions";
version = "6.0.0";
sha256 = "1fbqmfapxdz77drcv1ndyj2ybvd2rv4c9i9pgiykcpl4fa6dc65q";
})
(fetchNuGet {
pname = "Microsoft.Extensions.FileProviders.Abstractions";
version = "8.0.0";
sha256 = "1idq65fxwcn882c06yci7nscy9i0rgw6mqjrl7362prvvsd9f15r";
})
(fetchNuGet {
pname = "Microsoft.Extensions.FileProviders.Physical";
version = "8.0.0";
sha256 = "05wxjvjbx79ir7vfkri6b28k8zl8fa6bbr0i7gahqrim2ijvkp6v";
})
(fetchNuGet {
pname = "Microsoft.Extensions.FileSystemGlobbing";
version = "8.0.0";
sha256 = "1igf2bqism22fxv7km5yv028r4rg12a4lki2jh4xg3brjkagiv7q";
})
(fetchNuGet {
pname = "Microsoft.Extensions.Hosting";
version = "8.0.0";
sha256 = "1f2af5m1yny8b43251gsj75hjd9ixni1clcldy8cg91z1vxxm8dh";
})
(fetchNuGet {
pname = "Microsoft.Extensions.Hosting.Abstractions";
version = "6.0.0";
sha256 = "1mwjx6li4a82nb589763whpnhf5hfy1bpv1dzqqvczb1lhxhzhlj";
})
(fetchNuGet {
pname = "Microsoft.Extensions.Hosting.Abstractions";
version = "8.0.0";
sha256 = "00d5dwmzw76iy8z40ly01hy9gly49a7rpf7k7m99vrid1kxp346h";
})
(fetchNuGet {
pname = "Microsoft.Extensions.Logging";
version = "8.0.0";
sha256 = "0nppj34nmq25gnrg0wh1q22y4wdqbih4ax493f226azv8mkp9s1i";
})
(fetchNuGet {
pname = "Microsoft.Extensions.Logging.Abstractions";
version = "6.0.0";
sha256 = "0b75fmins171zi6bfdcq1kcvyrirs8n91mknjnxy4c3ygi1rrnj0";
})
(fetchNuGet {
pname = "Microsoft.Extensions.Logging.Abstractions";
version = "8.0.0";
sha256 = "1klcqhg3hk55hb6vmjiq2wgqidsl81aldw0li2z98lrwx26msrr6";
})
(fetchNuGet {
pname = "Microsoft.Extensions.Logging.Configuration";
version = "8.0.0";
sha256 = "1d9b734vnll935661wqkgl7ry60rlh5p876l2bsa930mvfsaqfcv";
})
(fetchNuGet {
pname = "Microsoft.Extensions.Logging.Console";
version = "8.0.0";
sha256 = "1mvp3ipw7k33v2qw2yrvc4vl5yzgpk3yxa94gg0gz7wmcmhzvmkd";
})
(fetchNuGet {
pname = "Microsoft.Extensions.Logging.Debug";
version = "8.0.0";
sha256 = "1h7mg97lj0ss47kq7zwnihh9c6xcrkwrr8ffhc16qcsrh36sg6q0";
})
(fetchNuGet {
pname = "Microsoft.Extensions.Logging.EventLog";
version = "8.0.0";
sha256 = "05vfrxw7mlwlwhsl6r4yrhxk3sd8dv5sl0hdlcpgw62n53incw5x";
})
(fetchNuGet {
pname = "Microsoft.Extensions.Logging.EventSource";
version = "8.0.0";
sha256 = "0gbjll6p03rmw0cf8fp0p8cxzn9awmzv8hvnyqbczrkax5h7p94i";
})
(fetchNuGet {
pname = "Microsoft.Extensions.Options";
version = "8.0.0";
sha256 = "0p50qn6zhinzyhq9sy5svnmqqwhw2jajs2pbjh9sah504wjvhscz";
})
(fetchNuGet {
pname = "Microsoft.Extensions.Options.ConfigurationExtensions";
version = "8.0.0";
sha256 = "04nm8v5a3zp0ill7hjnwnja3s2676b4wffdri8hdk2341p7mp403";
})
(fetchNuGet {
pname = "Microsoft.Extensions.Primitives";
version = "6.0.0";
sha256 = "1kjiw6s4yfz9gm7mx3wkhp06ghnbs95icj9hi505shz9rjrg42q2";
})
(fetchNuGet {
pname = "Microsoft.Extensions.Primitives";
version = "8.0.0";
sha256 = "0aldaz5aapngchgdr7dax9jw5wy7k7hmjgjpfgfv1wfif27jlkqm";
})
(fetchNuGet {
pname = "Microsoft.NETCore.App.Ref";
version = "8.0.0";
sha256 = "0hyvbh86433764qqqhw9i7ga0ax7bbdmzh77jw58pq0ggm41cff9";
})
(fetchNuGet {
pname = "Microsoft.NETCore.Platforms";
version = "1.1.0";
sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm";
})
(fetchNuGet {
pname = "Microsoft.SourceLink.Common";
version = "8.0.0";
sha256 = "0xrr8yd34ij7dqnyddkp2awfmf9qn3c89xmw2f3npaa4wnajmx81";
})
(fetchNuGet {
pname = "Microsoft.SourceLink.GitHub";
version = "8.0.0";
sha256 = "1gdx7n45wwia3yvang3ls92sk3wrymqcx9p349j8wba2lyjf9m44";
})
(fetchNuGet {
pname = "Mono.Cecil";
version = "0.11.5";
sha256 = "1l388sy7ibsq4b2pj08g3di0g8yppq47chd7ip10kwml6mpp1wcw";
})
(fetchNuGet {
pname = "NETStandard.Library";
version = "2.0.3";
sha256 = "1fn9fxppfcg4jgypp2pmrpr6awl3qz1xmnri0cygpkwvyx27df1y";
})
(fetchNuGet {
pname = "Newtonsoft.Json";
version = "13.0.3";
sha256 = "0xrwysmrn4midrjal8g2hr1bbg38iyisl0svamb11arqws4w2bw7";
})
(fetchNuGet {
pname = "NuGet.Common";
version = "6.10.0";
sha256 = "0nizrnilmlcqbm945293h8q3wfqfchb4xi8g50x4kjn0rbpd1kbh";
})
(fetchNuGet {
pname = "NuGet.Configuration";
version = "6.10.0";
sha256 = "1aqaknaawnqx4mnvx9qw73wvj48jjzv0d78dzwl7m9zjlrl9myhz";
})
(fetchNuGet {
pname = "NuGet.Frameworks";
version = "6.10.0";
sha256 = "0hrd8y31zx9a0wps49czw0qgbrakb49zn3abfgylc9xrq990zkqk";
})
(fetchNuGet {
pname = "NuGet.Packaging";
version = "6.10.0";
sha256 = "18s53cvrf51lihmaqqdf48p2qi6ky1l48jv0hvbp76cxwdg7rba4";
})
(fetchNuGet {
pname = "NuGet.Protocol";
version = "6.10.0";
sha256 = "0hmv4q0ks9i34mfgpb13l01la9v3jjllfh1qd3aqv105xrqrdxac";
})
(fetchNuGet {
pname = "NuGet.Versioning";
version = "6.10.0";
sha256 = "1x19njx4x0sw9fz8y5fibi15xfsrw5avir0cx0599yd7p3ykik5g";
})
(fetchNuGet {
pname = "System.Buffers";
version = "4.5.1";
sha256 = "04kb1mdrlcixj9zh1xdi5as0k0qi8byr5mi3p3jcxx72qz93s2y3";
})
(fetchNuGet {
pname = "System.Collections.Immutable";
version = "6.0.0";
sha256 = "1js98kmjn47ivcvkjqdmyipzknb9xbndssczm8gq224pbaj1p88c";
})
(fetchNuGet {
pname = "System.Collections.Immutable";
version = "8.0.0";
sha256 = "0z53a42zjd59zdkszcm7pvij4ri5xbb8jly9hzaad9khlf69bcqp";
})
(fetchNuGet {
pname = "System.ComponentModel.Annotations";
version = "5.0.0";
sha256 = "021h7x98lblq9avm1bgpa4i31c2kgsa7zn4sqhxf39g087ar756j";
})
(fetchNuGet {
pname = "System.ComponentModel.Composition";
version = "8.0.0";
sha256 = "02hmqwrdvqzq4ka4kpf88i7n3qp6lw1xwp7424kg08pa9y69swij";
})
(fetchNuGet {
pname = "System.Composition";
version = "8.0.0";
sha256 = "0y7rp5qwwvh430nr0r15zljw01gny8yvr0gg6w5cmsk3q7q7a3dc";
})
(fetchNuGet {
pname = "System.Composition.AttributedModel";
version = "8.0.0";
sha256 = "16j61piz1jf8hbh14i1i4m2r9vw79gdqhjr4f4i588h52249fxlz";
})
(fetchNuGet {
pname = "System.Composition.Convention";
version = "8.0.0";
sha256 = "10fwp7692a6yyw1p8b923k061zh95a6xs3vzfdmdv5pmf41cxlb7";
})
(fetchNuGet {
pname = "System.Composition.Hosting";
version = "8.0.0";
sha256 = "1gbfimhxx6v6073pblv4rl5shz3kgx8lvfif5db26ak8pl5qj4kb";
})
(fetchNuGet {
pname = "System.Composition.Runtime";
version = "8.0.0";
sha256 = "0snljpgfmg0wlkwilkvn9qjjghq1pjdfgdpnwhvl2qw6vzdij703";
})
(fetchNuGet {
pname = "System.Composition.TypedParts";
version = "8.0.0";
sha256 = "0skwla26d8clfz3alr8m42qbzsrbi7dhg74z6ha832b6730mm4pr";
})
(fetchNuGet {
pname = "System.Diagnostics.DiagnosticSource";
version = "8.0.0";
sha256 = "0nzra1i0mljvmnj1qqqg37xs7bl71fnpl68nwmdajchh65l878zr";
})
(fetchNuGet {
pname = "System.Diagnostics.EventLog";
version = "8.0.0";
sha256 = "1xnvcidh2qf6k7w8ij1rvj0viqkq84cq47biw0c98xhxg5rk3pxf";
})
(fetchNuGet {
pname = "System.Formats.Asn1";
version = "6.0.0";
sha256 = "1vvr7hs4qzjqb37r0w1mxq7xql2b17la63jwvmgv65s1hj00g8r9";
})
(fetchNuGet {
pname = "System.Memory";
version = "4.5.4";
sha256 = "14gbbs22mcxwggn0fcfs1b062521azb9fbb7c113x0mq6dzq9h6y";
})
(fetchNuGet {
pname = "System.Numerics.Vectors";
version = "4.4.0";
sha256 = "0rdvma399070b0i46c4qq1h2yvjj3k013sqzkilz4bz5cwmx1rba";
})
(fetchNuGet {
pname = "System.Reflection.Metadata";
version = "6.0.0";
sha256 = "1x0b289r9yjzdqypi2x3dc8sa66s3b6bpc7l2f8hxrzl6czdg4al";
})
(fetchNuGet {
pname = "System.Reflection.Metadata";
version = "8.0.0";
sha256 = "10a8vm0c3n5cili5nix6bdmiaxr69qisvk356pb81f2s8bgq40bm";
})
(fetchNuGet {
pname = "System.Runtime.CompilerServices.Unsafe";
version = "6.0.0";
sha256 = "0qm741kh4rh57wky16sq4m0v05fxmkjjr87krycf5vp9f0zbahbc";
})
(fetchNuGet {
pname = "System.Security.Cryptography.Pkcs";
version = "6.0.4";
sha256 = "0hh5h38pnxmlrnvs72f2hzzpz4b2caiiv6xf8y7fzdg84r3imvfr";
})
(fetchNuGet {
pname = "System.Security.Cryptography.ProtectedData";
version = "4.4.0";
sha256 = "1q8ljvqhasyynp94a1d7jknk946m20lkwy2c3wa8zw2pc517fbj6";
})
(fetchNuGet {
pname = "System.Text.Encodings.Web";
version = "8.0.0";
sha256 = "1wbypkx0m8dgpsaqgyywz4z760xblnwalb241d5qv9kx8m128i11";
})
(fetchNuGet {
pname = "System.Text.Json";
version = "8.0.0";
sha256 = "134savxw0sq7s448jnzw17bxcijsi1v38mirpbb6zfxmqlf04msw";
})
(fetchNuGet {
pname = "TunnelVisionLabs.ReferenceAssemblyAnnotator";
version = "1.0.0-alpha.160";
sha256 = "1wvfa3098a984kydjgjvx43gncnr89fw20if2gqvz8kqn9pxqjbq";
})
]

View file

@ -0,0 +1,3 @@
{
programs.adb.enable = true;
}

View file

@ -0,0 +1,17 @@
{
self,
super,
root,
}: {
imports = with super; [
fonts
home-manager
qt
adb
];
programs = {
# make HM-managed GTK stuff work
dconf.enable = true;
};
}

View file

@ -0,0 +1,49 @@
{
self,
super,
root,
}: {pkgs, ...}: {
fonts = {
packages = with pkgs; [
powerline-fonts
dejavu_fonts
font-awesome
noto-fonts
noto-fonts-emoji
source-code-pro
iosevka
nerdfonts
#(nerdfonts.override {fonts = ["NerdFontsSymbolsOnly"];})
(stdenv.mkDerivation {
# font piracy? i would never
pname = "Cartograph-CF";
version = "0.1";
src = pkgs.fetchFromGitHub {
owner = "xiyaowong";
repo = "Cartograph-CF";
rev = "619de85c103dbd5c150e1d5df039357f8ac2ed52";
hash = "sha256-NVqHxLQZnHb0lMjODkaDwSoglGPkUVJHL1xTmASoER4=";
};
dontBuild = true;
installPhase = ''
runHook preInstall
mkdir -p $out/share/fonts
cp -r $src $out/share/fonts
runHook postInstall
'';
})
];
# causes more issues than it solves
enableDefaultPackages = false;
# user defined fonts
fontconfig.defaultFonts = {
monospace = ["DejaVu Sans Mono for Powerline"];
sansSerif = ["DejaVu Sans"];
};
};
}

View file

@ -0,0 +1,5 @@
{
programs.gamemode = {
enable = true;
};
}

View file

@ -0,0 +1,6 @@
{
programs.gamescope = {
enable = true;
capSysNice = false; # breaks in steam & heroic
};
}

View file

@ -0,0 +1,9 @@
{...}: {inputs, ...}: {
imports = [
inputs.home-manager.nixosModules.default
];
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
};
}

View file

@ -0,0 +1,7 @@
{
qt = {
enable = true;
platformTheme = "gtk2";
style = "gtk2";
};
}

View file

@ -0,0 +1,38 @@
{pkgs, ...}: {
environment.systemPackages = [
pkgs.protontricks
pkgs.steamtinkerlaunch
];
programs.steam = {
enable = true;
#package = pkgs.steam.overrideAttrs (final: prev: {
# nativeBuildInputs = prev.nativeBuildInputs ++ [pkgs.breakpointHook];
# postInstall =
# prev.postInstall
# ++ ''
# exit 33
# '';
#});
remotePlay.openFirewall = true;
localNetworkGameTransfers.openFirewall = true;
extraCompatPackages = with pkgs; [
proton-ge-bin
];
gamescopeSession.enable = true;
## Fixes gamescope
extraPackages = with pkgs; [
xorg.libXcursor
xorg.libXi
xorg.libXinerama
xorg.libXScrnSaver
libpng
libpulseaudio
libvorbis
stdenv.cc.cc.lib
libkrb5
keyutils
];
};
}

View file

@ -0,0 +1,24 @@
{...}: {
pkgs,
config,
...
}: {
environment.systemPackages = with pkgs; [
vim
htop
btop
wget
ripgrep
nethogs
ffmpeg-full
parted
busybox
file
lm_sensors
fd # find replacement
graphviz-nox
p7zip
unar
openssl # for generating passwords
];
}

View file

@ -0,0 +1,20 @@
{
# enable zsh autocompletion for system packages (systemd, etc)
environment.pathsToLink = ["/share/zsh"];
programs = {
less = {
enable = true;
envVariables.LESS = "--mouse";
};
zsh = {
enable = true;
autosuggestions.enable = true;
syntaxHighlighting = {
enable = true;
highlighters = ["main" "brackets" "pattern"];
};
};
};
}

View file

@ -0,0 +1,6 @@
_: {inputs, ...}: {
imports = [
inputs.sops-nix.nixosModules.sops
./global
];
}

View file

@ -0,0 +1,8 @@
{
sops.secrets = {
tailscale-auth = {
key = "tailscale-auth";
sopsFile = ./tailscale-auth.yaml;
};
};
}

View file

@ -0,0 +1,39 @@
tailscale-auth: ENC[AES256_GCM,data:8+XTTS0YoJpQPYMhES6YTWGehQH992cfIjFed+kl2sXZ551PyvaA4Y0/7CuNM9udJe2ba2yte3DkN+AILWk=,iv:EK6ifjTYD4Y5zEjfty0eJyfDaQO8ooOHXdCcEAF3W0w=,tag:wfbrkPqHFk8dJaDkNeaChg==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age17pdqkpfh6kc6wm7gxzdnwf6vphlwddv9yfpdu3j76e24y3amd9tq3avfc8
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBHNjdjOTlnamxOZkhtUlRF
VTdpVVZYS3ptVEJ6cDJZSytCblhFRW1ITlZVCnVObmZHVW5mckpVSFZ2ZStsdVBU
SDZqME9odzRyK2R3SHNDR3g1MzNtT28KLS0tIDJCQ3V2eEtIU0g5NHE1R0lHVXRt
Y3VIZkh6V0JYQXlXaW9TMldNYVNUZTgKZxeO1era8Ozf8EOgBOUScBn3wPAjYSeW
BhO/LDqyb2edMLI/vDu3KeCkd8VOlGJTgk4E3jaqQ8PCYTQj50OWqQ==
-----END AGE ENCRYPTED FILE-----
- recipient: age155sscpw0x36t6s9usdrz7relpxqrtqnk98mrc7s0qcv2n0v3zd7sfl2xn8
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzdkt3eFBVQTY4eGR4QXhr
WnJ1eTQwZmhZdjR6Q1NSQk9mRE51VG0zODJFCkg4TjBBaXd5bmNUOUNwSVNwYTdM
cXV5WDB5L3pWWE96MHJicjE1MXorcmMKLS0tIFVZUmlSRTV5TFk0Z0QyKzhTSlJU
MmZrRWF5TDlFMWZZZDlvZFdnMDFMOGcKUVhuMvgB3ssoRuZ6yOkfLHKLR2Z1X7Bq
cIiet0ypbAKt1sYpPl5L+xs5m3vnuNZQnUvv8gdW7VlepVmLR0IFEQ==
-----END AGE ENCRYPTED FILE-----
- recipient: age15mgf89h220puhz48rjpwxwu4n2h4edur60w6cd8gku2hh4e5kqpsghvnyw
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiR0doT0kxRXlwa2taY25P
WVJxZ3E0R1IwbWJVOG5OSlRtTDVqZ0R3dlhjCjFsN1NUc2hqYWlSTGJ4RGp1Y21F
djFkNzNzM0ZzMmhtd291OWtSWEZWWjgKLS0tIFJ2VnlCeHZibDUwYk05QzBYdkR3
eVpKdlRpSnprclN4Wm4wVHpjYzVnSEUK49UF2IeDXzF9PiISIo0QjltkoFIa6Y8D
w2DJIys0Pfw5kGrVTLAgHMOMYmss4EdD4mwY+DQYWHqxTX0P2TKM9w==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2024-10-17T00:06:06Z"
mac: ENC[AES256_GCM,data:EWKH7alUhTJWmHd1Y/hrtN7N2rc9DnIUxRghgGL6YwXz4kk1VoTlzEACw9NTv0qrQSfTVbFmD5f24vvdlrn7/SERmacv3GOe1/OM6kC11MTgO8rUCCwUGa+c5ublke7DQW/wQR7ay9a4pHRHf1DVBB3PrO7+A34CYWGP6gt0jcM=,iv:YzccaJSS14OPqEUftQUOhnFnF0vUNAtRvdCaDuZFoMM=,tag:R/fKcXST7LbzTahXD4uO6Q==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.9.1

View file

@ -0,0 +1,34 @@
jwt_secret: ENC[AES256_GCM,data:O0LXijtmUCoBKiQgptto6/dhcCRgP9EAXPhnmb0Dw4Gk/8irELo413FPlnc9EPyFvQTelNgJWZEUsgPUxN5uVjVTr/819hyNX37+sTr0COD9VXUprvkYOGHQ/7UmjK5UZPcgIzEPWwmU4xmsbh4dIgrKT55JCniBVQevvwGYq28=,iv:Fx5oSFiiZt6jKnApvahK92n/lATcJ7IBH7e5TdQCMRY=,tag:kaaV+2WLH22eZXx9WyHrTA==,type:str]
session_secret: ENC[AES256_GCM,data:lFkt5MasAri5ddS2JU9sNLTgHSSAelmvshX7jk5LEhWLcfTryoCdMHSiaqJpAY5NC0DgLPslyAyLtUgrAxTZqL/qHmSw4Q9XfxoWGk1IM4NERb0myOOTgmhcT4ImUEIROZHXNpgEUQ9c1stasix5uu5c1swUieZrDI7j79Xn5DWufzHc+SxaQwIggsLGpOazJO/UmBdGiX/uju2D/arp1okMClk8DcLWZtLdEs4V1Cqz5Yv21aeK/47DKy4rClqDB+8NNXk5ayA5wXa0DrvW7H+a+/ra6TRMcevMZBsjbvbRc2P654mpDt5XB3DMyoucYOHzUasymlYUMmUUtYFRhNaLWfgifAQJG8N+z1COe/DjWzhUOKfKNZQM7S0h61nh5RwLGh+PHMae0G7fLNTcNS7r8BxiIIF4wXJRmtxfnNY4GrQAtfatrHi6lbnrBzA7SsjaheK27/DVXZdUhkc6xxeIA3n+G9e4FSDC8aP6gKHPO8nDBzIEw21E0UtuNO7QYqw3NFwNX30ys+dw89S6RyZzJd9CHodYzmGHB9jlXJnu9aOsqmEUOuWD8Wwez9ogUQY5Uls/MbyXzX5dIEHeofPxzzQYepvMRmlNNyrWjQYmFqw8TblM1S8/dnI0FzmescPIKSdA/H5oEo8X9InpHbuEd2hOR0mQdDXoKFBw+ig=,iv:5yM3rohayzhGN1k8Njm/r8lggfaQDIeLNoVC3Vkc95s=,tag:JOH6xBEPFCYMHLSCNgFW9g==,type:str]
encryption_key: ENC[AES256_GCM,data:VBPBoNaL5l3/MWNW/97m0RXX7dANgHEgoIU4+S3Z7gMtZjFqscfN612CkWM5t4h6Ojej/J8WuslnoDgEK14Efr3byvnVOayFHUxb8U8Y1sGQ7DqW28v+3QXttd2agrVATGoiErVUVH5lUqmtIRzugQuWi707fq8A9D3OU/L26+O+/sBJjfvj+es9Vyq120ri1njtZvQzVDUoKjyTQOiPCOsyEX2C6rws1BT9UQr7EY73e5xEpiBczwq+A9eRVH77/Hqr8t0otbcxPn9rubUFPy9bOxTnqG/eXmm2vtPQXGRdQ3fUzvQgBSxjxkssoWK/MRaXaL6Xs37mfiUc/7KX3Ua49G53jC18HfFmfklnP9xmtORFk/zWTj4+eB3QKt9/mtg6E8iZUlI16S/PYyuB6d37Oy0iuAHatwDqJBSZdnPl/ZXW8NuaZCKGLFMojqBXPxOTxZ/88KJcEI2MEuueBsS62L9Gb7g0jSjsNfTEmA5lCGHQ4rbeG/SahrbAzPKMWTTIgV5va9XY1e1amweTGSjed5nk+XB9ih6Z0MZ+da4RghjnHexOBqEewhDICUHd4Xyfyl3SqJKpBtGOCBW5tfkjy2kIWVL5KB4cB1FhHq9fvATDcG4qCV5ptZPgnGbqsme970UHO7CNTAso1ju8Nk9GT/46y/4oPCxU6DS9gy2oN0hxbut4mpJ+RyGEthtpQ+caSPsjsTx5yx33LUCqw19H1mRqzZo23tSzAcGvLZiHt3c3/S1QRNGOIqJmTz2Q41JOVBjqPF4W/ZgfZgax+vASRDMre7S6TlSMfUGU1i99vzFkELmfDiXVTpbj+Jq0/kIxdaf6RkfvvqA20CfNysSsD7RoLqy7CyTilwjJVHliGqR7T8RG4aJJVZdBBPsXkkPa5281pUO0lX/v48gw/UOqcswcSf0uV9MRidR/Rmb/u6PBNuIRjjUl0U94ZtiO8925gSLFGwFhrrz3NsjkCOzUIyDObh6EImNbzsjWBmiCTetr2huYhK4JkW/BarC75zfhsEFiU9Sv0PKcymgGZ4gm0aFcIyWyyim3YxGI80otIZLu1oGid7YX6ddzWZPrTq8bK9GmxsiNLtfPCahA5EDYKDXoIHcc+eWjzJijoTNaGCAElNK2/kY3cO9zpviib36eYO1C6X5VYrMivTTdvsm935PNmESG1CYaDiAekpvZTDBsCJYm7RCBAPoAfR8IOeZdZah73QAplpQlTo+lxbb/M/SuPO2JMWFpn5aWSgHKj0X0mqtQ8q78KJ7cUtYJV1BkWLnAEmeudq4NqB02PkortEkJb9Jjgj7+iZNbuJxvrdhEixsOAwOw9UbFOIO3q7mV9D39r+PhQ1JNqP7HJA==,iv:fArn1NcxTjBUrWfYYGoeWh7P8rdDhK9zHdrtRrvVxzA=,tag:sGsAX8qOWK4qBIZh8LZj8w==,type:str]
storage_password: ENC[AES256_GCM,data:XH5szvA2s6WpBWauGjJCB0KHGti947/3Y/xGOCAvpc52JEaIrGP9/29ETw2omVVxvhlrg15vsca760Spa2VkpyO4pZOC1vUEmK00uAsNSwDzE5Xt9QGa3res1MthD5lKxRk+2IZBpMnoZYkX3Q11kvSpbyYwOpdFpK5ZU3M962yGs9JKGuDTofzT41Pz08fVXgVs2gGiYTjY+1k4OUzHPqBDRd4fRvlMxepKUJ5hIJlLFq5ncIyXYeDCbv+TDoX/Nw/SBl5cysQxjEnFSKF0ZegKt8u1TTjYL5Ag5378up9xwYtaBGHde1H3Mwq37cLUXOessPo0ftTuhZfa/Vz6mLace/QZoNCz/fnQSO56bIps0+RLqakrctajditJWX6yq3Y3tA1x7FqI+r83jriv334UToDE/LupUlTLax24cy/w34KW1l6sNkjqUwT8UPf3CcYIVSqhmNBMa71EQJFelXGQJyLfCsepe5IlNqFfXiY8Ywe/ncnx0sPCTQG43gN5PcUwNV15/EzOIyg4xp0CtgRBK/dnlVlQ019DaD0s3jwczfcyzC5xLWoguNu3mtm32KwkayMno0Y7timH0E7AwaYW6uLdSo5p582O5zbUcMVlGYUXLa27Y6madAPGZEonhZ9IvrpFrNCG7VVcKiBxdC7OzSn3VWiOoZ+d52m6bAAeIiy1wp3En2PcOqO+b4soc7RTy+acFypupB9//N0xd8Yq+VdALHa4tQGvT5oc0OlAIdMcF7oU0nGiyQKE495Q5/MtcilYseaQq0c2vp82y9YndlinzOnj7JinerXXfAUdTREPH6FvNR3Y6cdPKqgM89esrDJJum7L6eFUq5ozoqwxvOGv1CKEA+LgD9pXuXAPSdqiwZeEBD5P4fuLik5heKHJwcmgIaja7Vd5ni3cSQsLnwU/m2aQ5WmJe+7REbykYmC6J2+EinSm7CWYpq3EqKFmFsSoTbEpjL6ghOtjB4cD0A0fK5RJhU5nbpFC/whSg+6SPGe7w7RZa3suQ41QLY9MgwNKPDGDqwPQP4SnbBVYiQnyCJHj8ZDyWN38LMahEzjJT9leo9yr9h3hjvYdouNN4BTCFajgoQ38eapd9HqeTWBYbg5TOC+JOI3/tG5HYWNI/kI9jWrgIu4belvrnsdPMo0O7FIHiEKQWg/b6v0kBkeG7h+OHgs/qzq7GSz0rOoNgEBqHa2eVTwtmnMZgC3fJ78/QdRCbW+I5YsmFEZIcT4JSXnjFlPjsoFnhpHS5DcdCsY7YnY6006SprYF43lPunRFbpfPPSr4Zpn/G009M5ZasiHNzPPsr7leiDBkugGPtBaEEy+Fnct4bfc1JD6F+FHtTp+iGE0pT5wZCQ==,iv:SiRzgXm4hUSW+o80AA60oAIJus2FSZvL/Ly0bktT5XI=,tag:NuD9XVd4TNFOIo0jdHeSyQ==,type:str]
lldap_password: ENC[AES256_GCM,data:KbJam6qANZDc270gM7Umz1aABIW9N7xcz50PzhsX//dl97k6idDsDASd/33G7KxFCpVPtAQuhT3MLFuGQ+aFjy+YDasL6t8UdlR905CVbi2APH0pexqamhMpf1ZiMbYosdh0wAk5ZOJoWLdOZwVHUBWMgyRtEwc3i85Mla4CDvQ=,iv:PRoSle4GztDQv6QYeNsvHanREEZqs51t84Sa1qJh6Ys=,tag:XDTvZoHBbFtty61b9lugSA==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age17pdqkpfh6kc6wm7gxzdnwf6vphlwddv9yfpdu3j76e24y3amd9tq3avfc8
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAwaW4xdnBaSlh3anBzWUli
K2UrOUhMT1EvRmhVdVk5L1RVczdmM1FKUTE4CkIxWVFmYW1FYTN1WkdtSElraUpn
OFcweXBpSWpsSEQxYkt3WU9vMlo5OVEKLS0tIEFVTVFVTjNXbnoxNW5WNXY1NlNC
bGkzYllBRW9EdnBEQzBQbUJSVVJsRDgKmpwBLgT732TnzsDYmDwajn1VCZ26LAKf
eC3nJLzkfXX81axUuxozpATatUZlf9NXcS0gX92N0uJ7/6d1t9HPhg==
-----END AGE ENCRYPTED FILE-----
- recipient: age15mgf89h220puhz48rjpwxwu4n2h4edur60w6cd8gku2hh4e5kqpsghvnyw
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhWEV6RDVoamYxZ28rUElw
dHVoQzYvYjdYNFZjTmRIY1pET2VzdHdsdVdNClZoUDFNQkg4UDhFS0paVUVGOUpS
bjNpazRzZVFJazM2NWFyazVla0dxeVkKLS0tIDU4T3pNOFE4VHBCdXpEUUZNUlNu
OTBTbDlXaHZnanJSbUlLUmRTaDc0eE0K0AEhDK731gOTp5AjocYgPEdXnr76m8PF
JoT4IWr2WYs5W/JgC8c4wIc4C9D4O8c+/mnE1RsG6EUXAz5ufMQcGw==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2024-10-01T04:33:16Z"
mac: ENC[AES256_GCM,data:JOpFhUp35Qh47yO0RySQGx9BHQfa8IrsiQarFNlid26D9jrDyF55Y5Wt88JgzPjGKVGhj+lJCz/vBGZ6wF8EVrT5Zd56cdKf5f7oOVF8s/sHl0O8MCstAUUazF8lP3SHRqZg4ZK45cFFt8ScFJd8KpCttiQY7xhjxyxCfUJ5E/U=,iv:cRedV+y5xEL8PB4gYzdEAmhqZ049geoPXHI6awqoi4Y=,tag:LvEb6Dc4flup2yEKPOnU2A==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.9.0

View file

@ -0,0 +1,24 @@
{
"data": "ENC[AES256_GCM,data:TmpYiFqXu3yz4IluJ9DVH0TU05YL1NBsEcRb73vx4j45Q/aWQPA7V18+xz79t9HbFWekaLe9tPMgeiVF5uuK8qSufg==,iv:KBf+q3YSO+38HdkRt0/Hmp5Jhaw/2Cl4PzYkhtsRoM4=,tag:ZSySMXU11lvA+Tv3NKc64Q==,type:str]",
"sops": {
"kms": null,
"gcp_kms": null,
"azure_kv": null,
"hc_vault": null,
"age": [
{
"recipient": "age17pdqkpfh6kc6wm7gxzdnwf6vphlwddv9yfpdu3j76e24y3amd9tq3avfc8",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqakZYMWl2YnlmZUZ2SFFn\nczJKVzU5QUsxeVJDdllja1hObmd3d1ZvbTJNCjRHUDhVTTZzNmtZSTk5SGUzaXhl\nNTJLdmNOUnd2OFpzZ21Jb0R6czdYT1UKLS0tIGdlUklWeEdaVnJENlZmRzVlTTJk\nQ1dZZkhhYnlEcXNuc2xLanZLK05HZFEK0/sUYuJ6bwWVgEUz0ST02ugITRJ/ynIs\nSWqP4EKaDH5Zc/H93TJexIdz12CgO9gurmdpa2w7z1Fn0lW/z+iQRg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age15mgf89h220puhz48rjpwxwu4n2h4edur60w6cd8gku2hh4e5kqpsghvnyw",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4cFRKMEQxMnlsZlpWUVMr\nMUtOTjF6RWRZdHdMbzh4ZGpkelc3cEZyRWxrClVOSy9kNXB6OGpVNHhSRnQrdU5y\nV3JiVDNVTThpSTVzSnliY1ZBOFFQY28KLS0tIHd1NEo2VTd0WXJ4eU9KdjlKSHpJ\nOC9XRDhaNmNOOEJoOS8remF6d2szTncKG/uzlIbBX7gFBcUTXzstarnBeiUB0Cdn\nQjT1nFNFGR09WDtJROuTPYS6GFmEmlGwX84dGsIQpIjyN3XPSzsrxQ==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2024-05-18T18:34:30Z",
"mac": "ENC[AES256_GCM,data:ay8ylTBNXr37TCDqDAkbQ4NcCklv8tUJUUpQZTQCgMHHWtCr0wLCyTUPNUOoHOkjJPAZtDuAXVuG5UPGv93gdZOVXlWpFfZt2Je6YBhcP3HLYXgLNLoPPhqqwnyz30ec7Ux4sx7SyLFWPe+0vV0wv8VFzoI731nhgY88McofvC8=,iv:tCZ/uYsu5rWRf3CburxHOx+3+scZZ0JwLEn/BqCoGsY=,tag:rlkeDvJcUASA4kaizCtj7w==,type:str]",
"pgp": null,
"unencrypted_suffix": "_unencrypted",
"version": "3.8.1"
}
}

View file

@ -0,0 +1,24 @@
{
"data": "ENC[AES256_GCM,data:XWblMpIi2edSjyCDYqJPJlOm4odclXgvSYW5YFYrnzMXUHalWkKhpuJ2/LmlmA6yw+atarnS1FH7CfdBgXooAxFpHx1krmJ+RxnbQ1q+vRSLWXeQnoobUGyIdzluTqbnPzM+Y5z5CQk16pEeSc6iJ/JbCc4dGHeuyNnJNZTkD3WVS9Uz4zBXToBP6/IWr/XPz+gxcaBfbXP/2zdUYWpPpT9xLqGk75INQaf20G8fYv4ThqgMeRe8S6dpWSzF8RptVCY/GAs1agMNm2Ya21W5e4ju3dxYm0dt1wM7lTU2TnLNdeugOtAE5/4H3aIFKlcc4zRS6voUzL658URcYH3HxaOqP6kQCSiV7cc2kS4nb/UvopzlTWlWS0+yxWJkqsrbdOrsgx4YnH5TxL2EirzfqcvfBhLd01q5v+SUGMwKNqTFcc6DcNT09s5PUV2D4xqQJzozWMSrUcVZ3LTQpuXmGzz1TJfozOaz5ZHul6B82Opx/XbJTzbJAXDgBOZfaidsDhGG0oKm+1eOWYIOXNVSoDy1n3fdOIxiOKNzBoxLCFlogmBXICRDhVmMgXydCYHpv8lGxd2uEHHx8YuRWgh44z/TNt94TS/0PBy7Y4A7i/sUUORLVRrNBkIZBTC7kcDItvdS6a0PRaVUUGV6OSDa8QV4FwSZJOBdXhOUUQWmbo1g9I0B3TMzfUdZLG+894PjVwAq5cODMkYcpeoV6xbB27iI/yX5erKfRQ4kGelmPLC1/Y9V2dB1KiPTTQ==,iv:KwJ2aN5mhXJjxL/toMSbRJqvuPgclAWJK5YdoU7us5A=,tag:HQcjTFAtTZrKCXau4/QqSA==,type:str]",
"sops": {
"kms": null,
"gcp_kms": null,
"azure_kv": null,
"hc_vault": null,
"age": [
{
"recipient": "age17pdqkpfh6kc6wm7gxzdnwf6vphlwddv9yfpdu3j76e24y3amd9tq3avfc8",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBvRVhvM0I0Uk5uSEQ3TjBv\ncExIS3YxbjRXY0kvd3JyTmhwWHZkaXU1a0Y0CkNmcFFvbS8wL05UM1A5K1M0Y1Bj\nRjYxVFREZjVKMjV4UW5TSlNUZTNrZk0KLS0tIGp6UVBlQzAzYUw5bnNIVjg1WkFN\nQnozRlhUYnVNM2RDdDFlcmFQZk5BQ3cKA8Pjse8ase9Xzg3kd2U8AKotlaIcSdux\nq8EL6rtmYmvpRV02vUYQxWxxj983BtKkR4pndd6o+MBNau4JgdYYEg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age15mgf89h220puhz48rjpwxwu4n2h4edur60w6cd8gku2hh4e5kqpsghvnyw",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKeGJFSTJ0WnVkL0MxUUxn\nVWZ2UWFnSHR4a21kbFRtSWJ3NkhJVzlxVG44Cm85VmVpdWFROUFOYm9sUGxZUkg2\ncEljOGllTGRTMlFzRmNPV1B2WThYcWcKLS0tIG9MclVPT3Z2K1RadDR4bEdYbytn\nUVBYRVRjN0pqOXNYZyt5VVA1RVZGNEEKDwlbaCimx8n4FPN3cJ3yR4QE7m3VUBSX\n2o3KmrlRI5/N4CaKuTNI3GjPXUbtrC/+shV1fsqo1tE0XE3U6qB+og==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2024-05-03T20:12:24Z",
"mac": "ENC[AES256_GCM,data:M+XkQx/Ix5yEEtDoBD9RDYkFXHntkfOIFc4FlJgIXbJcArE52NkLuZSy7ZVvVoByeg6FlHr5Wj5EgHIcpIbUe31GW+2kCNh3LYaqUMRZmtxcP0Hk+4axgo2mCpp4us43W8AHkBu0weJmvQTixBUMXfP39Mdm/Qp3Wz6q+pCNPlY=,iv:mosXJmbrbXWwY5YH8lVG3lNmUZG9XD9yWvmBF+qyVRU=,tag:UWohiixM4e71GyAQCkS3Qg==,type:str]",
"pgp": null,
"unencrypted_suffix": "_unencrypted",
"version": "3.8.1"
}
}

View file

@ -0,0 +1,24 @@
{
"data": "ENC[AES256_GCM,data:fwRCAES+TxczDPwrdzg6RG87PL1GrwaczA2uzD7PBX2q90ysnf+nFSI=,iv:akE8xpL7Pc4DA0WPMrtoawySxtYhx6L0UhrpkCpgTzw=,tag:c9omuljQ4rxrN4PzMq+MZA==,type:str]",
"sops": {
"kms": null,
"gcp_kms": null,
"azure_kv": null,
"hc_vault": null,
"age": [
{
"recipient": "age17pdqkpfh6kc6wm7gxzdnwf6vphlwddv9yfpdu3j76e24y3amd9tq3avfc8",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBqYlFaNmRuMUkzelJ4UkYz\nNXF1N2x5bjZVa0QvMmU2MDF6eVNDY3hsY0djClZETVpxT0Q3bCtJWFY5dU1HZi9i\nS1l4VWRCbldaeXVIVnM3c2t6YW03VWMKLS0tIFFIWE1TUjYzcHF4ckhXWGlkZEVK\nWnFlUUtrc1hsWFc0a0JzQTFyenZEY3cKcEma0LZKhlnvyKDIISTBDPAWkmTlUcOs\n73B8Hxtj3EDvEjUGimdu+oZPfHQuElgSMiOU0Zs0OwAvItOHg2NfKA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age15mgf89h220puhz48rjpwxwu4n2h4edur60w6cd8gku2hh4e5kqpsghvnyw",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwc0RSUHYyRWx2ZFVXVEc3\nUjUvZDdmWWJXNWtIWGVWWnNsbFA0OUpiSlE0ClhsaEpGeXpQOThYYmt1NkFLWlpy\nQUIwNERva1pReG5McmloR2gzQ09nWFUKLS0tIFUrSlZMdTFtV2hnL29Ua2lUTkQ0\nWTZTNVI5US81OVNoWndoSHdURE5uc28Kwegugtt4GjCUlj+f/1Dghy7Q1DsD4Vli\nmoPkciYTrbMhngi7n2Ya8+K5JU+q3Rfn0c9TjElEZP40dNiJF6+f/g==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2024-04-13T19:03:19Z",
"mac": "ENC[AES256_GCM,data:G9ZJ4fOek3RPLicg99SFS2HwBBIxqXy1NzOB8USIpjufcB9ncIypVh2ckEOiwSR4CBRIkAjnjnKaCRN0q/fHZhw5dQOwSto6nB+MQ4HMNNTErEK5tmGlN/y79+uGeYBPe7jyhsI6dIksXxHPS8VuMGFdtcXmw+nWjizeuLPP5kQ=,iv:PxP74PTFylp+P2MzNLsaVcilpkBQeYlIieoCpAIBVtE=,tag:mzo2jbPqXP0EpQgMypqvQA==,type:str]",
"pgp": null,
"unencrypted_suffix": "_unencrypted",
"version": "3.8.1"
}
}

View file

@ -0,0 +1,24 @@
{
"data": "ENC[AES256_GCM,data:e/taTwDXTyDPREs4C8rCQmMRfphkOfOWIq1evkfWSSvB53wTLQlnHuaOoj0e+Cj7cS7trO/YlS323HjUsL4G+p8hiw4GiWzlP9UE7mJFPNnCurEG0JRKJsqeDji3rqpabQ==,iv:vJRO7sjwCIqS3VsWn50KOOeHVMxpscsgU9TEzEUvoyY=,tag:RLIg8+PokOGBWRIW2QCcsA==,type:str]",
"sops": {
"kms": null,
"gcp_kms": null,
"azure_kv": null,
"hc_vault": null,
"age": [
{
"recipient": "age17pdqkpfh6kc6wm7gxzdnwf6vphlwddv9yfpdu3j76e24y3amd9tq3avfc8",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBUY2xXRkxjd0JqNWNuS1pu\ndVNUeE5JaWN2QkRUZzBPdnNCZjg5K0kxRnp3ClErcHk0MTB6aGpWYjcvb1NIWWVC\nY2NYbVNxRWVRbk4zdXNmcXpkRHRXbHMKLS0tIGQyekRtYkZOYmRVaVRVclFEK01Y\nZFdFZjlkTmFpU0lyZEs0Qkl5aHhEV0kK9bTzLFDrLCVGJiPLCwPLBtZm1Wl9pmqC\nMcMhpaWFPrV9VBbTXtHYoojDrwc+dHDvWIskBixhf7P7R+dOOpchhw==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age15mgf89h220puhz48rjpwxwu4n2h4edur60w6cd8gku2hh4e5kqpsghvnyw",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBLQnlTVGdMV0xhb215b1I5\nc2tqTHhHeDBMK29Eclp6NjVELy9reUYwTjA4ClBrVS9hWWhCeUsxbEJSNG9NRmZl\nQnZGVHdXM2svM1Iyc3NTT294NWk1RDAKLS0tIEZjUStFZDJoOHFrc0hsaUMrNXl4\nQys1M2xpRVhkUmI4U0taQllSWC93YXMKDJdRDZGGP/RFqquIY6m676vOL0CxEkrd\npIpZ88Y9/2oX0FUHxm8vV/xHXyKfWm5lU4xEcJ1tBV/Zm0jLbLQTMw==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2024-02-26T14:40:16Z",
"mac": "ENC[AES256_GCM,data:HdBVk9jF3snPRsp0Q8HJHuP9H0IN+FKXfTzqyb9B6+Fx9zfzJdMavFrbKeLLCCknAKLYArAtYDhjsoEGTabWnnw3vB5Xp88DdtQfCgblQ6vCpiTa0XuFPcbRfgyPfbLACXWuUAKpvuNpzMripi2cPWI1U8+LF0IDYdBDeG4PXsM=,iv:NYxkK5Fz8f1zTROc8uLuuUN1NO4MHt4ldF488vKj29k=,tag:9fT5fWje/KNCWebzNTPDIQ==,type:str]",
"pgp": null,
"unencrypted_suffix": "_unencrypted",
"version": "3.8.1"
}
}

View file

@ -0,0 +1,93 @@
## TODO use defaultSopsFile mayb
_: {config, ...}: let
autheliaUser = config.services.authelia.instances.main.user;
in {
sops.secrets = {
wireguard = {
format = "binary";
sopsFile = ./wireguard;
};
grafana-pass = {
format = "binary";
sopsFile = ./grafana-pass;
};
wireguard-config = {
format = "binary";
sopsFile = ./wireguard-config;
};
slskd = {
format = "binary";
sopsFile = ./slskd;
restartUnits = ["podman-slskd.service"];
};
cloudflare = {
format = "binary";
sopsFile = ./cloudflare;
};
jackett = {
format = "binary";
sopsFile = ./jackett;
restartUnits = ["podman-qbittorrent.service"];
};
betanin = {
format = "binary";
sopsFile = ./betanin;
restartUnits = ["podman-betanin.service"];
};
# lldap_jwt_secret = {
# sopsFile = ./lldap.yaml;
# key = "jwt_secret";
# owner = "lldap";
# };
#
# lldap_user_password = {
# sopsFile = ./lldap.yaml;
# key = "user_password";
# owner = "lldap";
# };
# authelia
authelia_lldap_password = {
format = "yaml";
sopsFile = ./authelia.yaml;
key = "lldap_password";
owner = autheliaUser;
};
authelia_jwt_secret = {
format = "yaml";
sopsFile = ./authelia.yaml;
key = "jwt_secret";
owner = autheliaUser;
};
authelia_session_secret = {
format = "yaml";
sopsFile = ./authelia.yaml;
key = "session_secret";
owner = autheliaUser;
};
authelia_encryption_key = {
format = "yaml";
sopsFile = ./authelia.yaml;
key = "encryption_key";
owner = autheliaUser;
};
authelia_storage_password = {
format = "yaml";
sopsFile = ./authelia.yaml;
key = "storage_password";
owner = autheliaUser;
};
brawlstars-api-key = {
format = "binary";
sopsFile = ./brawlstars;
};
wakapi = {
format = "binary";
sopsFile = ./wakapi;
mode = "004";
};
};
}

View file

@ -0,0 +1,24 @@
{
"data": "ENC[AES256_GCM,data:+jzTvF67htgSLx3//yu4CeH76/lQdxwcJSSplJm9eaVNs91PXF7hnZrEVyjIvMLi8lwOTSrH7SZJXOvZsoLRZHDdWC88+H32jsjVOopJgowAAQHuiKyQJjCACN5OBslKgTQEYo4eKpC8A1fliKf0fwJW+HY9pC9WUbZUkbpc9scMrZJIVb2Tm6UQoPoiEn9PbrC8tgGT1lOEk5EeiMgYg1JbEL7hcn1epuyYPYw45TV4SDLlnvo=,iv:qscpjBl/ifRGmjSHLUZ5rgC8oW86k1ca6JMna+VOFdM=,tag:Bsl3nrKTHrt27Xq/eLDLvg==,type:str]",
"sops": {
"kms": null,
"gcp_kms": null,
"azure_kv": null,
"hc_vault": null,
"age": [
{
"recipient": "age17pdqkpfh6kc6wm7gxzdnwf6vphlwddv9yfpdu3j76e24y3amd9tq3avfc8",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBYejVUVmNCQW9hSm40dzll\nT0Q2STNrNEt0OG5GcXlYMUpHaHpZZFdoejI0Cks2aDJ5b2R5d1BMSSt6UlVVelNL\nai9NRVNreGRZNHFvOVFJcTcra3M1K2sKLS0tIGFvc09pTDN6TGJuMU5XWG1ZT3c5\nWnJsa2k3U1pleUNuZmVzYnRpakxqalEKdNWuvPa9fm+UOiiZ0fb05Cw084z+tz5q\nnC8kK1ZAWvLKPgb3yNhfzrmVbdCfxvxnGYmV3f1SkVFaZv1XMJQCtQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age15mgf89h220puhz48rjpwxwu4n2h4edur60w6cd8gku2hh4e5kqpsghvnyw",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA3STVBMjcvMklVOFRuSThM\nWmtoOGxBYVVVVzFFVzNTSzl1TEEwckxsU0VJClFvcU9BbzlWZURSclNFek16L2I0\ndU95VS8vQlZqL0FIak9XMjBmWFdEVlkKLS0tIEJtb0FaZjZFaGE0S0MwNEQ1RnU4\nRUFSWG9LR3BoS21ENTMranhTQmcvTk0Kgm8BjUznYhzRbYwlettBVVK6r0bYkFFi\ngulgnbUSol7nm+eTsDLASZtm7V5Ms20Hv1/SKRry7Jr8zYZjWUqJ1w==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2024-09-30T09:41:29Z",
"mac": "ENC[AES256_GCM,data:DvGuAiiSDScG2sWLq/SMCDvJ9JtS4nO+jqVnDmvRyjz14bRyiOSW/5p1vIaOgqPpuGKJ5OM+drlOdJpz8Co17OesQWWTH1GxRBkF3GkInG9xlY/PwlW/4R3mw1+3NIUE4xy0J1szU/27n4v4ToQ92Nn6NLe1fqZBH921xq9PcYA=,iv:1/pIrLsgLYea7MhxcchiliIDvNMTCjmLr2G8yhAMX6E=,tag:HcT47ZSCWkfju2kTitgdAg==,type:str]",
"pgp": null,
"unencrypted_suffix": "_unencrypted",
"version": "3.9.0"
}
}

View file

@ -0,0 +1,24 @@
{
"data": "ENC[AES256_GCM,data:1p3OQ+qlo1ewqD4VPvVsyqZecL87sHbEQGyJ3Fepvahe3NsMmsDL4k04bBmsQLpd3fVj65WTtYv7cC5Cjy83AMcHVaX8/AVWh/9qdijmWlmp7RNwGgdyPMs48gM1677X8mUt7AohmlI7A+y6/zaUQl2C/FSGXYJaMOVkeSayMRHu+B0nBIVxNXo=,iv:69xkQvwZND3qfIeRJmOiJ9rp02Y1a/xexcj7IyWlT2w=,tag:GYC0JL1QTouVDPXQsaSH0Q==,type:str]",
"sops": {
"kms": null,
"gcp_kms": null,
"azure_kv": null,
"hc_vault": null,
"age": [
{
"recipient": "age17pdqkpfh6kc6wm7gxzdnwf6vphlwddv9yfpdu3j76e24y3amd9tq3avfc8",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBDMElTQis1R2VCSjAyWlUv\nVUtFSlZBT3V5YVdpc08xUUl6KzRTZEQ3QUQ4Ckp3clF5N21TMzJqNnJMakhwR2VU\ncm9GSG5SRjdLNWNwdUpuWWxka0lBaVkKLS0tIDVIckttQ3EyQTBEZnBxM21pZFpy\nZjYvcXpMWTVldXdhUmx3RzJNWmdMN0EKceUMr48QXIm1/6CiQg7J54nMSSuHd1fU\nKsL0//t6nmcnuZDWqsxTw4V8/i18KLqB8DfI3Naca1kiT/Eswhq/mA==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age15mgf89h220puhz48rjpwxwu4n2h4edur60w6cd8gku2hh4e5kqpsghvnyw",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB0bWNkQ2MvdG5zWmZXVkhJ\nUmwrZEM0UkRMUkk4dGV3bGoxRk1DU3UwalJJCi9JRktZOG9aRFdPcHZWdjVwa0o4\nZXkzN1hCVkFEOURhbjRla0JIcDJLcXcKLS0tIDAySitMSHpqY0ZnbHU5UjBxYU1a\nL0JaemNyT2REUThtNDEwREUvSDd0ekUK3J7gYbDWZjHJ5+QCE9nUKQI3LsU7yZK4\nGtrCM8JFhNUrglhhtBiIyez2O5BiDpqpflc/jcTaz0Eq+PkNzX35WQ==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2024-04-08T19:29:32Z",
"mac": "ENC[AES256_GCM,data:fOYBWvnmxQZ/Il+OP9BYbdJ1d58INKjQ7UVHARNkCju+GQ9qfl2tlqhQ/x759aSiPatiVDA/PyXBMBPCIIJA6gaBoitDfoXEwMoNLApcT+LMw1oDLbxBoZRivOKKlDktHEE3FFKTH9Wz1RsG74d5NptacLxvZqgdPLUyVIJQkV4=,iv:nT+twZfMM057UlamPjveu55NdMXseu+HGL2TjuetSAA=,tag:dZXtoqLmgASx8Hz9Af/rJA==,type:str]",
"pgp": null,
"unencrypted_suffix": "_unencrypted",
"version": "3.8.1"
}
}

View file

@ -0,0 +1,31 @@
jwt_secret: ENC[AES256_GCM,data:C5TnV7d/qdgiX+J/K7vsKXuZ6atsrEwwbr189c7kURHH5bK3xW0BBw3p+MGS6RAQBK9+SN7t5k4uWlEm9Ekm5wDbgt10/WXerC1ZNacxbcSlB7i+w/Fne+g2d6vg7SwC7wpgH0nBmWSAnCmOdDlXOO6NYQ1zL8apCN99Z2M4SVQ=,iv:DzkZjX8+stqZxzNjcgl+uWR142bAdfeQd3RyByHzOE4=,tag:7tbciVbRuLRt8/1q2NRlAw==,type:str]
user_password: ENC[AES256_GCM,data:IuBlcthybynSI4AJpJ7nZFOgzbH5v4ucKxEO7fe65M1hak33gX7uQSFMRcj9gJAh/E8h87VudQkpxWC6+RKW/w==,iv:WJrvL2RhmoWCaqAjK7nn98Js/TXOL/3oeVADoOt9Vr8=,tag:JcQeKs0O+exoWCG5m/EFtQ==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age17pdqkpfh6kc6wm7gxzdnwf6vphlwddv9yfpdu3j76e24y3amd9tq3avfc8
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBKU3ZOQnE3bStmdVlOWWVU
cVNyRFp4STR4MFRhNmpVNmpVUUFCc3dFNnhFCjVtU2J0cGhVRVN5MFFobTMrQzI1
VWoyaStZR1BPM1R4TUs4VjNVR3JrWTAKLS0tIFk2ZTJyN0ZpVFdtZFFKNjRacnFn
bitxRG03RU43ZENId1dIL3RWQVlQT1kKpGj5BKFO+iX8WaHbGOlUSfOp8bIJS3wS
6Kqt1qkEPywYHgwd/amuELbkthu7mxCx4k45EEaN5gILyONGYJxR2g==
-----END AGE ENCRYPTED FILE-----
- recipient: age15mgf89h220puhz48rjpwxwu4n2h4edur60w6cd8gku2hh4e5kqpsghvnyw
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBiejQxVXlVM29ldDNWbnlC
OTl3SmttaVlIUCtTK3ZteVRCY1JHYUg3cXhZCnNDY3JON1luUDcrS01xMVRGWVkx
Q1YvRzFpRnpybnE5SnM5NGxqUWVpQ2cKLS0tIFpIcEsxVkpRSW5KcmoxMVMrUW13
WFgzK1BpVks3YmcxT3gxYzl3eHpySFEKJwsayqczYl2bFViRTWlP1p2OomPA1NnE
EKU51AINXIYfnNaXzMKWEj52yoVLvtKiA/rdJeVVOOopwD+qa/lRkw==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2024-10-01T04:00:12Z"
mac: ENC[AES256_GCM,data:9mu/knvioQT4y7WGdRjDvfeZxYgNb3TnNnDWOIALN6sqNhs8cI8Q+ussNny9zTygRN/LsS4cvhGypqxZ48CT4YyIKxJ2Xuf32Ho+ojh65a4Kabe3CjklLaAnj//MXnvpUtEXFGKlTiyKi/JxHaQLOaeZBeMv1yfYKuo0hjdzlho=,iv:KR2UMbNmsyxa8TEv6lwTJlqc3Qe81DaTTVtzSZRZyik=,tag:B3Hvr1RRGDrxROylhUuFxg==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.9.0

View file

@ -0,0 +1,24 @@
{
"data": "ENC[AES256_GCM,data:GOiWi8l61RgpVeKWrlfwxWMbda8FgJGlHXl910qpblaTsxbrIe+aZoEqVyaSST/N4kip7m2fQsCaX5C827XKR16CZ1c5R/3oql8gDcu6lrkDTIbbttN/RUVfX6LD1Y0b,iv:nwZWzKpz4y7+LKDHoojMWBKOvybZeo/d/ZSzsMujXTI=,tag:SHnv4RuNrsQpQ30x1gjIOQ==,type:str]",
"sops": {
"kms": null,
"gcp_kms": null,
"azure_kv": null,
"hc_vault": null,
"age": [
{
"recipient": "age17pdqkpfh6kc6wm7gxzdnwf6vphlwddv9yfpdu3j76e24y3amd9tq3avfc8",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA4clpZQ0doNGJwRkI3QXdX\na0RpWnJoSjlveUhzK1lPaXRYRnlhcFZPZVE0Cm1xamVNMWxVeVhXdmhWZTE3TDJa\nZnUxdWdwVU5Bd3czS2FRb3pkWDFrcEUKLS0tIG5BS2ZDN21Tbm9FNnZoRUIvV0N2\nQmY2UHowS24yS0hYTXJMKzJJdDgrTlkKW80YjK/+FF1jjqNFoJLUTtZENRS7D5Bq\nFq7Vmu/untXqA7yqojI9Og7pdWyAnAf737kq6XusCBA3KMz5C+BgMg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age15mgf89h220puhz48rjpwxwu4n2h4edur60w6cd8gku2hh4e5kqpsghvnyw",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkTmJYZzIra3RIWHFyT0RJ\nZ0JoeGduL1RmYWN2SC9Ua0RIN0dWSEN4QjB3CjgzMi9sN3RETTArRnIwNGZkM3FD\nZUJFVHpEdE5YVHhQRmoxY3VWWnFQdG8KLS0tIFo3Sy9qNE1nV2dWV1hSZEhLUENJ\nUk9walpjTUp6aXUvYjlIR2c2dlNscXMK3ZT6xLYaKtwxfEqhhxN9fgr4sBYMSHiY\nnfcj5NNxOYgY8q6Z7oJ9Yzk+8Jrv7SS/eIMCt+rk9+UOu3xl+r/TBw==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2024-02-16T22:49:25Z",
"mac": "ENC[AES256_GCM,data:1V7ZORlvxVVynY7rkKxkEw8MLonW5BwdGqvZ8C9Y9QNIu/udVmQvFMOxHVkdTcYOgk/4pYK/jKNkaPCPtjfJvhnSQ3ZKfOQJWfTVhq+Ba8f2HYc2qLUDupyMtjhBY7W2Pt9yAlJHxpozblCnGty958yy7Z0V0NiiO9ETA837fUQ=,iv:IqAr2BETDyPSdhzYWKEts+9AK5coOGY5/99QZ6HufyA=,tag:3oes+CnEb4zcdNp7QQOahg==,type:str]",
"pgp": null,
"unencrypted_suffix": "_unencrypted",
"version": "3.8.1"
}
}

View file

@ -0,0 +1,24 @@
{
"data": "ENC[AES256_GCM,data:eWuDg5+I6NvkF1VoAKg84y6zfZA9GJAwO59SLCViXZIH7YgXSGA8B+0lOROHA5j98IUAgPtGqsVT2625LXnUBduQT7ZNc+KieOnWE2mDVzcOu0olCiGmVn98s/M4slsq3P/y3fNpygGSqmlllOrWOu4LlmZrPSrc+5SG+M0asxT6Xs/jxtVjLjB2TwtBykPFJCwARBbVATAcgJeYdSSPi0WaEyozYhBiLoUZPoAKqBCen/jOcIHn3DEzqmpDOr9uSRLai6QKkZNXvPzBao0m4qw+ZnK4cQk52c3bCYXc+kiRFi8bD96h1mdGV6ZiaoQFp4bOs8ZK4dBD21wVB/sW6caf9STd4xBX6x9VUvSkQmFv4f8rmtfdeyREY9rcizSFIQbpyMYiy1LRLS/My6IqymC7ucIy0ntujZyoaW9fOrO4d1tsuJxcb1kR/hJ0hjRfs1oUdTutllTpvi5BBS2Z+gmiDBW/PEwyU6V0t2EADnkU6Y4MQuOSBNC3wwBAI5QsmALhHhcjtB/p+TkwIVPmfHAKnSBBkS0S6f83KpzdoSmAS/tkKwhMCont9b3sivycenb79xgQfeWHgLQ2SwZWreSbiDNIAUIMfoPYRc8DOsWByZoC3W6XLKl4UFH/lvJbv12myA54y4pxd2lVY3xbMNCMGC72G3BYkuIiVYbCRw3WG9dcHaqwtI8YsHmvgkdcyzwBe/GhHnzLX1fppdx6xAViKsl0YGKtpkoAR5Zxf5qNM0ViKbTLa9txetEhcP3J6NKocSCdBFGu+VjPn2x74L/5WlZMXBJ+JcYan8llQbY=,iv:s2WKqWG1hd2OU6wmb2Pz/dHCVoV6eRsEZicKj0v63wo=,tag:iiq/NMotzJB54qclG7XDqA==,type:str]",
"sops": {
"kms": null,
"gcp_kms": null,
"azure_kv": null,
"hc_vault": null,
"age": [
{
"recipient": "age17pdqkpfh6kc6wm7gxzdnwf6vphlwddv9yfpdu3j76e24y3amd9tq3avfc8",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBwakcvTWdqUjY4elZUNFNu\nR2R6OHRvN1pNeGdHMUVGMXVVODBEcUJrTVJjClZTZG10UVNWR2NqVkhVMHo5c01M\nd0pPVnptVTdxMjhYVGNVZkdsRERRZlUKLS0tIHd3WmgzUUxVYkVDcTRoeUgwbktk\nVm9QNzBnTWxmM2t1MVByZ3FLaTNweDQK4VQWPRkKKnNyjQ0X2HZ8ACsTZsTrGKyw\nIV0qQujXDj0WVX9NtL2BcjbCIIENJH5pFp8XKQZ+mikqPGmHeunSgw==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age15mgf89h220puhz48rjpwxwu4n2h4edur60w6cd8gku2hh4e5kqpsghvnyw",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBOWXNpZlpySndGK1hRR2ZF\nUXdZZVhJVC9YMy96N3BzSVBJQzBOMEliMm1ZCi9ZWTgvOXcxSXdvMldYZXdsbjlX\nc0VDZTZNY3dSUHFMVmNZbWY0dzl4VkkKLS0tIFRtSzhJdFdLVHAzTVdBMmd3T3ho\naDI2WnBnT1FGUkgxQ0NrenpIYWZRM2MKN6hXjBR+jS4UkYy1SS5uHtlHTugfxCwW\nAErlX+kU0g0uBIQbHExNSr0/Xjk+bIRNqSg2O0CfxULxbQRtZrsqMA==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2024-04-24T17:51:03Z",
"mac": "ENC[AES256_GCM,data:qfQHPzpFgsyi28QEDZt2M1gGiWDbDqVImmyCtqWKbCHme3Lc6Y44G4uD9dQOZqXHQySC2nAbkric2WJ0ozzl1/eiUMMLG8S+yGq84e8/55s+8u81dbHCcZCPSnWMLzSVlWknpG/pjU/Z1lr1/Vj6roHYZtJyEpcTnJBbqQh2NU4=,iv:ja6zyxErPWbq979dBw5YWMbcWkA9tjMGqbqIZZE8QvM=,tag:Pau0HMocJ5HOorpen2gRrQ==,type:str]",
"pgp": null,
"unencrypted_suffix": "_unencrypted",
"version": "3.8.1"
}
}

File diff suppressed because one or more lines are too long

View file

@ -0,0 +1,24 @@
{
"data": "ENC[AES256_GCM,data:kCJQ4tuM0zzYUsUFAAWG/Q7Uxs4262XGg7ioE+n/D4De1RRGApDyOLVnt7xgPhKK3fyxfkqmUrLvlumc0KwC0wl3U0YzW77r0G+XhutE+pp3DboDiYBsGfvj/Yl8T+lV2Q9s9GLMtdshjh21DTVbXLLf4Z9Fw51oshsVZIfy+VBZvjCNlUD+6uXO3Jo/1qcwPnMvIsyqKQCAtFvfvoEyDO36/XCXoDwqs4V3NLQortL9KgTd6lClrWtZIBYj3HZcogwhnK2AqMVnHrFzizndYKK170Z2Llptz4aBQeUF40gqM16Tj4Rxjqy11o2e20rCy854yyxGf6pIYy4475h8sWPnqVGk1NaMUKHTxJ4sOqm6nC+yXSUSoj/kXKkxy74oOs29mih/SfHqj/xPsodOkX3sD7R/NcTZsyJ8wy5hJOfe7h3qFjthd6d0sc3bbbPPQtXz3ixKgN7brtJQHUhPgol8IJn6h63kBRmUu5GyZAimT/hidW/IsIfLRAV54JCcOCrUzygkrRFItDVk98PHekTrSJfm6dWd0z4=,iv:kPWXbr/kvsFxUjYP9XaPB/5EKv9R2evsbq+1beYN4L8=,tag:qee0e90KN9aTeteX2pxRVQ==,type:str]",
"sops": {
"kms": null,
"gcp_kms": null,
"azure_kv": null,
"hc_vault": null,
"age": [
{
"recipient": "age17pdqkpfh6kc6wm7gxzdnwf6vphlwddv9yfpdu3j76e24y3amd9tq3avfc8",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBnU0lRS0I5cXh1V0xjb1RS\nVTlla014WWVybmNOTml5ejdOaTFiWWpTbFc4CmdVZHdvazhoNnlaeG5ibTBZREdG\nTjd4cXBjSGpsdTQyb1lMQloxWUZhZjgKLS0tIHRxa0o1TERZNlYyQUQzZUhnTnhT\nWUxEM2dnWGZmV2d6SXJVSXQ2bU1Ic2cKbPQwJSlna6Vysi2TznU3ovmWQXBbwryF\nM2dlOwPjv+lWM1DLfJRR3zUCugTuz0xjdTDLZlo1F/aaeWiAPm5j1w==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age15mgf89h220puhz48rjpwxwu4n2h4edur60w6cd8gku2hh4e5kqpsghvnyw",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB2VDl2dnFCbUtRdnlDTGVv\ndzBwUTh1OXRONDlGK2hXZ29YRytLbU9sNXlFClViaG9xRGw2OHZLTmZEQk9nSXU5\nZHI2aWVNSXp2Z2JxakpKUkkzQ21XZzQKLS0tIEpSM3Z4dW9VeVVEQ2JKYU5EK0hP\nYzBnK2d6TkF4VGJ6dlBrc291ZDFBYW8KtEnivQ5aj9FhnNHRL3jEQPYxSuO8QAuz\n9tIXoiU13+GOmvn8XG25cZjUIgCamd9c/uBVXFYFx3muGlmBwvn9cQ==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2024-02-10T16:33:02Z",
"mac": "ENC[AES256_GCM,data:HcavTZc4gd64JqL9QZxpUR9W8F3DEzjeSABTg16Tgo9jAcp703KV/EAfjGmO42397UGp3e2nSuqod7uAtpQAcHsFFvYADrFzjoxa//KA+OR3/fwWnfFWTqyC1cJa4IaZpjZJuj1Qj09NeihTuU3vRXGbn5KN5x91wcVE/UhzSXg=,iv:CacSKLYy6I8U4lwJEo535S9m2iRvgEcLvayYsnOCFko=,tag:j3PhJnidKwPPfd83ylQC+w==,type:str]",
"pgp": null,
"unencrypted_suffix": "_unencrypted",
"version": "3.8.1"
}
}

View file

@ -0,0 +1,24 @@
{
"data": "ENC[AES256_GCM,data:GhwIkO2APhN+Ozgsj3YtCq40nd1x5IC9R2mbgmzwddT3yEBLQCadSZ3jvXwzJT5KlXXNlf+Wr6wRjRf1ICsVtt+HvbAkp6YmPbsiZZaBR5KqVCKZxhJQm00eOi9mP13RR1Mo+OWzGqu2uGCezG/HocgQoEoCDRTT4EL81jEuBra1j5WjAmFrmJjSTELbwJD1Qu9IKxh0Mu7dTMbb/Roc8ES++NR1Tt/TG4Ljgly0XBtib2sLWIJov5afEzwW0FpwMqHE8gqP+korlIXaEIqIqFGGwTHS54EoZPGmDrQfRYMuQrsNz8xWhuFOEqpd0/KKIb/UjZCc2NYf0pFuCxtQmOGofMFGaTFu8x6T1gehPprWJTf2q1ImYl0yc5aU+lyragr7j1PIowa2SkGu8TMeIDdga4Qusn78tSnycVakPqQE/pJ+xeStLC9Cg4IW6gRvKg0ByzFDgmXcNyPiXu9iGBecRDSNuWsheJUPV8h5qnQBlR4gyWhYXLh3E1549leQw2soG+iGXzOXC9UKwolzCmhXeuI=,iv:j9OIb4P+wSicxghVbuh6C7Sv6KLqjwFQ7uYLCGMeEPU=,tag:hqRxr0p7CPiSfPP9GMLfuA==,type:str]",
"sops": {
"kms": null,
"gcp_kms": null,
"azure_kv": null,
"hc_vault": null,
"age": [
{
"recipient": "age17pdqkpfh6kc6wm7gxzdnwf6vphlwddv9yfpdu3j76e24y3amd9tq3avfc8",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBJVlpJdUdEZ1lNT240WHZt\nVnFlSzFQMjhMc0F1LzBvWExnc1dEL0RPTGxnCmFKeU5zOThOcVc4REhNeDh4Y004\nbDFuSVBtL0MvQ3RnS3VZakN0cGVJbEEKLS0tIFFuWTJRbFg1OHA4dnBvWEdQZElm\nNENNSEpPWEtqWS84R3lhNmRCYTdFSDQKsY0PV+8vYLGcU/KxeQZMWCkbkGUfR1gh\n8Tdt7Jo8Xvd4HFwf8a0XegxMxqQk8FE/44RnkwG8xf6HHXLuXxkmlg==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age15mgf89h220puhz48rjpwxwu4n2h4edur60w6cd8gku2hh4e5kqpsghvnyw",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBBaHR6bXdSZWlEemwrQklY\nRjFFU0VWZGNZYUxaaXVndjNpQ1FrUStQNnlNCkVpRmFIV3lvTHBSSnVwK1BhWGwx\nOTkycVVlNDdwdUlzbG5Tb1ZDMFExbjgKLS0tIEY0bVp5akRzeitrZ3ZEaVdueVM5\nVUp4bDhaVk1SWWxXM1pJdWs3UGtVNUkKIScfgHBYmQJE52GtVd32PEuA2/oBl30x\nclfnEzkCCAayBnFFoulY1LkNGelfJMr1/cTK/i9S8Qlts0Vn2mTBnA==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2024-09-29T13:16:47Z",
"mac": "ENC[AES256_GCM,data:DcUk4FtCLgPf8YrlngmnCrflMpqL97QUI5s1eZTaK0ghvD3Ae0qlZ7whcUdalROhO2vsi5XHvDAXMSDhtbfnrEnuTJpwilONMRs66G8mJc9/fnGUAfEBNiZve8FXki+vjaiYjmCVX8VWGMq2NP3Ax4DR7+/obOjOKA9m1CThNH4=,iv:sT8H/ZK7TXOGq054w4jUWqVB/l/nHzXtg9DQJ4HF9Ps=,tag:S6RH3STimNR9KSeRP5V7gA==,type:str]",
"pgp": null,
"unencrypted_suffix": "_unencrypted",
"version": "3.9.0"
}
}

View file

@ -0,0 +1,31 @@
PrivateKey: ENC[AES256_GCM,data:Eh8XY8HqxCr4kdutL99GBhNJEjT/QP2pHQhTe/O8juiKPHslzcen+x9JeJM=,iv:MC+g84kqoFqaD0N/WvKoEgy1kl/Z2SgMqpm3AqjJ1mA=,tag:trvHpJbSI6CHNp4ihwpiIg==,type:str]
PresharedKey: ENC[AES256_GCM,data:fT9RIvz/gXAop5UDlbWwVV1yHErbDW4ff5j2Xo1g1nVTPGzbDHZPtZD9+ts=,iv:sHrGX8gxPVkAydmalgUuZHKUn3O82eo7/vv7lA5hqDQ=,tag:/vb/zgrm/dXm1LBzojrlGw==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age17pdqkpfh6kc6wm7gxzdnwf6vphlwddv9yfpdu3j76e24y3amd9tq3avfc8
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAzYU05MHNPUmYwUlJ0empa
QzBJdUt6WENYNUp5ZVZ4ZjZ4cFl6eENXREhJCjIxcmRQbEpHNWU4VHFobFZJVlhM
eDE4bmMrZ1BnTlJoZXVpVFVWaW5sek0KLS0tIGxVZjNIMmVoUEVQaDdQcE9PWjht
NzkyYS9zY3Z5OG1ib0ZyN3FkYjlZOFEKmvYIrVv5qmwh+XEmKeCjcTGbWufg0PH0
Vrws+EngJk5ceYTmiGK1k1/9CNPG+0sdUgr4VrVv6DFKTzOgWB/YVA==
-----END AGE ENCRYPTED FILE-----
- recipient: age15mgf89h220puhz48rjpwxwu4n2h4edur60w6cd8gku2hh4e5kqpsghvnyw
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSB4eXpMT1kzTE1zTzQ3aFp0
NHNVcFVVTXRVSEQ0QUZrK1FCTDI5WWNQbkNvCkoyUVdPVHlUdlM2RUtIOGFGQWRY
ZjJpTml5aE91MW5VTWZveGhVNXhETFEKLS0tIGM0ZDJVOWl3NVYwYTNLZEFaalY3
QUp4aFBaYjc3YUp6UVkwZk9UVjNvWDgK+WBJxWWLtg+lTn7CkVqvJwnE6mZRImhL
k61Fabbqpm0FGtnOgQW2mVndd1jJEsCvJxfGix91nbXJLjImPXnlTQ==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2024-02-10T17:04:29Z"
mac: ENC[AES256_GCM,data:h4gfNcQX9dnm38JBvN3wCEbUefLqO7GdjmcX/7LHQIgVllo6nuPWrThJBYCSU7apwMkGiN+UfJu4+QBgqHTot2Ctiu6jCtMb3bszGDx8pagJTNYlXAsaR9i1/RHgorBfgDwvkMWucTas4/ceIi+P+wv7u63TA7A2TDj7xRTVXoo=,iv:yBO9KwUqtIwXA/UrFhII7x+CyStW1okAh47MNGOwStI=,tag:0xw7Lt1qr7J0Ba8Mzb+IYA==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.8.1

View file

@ -0,0 +1,24 @@
{
"data": "ENC[AES256_GCM,data:1XGfHkj/Q0PLetEQQpw2FqQaHKwl3YI52iU8Gr+rGI0dAESdRqbs9vmE44heaSXxDzVqQ2ILMKb0lQvJ9ClzOLnms5DU0nAGxX3JxLJPtvJSpMwSV18pPjkQHj9h4sjNZXkxZ9dT9bxM0mhgYFMQLK+KOJhZHDQztKza7An9y1wtnrVJ5/6I4VgIVHn7C4gFXhNE4AM51WUA4Mp7NsMevjr7EFXPiHw5JjwHeWDWNAmi4h1YTqulLd+zw85OYymx+PJYaX7yjoZmT7N28SvOQ1z9HtFXhvYR15IHt1iTEBMhhwGd72JAVLm2ANBA+Udu7M9EureaKsXoeHhZRKTk/0p0OSWzpNlzsM4nW5gvOSjF135qel2mK4m/FIZ/3KKnQKkeTaSfY3gGNlYXBEL+/TK7Wj7bJiaC4j6R6ejt6Vtc0V9NqOB0d5e7FQlXWaFYnQ/iiaC8sdcVRjqNDDSnHHsFUVhZ8dcrDpKhkPRwjLxEyuWuex5m3dk0xFZDd8GIEZDjsk8BkoqaU9uKnolhtLzwU0H7qhoJgJDhqsi+ig0a/DrghmvVYifzaxqo5yaLQ8oJ1ATsu4J8cvDCnbOlpvRMy/Jmb6/ecAeBQ760+Uk2tXzh7zkRHjreSap8RSorEXa2/7B8gLGQIAW5GiZrVbCEc7gRJvxbVgTsce71qn+mMFlZO/m4sHsCKSF63RqR8QHMkOlInGFx3zib6+kYn7yjR6FkvYPgTGhhg5Yx0iyWaVjmwqEBxp5FVw==,iv:vkhJHqZmnEvRydNc1Am36V2mur+Ov8WlXSPLENAMmSU=,tag:FKeqOLirz3kPMVqUDc1QEQ==,type:str]",
"sops": {
"kms": null,
"gcp_kms": null,
"azure_kv": null,
"hc_vault": null,
"age": [
{
"recipient": "age17pdqkpfh6kc6wm7gxzdnwf6vphlwddv9yfpdu3j76e24y3amd9tq3avfc8",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBkYmVpQjBzQkhxeS9mcmt3\nYThET0FnaWZDLzliT2d0Mng3OUZmTXlhNmtBCkNoUW13enphanlhMVJ4TEJLQSt1\nY0pNVHRLYnRpeFlzTUQrQ0FGU1ViUWsKLS0tIFpzYnAzd2pxYzJVM3lWd1ZBTTh2\nTEdFS1hYMjR3UkR1SE52M2tSZStYNXcKhFZmD/xAdvVUEoc0ysR0BuzIDtXvkWyF\nPcMcjIf/1QYcuhyFXYD7KwwdsEOW+cRiLw0LHuAgLqrC05QzbO6maw==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age155sscpw0x36t6s9usdrz7relpxqrtqnk98mrc7s0qcv2n0v3zd7sfl2xn8",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSA1elpxbGd5N0x5aXVKZHZ6\nVDRaUmRTaUlXdXV6TUR0ai9LR0RqdkczMlZ3Cmk2VUVibWZGT3kvZDVIS0loS1ha\nNjlnL1pOS1h6Y0FwR2IvYmcxaGRmWVEKLS0tIFN5cDl2Z0d1RmVVWktHbDBMNFpT\ncWszTUZlRFdUK2UyQ3BseW9YMEJvR1EKGQn97YqzQK2hdXhUJFmrcK41nDDOsFvY\nY8eXYvDaAFkNCFBoazPXkINVycn+9qpvu21hi8XSM1UePf5eXlBqbQ==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2024-05-12T00:49:47Z",
"mac": "ENC[AES256_GCM,data:wIDgEom4PTmHx670db0pBiQl7PyHZ9Yy9nzVg5ITXyu6WJZLaMuuoW3pUxtkB+52ZR8r66M4/fuahk6NiGlhVLCxAY+3KZk2RbwWnD43xZQ/DMQ4WOZ9e8x/rozsPsrD3QxGsZodOLxaWg3QLT4VpGDtb+zzrQn1SIMqlOMxAMk=,iv:Ira7zU+hj/cUruhhUu33PPMxVQdfm4GoPEKaq6fdtI8=,tag:h6ihTBuQl5dZCU7ZWU2vYA==,type:str]",
"pgp": null,
"unencrypted_suffix": "_unencrypted",
"version": "3.8.1"
}
}

View file

@ -0,0 +1,24 @@
{
"data": "ENC[AES256_GCM,data:Eb0jA3q6hBv4YuntX0LELXK9bMFrW4QddXaF+HIfEffXSQiOH0fSfKE=,iv:nqyr1YtiHOGFbfm8+QuRLDiBNNLa3QNUYOKkPRueG8I=,tag:XwFR/TkhsxDQpFgal8tj1Q==,type:str]",
"sops": {
"kms": null,
"gcp_kms": null,
"azure_kv": null,
"hc_vault": null,
"age": [
{
"recipient": "age17pdqkpfh6kc6wm7gxzdnwf6vphlwddv9yfpdu3j76e24y3amd9tq3avfc8",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBRamRORTV5OTF6OVhLMHNC\nWUN4cllEQUFPeEI4cmJZeFFKdHErSUYrbHlNCnFWSWNXbC9lejFkTzF4M0lZM2NQ\nZ1BOUGFtQk1RODg0OHp3RDR3KzVSNU0KLS0tIEJwNWIvcFZtdTdkb3VSTkFXMFdz\nZ1JYU09lTkR4ZjJEa1lpOWd0MlI1cFkKKsKAvnhw2v8EOixvKvV7v211Itedg1tw\nRAo5XecUEZyTqKLyEooCTq/KM2X0rR+tFpzo9bt5t6zMwwJc2OwS2w==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age155sscpw0x36t6s9usdrz7relpxqrtqnk98mrc7s0qcv2n0v3zd7sfl2xn8",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBzaEk2b2c1RXNHNUZpeDM1\nQmJrQXVuT1RrYUJDZFVJYjBOSytUWFhIWnpVCjJtN2lZaXNQZVY0a1ZLeUpFcmVQ\nMTA1Q2VCc2FnWlZGUWd0Z0UyZFVsWDQKLS0tIG50L3hYWkNObVRMZHlxcEJjM1p4\nSHNxbkg1Z0FjeUpDTW1zMGdUbFFodWcK8P0t0q8xvvus7Lcjt1CtwNrGAQlV1mHl\n5O4M4zsJGlQeBqvf/2EZWqy0HkdGqIhUDHeo+ho6P2LgUrGTGdmOFA==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2024-04-17T20:07:21Z",
"mac": "ENC[AES256_GCM,data:7gs2+Ksd8JFrAAx/rTaQ7W6MLtuWAdoGzA5TtqO6fbiR+cz8UiH2Exr1xbR8sNY0El8P99nnV66M0Yt+ARJP7xd9o4NJYVdOenScISaMFHWW6EjiEWqv/JKI/JoGdXpRObu3LnuRR0rEp36REoc48s68UWwEGnpMdEpdqSZvMqg=,iv:qON9slK2y0W7K9FOwZAkNJhY+91DD4w70aLD9bMPAWs=,tag:8+cQrp6FM7y+76DsrSQndQ==,type:str]",
"pgp": null,
"unencrypted_suffix": "_unencrypted",
"version": "3.8.1"
}
}

View file

@ -0,0 +1,28 @@
{
sops.secrets = {
wireguard = {
format = "binary";
sopsFile = ./wireguard;
};
wireguard-preshared = {
key = "PresharedKey";
sopsFile = ./wireguard.yaml;
};
wireguard-private = {
key = "PrivateKey";
sopsFile = ./wireguard.yaml;
};
cloudflare = {
format = "binary";
sopsFile = ./cloudflare;
};
brawlstars-api-key = {
format = "binary";
sopsFile = ./brawlstars;
};
samba = {
format = "binary";
sopsFile = ./samba;
};
};
}

View file

@ -0,0 +1,24 @@
{
"data": "ENC[AES256_GCM,data:IwlFjjTZqyL7QJaM1aBi5De0xPZ6T3/fQb+gIcyRP+sgyazLn4MEFABgoCKxTJaNhl4ld2HPA+uGxLOGavTwAxOPpCSxnfTPiPsDrIob9M+ssdVEinBb28E2GIp1ZEbwL7d+AsLstlI3k9JLNaWwqqC4uUb23cWl5/pXELI3ung5BytXGsGXBM/UqW7ce9VA6OQuCvcZiA==,iv:kt1FZBbOktLblC1Wnj4+apXB4dBMyY5Lk1XygdT9c58=,tag:gO8tkX+udOgiV+He2GIOrQ==,type:str]",
"sops": {
"kms": null,
"gcp_kms": null,
"azure_kv": null,
"hc_vault": null,
"age": [
{
"recipient": "age17pdqkpfh6kc6wm7gxzdnwf6vphlwddv9yfpdu3j76e24y3amd9tq3avfc8",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBaNnFIQStPV0d4TE0ya1F5\nSGRtckdUalBXVWI3TlkwY00zaUpESGlqem1jCjZJKzZaSDR1QW5ZWkVTS1hWcFEr\nMTJrTTYzRFFXUk9xbVM5aVphNDV5TjQKLS0tIDloRkMwSUNwM1RQN0lTQm81U21w\ndEdGN0R3Q1NKZmZjY0xCNFlKT3FkY0EKea+Gn8QJeu4iVZdx2WTRO1GOmC2IAeGt\njaMAek1JC9cOkzq0InCr8T4u2+R8ZNCNxf4B3uwRUQVBaVn1HV8Jsw==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age155sscpw0x36t6s9usdrz7relpxqrtqnk98mrc7s0qcv2n0v3zd7sfl2xn8",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBVMjNzVVhnZ3htWHEyV3NI\nV001YmtrYTFjQ2lZQWc3V3kvdDdUZ1M5cldzClE1SFVrV0lIc3lWaHVxYnBQS3N5\nbFp5dnJxZFhHdllXYko0b25OdWl5dnMKLS0tIEk1b3FPUG94dWJmS01qWUdnbkVy\nVThNODQvVXlQQ3FZaC8rdlFoOHhPVmsKbcGBJoLMFgpcIQsjlxeAViwne9ri/1WT\n56zPt9+f54K6W7hzJ7pVAG4+IYeWfaybMoPyIWTsTq9tlI6cc8MIag==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2024-10-21T08:11:03Z",
"mac": "ENC[AES256_GCM,data:4t/N1HbvMbXpF7pO0In8V3BKxK/6bz2BmFsH0DGTPNFZ9ZUNntOsOBtjjOhnRfbPY+Bl7JAQnHIVoAtyi6JavXpyH1WmzIpvpBUCWraIoKcD2XzrfraLEJazV6wIVE/vaBk9A6L54KivCXzMp35SDyIlWt6GBfyZJX64le2l5Ck=,iv:NVxByBu+6KNTKVnbjINOqQMgNI85lJxAKfeMFsVNz+0=,tag:mXeFyajv517gC095Wc80WQ==,type:str]",
"pgp": null,
"unencrypted_suffix": "_unencrypted",
"version": "3.9.1"
}
}

View file

@ -0,0 +1,24 @@
{
"data": "ENC[AES256_GCM,data:fwjhJg9Tgf1bLSolaOuqNccNibuo8g4P4j1mkiVbsQaE/2+3NxZem0aVPmeoevW2nev3DNt3qFdfpOZX3KXniYJSpIf8mxluB1m2c+Zf51eBg/rQSfNtSljFC++Jjc1RyL1XfVIlxZvq8V26AnJZbH6cqkX+phVsO6J/qSyKEBq+rXIZZO3iwby/II5z8ehYtGPJaliCfwv5FLltPul2p+fySQF4UtUWLEKIAGnN3m81GcaLoQZdIMTsEYowHVjs350xv+oBfGNOK5QHKEUBeU9vxvEbyQTvQ4sIjs4RdncqfPkJJQG90TB95LsBmEIuynhD5NS2S2A3Bk4W0zCRdEugOl6U0+4PeiD3t3DeejWpao55+woEvkItSP8RmiGkGrkj1NavUiGiMNztp94zqD3NAg1RHxRPlW/nf5JjUpwmxRNh2G4lMqxG+zXuRV34FjZmKESsGsrCyXg+WUB0BSkXzVZAuvfHfBnPjrC2yakPKpheSqhBRKMHCUKCZ+ESdDKaGxKX2JYaZuSmUEs=,iv:N8VjPOYF63fa+tpwDaPDz6+hkyiKAvY81yrgcs0QRJE=,tag:qcF8HjEuXdrrzwZ1bxCNyw==,type:str]",
"sops": {
"kms": null,
"gcp_kms": null,
"azure_kv": null,
"hc_vault": null,
"age": [
{
"recipient": "age17pdqkpfh6kc6wm7gxzdnwf6vphlwddv9yfpdu3j76e24y3amd9tq3avfc8",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSAxdGlGNXBLZFNuenRlOFVt\nRHdXRUplaTNpRWhTamJxODZqV2lhRVE0bWtzCnpjT3VVVk1DUGxiSUhYdjRUb0hR\nZ2Y0dWw3TS83ZWg5Q1RTR215Sm1sVUkKLS0tIGFGNU94WjR3aU42VmpJekI5Szd4\nN2V1Nm1qT0xZWVdCL3lacW1qOTdrRTQKgDypLo9NN6KYO4yR5yXKbyxMP2/jXQ6R\nqM07tmwjJ4e6Cqeb3SyThbezBjBEER8ntaW4TfVlNsoULvtLCMAuKQ==\n-----END AGE ENCRYPTED FILE-----\n"
},
{
"recipient": "age155sscpw0x36t6s9usdrz7relpxqrtqnk98mrc7s0qcv2n0v3zd7sfl2xn8",
"enc": "-----BEGIN AGE ENCRYPTED FILE-----\nYWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBjL2NSTnVYY05pcVNyT1g4\nT0hvanphU29Dd0dvMXZ4TjdVV2R4WnpxY1JVCmVQVlcwbE9EbmxPZWhTK3RudUJG\nQVhjZ2lzUmo1VjlNejlLejVkSXZhTFkKLS0tIFpaQ1JtTm9NOWIrWFdlZWlDTXBo\nRFVKNVVyRWlxZWtqUHVsVGFsRUtWeW8KHVaiwFMs7wTn7j/PZXqrpEtEJTTRaFi2\nK65QMNkbB8DCvmO950X+lpCkuCHXpTgI+yvzLgD2zvZurlu6h9zZDg==\n-----END AGE ENCRYPTED FILE-----\n"
}
],
"lastmodified": "2024-04-17T20:38:26Z",
"mac": "ENC[AES256_GCM,data:TbfcsR134LA02u6/bQRHDYev5AcMj0Tq04SyH78eQu+bg5658qdeAcXX5GD6GvgEBR+O4hghzq3pDoQ8BvMIQDI1kx0YTrH0rSs84j60d4Jjw96KmRMIqvFbBHuvzHfw7+6cnNRJ+lvSv4Xca46XSrviu7UvcUGLBklAfZca8Ls=,iv:TfV52tbDfxnmmWgGWTcCwQp3iWL1PYCkvNrqDp55VP8=,tag:LQZI+BLE5a9FaBrRU6cnGg==,type:str]",
"pgp": null,
"unencrypted_suffix": "_unencrypted",
"version": "3.8.1"
}
}

View file

@ -0,0 +1,31 @@
PrivateKey: ENC[AES256_GCM,data:4OLJJ190rSspZKGBqpA7aZaRLVEzIjgksjqU6jHX0NvWncB/w5R3s9C3Fw0=,iv:Knn+jsapxttRCnDaokRqXsk5QIkr8zoDNta/4F/Czxo=,tag:V14n+An7kRCjIx9CI17yCg==,type:str]
PresharedKey: ENC[AES256_GCM,data:5HqALbtJQO5Ti/HHE0rcIhDhe1k2+w9zctgKuaMW77Nbi9Tzp1NWzKh0mOw=,iv:spuk2ARDIcxHndzvuGprsNkafH/ODdDJCTXoRaflKCQ=,tag:2GybJv7z69P2AE0eOh/Nhg==,type:str]
sops:
kms: []
gcp_kms: []
azure_kv: []
hc_vault: []
age:
- recipient: age17pdqkpfh6kc6wm7gxzdnwf6vphlwddv9yfpdu3j76e24y3amd9tq3avfc8
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBsUXo0SGhieVdkREZqUzZQ
Sk1mQXJ5U2ZnTXlHSG5UQnlXYnh4clFjRGw0Clh5S2ZXQkltUXhhY2x3NWo5VVBp
SXBtWWwvbW50WTVoWFJ3TmQwZXVmeFEKLS0tIDErQXBiYjg4VzVrTzkvTW5ORmtJ
cUxubFFNVWRLRW5QOHl4MDVodHNVVzQK76+hxVKXLRPcP2B9oNsS7sDdd5TvcV9x
D6wiytAnk9Z1PvwwWkIUMg4CJPLmf4iBsnT/EBNQyWuOiVe023OrcA==
-----END AGE ENCRYPTED FILE-----
- recipient: age155sscpw0x36t6s9usdrz7relpxqrtqnk98mrc7s0qcv2n0v3zd7sfl2xn8
enc: |
-----BEGIN AGE ENCRYPTED FILE-----
YWdlLWVuY3J5cHRpb24ub3JnL3YxCi0+IFgyNTUxOSBhNWg3Rmd3eWF3MDNPTW05
YlY5OExZbDBQaDkvaWNWbU1LeDloYUxUa0JNCmRHNGxtbDJQK0kxTDd1djZVUjEy
Si92MWxQTGRjRVcwNTZOY20yOUgrelEKLS0tIFYzeGZOeWhqdHRTUlBJR21pOHN6
am1zRUZ1RmEyVWs5MTlZR1hZMWNFakEKZtqE4oWCuruWVKNfqD3Iji8+VP8yF0A3
NwmAuhKV6qUXoYVHSvnINONtSeGO0sjwHTLBi0HnpjNd/iSvsX7B8w==
-----END AGE ENCRYPTED FILE-----
lastmodified: "2024-02-28T20:22:52Z"
mac: ENC[AES256_GCM,data:G2JGvYM6fCQSz+e7Nz+/cyBqEGaXNtxxc3UsQvSqgHV3iNhmkUrdO95o3tS2Hq4jedwXrw6WDwsZ8YnYFl+nv56vu19BdupDuHlmRcl0phw5NVk43Rxa8qzJ0HoeUSEfxXaKwSmjWgWT2ZUWq2hY5D19gdL703H22W/H8opBEzw=,iv:1gaRfhenp7be6eoZYx/OOU+VhAcGLnbQHppmuKW1jXk=,tag:Tgg5pUoryB3aqeAponPPkA==,type:str]
pgp: []
unencrypted_suffix: _unencrypted
version: 3.8.1

View file

@ -0,0 +1,92 @@
include:
- secrets.yaml
library: library.db
directory: /music
statefile: state.pickle
threaded: yes
import:
write: yes
copy: yes
link: no
move: no
incremental: no
paths:
default: /$albumartist/$album %aunique{}/$track $title %aunique{}
singleton: /$albumartist/$artist %aunique{}/$track $title %aunique{}
comp: /Compilation/$album %aunique{}/$track $title %aunique{}
albumtype:soundtrack: Soundtracks/$album %aunique{}/$track $title %aunique{}
clutter: ["Thumbs.DB", ".DS_Store"]
plugins: [
embedart,
fetchart,
discogs,
advancedrewrite,
#lyrics,
spotify,
scrub,
duplicates,
unimported,
missing,
]
genres: yes
unimported:
ignore_extensions: jpg png
spotify:
source_weight: 0.7
embedart:
auto: yes
ifempty: no
remove_art_file: no
fetchart:
auto: yes
cautious: yes
minwidth: 500
maxwidth: 1200
cover_format: jpeg
sources:
- coverart: release
- coverart: releasegroup
- albumart
- amazon
- google
- itunes
- fanarttv
- lastfm
- wikipedia
#lyrics:
# fallback: '''
# sources: musixmatch google
replace:
'[\\]': '''
'[_]': '-'
'[/]': '-'
'^\.': '''
'[\x00-\x1f]': '''
'[<>:"\?\*\|]': '''
'\.$': '''
'\s+$': '''
'^\s+': '''
'^-': '''
'': "'"
'': "'"
'″': '''
'': '-'
aunique:
keys: albumartist albumtype year album
disambuguators: format mastering media label albumdisambig releasegroupdisambig
bracket: '[]'

View file

@ -0,0 +1,183 @@
{config, ...}: {
imports = [
#./smbshare.nix
];
virtualisation.podman = {
enable = true;
autoPrune.enable = true;
dockerSocket.enable = true;
};
security.acme = {
acceptTerms = true;
defaults = {
email = "xunuwu@gmail.com";
reloadServices = ["podman-caddy.service"];
};
certs = {
"xunuwu.xyz" = {
dnsProvider = "cloudflare";
credentialFiles = {
CF_DNS_API_TOKEN_FILE = config.sops.secrets.cloudflare.path;
};
extraDomainNames = [
"jellyfin.xunuwu.xyz"
"wakapi.xunuwu.xyz"
];
};
};
};
virtualisation.oci-containers = {
backend = "podman";
containers = {
gluetun = {
image = "qmcgaw/gluetun:v3";
volumes = [
"${config.sops.secrets.wireguard.path}:/gluetun/wireguard/wg0.conf"
];
ports = [
## This bypasses the firewall
## use 127.0.0.1:XXXX:XXXX if you only want it to be accessible locally
"127.0.0.1:8191:8191" # flaresolverr
"9117:9117" # jackett
"8080:8080" # qbittorrent webui
"5030:5030" # slskd
"8096:8096" # jellyfin
"8336:8336" # jellyfin
];
environment = {
VPN_SERVICE_PROVIDER = "airvpn";
VPN_TYPE = "wireguard";
SERVER_COUNTRIES = "Netherlands";
FIREWALL_VPN_INPUT_PORTS = "11936,8336,14795";
};
extraOptions = [
"--cap-add=NET_ADMIN"
"--device=/dev/net/tun:/dev/net/tun"
];
};
qbittorrent = {
image = "lscr.io/linuxserver/qbittorrent:latest";
environment = {
WEBUI_PORT = "8080";
TORRENTING_PORT = "11936";
};
volumes = [
"/media/config/qbittorrent:/config"
"${config.sops.secrets.jackett.path}:/config/qBittorrent/nova3/engines/jackett.json"
"/media/downloads:/downloads"
];
dependsOn = ["gluetun"];
extraOptions = [
"--network=container:gluetun"
];
};
flaresolverr = {
image = "flaresolverr/flaresolverr";
environment = {
LOG_LEVEL = "info";
};
dependsOn = ["gluetun"];
extraOptions = [
"--network=container:gluetun"
];
};
jellyfin = {
image = "jellyfin/jellyfin:2024052005";
volumes = [
"/media/config/jellyfin/config:/config"
"/media/config/jellyfin/cache:/cache"
"/media/library:/library"
"/media/downloads:/library/downloads"
];
dependsOn = ["gluetun"];
extraOptions = [
"--network=container:gluetun"
];
};
jackett = {
image = "lscr.io/linuxserver/jackett:latest";
volumes = [
"/media/config/jackett:/config"
];
dependsOn = ["gluetun"];
extraOptions = [
"--network=container:gluetun"
];
};
slskd = {
image = "slskd/slskd";
volumes = [
"/var/lib/slskd:/app"
"/media/slskd/downloads:/downloads"
"/media/slskd/incomplete:/incomplete"
"/media/library/music:/shares/music"
"${config.sops.secrets.slskd.path}:/app/slskd.yml"
];
dependsOn = ["gluetun"];
extraOptions = [
"--network=container:gluetun"
];
};
caddy = {
image = "caddy";
volumes = [
"${builtins.toFile "Caddyfile" ''
https://jellyfin.xunuwu.xyz:8336 {
tls /etc/ssl/certs/xunuwu.xyz/cert.pem /etc/ssl/certs/xunuwu.xyz/key.pem
reverse_proxy localhost:8096
}
https://wakapi.xunuwu.xyz:8336 {
tls /etc/ssl/certs/xunuwu.xyz/cert.pem /etc/ssl/certs/xunuwu.xyz/key.pem
reverse_proxy localhost:3000
}
''}:/etc/caddy/Caddyfile"
"/var/lib/acme/xunuwu.xyz:/etc/ssl/certs/xunuwu.xyz"
"/media/config/caddy/data:/data"
"/media/config/caddy/config:/config"
];
dependsOn = ["gluetun"];
extraOptions = [
"--network=container:gluetun"
];
};
betanin = {
image = "sentriz/betanin";
environment = {
UID = "1000";
GID = "1000";
};
ports = ["9393:9393"];
volumes = [
"/media/config/betanin/data:/b/.local/share/betanin"
"/media/config/betanin/config:/b/.config/betanin"
"/media/config/betanin/beets:/b/.config/beets"
"${config.sops.secrets.betanin.path}:/b/.config/beets/secrets.yaml"
"${./beets.yaml}:/b/.config/beets/config.yaml"
"/media/library/music:/music"
"/media/slskd/downloads:/downloads/slskd"
"/media/downloads/music:/downloads/torrent"
"/media/config/betanin/import:/downloads/import"
];
};
wakapi = {
image = "ghcr.io/muety/wakapi:latest";
volumes = [
"${config.sops.secrets.wakapi.path}:/app/config.yml"
"/media/config/wakapi:/data" # needs to be chown 1000:1000
];
dependsOn = ["gluetun"];
extraOptions = [
"--network=container:gluetun"
];
};
};
};
}

View file

@ -0,0 +1,27 @@
{pkgs, ...}: {
services.samba = {
enable = true;
package = pkgs.samba4Full;
openFirewall = true;
shares = {
"torrent" = {
path = "/media/downloads";
browseable = "yes";
"guest ok" = "yes";
"read only" = "yes";
"write list" = "xun";
};
"library" = {
path = "/media/library";
browseable = "yes";
"guest ok" = "yes";
"read only" = "yes";
"write list" = "xun";
};
};
};
services.samba-wsdd = {
enable = true;
openFirewall = true;
};
}

View file

@ -0,0 +1,707 @@
{
config,
pkgs,
...
}: {
imports = [
#./statistics
];
### temp disabled
###services.samba = {
### enable = true;
### package = pkgs.samba4Full;
### openFirewall = true;
### shares."torrent-downloads" = {
### path = "/media/downloads/complete";
### browseable = "yes";
### "read only" = "yes";
### "guest ok" = "no";
### };
### #shares."decky-cloud-save" = {
### # path = "/media/gamesaves";
### # browseable = "yes";
### # "read only" = "no";
### # "guest ok" = "no";
### #};
### extraConfig = ''
### server smb encrypt = required
### server min protocol = SMB3_00
### '';
###};
###services.samba-wsdd = {
### # This enables autodiscovery on windows since SMB1 (and thus netbios) support was discontinued
### enable = true;
### openFirewall = true;
###};
#virtualisation.docker = {
# enable = true;
# enableOnBoot = true;
# autoPrune.enable = true;
#};
systemd.tmpfiles.rules = [
"d /var/lib/code-server 0750 root root -"
"d /var/lib/slskd 0750 root root -"
];
users.groups."media" = {}; # create media group
# this needs to be done manually since transmission is in a docker container
users.users."media" = {
isSystemUser = true;
group = "media";
};
systemd.services."${config.virtualisation.oci-containers.backend}-transmission".serviceConfig = {
StateDirectory = [
"${config.virtualisation.oci-containers.backend}/transmission/downloads"
"${config.virtualisation.oci-containers.backend}/transmission/config"
"${config.virtualisation.oci-containers.backend}/transmission/watch"
];
};
#security.acme = {
# acceptTerms = true;
# defaults.email = "xunuwu@gmail.com";
# certs."air.xun.cam" = {
# dnsProvider = "cloudflare";
# credentialsFile = config.sops.secrets.cloudflare.path;
# };
#};
#systemd.services."${config.virtualisation.oci-containers.backend}-jellyfin".serviceConfig = {
# StateDirectory = [
# "${config.virtualisation.oci-containers.backend}/jellyfin/config"
# "${config.virtualisation.oci-containers.backend}/jellyfin/cache"
# "${config.virtualisation.oci-containers.backend}/jellyfin/media"
# ];
#};
#services.jellyfin = {
# enable = true;
# openFirewall = true;
# group = "media";
#};
#services.radarr = {
# enable = true;
# group = "media";
# openFirewall = true; # 7878
#};
#services.sonarr = {
# enable = true;
# group = "media";
# openFirewall = true; # 8989
#};
#services.prowlarr = {
# enable = true;
# openFirewall = true; # 9696
#};
virtualisation.podman = {
enable = true;
autoPrune.enable = true;
dockerSocket.enable = true;
};
virtualisation.oci-containers = {
backend = "podman";
containers = {
gluetun = {
image = "qmcgaw/gluetun:v3";
volumes = [
"${config.sops.secrets.wireguard.path}:/gluetun/wireguard/wg0.conf"
];
ports = [
# Transmission port
## This bypasses the firewall, use 127.0.0.1:XXXX:XXXX
## if you only want it to be accessible locally
"9091:9091"
"127.0.0.1:8191:8191" # flaresolverr
"9696:9696" # prowlarr
"8989:8989" # sonarr
"7878:7878" # radarr
#"8443:8443" # code-server
"5030:5030" # slskd
"5031:5031" # slskd https
"8096:8096" # jellyfin
"8920:8920" # jellyfin https
"8080:8080" # qbittorrent webui
];
environment = {
VPN_SERVICE_PROVIDER = "airvpn";
VPN_TYPE = "wireguard";
SERVER_COUNTRIES = "Netherlands";
FIREWALL_VPN_INPUT_PORTS = "11936,8096,14795";
};
extraOptions = [
"--cap-add=NET_ADMIN"
"--device=/dev/net/tun:/dev/net/tun"
];
};
slskd = {
image = "slskd/slskd";
volumes = [
"/var/lib/slskd:/app"
"/media/slskd/downloads:/downloads"
"/media/slskd/incomplete:/incomplete"
"/media/library/music:/shares/music"
"${config.sops.secrets.slskd.path}:/app/slskd.yml"
];
dependsOn = ["gluetun"];
extraOptions = [
"--network=container:gluetun"
];
};
beets = {
image = "lscr.io/linuxserver/beets:latest";
volumes = [
"/media/config/beets:/config"
"/media/library/music:/music"
"/media/slskd/downloads:/downloads"
];
};
jellyfin = {
image = "jellyfin/jellyfin";
volumes = [
"/media/config/jellyfin/config:/config"
"/media/config/jellyfin/cache:/cache"
"/media/library:/library"
];
dependsOn = ["gluetun"];
extraOptions = [
"--network=container:gluetun"
];
};
#betanin = {
# image = "sentriz/betanin";
# ports = [
# "9393:9393"
# ];
# volumes = [
# "/media/config/betanin/data:/b/.local/share/betanin"
# "/media/config/betanin/config:/b/.config/betanin"
# "/media/config/betanin/beets:/b/.config/beets/"
# "${pkgs.writeText "config.yaml" ''
# # --------------- Main ---------------
#
# library: library.db
# directory: /music
# statefile: state.pickle
#
# # --------------- Plugins ---------------
#
# plugins: []
# pluginpath: []
#
# # --------------- Import ---------------
#
# clutter: ["Thumbs.DB", ".DS_Store"]
# ignore: [".*", "*~", "System Volume Information", "lost+found"]
# ignore_hidden: yes
#
# import:
# # common options
# write: yes
# copy: yes
# move: no
# timid: no
# quiet: no
# log:
# # other options
# default_action: apply
# languages: []
# quiet_fallback: skip
# none_rec_action: ask
# # rare options
# link: no
# hardlink: no
# reflink: no
# delete: no
# resume: ask
# incremental: no
# incremental_skip_later: no
# from_scratch: no
# autotag: yes
# singletons: no
# detail: no
# flat: no
# group_albums: no
# pretend: false
# search_ids: []
# duplicate_keys:
# album: albumartist album
# item: artist title
# duplicate_action: ask
# duplicate_verbose_prompt: no
# bell: no
# set_fields: {}
# ignored_alias_types: []
# singleton_album_disambig: yes
#
# # --------------- Paths ---------------
#
# path_sep_replace: _
# drive_sep_replace: _
# asciify_paths: false
# art_filename: cover
# max_filename_length: 0
# replace:
# # Replace bad characters with _
# # prohibited in many filesystem paths
# '[<>:\?\*\|]': _
# # double quotation mark "
# '\"': _
# # path separators: \ or /
# '[\\/]': _
# # starting and closing periods
# '^\.': _
# '\.$': _
# # control characters
# '[\x00-\x1f]': _
# # dash at the start of a filename (causes command line ambiguity)
# '^-': _
# # Replace bad characters with nothing
# # starting and closing whitespace
# '\s+$': ''\'''\'
# '^\s+': ''\'''\'
#
# aunique:
# keys: albumartist album
# disambiguators: albumtype year label catalognum albumdisambig releasegroupdisambig
# bracket: '[]'
#
# sunique:
# keys: artist title
# disambiguators: year trackdisambig
# bracket: '[]'
#
# # --------------- Tagging ---------------
#
# per_disc_numbering: no
# original_date: no
# artist_credit: no
# id3v23: no
# va_name: "Various Artists"
# paths:
# default: $albumartist/$album%aunique{}/$track $title
# singleton: Non-Album/$artist/$title
# comp: Compilations/$album%aunique{}/$track $title
#
# # --------------- Performance ---------------
#
# threaded: yes
# timeout: 5.0
#
# # --------------- UI ---------------
#
# verbose: 0
# terminal_encoding:
#
# ui:
# terminal_width: 80
# length_diff_thresh: 10.0
# color: yes
# colors:
# text_success: ['bold', 'green']
# text_warning: ['bold', 'yellow']
# text_error: ['bold', 'red']
# text_highlight: ['bold', 'red']
# text_highlight_minor: ['white']
# action_default: ['bold', 'cyan']
# action: ['bold', 'cyan']
# # New Colors
# text: ['normal']
# text_faint: ['faint']
# import_path: ['bold', 'blue']
# import_path_items: ['bold', 'blue']
# added: ['green']
# removed: ['red']
# changed: ['yellow']
# added_highlight: ['bold', 'green']
# removed_highlight: ['bold', 'red']
# changed_highlight: ['bold', 'yellow']
# text_diff_added: ['bold', 'red']
# text_diff_removed: ['bold', 'red']
# text_diff_changed: ['bold', 'red']
# action_description: ['white']
# import:
# indentation:
# match_header: 2
# match_details: 2
# match_tracklist: 5
# layout: column
#
# # --------------- Search ---------------
#
# format_item: $artist - $album - $title
# format_album: $albumartist - $album
# time_format: '%Y-%m-%d %H:%M:%S'
# format_raw_length: no
#
# sort_album: albumartist+ album+
# sort_item: artist+ album+ disc+ track+
# sort_case_insensitive: yes
#
# # --------------- Autotagger ---------------
#
# overwrite_null:
# album: []
# track: []
# musicbrainz:
# enabled: yes
# host: musicbrainz.org
# https: no
# ratelimit: 1
# ratelimit_interval: 1.0
# searchlimit: 5
# extra_tags: []
# genres: no
# external_ids:
# discogs: no
# bandcamp: no
# spotify: no
# deezer: no
# beatport: no
# tidal: no
#
# match:
# strong_rec_thresh: 0.04
# medium_rec_thresh: 0.25
# rec_gap_thresh: 0.25
# max_rec:
# missing_tracks: medium
# unmatched_tracks: medium
# distance_weights:
# source: 2.0
# artist: 3.0
# album: 3.0
# media: 1.0
# mediums: 1.0
# year: 1.0
# country: 0.5
# label: 0.5
# catalognum: 0.5
# albumdisambig: 0.5
# album_id: 5.0
# tracks: 2.0
# missing_tracks: 0.9
# unmatched_tracks: 0.6
# track_title: 3.0
# track_artist: 2.0
# track_index: 1.0
# track_length: 2.0
# track_id: 5.0
# preferred:
# countries: []
# media: []
# original_year: no
# ignored: []
# required: []
# ignored_media: []
# ignore_data_tracks: yes
# ignore_video_tracks: yes
# track_length_grace: 10
# track_length_max: 30
# album_disambig_fields: data_source media year country label catalognum albumdisambig
# singleton_disambig_fields: data_source index track_alt album
# ''}:/b/.config/beets/config.yaml"
# "/media/music:/music"
# "/media/slskd/downloads:/downloads"
# ];
#};
#beets = {
# image = "lscr.io/linuxserver/beets:latest";
# volumes = [
# "/media/config/beets:/config"
# "/media/music:/music"
# "/media/slskd/downloads:/downloads"
# ];
#};
code-server = {
image = "lscr.io/linuxserver/code-server:latest";
volumes = [
"/var/lib/code-server:/config"
];
environmentFiles = [
config.sops.secrets.code-server.path
];
dependsOn = ["gluetun"];
extraOptions = [
#"--group-add ${config.security.acme.defaults.group}"
"--network=container:gluetun"
];
};
#jellyseerr = {
# image = "fallenbagel/jellyseerr:latest";
# ports = [
# "5055:5055"
# ];
# volumes = [
# "/media/config/jellyseerr:/app/config"
# ];
# extraOptions = [
# "--network=host"
# ];
#};
recyclarr = {
image = "ghcr.io/recyclarr/recyclarr";
volumes = [
#"/media/config/recyclarr:/config"
"${pkgs.writeText "recyclarr.yml" ''
sonarr:
sonarr-main:
base_url: http://localhost:8989
api_key: !env_var SONARR_API_KEY
delete_old_custom_formats: true
replace_existing_custom_formats: true
quality_definition:
type: series
custom_formats:
- trash_ids:
# Unwanted
- 85c61753df5da1fb2aab6f2a47426b09 # BR-DISK
- 9c11cd3f07101cdba90a2d81cf0e56b4 # LQ
- 47435ece6b99a0b477caf360e79ba0bb # x265
# Misc
- ec8fa7296b64e8cd390a1600981f3923 # Repack/Proper
- eb3d5cc0a2be0db205fb823640db6a3c # Repack v2
- 44e7c4de10ae50265753082e5dc76047 # Repack v3
# Streaming Services
- d660701077794679fd59e8bdf4ce3a29 # AMZN
- f67c9ca88f463a48346062e8ad07713f # ATVP
- 36b72f59f4ea20aad9316f475f2d9fbb # DCU
- 89358767a60cc28783cdc3d0be9388a4 # DNSP
- 7a235133c87f7da4c8cccceca7e3c7a6 # HBO
- a880d6abc21e7c16884f3ae393f84179 # HMAX
- f6cce30f1733d5c8194222a7507909bb # HULU
- 0ac24a2a68a9700bcb7eeca8e5cd644c # iT
- d34870697c9db575f17700212167be23 # NF
- b2b980877494b560443631eb1f473867 # NLZ
- 1656adc6d7bb2c8cca6acfb6592db421 # PCOK
- c67a75ae4a1715f2bb4d492755ba4195 # PMTP
- 3ac5d84fce98bab1b531393e9c82f467 # QIBI
- c30d2958827d1867c73318a5a2957eb1 # RED
- ae58039e1319178e6be73caab5c42166 # SHO
- 1efe8da11bfd74fbbcd4d8117ddb9213 # STAN
- 5d2317d99af813b6529c7ebf01c83533 # VDL
- 77a7b25585c18af08f60b1547bb9b4fb # CC
# HQ Source Groups
- e6258996055b9fbab7e9cb2f75819294 # WEB Tier 01
- 58790d4e2fdcd9733aa7ae68ba2bb503 # WEB Tier 02
- d84935abd3f8556dcd51d4f27e22d0a6 # WEB Tier 03
- d0c516558625b04b363fa6c5c2c7cfd4 # WEB Scene
quality_profiles:
- name: TRaSH 720/1080
- trash_ids:
- 949c16fe0a8147f50ba82cc2df9411c9 # Anime BD Tier 01 (Top SeaDex Muxers)
- ed7f1e315e000aef424a58517fa48727 # Anime BD Tier 02 (SeaDex Muxers)
- 096e406c92baa713da4a72d88030b815 # Anime BD Tier 03 (SeaDex Muxers)
- 30feba9da3030c5ed1e0f7d610bcadc4 # Anime BD Tier 04 (SeaDex Muxers)
- 545a76b14ddc349b8b185a6344e28b04 # Anime BD Tier 05 (Remuxes)
- 25d2afecab632b1582eaf03b63055f72 # Anime BD Tier 06 (FanSubs)
- 0329044e3d9137b08502a9f84a7e58db # Anime BD Tier 07 (P2P/Scene)
- c81bbfb47fed3d5a3ad027d077f889de # Anime BD Tier 08 (Mini Encodes)
- e0014372773c8f0e1bef8824f00c7dc4 # Anime Web Tier 01 (Muxers)
- 19180499de5ef2b84b6ec59aae444696 # Anime Web Tier 02 (Top FanSubs)
- e6258996055b9fbab7e9cb2f75819294 # WEB Tier 01
- 58790d4e2fdcd9733aa7ae68ba2bb503 # WEB Tier 02
- c27f2ae6a4e82373b0f1da094e2489ad # Anime Web Tier 03 (Official Subs)
- d84935abd3f8556dcd51d4f27e22d0a6 # WEB Tier 03
- 4fd5528a3a8024e6b49f9c67053ea5f3 # Anime Web Tier 04 (Official Subs)
- 29c2a13d091144f63307e4a8ce963a39 # Anime Web Tier 05 (FanSubs)
- dc262f88d74c651b12e9d90b39f6c753 # Anime Web Tier 06 (FanSubs)
# Unwanted
- b4a1b3d705159cdca36d71e57ca86871 # Anime Raws
- e3515e519f3b1360cbfc17651944354c # Anime LQ Groups
- 15a05bc7c1a36e2b57fd628f8977e2fc # AV1
- 026d5aadd1a6b4e550b134cb6c72b3ca # Uncensored
- d2d7b8a9d39413da5f44054080e028a3 # v0
- 9c14d194486c4014d422adc64092d794 # Dubs Only
- 07a32f77690263bb9fda1842db7e273f # VOSTFR
# Optionals
- 273bd326df95955e1b6c26527d1df89b # v1
- 228b8ee9aa0a609463efca874524a6b8 # v2
- 0e5833d3af2cc5fa96a0c29cd4477feb # v3
- 4fc15eeb8f2f9a749f918217d4234ad8 # v4
- b2550eb333d27b75833e25b8c2557b38 # 10bit
# Streaming Services
- d660701077794679fd59e8bdf4ce3a29 # AMZN
- 7dd31f3dee6d2ef8eeaa156e23c3857e # B-Global
- 4c67ff059210182b59cdd41697b8cb08 # Bilibili
- 3e0b26604165f463f3e8e192261e7284 # CR
- 89358767a60cc28783cdc3d0be9388a4 # DSNP
- 1284d18e693de8efe0fe7d6b3e0b9170 # FUNi
- 570b03b3145a25011bf073274a407259 # HIDIVE
- d34870697c9db575f17700212167be23 # NF
- 44a8ee6403071dd7b8a3a8dd3fe8cb20 # VRV
quality_profiles:
- name: TRaSH Anime
- trash_ids:
- 418f50b10f1907201b6cfdf881f467b7 # Anime Dual Audio
quality_profiles:
- name: TRaSH Anime
score: 2000
radarr:
radarr-main:
base_url: http://localhost:7878
api_key: !env_var RADARR_API_KEY
quality_definition:
type: movie
delete_old_custom_formats: true
replace_existing_custom_formats: true
custom_formats:
- trash_ids:
# HD Bluray + WEB
# Movie Versions
- 0f12c086e289cf966fa5948eac571f44 # Hybrid
- 570bc9ebecd92723d2d21500f4be314c # Remaster
- eca37840c13c6ef2dd0262b141a5482f # 4K Remaster
- e0c07d59beb37348e975a930d5e50319 # Criterion Collection
- 9d27d9d2181838f76dee150882bdc58c # Masters of Cinema
- 957d0f44b592285f26449575e8b1167e # Special Edition
- eecf3a857724171f968a66cb5719e152 # IMAX
- 9f6cbff8cfe4ebbc1bde14c7b7bec0de # IMAX Enhanced
# HQ Release Groups
- ed27ebfef2f323e964fb1f61391bcb35 # HD Bluray Tier 01
- c20c8647f2746a1f4c4262b0fbbeeeae # HD Bluray Tier 02
- c20f169ef63c5f40c2def54abaf4438e # WEB Tier 01
- 403816d65392c79236dcb6dd591aeda4 # WEB Tier 02
- af94e0fe497124d1f9ce732069ec8c3b # WEB Tier 03
# Misc
- e7718d7a3ce595f289bfee26adc178f5 # Repack/Proper
- ae43b294509409a6a13919dedd4764c4 # Repack2
# Unwanted
- ed38b889b31be83fda192888e2286d83 # BR-DISK
- 90a6f9a284dff5103f6346090e6280c8 # LQ
- dc98083864ea246d05a42df0d05f81cc # x265
- b8cd450cbfa689c0259a01d9e29ba3d6 # 3D
# Streaming Services
- b3b3a6ac74ecbd56bcdbefa4799fb9df # AMZN
- 40e9380490e748672c2522eaaeb692f7 # ATVP
- cc5e51a9e85a6296ceefe097a77f12f4 # BCORE
- 84272245b2988854bfb76a16e60baea5 # DNSP
- 509e5f41146e278f9eab1ddaceb34515 # DBO
- 5763d1b0ce84aff3b21038eea8e9b8ad # HMAX
- 526d445d4c16214309f0fd2b3be18a89 # Hulu
- 2a6039655313bf5dab1e43523b62c374 # MA
- 170b1d363bd8516fbf3a3eb05d4faff6 # NF
- bf7e73dd1d85b12cc527dc619761c840 # Pathe
- c9fd353f8f5f1baf56dc601c4cb29920 # PCOK
- e36a0ba1bc902b26ee40818a1d59b8bd # PMTP
- c2863d2a50c9acad1fb50e53ece60817 # STAN
quality_profiles:
- name: TRaSH 720/1080
''}:/config/recyclarr.yml"
];
environmentFiles = [
config.sops.secrets.serverenv.path
];
environment = {
PUID = toString config.users.users."media".uid;
PGID = toString config.users.groups."media".gid;
};
extraOptions = [
"--network=host"
];
};
prowlarr = {
image = "lscr.io/linuxserver/prowlarr:latest";
volumes = [
"/media/config/prowlarr:/config"
];
environment = {
PUID = toString config.users.users."media".uid;
PGID = toString config.users.groups."media".gid;
};
dependsOn = ["gluetun"];
extraOptions = [
"--network=container:gluetun"
];
};
sonarr = {
image = "lscr.io/linuxserver/sonarr:latest";
volumes = [
"/media/config/sonarr:/config"
"/media/library/tvseries:/tv"
"/media/downloads:/downloads"
];
environment = {
PUID = toString config.users.users."media".uid;
PGID = toString config.users.groups."media".gid;
};
dependsOn = ["gluetun"];
extraOptions = [
"--network=container:gluetun"
];
};
radarr = {
image = "lscr.io/linuxserver/radarr:latest";
volumes = [
"/media/config/radarr:/config"
"/media/library/movies:/movies"
"/media/downloads:/downloads"
];
environment = {
PUID = toString config.users.users."media".uid;
PGID = toString config.users.groups."media".gid;
};
dependsOn = ["gluetun"];
extraOptions = [
"--network=container:gluetun"
];
};
flaresolverr = {
image = "flaresolverr/flaresolverr";
environment = {
LOG_LEVEL = "info";
};
dependsOn = ["gluetun"];
extraOptions = [
"--network=container:gluetun"
];
};
transmission = {
image = "linuxserver/transmission:latest";
volumes = [
"/media/downloads:/downloads"
"/media/config/transmission/config:/config"
"/media/config/transmission/watch:/watch"
];
environment = {
PUID = toString config.users.users."media".uid;
PGID = toString config.users.groups."media".gid;
PEERPORT = "11936";
USER = "xun";
PASS = "password123";
};
dependsOn = ["gluetun"];
extraOptions = [
"--network=container:gluetun"
];
};
};
};
}

View file

@ -0,0 +1,146 @@
{config, ...}: {
services.grafana = {
enable = true;
settings = {
server = {
http_addr = "0.0.0.0";
};
};
};
services.loki = {
enable = true;
configuration = {
server.http_listen_port = 3030;
auth_enabled = false;
ingester = {
lifecycler = {
address = "127.0.0.1";
ring = {
kvstore = {
store = "inmemory";
};
replication_factor = 1;
};
};
chunk_idle_period = "1h";
max_chunk_age = "1h";
chunk_target_size = 999999;
chunk_retain_period = "30s";
max_transfer_retries = 0;
};
schema_config = {
configs = [
{
from = "2022-06-06";
store = "boltdb-shipper";
object_store = "filesystem";
schema = "v11";
index = {
prefix = "index_";
period = "24h";
};
}
];
};
storage_config = {
boltdb_shipper = {
active_index_directory = "/var/lib/loki/boltdb-shipper-active";
cache_location = "/var/lib/loki/boltdb-shipper-cache";
cache_ttl = "24h";
shared_store = "filesystem";
};
filesystem = {
directory = "/var/lib/loki/chunks";
};
};
limits_config = {
reject_old_samples = true;
reject_old_samples_max_age = "168h";
};
chunk_store_config = {
max_look_back_period = "0s";
};
table_manager = {
retention_deletes_enabled = false;
retention_period = "0s";
};
compactor = {
working_directory = "/var/lib/loki";
shared_store = "filesystem";
compactor_ring = {
kvstore = {
store = "inmemory";
};
};
};
};
};
services.promtail = {
enable = true;
configuration = {
server = {
http_listen_port = 3031;
grpc_listen_port = 0;
};
positions = {
filename = "/tmp/positions.yaml";
};
clients = [
{
url = "http://127.0.0.1:${toString config.services.loki.configuration.server.http_listen_port}/loki/api/v1/push";
}
];
scrape_configs = [
{
job_name = "journal";
journal = {
max_age = "12h";
labels = {
job = "systemd-journal";
host = "${config.networking.hostName}";
};
};
relabel_configs = [
{
source_labels = ["__journal__systemd_unit"];
target_label = "unit";
}
];
}
];
};
# extraFlags
};
services.prometheus = {
enable = true;
port = 9001;
exporters = {
node = {
enable = true;
enabledCollectors = ["systemd"];
port = 9002;
};
};
scrapeConfigs = [
{
job_name = "${config.networking.hostName}";
static_configs = [
{
targets = ["127.0.0.1:${toString config.services.prometheus.exporters.node.port}"];
}
];
}
];
};
}

View file

@ -0,0 +1,48 @@
auth_enabled: false
server:
http_listen_port: 3100
ingester:
lifecycler:
address: 0.0.0.0
ring:
kvstore:
store: inmemory
replication_factor: 1
final_sleep: 0s
chunk_idle_period: 1h # Any chunk not receiving new logs in this time will be flushed
max_chunk_age: 1h # All chunks will be flushed when they hit this age, default is 1h
chunk_target_size: 1048576 # Loki will attempt to build chunks up to 1.5MB, flushing first if chunk_idle_period or max_chunk_age is reached first
chunk_retain_period: 30s # Must be greater than index read cache TTL if using an index cache (Default index read cache TTL is 5m)
max_transfer_retries: 0 # Chunk transfers disabled
schema_config:
configs:
- from: 2020-10-24
store: boltdb-shipper
object_store: filesystem
schema: v11
index:
prefix: index_
period: 24h
storage_config:
boltdb_shipper:
active_index_directory: /var/lib/loki/boltdb-shipper-active
cache_location: /var/lib/loki/boltdb-shipper-cache
cache_ttl: 24h # Can be increased for faster performance over longer query periods, uses more disk space
shared_store: filesystem
filesystem:
directory: /var/lib/loki/chunks
limits_config:
reject_old_samples: true
reject_old_samples_max_age: 168h
chunk_store_config:
max_look_back_period: 0s
table_manager:
retention_deletes_enabled: false
retention_period: 0s

View file

@ -0,0 +1,10 @@
{
services = {
dbus.implementation = "broker";
psd = {
enable = true;
resyncTimer = "10m";
};
};
}

View file

@ -0,0 +1,3 @@
{
services.flatpak.enable = true;
}

View file

@ -0,0 +1,12 @@
{pkgs, ...}: {
services = {
dbus.packages = with pkgs; [
gcr
gnome.gnome-settings-daemon
];
gnome.gnome-keyring.enable = true;
gvfs.enable = true;
};
}

View file

@ -0,0 +1,6 @@
{
services.ollama = {
enable = true;
rocmOverrideGfx = "10.3.0";
};
}

View file

@ -0,0 +1,11 @@
{lib, ...}: {
services.pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
jack.enable = true;
pulse.enable = true;
};
hardware.pulseaudio.enable = lib.mkForce false;
}

View file

@ -0,0 +1,60 @@
{
self,
super,
root,
}: {config, ...}: let
devices = {
"nixdesk" = {
id = "XXABQZC-CO6OM2E-EMB3QIJ-NF5I3WU-CCQPPRY-7BX4ZSS-WIU4WW2-WXFWVQR";
autoAcceptFolders = true;
};
"redmi-note-10-pro" = {
id = "WJPE56U-56LPOYB-IAENGSW-IFQ4A6J-66JX73I-ONXX4PY-QXJK6IF-UZHVWA7";
autoAcceptFolders = true;
};
"hopper" = {
id = "DK3RPET-ACMULD2-TLQS6YM-XWUMS3N-JRNDNME-YTM3H4X-P7QVUKB-N3PL5QF";
autoAcceptFolders = true;
};
"school-probook" = {
id = "ZYNRRWE-SIJLPMQ-5LJDWCY-BF5VMRM-FQRFEW4-L7PKA23-HVJADTV-FZYRSQM";
autoAcceptFolders = true;
};
};
in {
services.syncthing = {
enable = true;
openDefaultPorts = true;
user = "xun";
group = "users";
dataDir = "/home/xun/.local/share/syncthing";
configDir = "/home/xun/.config/syncthing";
overrideDevices = true;
settings = {
inherit devices;
folders = {
"~/secrets" = {
devices = builtins.attrNames devices;
versioning = {
type = "trashcan";
params.cleanoutDays = "180";
};
id = "sfw9y-yusup";
};
"~/docs/xun-megavault" = {
devices = builtins.attrNames devices;
id = "1zkf-wf5r";
versioning = {
type = "simple";
params.keep = "15";
};
};
};
};
settings.options.urAccepted = -1; # disable usage reporting
settings.gui.insecureSkipHostcheck = true;
settings.gui.insecureAdminAccess = true;
};
}

View file

@ -0,0 +1,3 @@
{pkgs, ...}: {
environment.systemPackages = with pkgs; [distrobox];
}

View file

@ -0,0 +1,6 @@
{pkgs, ...}: {
environment.systemPackages = with pkgs; [docker-compose];
virtualisation.docker = {
enable = true;
};
}

View file

@ -0,0 +1,7 @@
{
virtualisation.podman = {
enable = true;
autoPrune.enable = true;
dockerSocket.enable = true;
};
}

View file

@ -0,0 +1,6 @@
_: {pkgs, ...}: {
virtualisation.libvirtd.enable = true;
programs.virt-manager.enable = true;
boot.kernelParams = ["amd_iommu=on" "iommu=pt"];
environment.systemPackages = [pkgs.libvirt];
}

View file

@ -0,0 +1,3 @@
{
virtualisation.waydroid.enable = true;
}

View file

@ -0,0 +1,11 @@
{...}: {pkgs, ...}: {
xdg.portal = {
enable = true;
extraPortals = with pkgs; [
xdg-desktop-portal-gtk
];
config = {
common.default = ["gtk"];
};
};
}