Compare commits
No commits in common. "2219fb8619a0e3ed56aba590546e284195ca8da3" and "aedd86fee7d00d755fd0ae9815215a4ec529a68d" have entirely different histories.
2219fb8619
...
aedd86fee7
19 changed files with 116 additions and 169 deletions
|
|
@ -7,6 +7,7 @@
|
|||
imports = [
|
||||
./programs/neovim/.
|
||||
./programs/git.nix
|
||||
./programs/lf/.
|
||||
./programs/zsh.nix
|
||||
./programs/tmux/.
|
||||
];
|
||||
|
|
@ -39,8 +40,6 @@
|
|||
ytfzf
|
||||
];
|
||||
|
||||
programs.yazi.enable = true;
|
||||
|
||||
programs.zoxide.enable = true;
|
||||
|
||||
programs.rbw = {
|
||||
|
|
@ -66,7 +65,10 @@
|
|||
};
|
||||
};
|
||||
|
||||
programs.fzf.enable = true;
|
||||
programs.fzf = {
|
||||
enable = true;
|
||||
enableZshIntegration = true;
|
||||
};
|
||||
|
||||
programs.direnv.enable = true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -136,9 +136,6 @@
|
|||
|
||||
"XF86AudioMute".action.spawn = ["wpctl" "set-mute" "@DEFAULT_AUDIO_SINK@" "toggle"];
|
||||
"XF86AudioMicMute".action.spawn = ["wpctl" "set-mute" "@DEFAULT_AUDIO_SOURCE@" "toggle"];
|
||||
"XF86AudioNext".action.spawn = ["playerctl" "next"];
|
||||
"XF86AudioPrev".action.spawn = ["playerctl" "previous"];
|
||||
"XF86AudioPlay".action.spawn = ["playerctl" "play-pause"];
|
||||
|
||||
"XF86MonBrightnessUp".action.spawn = ["brightness" "+10%"];
|
||||
"XF86MonBrightnessDown".action.spawn = ["brightness" "10%-"];
|
||||
|
|
|
|||
|
|
@ -42,8 +42,8 @@
|
|||
on-click = "${pkgs.pavucontrol}/bin/pavucontrol";
|
||||
};
|
||||
mpris = {
|
||||
format = "{player_icon} {title}";
|
||||
format-paused = "⏸️ {player_icon} {title}";
|
||||
format = "{player_icon} {dynamic}";
|
||||
format-paused = "⏸️ {player_icon} {dynamic}";
|
||||
player-icons = {
|
||||
default = "▶️";
|
||||
mpd = "🎵";
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
pkgs,
|
||||
inputs,
|
||||
user,
|
||||
...
|
||||
}: {
|
||||
imports = [
|
||||
|
|
@ -25,7 +26,6 @@
|
|||
youtube-music
|
||||
transmission_4-gtk
|
||||
feishin
|
||||
grayjay
|
||||
|
||||
# other
|
||||
element-desktop
|
||||
|
|
@ -68,12 +68,8 @@
|
|||
];
|
||||
};
|
||||
|
||||
programs.zed-editor = {
|
||||
programs.chromium = {
|
||||
enable = true;
|
||||
extensions = ["tsgo" "nix" "ansible" "helm"];
|
||||
userSettings = {
|
||||
vim_mode = true;
|
||||
};
|
||||
extraPackages = [pkgs.nixd pkgs.vtsls];
|
||||
package = pkgs.brave;
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
config,
|
||||
...
|
||||
}: {
|
||||
home.shell.enableZshIntegration = true;
|
||||
programs.starship.enable = true;
|
||||
programs.zsh = {
|
||||
enable = true;
|
||||
|
|
|
|||
BIN
images/demonslayer.png
Normal file
BIN
images/demonslayer.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.5 MiB |
BIN
images/nier.jpg
Normal file
BIN
images/nier.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.4 MiB |
BIN
images/nier2.jpg
Normal file
BIN
images/nier2.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.8 MiB |
BIN
images/nix-soft.png
Normal file
BIN
images/nix-soft.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 840 KiB |
|
|
@ -20,7 +20,6 @@ in
|
|||
++ [
|
||||
home-manager.nixosModules.home-manager
|
||||
sops-nix.nixosModules.sops
|
||||
../nixos/modules/predicate.nix
|
||||
{
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
|
|
|
|||
|
|
@ -28,7 +28,6 @@ in {
|
|||
scrolloff = 4;
|
||||
smoothscroll = true;
|
||||
ignorecase = true;
|
||||
winborder = "rounded";
|
||||
|
||||
undofile = true;
|
||||
undodir = lua ''vim.fn.expand("$HOME/.local/share/nvim/undo")'';
|
||||
|
|
@ -73,10 +72,10 @@ in {
|
|||
options.desc = "copy to clipboard";
|
||||
}
|
||||
{
|
||||
mode = "n";
|
||||
options.desc = "LSP Format";
|
||||
key = "<leader>cf";
|
||||
action = luaFunc "vim.lsp.buf.format({async = true;})";
|
||||
key = "<leader>ca";
|
||||
action = ''
|
||||
require("actions-preview").code_actions
|
||||
'';
|
||||
}
|
||||
{
|
||||
key = "<C-Tab>";
|
||||
|
|
@ -284,6 +283,9 @@ in {
|
|||
inlayHints = true;
|
||||
servers = {
|
||||
ts_ls.enable = true;
|
||||
eslint = {
|
||||
enable = true;
|
||||
};
|
||||
nixd = {
|
||||
enable = true;
|
||||
settings = {
|
||||
|
|
|
|||
|
|
@ -1,16 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
config,
|
||||
...
|
||||
}: {
|
||||
options = {
|
||||
allowUnfreePkgNames = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
};
|
||||
};
|
||||
|
||||
config = {
|
||||
nixpkgs.config.allowUnfreePredicate = pkg:
|
||||
builtins.elem (lib.getName pkg) config.allowUnfreePkgNames;
|
||||
};
|
||||
}
|
||||
|
|
@ -6,7 +6,8 @@
|
|||
}: let
|
||||
user = config.user;
|
||||
in {
|
||||
allowUnfreePkgNames = [
|
||||
nixpkgs.config.allowUnfreePredicate = pkg:
|
||||
builtins.elem (lib.getName pkg) [
|
||||
# nonfree vscode required for dev containers
|
||||
"vscode"
|
||||
"steam-run"
|
||||
|
|
|
|||
|
|
@ -1,5 +1,10 @@
|
|||
{...}: {
|
||||
allowUnfreePkgNames = [
|
||||
{
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: {
|
||||
nixpkgs.config.allowUnfreePredicate = pkg:
|
||||
builtins.elem (lib.getName pkg) [
|
||||
"steam"
|
||||
"steam-unwrapped"
|
||||
"steam-run"
|
||||
|
|
|
|||
|
|
@ -1,20 +1,20 @@
|
|||
{
|
||||
config,
|
||||
lib,
|
||||
user,
|
||||
...
|
||||
}: let
|
||||
{config, lib, user, ...}: let
|
||||
inherit (config) sops;
|
||||
inherit (sops) templates placeholder;
|
||||
in {
|
||||
nixpkgs.config.permittedInsecurePackages = [
|
||||
"aspnetcore-runtime-6.0.36"
|
||||
"aspnetcore-runtime-wrapped-6.0.36"
|
||||
"dotnet-sdk-6.0.428"
|
||||
"dotnet-sdk-wrapped-6.0.428"
|
||||
];
|
||||
users.users.${user}.extraGroups = ["media"];
|
||||
users.groups.media = {
|
||||
gid = 979;
|
||||
};
|
||||
services.prowlarr = {
|
||||
services.jackett = {
|
||||
enable = true;
|
||||
};
|
||||
services.flaresolverr.enable = true;
|
||||
services.lidarr = {
|
||||
enable = true;
|
||||
group = "media";
|
||||
|
|
@ -27,13 +27,21 @@ in {
|
|||
enable = true;
|
||||
group = "media";
|
||||
};
|
||||
services.bazarr = {
|
||||
enable = true;
|
||||
group = "media";
|
||||
};
|
||||
services.jellyseerr.enable = true;
|
||||
sops.secrets.sonarr-sslkey = {
|
||||
sopsFile = ../../certs/alpine.prawn-justice.ts.net.key;
|
||||
format = "binary";
|
||||
owner = "nginx";
|
||||
};
|
||||
# this was fun to figure out, but pointless atm.
|
||||
services.nginx.virtualHosts."alpine.prawn-justice.ts.net" = {
|
||||
forceSSL = true;
|
||||
sslCertificateKey = config.sops.secrets.sonarr-sslkey.path;
|
||||
sslCertificate = ../../certs/alpine.prawn-justice.ts.net.crt;
|
||||
};
|
||||
# probably easier if i just put this in a nixos-container
|
||||
virtualisation.oci-containers.containers.transmission = {
|
||||
autoStart = false;
|
||||
image = "docker.io/haugene/transmission-openvpn:5.3.2";
|
||||
ports = ["9091:9091"];
|
||||
volumes = [
|
||||
|
|
@ -71,43 +79,4 @@ in {
|
|||
OPENVPN_PASSWORD=${placeholder."transmission/auth/OPENVPN_PASSWORD"}
|
||||
'';
|
||||
};
|
||||
|
||||
sops.secrets."sonarr/api_key" = {};
|
||||
sops.secrets."radarr/api_key" = {};
|
||||
sops.secrets."prowlarr/api_key" = {};
|
||||
services.prometheus.exporters.exportarr-sonarr = {
|
||||
enable = true;
|
||||
url = "http://localhost:${toString config.services.sonarr.settings.server.port}/sonarr";
|
||||
port = 9708;
|
||||
apiKeyFile = config.sops.secrets."sonarr/api_key".path;
|
||||
};
|
||||
services.prometheus.exporters.exportarr-radarr = {
|
||||
enable = true;
|
||||
url = "http://localhost:${toString config.services.radarr.settings.server.port}";
|
||||
port = 9709;
|
||||
apiKeyFile = config.sops.secrets."radarr/api_key".path;
|
||||
};
|
||||
services.prometheus.exporters.exportarr-prowlarr = {
|
||||
enable = true;
|
||||
url = "http://localhost:${toString config.services.prowlarr.settings.server.port}";
|
||||
port = 9710;
|
||||
apiKeyFile = config.sops.secrets."prowlarr/api_key".path;
|
||||
};
|
||||
services.prometheus = {
|
||||
enable = true;
|
||||
scrapeConfigs = [
|
||||
{
|
||||
job_name = "exportarr";
|
||||
static_configs = [
|
||||
{
|
||||
targets = [
|
||||
"localhost:${toString config.services.prometheus.exporters.exportarr-radarr.port}"
|
||||
"localhost:${toString config.services.prometheus.exporters.exportarr-sonarr.port}"
|
||||
"localhost:${toString config.services.prometheus.exporters.exportarr-prowlarr.port}"
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
|
|
|
|||
|
|
@ -29,8 +29,7 @@ in {
|
|||
];
|
||||
rules = [
|
||||
(builtins.toJSON {
|
||||
groups = [
|
||||
{
|
||||
groups = [{
|
||||
name = "node";
|
||||
rules = [
|
||||
{
|
||||
|
|
@ -42,21 +41,16 @@ in {
|
|||
expr = ''node_filesystem_avail_bytes{fstype=~"ext4|btrfs"} < ${toString (50 * 1024 * 1024 * 1024)}'';
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
}];
|
||||
})
|
||||
];
|
||||
alertmanagers = [
|
||||
{
|
||||
static_configs = [
|
||||
{
|
||||
alertmanagers = [ {
|
||||
static_configs = [ {
|
||||
targets = [
|
||||
"localhost:9093"
|
||||
];
|
||||
}
|
||||
];
|
||||
}
|
||||
];
|
||||
} ];
|
||||
} ];
|
||||
exporters = {
|
||||
postgres = {
|
||||
enable = true;
|
||||
|
|
@ -64,35 +58,39 @@ in {
|
|||
};
|
||||
};
|
||||
alertmanager = {
|
||||
enable = false;
|
||||
enable = true;
|
||||
configuration = {
|
||||
route = {
|
||||
receiver = "alertmanager-ntfy";
|
||||
routes = [{
|
||||
matchers = [
|
||||
''node_filesystem_device_error != 0''
|
||||
];
|
||||
receivers = [{
|
||||
name = "ntfy";
|
||||
webhook_configs = [{
|
||||
url = "http://localhost${config.services.ntfy-sh.settings.listen-http}/alert/trigger";
|
||||
}];
|
||||
}];
|
||||
route = {
|
||||
receiver = "ntfy";
|
||||
# routes = [{
|
||||
# matchers = [
|
||||
# ''node_filesystem_device_error != 0''
|
||||
# ];
|
||||
# }];
|
||||
};
|
||||
};
|
||||
};
|
||||
alertmanager-ntfy = {
|
||||
enable = false;
|
||||
settings = {
|
||||
ntfy = {
|
||||
baseurl = "https://up.tristans.cloud";
|
||||
notification = {
|
||||
topic = "alert";
|
||||
# alertmanager-ntfy = {
|
||||
# enable = true;
|
||||
# settings = {
|
||||
# ntfy = {
|
||||
# baseurl = "https://up.tristans.cloud";
|
||||
# notification = {
|
||||
# topic = "alert";
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
# };
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
services.grafana.provision.datasources.settings.datasources = [
|
||||
{
|
||||
services.grafana.provision.datasources.settings.datasources = [{
|
||||
name = "Prometheus";
|
||||
type = "prometheus";
|
||||
url = "http://localhost:${toString prometheus.port}";
|
||||
}
|
||||
];
|
||||
}];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@
|
|||
"map to guest" = "bad user";
|
||||
};
|
||||
"Music" = {
|
||||
"path" = "/mnt/storage/media/Music";
|
||||
"path" = "/mnt/storage/media/Public/";
|
||||
"browseable" = "yes";
|
||||
"read only" = "no";
|
||||
"guest ok" = "yes";
|
||||
|
|
|
|||
|
|
@ -102,8 +102,4 @@
|
|||
services.udev.extraRules = ''
|
||||
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="3434", ATTRS{idProduct}=="0e60", MODE="0660", GROUP="users", TAG+="uaccess", TAG+="udev-acl"
|
||||
'';
|
||||
|
||||
allowUnfreePkgNames = [
|
||||
"grayjay"
|
||||
];
|
||||
}
|
||||
|
|
|
|||
|
|
@ -33,13 +33,11 @@ transmission:
|
|||
OPENVPN_USERNAME: ENC[AES256_GCM,data:RQ+hGLE6YEgN/aaa2TLpkg==,iv:oG794WxGe0t1ZI0PyC45ZgCPA0Ar2m/dSVDdMYBKJvY=,tag:CGnEu8ds0s4aH4ImCrNWNQ==,type:str]
|
||||
OPENVPN_PASSWORD: ENC[AES256_GCM,data:Jw==,iv:uGAaXFWfpSaeqY7yC9cR9iqblH3E3hudnrnIlOvdRCg=,tag:P1XJ2SBY82z9YZP9J/n5SA==,type:str]
|
||||
namecheap: ENC[AES256_GCM,data:PTEQK8+G1FfmvRk9IxrAZjCAhiKdV0AA+JxaJRZvbHU=,iv:xTrJzPooM0xzs9xgkNGWKRzRHeIIhMGa8EYW2/41ZvA=,tag:KHdLKuip439QNeAiBwreqg==,type:str]
|
||||
sonarr:
|
||||
api_key: ENC[AES256_GCM,data:mBq+ndbhDtErh/sytTybutes7btHMIkg6wT9C7t4M9I=,iv:JicYavIQJpnmYbFpO+AVOTwrp2DeOB5xWBROwSYNF4Y=,tag:xmlaKpdn8A9s/HpdsBR+0g==,type:str]
|
||||
radarr:
|
||||
api_key: ENC[AES256_GCM,data:iHDX/wLjde/6dj6+ORJaAnFCzXn82DXUWy3yh6fkmiQ=,iv:NcgRPa6Cy9tKLKYJ4OGr2cdW5smvpHbiXtBYJlEqOfw=,tag:BJ1YeMLXrhuDrZKsB5Z4YQ==,type:str]
|
||||
prowlarr:
|
||||
api_key: ENC[AES256_GCM,data:p1KRHilxv8qSy8NEKQlBy8ppXDxmQDeZXAzRYyc7psA=,iv:HyK3YEKLvE01fLCkxR89G96uViAegIPi7Xb43mFeWlQ=,tag:B8pNOT9+2rPUqVL+rTDRHg==,type:str]
|
||||
sops:
|
||||
kms: []
|
||||
gcp_kms: []
|
||||
azure_kv: []
|
||||
hc_vault: []
|
||||
age:
|
||||
- recipient: age106vffwu4y8cx90y0rtzajgpafl8jq7ty5hf6pur2gjsuq3g2lf5qjmdq0q
|
||||
enc: |
|
||||
|
|
@ -50,7 +48,8 @@ sops:
|
|||
S3ZwcHhkdEEvY0pINDloand5S0NycHcKEpIt5EeIKhLQK7f74sWVN/x5gzh/Jq7x
|
||||
UUN5QtysRbWVGnWRxdNB8LIMjDJY9jRojycdQfSNebaz5ZLjEp8dZQ==
|
||||
-----END AGE ENCRYPTED FILE-----
|
||||
lastmodified: "2025-08-19T18:47:49Z"
|
||||
mac: ENC[AES256_GCM,data:xgsPA3TDBZ4C6aQVYoamOz2fi2iEaiUtT2eOFUnldBB4Wt+YNM4b4RVavXnlND1vOat9FtRzjmvI1rlkxoPV95tZz4B4QDfH/LUBWCwiOnZdLwrd4W0VWJLSxcX/hAmZ7qnGMpA7/G/0d45A2y0yMHJ3KGfqTsCikE/MPwrQbkg=,iv:1GEIIYygolYOGfS2LG1CmZCnacLaeOfBw+TGeh713DQ=,tag:E7mrU7xK2Zppq9QCwKdveQ==,type:str]
|
||||
lastmodified: "2025-01-18T02:00:29Z"
|
||||
mac: ENC[AES256_GCM,data:x3J0tRfNynM2qlB4YUUAUMYI/94opN1kJ1j0kOyeZ1GZHx+EA4dQZif4nPQOERo+5xRt8C4YXVDZEnCjD1TpQE6LYik0n0iY+84sY5fSr2SYiXzq2P72Tk7BzBklI9/zjndeJLJbydTJDMzOCvdEWIfHYZsHODnKXBO9pYwjAqU=,iv:z+QD93t72S2w0CqMV5sQk9oK9LMnQAxyaiExmqEcSp0=,tag:dbtyHUQ+n2EQvHEkQa7zrw==,type:str]
|
||||
pgp: []
|
||||
unencrypted_suffix: _unencrypted
|
||||
version: 3.10.2
|
||||
version: 3.9.2
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue