22 Commits

Author SHA1 Message Date
github-actions[bot]
c3596eb0d1 automated: Update flake.lock
All checks were successful
Check flake.lock / Check health of `flake.lock` (pull_request) Successful in 6s
Check Nix flake / Perform Nix flake checks (pull_request) Successful in 3m5s
Auto-generated by [update.yml][1] with the help of
[create-pull-request][2].

[1]: https://nayeonie.com/ahuston-0/nix-dotfiles/src/branch/main/.github/workflows/flake-update.yml
[2]: https://forgejo.stefka.eu/jiriks74/create-pull-request
2025-12-22 12:09:22 +00:00
625d12d497 Merge pull request 'add hostnames, remove refs' (#154) from feature/notifiarr-fixes into main
All checks were successful
Check flake.lock / Check health of `flake.lock` (push) Successful in 14s
Check Nix flake / Perform Nix flake checks (push) Successful in 3m3s
Update flakes / update_lockfile (push) Successful in 9m59s
Reviewed-on: #154
2025-12-21 23:04:24 -05:00
f08d7ac1d2 add hostnames, remove refs
All checks were successful
Check flake.lock / Check health of `flake.lock` (pull_request) Successful in 8s
Check Nix flake / Perform Nix flake checks (pull_request) Successful in 3m4s
2025-12-21 22:57:28 -05:00
726f9401cd Merge pull request 'automated: Update flake.lock' (#143) from update-flake-lock into main
All checks were successful
Check flake.lock / Check health of `flake.lock` (push) Successful in 7s
Check Nix flake / Perform Nix flake checks (push) Successful in 3m33s
Update flakes / update_lockfile (push) Successful in 10m15s
Reviewed-on: #143
2025-12-19 20:57:06 -05:00
github-actions[bot]
8b5487b104 automated: Update flake.lock
All checks were successful
Check flake.lock / Check health of `flake.lock` (pull_request) Successful in 7s
Check Nix flake / Perform Nix flake checks (pull_request) Successful in 3m37s
Auto-generated by [update.yml][1] with the help of
[create-pull-request][2].

[1]: https://nayeonie.com/ahuston-0/nix-dotfiles/src/branch/main/.github/workflows/flake-update.yml
[2]: https://forgejo.stefka.eu/jiriks74/create-pull-request
2025-12-19 19:29:42 +00:00
9bb701184a Merge pull request 'feature/notifiarr-fixes' (#152) from feature/notifiarr-fixes into main
All checks were successful
Check flake.lock / Check health of `flake.lock` (push) Successful in 8s
Check Nix flake / Perform Nix flake checks (push) Successful in 3m36s
Reviewed-on: #152
2025-12-19 09:02:20 -05:00
3732ecb53e fix nextcloud setup
All checks were successful
Check flake.lock / Check health of `flake.lock` (pull_request) Successful in 8s
Check Nix flake / Perform Nix flake checks (pull_request) Successful in 3m44s
2025-12-19 08:58:30 -05:00
0353ab3259 update arr notes 2025-12-19 08:58:30 -05:00
d1c46afe36 initial postgres arr migration 2025-12-19 08:58:30 -05:00
fefb534245 fix jelly 2025-12-19 08:58:30 -05:00
0466ff66f3 fix jelly 2025-12-19 08:58:30 -05:00
c982e13a60 fix jelly 2025-12-19 08:58:30 -05:00
23582b8550 add arrnet 2025-12-19 08:58:30 -05:00
6f6641b5a0 notifiarr port 2025-12-19 08:58:30 -05:00
2304b29699 Merge pull request 'upgrade artemision' (#151) from feature/artemision-upgrade into main
All checks were successful
Check flake.lock / Check health of `flake.lock` (push) Successful in 10s
Check Nix flake / Perform Nix flake checks (push) Successful in 3m42s
Update flakes / update_lockfile (push) Successful in 10m47s
Reviewed-on: #151
2025-12-19 03:24:57 -05:00
ef7d7c596e upgrade artemision 2025-12-19 03:24:57 -05:00
95e7cadf70 Merge pull request 'upgrade artemision' (#150) from feature/artemision-upgrade into main
All checks were successful
Check flake.lock / Check health of `flake.lock` (push) Successful in 9s
Check Nix flake / Perform Nix flake checks (push) Successful in 3m36s
Reviewed-on: #150
2025-12-19 03:11:46 -05:00
84a21b13fb upgrade artemision
All checks were successful
Check flake.lock / Check health of `flake.lock` (pull_request) Successful in 11s
Check Nix flake / Perform Nix flake checks (pull_request) Successful in 3m34s
2025-12-19 03:07:34 -05:00
3a5d08d457 Merge pull request 'change checkPhase to preCheck' (#149) from feature/notifiarr-fixes into main
Some checks failed
Check flake.lock / Check health of `flake.lock` (push) Successful in 13s
Check Nix flake / Perform Nix flake checks (push) Failing after 16m43s
Update flakes / update_lockfile (push) Successful in 10m30s
Reviewed-on: #149
2025-12-07 22:21:19 -05:00
a3a80940f1 change checkPhase to preCheck
All checks were successful
Check flake.lock / Check health of `flake.lock` (pull_request) Successful in 16s
Check Nix flake / Perform Nix flake checks (pull_request) Successful in 3m21s
2025-12-07 22:17:52 -05:00
f4b20c3bd4 Merge pull request 'add notifier sops info' (#148) from feature/notifiarr-fixes into main
All checks were successful
Check flake.lock / Check health of `flake.lock` (push) Successful in 11s
Check Nix flake / Perform Nix flake checks (push) Successful in 3m2s
Reviewed-on: #148
2025-12-07 22:12:33 -05:00
49219b0265 add notifier sops info
All checks were successful
Check flake.lock / Check health of `flake.lock` (pull_request) Successful in 11s
Check Nix flake / Perform Nix flake checks (pull_request) Successful in 3m4s
2025-12-07 22:08:15 -05:00
15 changed files with 179 additions and 91 deletions

80
flake.lock generated
View File

@@ -21,17 +21,17 @@
"base16-fish": { "base16-fish": {
"flake": false, "flake": false,
"locked": { "locked": {
"lastModified": 1754405784, "lastModified": 1765809053,
"narHash": "sha256-l9xHIy+85FN+bEo6yquq2IjD1rSg9fjfjpyGP1W8YXo=", "narHash": "sha256-XCUQLoLfBJ8saWms2HCIj4NEN+xNsWBlU1NrEPcQG4s=",
"owner": "tomyun", "owner": "tomyun",
"repo": "base16-fish", "repo": "base16-fish",
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561", "rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
"type": "github" "type": "github"
}, },
"original": { "original": {
"owner": "tomyun", "owner": "tomyun",
"repo": "base16-fish", "repo": "base16-fish",
"rev": "23ae20a0093dca0d7b39d76ba2401af0ccf9c561", "rev": "86cbea4dca62e08fb7fd83a70e96472f92574782",
"type": "github" "type": "github"
} }
}, },
@@ -76,11 +76,11 @@
}, },
"locked": { "locked": {
"dir": "pkgs/firefox-addons", "dir": "pkgs/firefox-addons",
"lastModified": 1765685099, "lastModified": 1766376221,
"narHash": "sha256-D4VYn8NN0sLOzoo4geYDiV/T/Ilor78CaS50gNq6Ep0=", "narHash": "sha256-lgVbMWgkWTE9a2Ndgz0Y+QYW/gBzNyQ/IYA3j3MzVwU=",
"owner": "rycee", "owner": "rycee",
"repo": "nur-expressions", "repo": "nur-expressions",
"rev": "51712b3d3481dfaeef9a5f8b293ea1aa04a61cdb", "rev": "bcbdb535178d3c0fd6aba19f41b82858793586f5",
"type": "gitlab" "type": "gitlab"
}, },
"original": { "original": {
@@ -125,11 +125,11 @@
"nixpkgs-lib": "nixpkgs-lib" "nixpkgs-lib": "nixpkgs-lib"
}, },
"locked": { "locked": {
"lastModified": 1765495779, "lastModified": 1765835352,
"narHash": "sha256-MhA7wmo/7uogLxiewwRRmIax70g6q1U/YemqTGoFHlM=", "narHash": "sha256-XswHlK/Qtjasvhd1nOa1e8MgZ8GS//jBoTqWtrS1Giw=",
"owner": "hercules-ci", "owner": "hercules-ci",
"repo": "flake-parts", "repo": "flake-parts",
"rev": "5635c32d666a59ec9a55cab87e898889869f7b71", "rev": "a34fae9c08a15ad73f295041fec82323541400a9",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -242,11 +242,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1765682243, "lastModified": 1766387499,
"narHash": "sha256-yeCxFV/905Wr91yKt5zrVvK6O2CVXWRMSrxqlAZnLp0=", "narHash": "sha256-AjK3/UKDzeXFeYNLVBaJ3+HLE9he1g5UrlNd4/BM3eA=",
"owner": "nix-community", "owner": "nix-community",
"repo": "home-manager", "repo": "home-manager",
"rev": "58bf3ecb2d0bba7bdf363fc8a6c4d49b4d509d03", "rev": "527ad07e6625302b648ed3b28c34b62a79bd103e",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -283,11 +283,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1765113580, "lastModified": 1766066098,
"narHash": "sha256-b8YOwGDFprkQJjXsKGuSNS1pWe8w4cUW36YxlUelNpU=", "narHash": "sha256-d3HmUbmfTDIt9mXEHszqyo2byqQMoyJtUJCZ9U1IqHQ=",
"owner": "hyprwm", "owner": "hyprwm",
"repo": "contrib", "repo": "contrib",
"rev": "db18f83bebbc2cf43a21dbb26cd99aabe672d923", "rev": "41dbcac8183bb1b3a4ade0d8276b2f2df6ae4690",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -440,11 +440,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1765680822, "lastModified": 1766370075,
"narHash": "sha256-e5YH/ypoOYwmT7mnK1NzxHMg9XMIOr449TdCivh1cHs=", "narHash": "sha256-gbhR8+gNrhmYxKaNJpTjFivuibr3ZdlB5eU0a8yE36I=",
"owner": "NuschtOS", "owner": "NuschtOS",
"repo": "nixos-modules", "repo": "nixos-modules",
"rev": "457cb20476534590ea8911a6cc5f614fcc683528", "rev": "db6f2a33500dadb81020b6e5d4281b4820d1b862",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -471,11 +471,11 @@
}, },
"nixpkgs-lib": { "nixpkgs-lib": {
"locked": { "locked": {
"lastModified": 1761765539, "lastModified": 1765674936,
"narHash": "sha256-b0yj6kfvO8ApcSE+QmA6mUfu8IYG6/uU28OFn4PaC8M=", "narHash": "sha256-k00uTP4JNfmejrCLJOwdObYC9jHRrr/5M/a/8L2EIdo=",
"owner": "nix-community", "owner": "nix-community",
"repo": "nixpkgs.lib", "repo": "nixpkgs.lib",
"rev": "719359f4562934ae99f5443f20aa06c2ffff91fc", "rev": "2075416fcb47225d9b68ac469a5c4801a9c4dd85",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -502,11 +502,11 @@
}, },
"nixpkgs_2": { "nixpkgs_2": {
"locked": { "locked": {
"lastModified": 1765472234, "lastModified": 1766070988,
"narHash": "sha256-9VvC20PJPsleGMewwcWYKGzDIyjckEz8uWmT0vCDYK0=", "narHash": "sha256-G/WVghka6c4bAzMhTwT2vjLccg/awmHkdKSd2JrycLc=",
"owner": "nixos", "owner": "nixos",
"repo": "nixpkgs", "repo": "nixpkgs",
"rev": "2fbfb1d73d239d2402a8fe03963e37aab15abe8b", "rev": "c6245e83d836d0433170a16eb185cefe0572f8b8",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -552,11 +552,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1765464257, "lastModified": 1765911976,
"narHash": "sha256-dixPWKiHzh80PtD0aLuxYNQ0xP+843dfXG/yM3OzaYQ=", "narHash": "sha256-t3T/xm8zstHRLx+pIHxVpQTiySbKqcQbK+r+01XVKc0=",
"owner": "cachix", "owner": "cachix",
"repo": "git-hooks.nix", "repo": "git-hooks.nix",
"rev": "09e45f2598e1a8499c3594fe11ec2943f34fe509", "rev": "b68b780b69702a090c8bb1b973bab13756cc7a27",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -596,11 +596,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1765680428, "lastModified": 1766371695,
"narHash": "sha256-fyPmRof9SZeI14ChPk5rVPOm7ISiiGkwGCunkhM+eUg=", "narHash": "sha256-W7CX9vy7H2Jj3E8NI4djHyF8iHSxKpb2c/7uNQ/vGFU=",
"owner": "oxalica", "owner": "oxalica",
"repo": "rust-overlay", "repo": "rust-overlay",
"rev": "eb3898d8ef143d4bf0f7f2229105fc51c7731b2f", "rev": "d81285ba8199b00dc31847258cae3c655b605e8c",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -616,11 +616,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1765684837, "lastModified": 1766289575,
"narHash": "sha256-fJCnsYcpQxxy/wit9EBOK33c0Z9U4D3Tvo3gf2mvHos=", "narHash": "sha256-BOKCwOQQIP4p9z8DasT5r+qjri3x7sPCOq+FTjY8Z+o=",
"owner": "Mic92", "owner": "Mic92",
"repo": "sops-nix", "repo": "sops-nix",
"rev": "94d8af61d8a603d33d1ed3500a33fcf35ae7d3bc", "rev": "9836912e37aef546029e48c8749834735a6b9dad",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -650,11 +650,11 @@
"tinted-zed": "tinted-zed" "tinted-zed": "tinted-zed"
}, },
"locked": { "locked": {
"lastModified": 1765474444, "lastModified": 1766360762,
"narHash": "sha256-sDG+c73xEnIw1pFNRWffKDnTWiTuyZiEP+Iub0D3mWA=", "narHash": "sha256-g0aHXl+htuBpBpYxeXemocARRr1xtyNPzIIV1/tofAc=",
"owner": "danth", "owner": "danth",
"repo": "stylix", "repo": "stylix",
"rev": "dd14de4432a94e93e10d0159f1d411487e435e1e", "rev": "c53b4a548a75895c69811a719bb4ed750ea41a17",
"type": "github" "type": "github"
}, },
"original": { "original": {
@@ -787,11 +787,11 @@
] ]
}, },
"locked": { "locked": {
"lastModified": 1759739742, "lastModified": 1765936672,
"narHash": "sha256-nTNmgO71tD3jJGpr9yIS1atOBJp8K1pwZOxnEdS+aAk=", "narHash": "sha256-wxkeSF0/3FI0HSBKhZ2mlAAmFviNrZzdhjHqTfWP6h0=",
"owner": "Toqozz", "owner": "Toqozz",
"repo": "wired-notify", "repo": "wired-notify",
"rev": "6a96aa2066d8ad945f2323b63dc217081ef51168", "rev": "491197a6a5ef9c65a85c3eb1531786f32ffff5b3",
"type": "github" "type": "github"
}, },
"original": { "original": {

View File

@@ -18,7 +18,7 @@ let
}; };
prs = readJSONFile pulls; prs = readJSONFile pulls;
refs = readJSONFile branches; #refs = readJSONFile branches;
# template for creating a job # template for creating a job
makeJob = makeJob =
@@ -47,19 +47,19 @@ let
giteaHost = "ssh://gitea@nayeonie.com:2222"; giteaHost = "ssh://gitea@nayeonie.com:2222";
repo = "ahuston-0/nix-dotfiles"; repo = "ahuston-0/nix-dotfiles";
# # Create a hydra job for a branch # # Create a hydra job for a branch
jobOfRef = #jobOfRef =
name: # name:
{ ref, ... }: # { ref, ... }:
if ((builtins.match "^refs/heads/(.*)$" ref) == null) then # if ((builtins.match "^refs/heads/(.*)$" ref) == null) then
null # null
else # else
{ # {
name = builtins.replaceStrings [ "/" ] [ "-" ] "branch-${name}"; # name = builtins.replaceStrings [ "/" ] [ "-" ] "branch-${name}";
value = makeJob { # value = makeJob {
description = "Branch ${name}"; # description = "Branch ${name}";
flake = "git+${giteaHost}/${repo}?ref=${ref}"; # flake = "git+${giteaHost}/${repo}?ref=${ref}";
}; # };
}; # };
# Create a hydra job for a PR # Create a hydra job for a PR
jobOfPR = id: info: { jobOfPR = id: info: {
@@ -77,12 +77,12 @@ let
# wrapper function for reading json from file # wrapper function for reading json from file
readJSONFile = f: builtins.fromJSON (builtins.readFile f); readJSONFile = f: builtins.fromJSON (builtins.readFile f);
# remove null values from a set, in-case of branches that don't exist # remove null values from a set, in-case of branches that don't exist
mapFilter = f: l: builtins.filter (x: (x != null)) (map f l); #mapFilter = f: l: builtins.filter (x: (x != null)) (map f l);
# Create job set from PRs and branches # Create job set from PRs and branches
jobs = makeSpec ( jobs = makeSpec (
builtins.listToAttrs (map ({ name, value }: jobOfPR name value) (attrsToList prs)) builtins.listToAttrs (map ({ name, value }: jobOfPR name value) (attrsToList prs))
// builtins.listToAttrs (mapFilter ({ name, value }: jobOfRef name value) (attrsToList refs)) #// builtins.listToAttrs (mapFilter ({ name, value }: jobOfRef name value) (attrsToList refs))
); );
in in
{ {

View File

@@ -1,6 +1,5 @@
{ lib, pkgs, ... }: { lib, pkgs, ... }:
{ {
nixpkgs.config.allowImportrFromDerivation = true;
nix = { nix = {
#package = pkgs.nixVersions.latest; #package = pkgs.nixVersions.latest;
diffSystem = true; diffSystem = true;

View File

@@ -52,7 +52,7 @@
}; };
}; };
calibre-server = { calibre-server = {
enable = true; enable = false;
user = "calibre-web"; user = "calibre-web";
group = "calibre-web"; group = "calibre-web";

View File

@@ -7,7 +7,7 @@
server = false; server = false;
users = [ "alice" ]; users = [ "alice" ];
modules = [ modules = [
inputs.nixos-hardware.nixosModules.framework-16-7040-amd inputs.nixos-hardware.nixosModules.framework-16-amd-ai-300-series
inputs.stylix.nixosModules.stylix inputs.stylix.nixosModules.stylix
{ {
environment.systemPackages = [ environment.systemPackages = [

View File

@@ -100,7 +100,7 @@
# (the default) this is the recommended approach. When using systemd-networkd it's # (the default) this is the recommended approach. When using systemd-networkd it's
# still possible to use this option, but it's recommended to use it in conjunction # still possible to use this option, but it's recommended to use it in conjunction
# with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`. # with explicit per-interface declarations with `networking.interfaces.<interface>.useDHCP`.
networking.interfaces.wlp4s0.useDHCP = lib.mkDefault true; networking.interfaces.wlp191s0.useDHCP = lib.mkDefault true;
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux"; nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware; hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;

View File

@@ -3,17 +3,17 @@
networking.nameservers = [ networking.nameservers = [
"9.9.9.9" "9.9.9.9"
"1.1.1.1" "1.1.1.1"
"192.168.76.1" #"192.168.76.1"
]; ];
services.resolved = { #services.resolved = {
enable = true; # enable = true;
dnssec = "false"; # dnssec = "false";
domains = [ "~." ]; # domains = [ "~." ];
fallbackDns = [ # fallbackDns = [
"1.1.1.1#one.one.one.one" # "1.1.1.1#one.one.one.one"
"1.0.0.1#one.one.one.one" # "1.0.0.1#one.one.one.one"
]; # ];
dnsovertls = "true"; # dnsovertls = "true";
}; #};
} }

View File

@@ -1,84 +1,144 @@
{ {
config, config,
lib, lib,
pkgs,
... ...
}: }:
let let
vars = import ../vars.nix; vars = import ../vars.nix;
arr_postgres_config =
container_type:
let
ctype = lib.strings.toUpper container_type;
in
{
"${ctype}__POSTGRES__HOST" = "host.docker.internal";
"${ctype}__POSTGRES__USER" = "SOPS_ONLY";
"${ctype}__POSTGRES__PASSWORD" = "SOPS_ONLY";
"${ctype}__POSTGRES__PORT" = toString config.services.postgresql.settings.port;
};
in in
{ {
# Notes:
# Jellyplex-watched - sync watch status between plex and jellyfin as long as users and library is the same
# Tdarr - for distributed transcoding?
#
# list of containers supporting postgres:
# bazarr:
# POSTGRES_ENABED: true
# POSTGRES_HOST:
# POSTGRES_PORT:
# POSTGRES_DATABASE: bazarr
# POSTGRES_USERNAME: arr
# POSTGRES_PASSWORD: sops
# prowlarr:
# see ctype
# radarr:
# see ctype
# sonarr:
# see ctype
# lidarr:
# see ctype
# jellyseerr:
# DB_TYPE: postgres
# DB_HOST:
# DB_PORT:
# DB_USER: arr
# DB_PASS: sops
# DB_NAME: jellyseerr
#
virtualisation.oci-containers.containers = { virtualisation.oci-containers.containers = {
bazarr = { bazarr = {
image = "ghcr.io/linuxserver/bazarr:latest"; image = "ghcr.io/linuxserver/bazarr:latest";
ports = [ "6767:6767" ]; ports = [ "6767:6767" ];
hostname = "bazarr";
environment = { environment = {
PUID = "600"; PUID = "600";
PGID = "100"; PGID = "100";
TZ = "America/New_York"; TZ = "America/New_York";
POSTGRES_HOST = "host.docker.internal";
POSTGRES_USER = "SOPS_ONLY";
POSTGRES_PASSWORD = "SOPS_ONLY";
POSTGRES_PORT = toString config.services.postgresql.settings.port;
}; };
volumes = [ volumes = [
"${vars.primary_docker}/bazarr:/config" "${vars.primary_docker}/bazarr:/config"
"${vars.primary_plex_storage}/data:/data" "${vars.primary_plex_storage}/data:/data"
]; ];
extraOptions = [
"--network=arrnet"
"--add-host=host.docker.internal:host-gateway"
];
autoStart = true; autoStart = true;
}; };
prowlarr = { prowlarr = {
image = "ghcr.io/linuxserver/prowlarr:latest"; image = "ghcr.io/linuxserver/prowlarr:latest";
ports = [ "9696:9696" ]; ports = [ "9696:9696" ];
hostname = "prowlarr";
environment = { environment = {
PUID = "600"; PUID = "600";
PGID = "100"; PGID = "100";
TZ = "America/New_York"; TZ = "America/New_York";
}; }
// arr_postgres_config "prowlarr";
extraOptions = [ "--network=arrnet" ];
volumes = [ "${vars.primary_docker}/prowlarr:/config" ]; volumes = [ "${vars.primary_docker}/prowlarr:/config" ];
autoStart = true; autoStart = true;
}; };
radarr = { radarr = {
image = "ghcr.io/linuxserver/radarr:latest"; image = "ghcr.io/linuxserver/radarr:latest";
ports = [ "7878:7878" ]; ports = [ "7878:7878" ];
hostname = "radarr";
environment = { environment = {
PUID = "600"; PUID = "600";
PGID = "100"; PGID = "100";
TZ = "America/New_York"; TZ = "America/New_York";
}; }
// arr_postgres_config "radarr";
volumes = [ volumes = [
"${vars.primary_docker}/radarr:/config" "${vars.primary_docker}/radarr:/config"
"${vars.primary_plex_storage}/data:/data" "${vars.primary_plex_storage}/data:/data"
]; ];
extraOptions = [ "--network=arrnet" ];
autoStart = true; autoStart = true;
}; };
sonarr = { sonarr = {
image = "ghcr.io/linuxserver/sonarr:latest"; image = "ghcr.io/linuxserver/sonarr:latest";
ports = [ "8989:8989" ]; ports = [ "8989:8989" ];
hostname = "sonarr";
environment = { environment = {
PUID = "600"; PUID = "600";
PGID = "100"; PGID = "100";
TZ = "America/New_York"; TZ = "America/New_York";
}; }
// arr_postgres_config "sonarr";
volumes = [ volumes = [
"${vars.primary_docker}/sonarr:/config" "${vars.primary_docker}/sonarr:/config"
"${vars.primary_plex_storage}/data:/data" "${vars.primary_plex_storage}/data:/data"
]; ];
extraOptions = [ "--network=arrnet" ];
autoStart = true; autoStart = true;
}; };
lidarr = { lidarr = {
image = "ghcr.io/linuxserver/lidarr:latest"; image = "ghcr.io/linuxserver/lidarr:latest";
ports = [ "8686:8686" ]; ports = [ "8686:8686" ];
hostname = "lidarr";
environment = { environment = {
PUID = "600"; PUID = "600";
PGID = "100"; PGID = "100";
TZ = "America/New_York"; TZ = "America/New_York";
}; }
// arr_postgres_config "lidarr";
volumes = [ volumes = [
"${vars.primary_docker}/lidarr:/config" "${vars.primary_docker}/lidarr:/config"
"${vars.primary_plex_storage}/data:/data" "${vars.primary_plex_storage}/data:/data"
]; ];
extraOptions = [ "--network=arrnet" ];
autoStart = true; autoStart = true;
}; };
unpackerr = { unpackerr = {
image = "golift/unpackerr:latest"; image = "golift/unpackerr:latest";
user = "600:100"; user = "600:100";
hostname = "unpackerr";
environment = { environment = {
TZ = "America/New_York"; TZ = "America/New_York";
}; };
@@ -86,36 +146,62 @@ in
"${vars.primary_docker}/unpackerr:/config" "${vars.primary_docker}/unpackerr:/config"
"${vars.primary_plex_storage}:/data" "${vars.primary_plex_storage}:/data"
]; ];
extraOptions = [ "--network=arrnet" ];
autoStart = true; autoStart = true;
}; };
notifiarr = { notifiarr = {
image = "golift/notifiarr:latest"; image = "golift/notifiarr:latest";
ports = [ "5454:5454" ];
user = "600:100"; user = "600:100";
hostname = "notifiarr";
environment = { environment = {
TZ = "America/New_York"; TZ = "America/New_York";
}; }
// arr_postgres_config "notifiarr";
environmentFiles = [ config.sops.secrets."docker/notifiarr".path ];
volumes = [ volumes = [
"${vars.primary_docker}/notifiarr:/config" "${vars.primary_docker}/notifiarr:/config"
"${vars.primary_plex_storage}:/data" "${vars.primary_plex_storage}:/data"
]; ];
extraOptions = [ "--network=arrnet" ];
autoStart = true; autoStart = true;
}; };
overseerr = { jellyseerr = {
image = "fallenbagel/jellyseerr:preview-seerr"; image = "fallenbagel/jellyseerr:latest";
hostname = "jellyseerr";
environment = { environment = {
PUID = "600"; PUID = "600";
PGID = "100"; PGID = "100";
TZ = "America/New_York"; TZ = "America/New_York";
DB_TYPE = "postgres";
DB_HOST = "host.docker.internal";
DB_PORT = toString config.services.postgresql.settings.port;
DB_USER = "SOPS_ONLY";
DB_PASS = "SOPS_ONLY";
}; };
volumes = [ "${vars.primary_docker}/overseerr:/config" ]; volumes = [ "${vars.primary_docker}/overseerr:/config" ];
# TODO: remove ports later since this is going through web # TODO: remove ports later since this is going through web
extraOptions = [
"--network=arrnet"
"--network=haproxy-net"
# "--health-cmd \"wget --no-verbose --tries 1 --spider http://localhost:5055/api/v1/status || exit 1\""
# "--health-start-period 20s"
# "--health-timeout 3s"
# "--health-interval 15s"
# "--health-retries 3"
];
ports = [ "5055:5055" ]; # Web UI port ports = [ "5055:5055" ]; # Web UI port
dependsOn = [ dependsOn = [
"radarr" "radarr"
"sonarr" "sonarr"
]; ];
extraOptions = [ "--network=haproxy-net" ];
autoStart = true; autoStart = true;
}; };
}; };
sops = {
secrets = {
"docker/notifiarr".owner = "docker-service";
};
};
} }

View File

@@ -8,13 +8,13 @@ let
# nextcloud-image = import ./nextcloud-image { inherit pkgs; }; # nextcloud-image = import ./nextcloud-image { inherit pkgs; };
nextcloud-base = { nextcloud-base = {
# image comes from running docker compose build in nextcloud-docker/.examples/full/apache # image comes from running docker compose build in nextcloud-docker/.examples/full/apache
image = "nextcloud-nextcloud"; image = "docker.io/library/nextcloud-nextcloud";
# pull = "always"; # pull = "always";
# do NOT enable pull here, this image is generated based on a custom docker image # do NOT enable pull here, this image is generated based on a custom docker image
hostname = "nextcloud"; hostname = "nextcloud";
volumes = [ volumes = [
"${nextcloud_path}/nc_data:/var/www/html:z" "${nextcloud_path}/nc_data:/var/www/html:z"
"${nextcloud_path}/nc_php:/usr/local/etc/php" #"${nextcloud_path}/nc_php:/usr/local/etc/php"
"${nextcloud_path}/nc_prehooks:/docker-entrypoint-hooks.d/before-starting" "${nextcloud_path}/nc_prehooks:/docker-entrypoint-hooks.d/before-starting"
#"${nextcloud_path}/remoteip.conf:/etc/apache2/conf-enabled/remoteip.conf:ro" #"${nextcloud_path}/remoteip.conf:/etc/apache2/conf-enabled/remoteip.conf:ro"
]; ];

View File

@@ -43,9 +43,9 @@ in
hydra = { hydra = {
enable = true; enable = true;
package = inputs.hydra.packages.x86_64-linux.hydra.overrideAttrs (old: { package = inputs.hydra.packages.x86_64-linux.hydra.overrideAttrs (old: {
checkPhase = '' preCheck = ''
export YATH_JOB_COUNT=8 export YATH_JOB_COUNT=8
${old.checkPhase or "yath test"} ${old.preCheck or ""}
''; '';
}); });
hydraURL = "https://hydra.alicehuston.xyz"; hydraURL = "https://hydra.alicehuston.xyz";

View File

@@ -1,6 +1,5 @@
{ {
config, config,
lib,
pkgs, pkgs,
... ...
}: }:

View File

@@ -25,7 +25,7 @@ docker:
collabora: ENC[AES256_GCM,data:LPRkzPEv5qfzeWSDbf+L+0asfmiK5Mhj8jCdfVyvVQAaD75Cbo4qLD0Nc80z,iv:/l2vAyYYJChhv6T+JkHT4I74ZpdhvbVqxlDWIM4Y4bw=,tag:/+uzn1vtd1RnO9/lGiQAKA==,type:str] collabora: ENC[AES256_GCM,data:LPRkzPEv5qfzeWSDbf+L+0asfmiK5Mhj8jCdfVyvVQAaD75Cbo4qLD0Nc80z,iv:/l2vAyYYJChhv6T+JkHT4I74ZpdhvbVqxlDWIM4Y4bw=,tag:/+uzn1vtd1RnO9/lGiQAKA==,type:str]
delugevpn: ENC[AES256_GCM,data:YGkgaQUuA9oteKD77tnFzxZSHctyOQjMNlfvJr3mPWAl2P8wfcshiUoa6SNp69pagxbzRV6mfuzwzinbkQCoZN3lw7uF76y0,iv:Bro0H4tFR+3wi9DGGq9a6ge4o4uPlVXBUF7h17zyqg8=,tag:N1kVNFasqGMx8R9qTq2dJA==,type:str] delugevpn: ENC[AES256_GCM,data:YGkgaQUuA9oteKD77tnFzxZSHctyOQjMNlfvJr3mPWAl2P8wfcshiUoa6SNp69pagxbzRV6mfuzwzinbkQCoZN3lw7uF76y0,iv:Bro0H4tFR+3wi9DGGq9a6ge4o4uPlVXBUF7h17zyqg8=,tag:N1kVNFasqGMx8R9qTq2dJA==,type:str]
protonvpn-start-script: ENC[AES256_GCM,data:ZnlDpCLdILHXSUCI6itWkqO4y75Lwjj7qT1DBkfueLneQOaQ0JhuE2FbOOajkmI046nP9fMrJbu3g4QZHsq1g8yqGU1wb0OOT+eS9+M92Md29B4NnUdwnVAO6/RzvRKXP2tsQ4iprx9An+BEFwZYD6WG6DQc6NjJVSgRcYvfH9rQey2VdwLysNsgFCs8eC6QgikqBpeg4eOIvDDNbdXPKkW+ZPph9xpzGkcFIMwlX5esg0n7qyUoMvWwBn4avC46U5erOw0fNajY60ri9sm5Afht6LZrFal71Hx/K9/5EXBp9dD4teLO2Ew0CQX0i94pKCuR207l9868s7Ao3udLp4wbiLnXoRKq+w==,iv:qR0kNYpb50NXEqSksvHBPAaRG51RKCsSwTq32nosxzo=,tag:+xRQyuWi4Ja/N9lcd11oJA==,type:str] protonvpn-start-script: ENC[AES256_GCM,data:ZnlDpCLdILHXSUCI6itWkqO4y75Lwjj7qT1DBkfueLneQOaQ0JhuE2FbOOajkmI046nP9fMrJbu3g4QZHsq1g8yqGU1wb0OOT+eS9+M92Md29B4NnUdwnVAO6/RzvRKXP2tsQ4iprx9An+BEFwZYD6WG6DQc6NjJVSgRcYvfH9rQey2VdwLysNsgFCs8eC6QgikqBpeg4eOIvDDNbdXPKkW+ZPph9xpzGkcFIMwlX5esg0n7qyUoMvWwBn4avC46U5erOw0fNajY60ri9sm5Afht6LZrFal71Hx/K9/5EXBp9dD4teLO2Ew0CQX0i94pKCuR207l9868s7Ao3udLp4wbiLnXoRKq+w==,iv:qR0kNYpb50NXEqSksvHBPAaRG51RKCsSwTq32nosxzo=,tag:+xRQyuWi4Ja/N9lcd11oJA==,type:str]
notifiarr: ENC[AES256_GCM,data:8p7+58u1WSjBMjgxxkyDVp0CK26RMBAOFe7Ax5ugfs85+K97loSCAgTaDzplkHwZ0W1jc7rKUyEp6H22R+VwIUL5CvlYZ4XIZbcbrTfcuAqXcVExDNP/hQQs0Kg6,iv:kXKVrHPiBKvUvaeZvf1AG8M+Zu3SaSv5UacBqeHeBWA=,tag:jiZe/6oEZ8IPybZ3rDevEg==,type:str] notifiarr: ENC[AES256_GCM,data:XxVEhp4Rei6mRcdSSooRnofuVNZDalVhDYiVUmvQUr8QihrVRMKRE9Kpl5PGWUBw,iv:urMLaUf3XUjMks2vk0E7iRUU3mLHBiMAiwtQgmWQq20=,tag:dHdTOyC/ukd71UlYEI5fWw==,type:str]
acme: acme:
bunny: ENC[AES256_GCM,data:P2yROVUga9mORcq8VR/l0i4/2Vod1zvlYq+ZJLLNKow0SpblkwQX/i1ucQYAOkTTRddN+3C+t0zj1rMWkdLoaLjEUJJi3VsSxi+chV2FFiVKFQGEcg24,iv:aQvGgGLsgRGoEmwTgZHR8Jm/MYxmGtVTT/fZKaTLeMs=,tag:m3ssF4O8qs4yxvMu6yUcjw==,type:str] bunny: ENC[AES256_GCM,data:P2yROVUga9mORcq8VR/l0i4/2Vod1zvlYq+ZJLLNKow0SpblkwQX/i1ucQYAOkTTRddN+3C+t0zj1rMWkdLoaLjEUJJi3VsSxi+chV2FFiVKFQGEcg24,iv:aQvGgGLsgRGoEmwTgZHR8Jm/MYxmGtVTT/fZKaTLeMs=,tag:m3ssF4O8qs4yxvMu6yUcjw==,type:str]
dnsimple: ENC[AES256_GCM,data:37FKyBibFtXZgI4EduJQ0z8F+shBc5Q6YlLa3YkVPh9XuJVS20eybi75bfJxiozcZ9d+YRaqcbkBQCSdFOCotDU=,iv:oq3JjqbfAm2C4jcL1lvUb2EOmnwlR07vPoO8H0BmydQ=,tag:E3NO/jMElL6Q817666gIyg==,type:str] dnsimple: ENC[AES256_GCM,data:37FKyBibFtXZgI4EduJQ0z8F+shBc5Q6YlLa3YkVPh9XuJVS20eybi75bfJxiozcZ9d+YRaqcbkBQCSdFOCotDU=,iv:oq3JjqbfAm2C4jcL1lvUb2EOmnwlR07vPoO8H0BmydQ=,tag:E3NO/jMElL6Q817666gIyg==,type:str]
@@ -44,8 +44,8 @@ sops:
cXNZWmZqd0R0SmhINExscHBKWmxvblUKEFEQvt/zQFARba4S8vHz/1SoKdKg69At cXNZWmZqd0R0SmhINExscHBKWmxvblUKEFEQvt/zQFARba4S8vHz/1SoKdKg69At
LZ58XQGOmlGbBhPr7EzYQ2XSY4flWbnnD174cmCR8DNFm15DsNA5fw== LZ58XQGOmlGbBhPr7EzYQ2XSY4flWbnnD174cmCR8DNFm15DsNA5fw==
-----END AGE ENCRYPTED FILE----- -----END AGE ENCRYPTED FILE-----
lastmodified: "2025-10-15T02:30:11Z" lastmodified: "2025-12-08T03:05:16Z"
mac: ENC[AES256_GCM,data:uG3ZnIAepcCDFXZNhE18dqd0R3pL0a4JTxTaYx8fnaoT3ooN580yIA6tfjGj+6M3JyqPCM56dmqmnMsPplkr+WToW5Wgc8EBe+L2UdSpVK6Zk1ClxvG+NMmZK0u+dNOszJHpoRWTFLl5Wffku9hKEwcgYTA0nwVcrqPc3FSZQyA=,iv:hN2Wfr/IopxM1ItekB7YcXPjR5zBIwPvq1EzW1yjS34=,tag:ao059oZR+kT7IMBF4b2aAQ==,type:str] mac: ENC[AES256_GCM,data:gIw//fnDU/lE2rDP4890MjnQ2xp0I4fXwvSWrLC0kFjW1RMLzNCaRLlJzw5/khALH/IZgTrnRqTHF3zHZd+mlyqvC/vzkyBBVdWRRX6w5l9JhFDfe83r86tvsV9G/AOeRchDp1gGuBBNkRamSuCOj7QFc1l334e/jNdKDadhwgI=,iv:nrOQxvJBce5/NDvpowJX/AiIssQdNOStvjj/Lkutppk=,tag:MlRJxbG3laajsi5KHAxy5g==,type:str]
pgp: pgp:
- created_at: "2024-11-28T18:56:39Z" - created_at: "2024-11-28T18:56:39Z"
enc: |- enc: |-

View File

@@ -49,7 +49,7 @@
daily = 30; daily = 30;
weekly = 0; weekly = 0;
monthly = 6; monthly = 6;
yearly = 3; yearly = 2;
autosnap = true; autosnap = true;
autoprune = true; autoprune = true;
}; };

View File

@@ -116,8 +116,8 @@ master {
} }
gestures { gestures {
# See https://wiki.hyprland.org/Configuring/Variables/ for more # See https://wiki.hypr.land/Configuring/Gestures/ for more
workspace_swipe = off gesture = 3, horizontal, workspace
} }
misc { misc {
@@ -149,6 +149,7 @@ bind = $mainMod, W, killactive,
#bind = $mainMod, W, exit, #bind = $mainMod, W, exit,
bind = $mainMod, E, exec, $fileManager bind = $mainMod, E, exec, $fileManager
bind = $mainMod, V, togglefloating, bind = $mainMod, V, togglefloating,
bind = $mainMod, F, fullscreen, toggle
bind = $mainMod, SPACE, exec, $menu bind = $mainMod, SPACE, exec, $menu
bind = $mainMod, O, pseudo, # dwindle bind = $mainMod, O, pseudo, # dwindle
bind = $mainMod, J, togglesplit, # dwindle bind = $mainMod, J, togglesplit, # dwindle

View File

@@ -108,5 +108,8 @@
# media tools # media tools
#deepin.deepin-music #deepin.deepin-music
# arch zed deps
nixd
]; ];
} }