Compare commits
1 Commits
4f621d8d50
...
af8c195a06
Author | SHA1 | Date | |
---|---|---|---|
|
af8c195a06 |
4
.github/workflows/flake-health-checks.yml
vendored
4
.github/workflows/flake-health-checks.yml
vendored
@ -6,8 +6,8 @@ on:
|
|||||||
branches: ["main"]
|
branches: ["main"]
|
||||||
merge_group:
|
merge_group:
|
||||||
concurrency:
|
concurrency:
|
||||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
jobs:
|
jobs:
|
||||||
health-check:
|
health-check:
|
||||||
name: "Perform Nix flake checks"
|
name: "Perform Nix flake checks"
|
||||||
|
4
.github/workflows/flake-update.yml
vendored
4
.github/workflows/flake-update.yml
vendored
@ -5,8 +5,8 @@ on:
|
|||||||
schedule:
|
schedule:
|
||||||
- cron: "00 12 * * *"
|
- cron: "00 12 * * *"
|
||||||
concurrency:
|
concurrency:
|
||||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
jobs:
|
jobs:
|
||||||
update_lockfile:
|
update_lockfile:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
4
.github/workflows/lock-health-checks.yml
vendored
4
.github/workflows/lock-health-checks.yml
vendored
@ -6,8 +6,8 @@ on:
|
|||||||
branches: ["main"]
|
branches: ["main"]
|
||||||
merge_group:
|
merge_group:
|
||||||
concurrency:
|
concurrency:
|
||||||
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
|
||||||
cancel-in-progress: true
|
cancel-in-progress: true
|
||||||
jobs:
|
jobs:
|
||||||
health-check:
|
health-check:
|
||||||
name: "Check health of `flake.lock`"
|
name: "Check health of `flake.lock`"
|
||||||
|
@ -49,9 +49,3 @@ creation_rules:
|
|||||||
- *admin_alice
|
- *admin_alice
|
||||||
age:
|
age:
|
||||||
- *palatine-hill
|
- *palatine-hill
|
||||||
- path_regex: systems/palatine-hill/docker/openvpn/.*\.ovpn$
|
|
||||||
key_groups:
|
|
||||||
- pgp:
|
|
||||||
- *admin_alice
|
|
||||||
age:
|
|
||||||
- *palatine-hill
|
|
||||||
|
48
flake.lock
generated
48
flake.lock
generated
@ -75,11 +75,11 @@
|
|||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"dir": "pkgs/firefox-addons",
|
"dir": "pkgs/firefox-addons",
|
||||||
"lastModified": 1748923398,
|
"lastModified": 1748837002,
|
||||||
"narHash": "sha256-794RwyZJto9NoFlGYuhWKhkhkJ0KrH9Paw5w1DM2zA0=",
|
"narHash": "sha256-K6//1B2kN+gZ2kOIRLqvY6LuOWHjiV7+7eFS4JNXR/g=",
|
||||||
"owner": "rycee",
|
"owner": "rycee",
|
||||||
"repo": "nur-expressions",
|
"repo": "nur-expressions",
|
||||||
"rev": "9eb346d6488b06f04809da4de2073666e25ede9d",
|
"rev": "0a907047c5b56503dd2e889dbbb694c61b8daf25",
|
||||||
"type": "gitlab"
|
"type": "gitlab"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -287,11 +287,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748925027,
|
"lastModified": 1748830238,
|
||||||
"narHash": "sha256-BJ0qRIdvt5aeqm3zg/5if7b5rruG05zrSX3UpLqjDRk=",
|
"narHash": "sha256-EB+LzYHK0D5aqxZiYoPeoZoOzSAs8eqBDxm3R+6wMKU=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "cb809ec1ff15cf3237c6592af9bbc7e4d983e98c",
|
"rev": "c7fdb7e90bff1a51b79c1eed458fb39e6649a82a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -427,11 +427,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748948933,
|
"lastModified": 1748862567,
|
||||||
"narHash": "sha256-Lc3YwAK/h+BdXWuiKV+dflWbYD3yObkrN/wugr8w+70=",
|
"narHash": "sha256-tRJfGSRM7VEkTkM0l6n5bwPKjIrs/+OuQDjt4s83iXI=",
|
||||||
"owner": "lilyinstarlight",
|
"owner": "lilyinstarlight",
|
||||||
"repo": "nixos-cosmic",
|
"repo": "nixos-cosmic",
|
||||||
"rev": "a24e3123dab28fcc9b3e7b48f40e6e7ba12a6958",
|
"rev": "7a665f77eb85b55495d0027dc20701818fd7aa53",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -463,11 +463,11 @@
|
|||||||
},
|
},
|
||||||
"nixos-hardware": {
|
"nixos-hardware": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748942041,
|
"lastModified": 1748634340,
|
||||||
"narHash": "sha256-HEu2gTct7nY0tAPRgBtqYepallryBKR1U8B4v2zEEqA=",
|
"narHash": "sha256-pZH4bqbOd8S+si6UcfjHovWDiWKiIGRNRMpmRWaDIms=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixos-hardware",
|
"repo": "nixos-hardware",
|
||||||
"rev": "fc7c4714125cfaa19b048e8aaf86b9c53e04d853",
|
"rev": "daa628a725ab4948e0e2b795e8fb6f4c3e289a7a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -501,11 +501,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748942227,
|
"lastModified": 1748856973,
|
||||||
"narHash": "sha256-U1oNpFoDO7QaO4iHsue7atK/5mJy7U1Y37mLU/SRk0o=",
|
"narHash": "sha256-RlTsJUvvr8ErjPBsiwrGbbHYW8XbB/oek0Gi78XdWKg=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "7ab490624e297ff96f52858bb32b504516b8bb61",
|
"rev": "e4b09e47ace7d87de083786b404bf232eb6c89d8",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -532,11 +532,11 @@
|
|||||||
},
|
},
|
||||||
"nixpkgs-stable": {
|
"nixpkgs-stable": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748810746,
|
"lastModified": 1748421225,
|
||||||
"narHash": "sha256-1na8blYvU1F6HLwx/aFjrhUqpqZ0SCsnqqW9n2vXvok=",
|
"narHash": "sha256-XXILOc80tvlvEQgYpYFnze8MkQQmp3eQxFbTzb3m/R0=",
|
||||||
"owner": "nixos",
|
"owner": "nixos",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "78d9f40fd6941a1543ffc3ed358e19c69961d3c1",
|
"rev": "78add7b7abb61689e34fc23070a8f55e1d26185b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -627,11 +627,11 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748918260,
|
"lastModified": 1748832016,
|
||||||
"narHash": "sha256-KhXNXQ5IDLvwwYfJ0pXDjwIuisZ2qM6F7fcXjIGZy/4=",
|
"narHash": "sha256-TQSaFa1wWJr6GOs+K8lecK4AKKr8k6mwxHIPCOmVkgs=",
|
||||||
"owner": "oxalica",
|
"owner": "oxalica",
|
||||||
"repo": "rust-overlay",
|
"repo": "rust-overlay",
|
||||||
"rev": "c9736155bc1eb7c7cf3a925920850e61c07ab22a",
|
"rev": "7ec2ea005b600dac9436a7c5c6b66d960cbfcea2",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
@ -688,11 +688,11 @@
|
|||||||
"tinted-zed": "tinted-zed"
|
"tinted-zed": "tinted-zed"
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1748887638,
|
"lastModified": 1748803004,
|
||||||
"narHash": "sha256-AExfT8rMb6Ya37Gm3dimm+e4eeLGzya55JS6VWb3nfQ=",
|
"narHash": "sha256-dLGywKYxge3rzD6AqtVP0UmMHONdQNCWXj6i0lfm/UM=",
|
||||||
"owner": "danth",
|
"owner": "danth",
|
||||||
"repo": "stylix",
|
"repo": "stylix",
|
||||||
"rev": "3ca2c4478a1e984d2007c57467c6986bcdcb2629",
|
"rev": "5f841056ca60bea7312aeade957da084cd95b26e",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
{
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
|
|
||||||
{
|
|
||||||
users.groups = {
|
|
||||||
users = {
|
|
||||||
gid = 100;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
@ -60,13 +60,12 @@
|
|||||||
|
|
||||||
fwupd = {
|
fwupd = {
|
||||||
enable = true;
|
enable = true;
|
||||||
# package =
|
package =
|
||||||
# (import (builtins.fetchTarball {
|
(import (builtins.fetchTarball {
|
||||||
# url = "https://github.com/NixOS/nixpkgs/archive/bb2009ca185d97813e75736c2b8d1d8bb81bde05.tar.gz";
|
url = "https://github.com/NixOS/nixpkgs/archive/bb2009ca185d97813e75736c2b8d1d8bb81bde05.tar.gz";
|
||||||
# sha256 = "sha256:003qcrsq5g5lggfrpq31gcvj82lb065xvr7bpfa8ddsw8x4dnysk";
|
sha256 = "sha256:003qcrsq5g5lggfrpq31gcvj82lb065xvr7bpfa8ddsw8x4dnysk";
|
||||||
# }) { inherit (pkgs) system; }).fwupd;
|
}) { inherit (pkgs) system; }).fwupd;
|
||||||
};
|
};
|
||||||
mullvad-vpn.enable = true;
|
|
||||||
|
|
||||||
fprintd.enable = lib.mkForce false;
|
fprintd.enable = lib.mkForce false;
|
||||||
openssh.enable = lib.mkForce false;
|
openssh.enable = lib.mkForce false;
|
||||||
|
@ -17,7 +17,6 @@
|
|||||||
./minio.nix
|
./minio.nix
|
||||||
./networking.nix
|
./networking.nix
|
||||||
./nextcloud.nix
|
./nextcloud.nix
|
||||||
#./plex
|
|
||||||
./postgresql.nix
|
./postgresql.nix
|
||||||
./samba.nix
|
./samba.nix
|
||||||
./zfs.nix
|
./zfs.nix
|
||||||
@ -58,37 +57,16 @@
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
environment = {
|
environment.systemPackages = with pkgs; [
|
||||||
systemPackages = with pkgs; [
|
chromedriver
|
||||||
chromedriver
|
chromium
|
||||||
chromium
|
docker-compose
|
||||||
docker-compose
|
intel-gpu-tools
|
||||||
filebot
|
jellyfin-ffmpeg
|
||||||
intel-gpu-tools
|
jq
|
||||||
jellyfin-ffmpeg
|
yt-dlp
|
||||||
jq
|
yq
|
||||||
yt-dlp
|
];
|
||||||
yq
|
|
||||||
];
|
|
||||||
etc = {
|
|
||||||
# Creates /etc/lynis/custom.prf
|
|
||||||
"lynis/custom.prf" = {
|
|
||||||
text = ''
|
|
||||||
skip-test=BANN-7126
|
|
||||||
skip-test=BANN-7130
|
|
||||||
skip-test=DEB-0520
|
|
||||||
skip-test=DEB-0810
|
|
||||||
skip-test=FIRE-4513
|
|
||||||
skip-test=HRDN-7222
|
|
||||||
skip-test=KRNL-5820
|
|
||||||
skip-test=LOGG-2190
|
|
||||||
skip-test=LYNIS
|
|
||||||
skip-test=TOOL-5002
|
|
||||||
'';
|
|
||||||
mode = "0440";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
|
|
||||||
services = {
|
services = {
|
||||||
samba.enable = true;
|
samba.enable = true;
|
||||||
|
@ -12,7 +12,6 @@ in
|
|||||||
virtualisation.oci-containers.containers = {
|
virtualisation.oci-containers.containers = {
|
||||||
act-stable-latest-main = {
|
act-stable-latest-main = {
|
||||||
image = "gitea/act_runner:latest";
|
image = "gitea/act_runner:latest";
|
||||||
pull = "always";
|
|
||||||
extraOptions = [
|
extraOptions = [
|
||||||
"--stop-signal=SIGINT"
|
"--stop-signal=SIGINT"
|
||||||
];
|
];
|
||||||
@ -36,7 +35,6 @@ in
|
|||||||
|
|
||||||
act-stable-latest-1 = {
|
act-stable-latest-1 = {
|
||||||
image = "gitea/act_runner:latest";
|
image = "gitea/act_runner:latest";
|
||||||
pull = "always";
|
|
||||||
extraOptions = [
|
extraOptions = [
|
||||||
"--stop-signal=SIGINT"
|
"--stop-signal=SIGINT"
|
||||||
];
|
];
|
||||||
@ -59,7 +57,6 @@ in
|
|||||||
|
|
||||||
act-stable-latest-2 = {
|
act-stable-latest-2 = {
|
||||||
image = "gitea/act_runner:latest";
|
image = "gitea/act_runner:latest";
|
||||||
pull = "always";
|
|
||||||
extraOptions = [
|
extraOptions = [
|
||||||
"--stop-signal=SIGINT"
|
"--stop-signal=SIGINT"
|
||||||
];
|
];
|
||||||
|
@ -1,124 +0,0 @@
|
|||||||
{
|
|
||||||
config,
|
|
||||||
lib,
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
vars = import ../vars.nix;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
virtualisation.oci-containers.containers = {
|
|
||||||
bazarr = {
|
|
||||||
image = "ghcr.io/linuxserver/bazarr:latest";
|
|
||||||
ports = [ "6767:6767" ];
|
|
||||||
environment = {
|
|
||||||
PUID = "600";
|
|
||||||
PGID = "100";
|
|
||||||
TZ = "America/New_York";
|
|
||||||
};
|
|
||||||
volumes = [
|
|
||||||
"${vars.primary_docker}/bazarr:/config"
|
|
||||||
"${vars.primary_plex_storage}/data:/data"
|
|
||||||
];
|
|
||||||
autoStart = true;
|
|
||||||
};
|
|
||||||
prowlarr = {
|
|
||||||
image = "ghcr.io/linuxserver/prowlarr:latest";
|
|
||||||
ports = [ "9696:9696" ];
|
|
||||||
environment = {
|
|
||||||
PUID = "600";
|
|
||||||
PGID = "100";
|
|
||||||
TZ = "America/New_York";
|
|
||||||
};
|
|
||||||
volumes = [ "${vars.primary_docker}/prowlarr:/config" ];
|
|
||||||
autoStart = true;
|
|
||||||
};
|
|
||||||
radarr = {
|
|
||||||
image = "ghcr.io/linuxserver/radarr:latest";
|
|
||||||
ports = [ "7878:7878" ];
|
|
||||||
environment = {
|
|
||||||
PUID = "600";
|
|
||||||
PGID = "100";
|
|
||||||
TZ = "America/New_York";
|
|
||||||
};
|
|
||||||
volumes = [
|
|
||||||
"${vars.primary_docker}/radarr:/config"
|
|
||||||
"${vars.primary_plex_storage}/data:/data"
|
|
||||||
];
|
|
||||||
autoStart = true;
|
|
||||||
};
|
|
||||||
sonarr = {
|
|
||||||
image = "ghcr.io/linuxserver/sonarr:latest";
|
|
||||||
ports = [ "8989:8989" ];
|
|
||||||
environment = {
|
|
||||||
PUID = "600";
|
|
||||||
PGID = "100";
|
|
||||||
TZ = "America/New_York";
|
|
||||||
};
|
|
||||||
volumes = [
|
|
||||||
"${vars.primary_docker}/sonarr:/config"
|
|
||||||
"${vars.primary_plex_storage}/data:/data"
|
|
||||||
];
|
|
||||||
autoStart = true;
|
|
||||||
};
|
|
||||||
lidarr = {
|
|
||||||
image = "ghcr.io/linuxserver/lidarr:latest";
|
|
||||||
ports = [ "8686:8686" ];
|
|
||||||
environment = {
|
|
||||||
PUID = "600";
|
|
||||||
PGID = "100";
|
|
||||||
TZ = "America/New_York";
|
|
||||||
};
|
|
||||||
volumes = [
|
|
||||||
"${vars.primary_docker}/lidarr:/config"
|
|
||||||
"${vars.primary_plex_storage}/data:/data"
|
|
||||||
];
|
|
||||||
autoStart = true;
|
|
||||||
};
|
|
||||||
readarr = {
|
|
||||||
image = "ghcr.io/linuxserver/readarr:latest";
|
|
||||||
ports = [ "8787:8787" ];
|
|
||||||
environment = {
|
|
||||||
PUID = "600";
|
|
||||||
PGID = "100";
|
|
||||||
TZ = "America/New_York";
|
|
||||||
};
|
|
||||||
volumes = [
|
|
||||||
"${vars.primary_docker}/readarr:/config"
|
|
||||||
"${vars.primary_plex_storage}/data:/data"
|
|
||||||
];
|
|
||||||
autoStart = true;
|
|
||||||
};
|
|
||||||
unpackerr = {
|
|
||||||
image = "golift/unpackerr:latest";
|
|
||||||
user = "600:100";
|
|
||||||
environment = {
|
|
||||||
TZ = "America/New_York";
|
|
||||||
};
|
|
||||||
volumes = [
|
|
||||||
"${vars.primary_docker}/unpackerr:/config"
|
|
||||||
"${vars.primary_plex_storage}:/data"
|
|
||||||
];
|
|
||||||
autoStart = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
overseerr = {
|
|
||||||
image = "lscr.io/linuxserver/overseerr";
|
|
||||||
environment = {
|
|
||||||
PUID = "600";
|
|
||||||
PGID = "100";
|
|
||||||
TZ = "America/New_York";
|
|
||||||
};
|
|
||||||
volumes = [ "${vars.primary_docker}/overseerr:/config" ];
|
|
||||||
# TODO: remove ports later since this is going through web
|
|
||||||
ports = [ "5055:5055" ]; # Web UI port
|
|
||||||
dependsOn = [
|
|
||||||
"radarr"
|
|
||||||
"sonarr"
|
|
||||||
];
|
|
||||||
extraOptions = [ "--network=haproxy-net" ];
|
|
||||||
autoStart = true;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
@ -8,7 +8,6 @@
|
|||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
./act-runner.nix
|
./act-runner.nix
|
||||||
./arr.nix
|
|
||||||
# temp disable archiveteam for tiktok archiving
|
# temp disable archiveteam for tiktok archiving
|
||||||
#./archiveteam.nix
|
#./archiveteam.nix
|
||||||
# ./books.nix
|
# ./books.nix
|
||||||
|
@ -8,7 +8,6 @@ in
|
|||||||
virtualisation.oci-containers.containers = {
|
virtualisation.oci-containers.containers = {
|
||||||
glances = {
|
glances = {
|
||||||
image = "nicolargo/glances:latest-full";
|
image = "nicolargo/glances:latest-full";
|
||||||
pull = "always";
|
|
||||||
extraOptions = [
|
extraOptions = [
|
||||||
"--pid=host"
|
"--pid=host"
|
||||||
"--network=haproxy-net"
|
"--network=haproxy-net"
|
||||||
|
@ -39,7 +39,6 @@ in
|
|||||||
virtualisation.oci-containers.containers = {
|
virtualisation.oci-containers.containers = {
|
||||||
mc-router = {
|
mc-router = {
|
||||||
image = "itzg/mc-router:latest";
|
image = "itzg/mc-router:latest";
|
||||||
pull = "always";
|
|
||||||
extraOptions = [
|
extraOptions = [
|
||||||
"--network=haproxy-net"
|
"--network=haproxy-net"
|
||||||
"--network=minecraft-net"
|
"--network=minecraft-net"
|
||||||
|
@ -9,7 +9,6 @@ let
|
|||||||
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 = "nextcloud-nextcloud";
|
||||||
pull = "always";
|
|
||||||
hostname = "nextcloud";
|
hostname = "nextcloud";
|
||||||
volumes = [
|
volumes = [
|
||||||
"${nextcloud_path}/nc_data:/var/www/html:z"
|
"${nextcloud_path}/nc_data:/var/www/html:z"
|
||||||
@ -33,7 +32,6 @@ in
|
|||||||
};
|
};
|
||||||
redis = {
|
redis = {
|
||||||
image = "redis:latest";
|
image = "redis:latest";
|
||||||
pull = "always";
|
|
||||||
user = "600:600";
|
user = "600:600";
|
||||||
volumes = [
|
volumes = [
|
||||||
"${config.sops.secrets."docker/redis".path}:/usr/local/etc/redis/redis.conf"
|
"${config.sops.secrets."docker/redis".path}:/usr/local/etc/redis/redis.conf"
|
||||||
@ -49,7 +47,6 @@ in
|
|||||||
};
|
};
|
||||||
go-vod = {
|
go-vod = {
|
||||||
image = "radialapps/go-vod:latest";
|
image = "radialapps/go-vod:latest";
|
||||||
pull = "always";
|
|
||||||
dependsOn = [ "nextcloud" ];
|
dependsOn = [ "nextcloud" ];
|
||||||
environment = {
|
environment = {
|
||||||
NEXTCLOUD_HOST = "https://nextcloud.alicehuston.xyz";
|
NEXTCLOUD_HOST = "https://nextcloud.alicehuston.xyz";
|
||||||
@ -61,7 +58,6 @@ in
|
|||||||
};
|
};
|
||||||
collabora-code = {
|
collabora-code = {
|
||||||
image = "collabora/code:latest";
|
image = "collabora/code:latest";
|
||||||
pull = "always";
|
|
||||||
dependsOn = [ "nextcloud" ];
|
dependsOn = [ "nextcloud" ];
|
||||||
environment = {
|
environment = {
|
||||||
aliasgroup1 = "https://collabora.nayenoie.com:443";
|
aliasgroup1 = "https://collabora.nayenoie.com:443";
|
||||||
|
File diff suppressed because one or more lines are too long
@ -1,8 +1,7 @@
|
|||||||
{ config, pkgs, ... }:
|
{ pkgs, ... }:
|
||||||
|
|
||||||
let
|
let
|
||||||
delugeBase = {
|
delugeBase = {
|
||||||
pull = "always";
|
|
||||||
environment = {
|
environment = {
|
||||||
PUID = "600";
|
PUID = "600";
|
||||||
PGID = "100";
|
PGID = "100";
|
||||||
@ -20,31 +19,18 @@ let
|
|||||||
deluge_path = "${torr_path}/deluge";
|
deluge_path = "${torr_path}/deluge";
|
||||||
delugevpn_path = "${torr_path}/delugevpn";
|
delugevpn_path = "${torr_path}/delugevpn";
|
||||||
|
|
||||||
#genSopsConfWg = file: {
|
genSopsConf = file: {
|
||||||
# "${file}" = {
|
|
||||||
# format = "binary";
|
|
||||||
# sopsFile = ./wg/${file};
|
|
||||||
# path = "${delugevpn_path}/config/wireguard/configs/${file}";
|
|
||||||
# owner = "docker-service";
|
|
||||||
# group = "users";
|
|
||||||
# restartUnits = [ "docker-delugeVPN.service" ];
|
|
||||||
# };
|
|
||||||
#};
|
|
||||||
|
|
||||||
genSopsConfOvpn = file: {
|
|
||||||
"${file}" = {
|
"${file}" = {
|
||||||
format = "binary";
|
format = "binary";
|
||||||
sopsFile = ./openvpn/${file};
|
sopsFile = ./wg/${file};
|
||||||
path = "${delugevpn_path}/config/openvpn/configs/${file}";
|
path = "${delugevpn_path}/config/wireguard/configs/${file}";
|
||||||
owner = "docker-service";
|
owner = "docker-service";
|
||||||
group = "users";
|
group = "users";
|
||||||
restartUnits = [ "docker-delugeVPN.service" ];
|
restartUnits = [ "docker-delugeVPN.service" ];
|
||||||
};
|
};
|
||||||
|
|
||||||
};
|
};
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
|
|
||||||
virtualisation.oci-containers.containers = {
|
virtualisation.oci-containers.containers = {
|
||||||
deluge = delugeBase // {
|
deluge = delugeBase // {
|
||||||
image = "binhex/arch-deluge";
|
image = "binhex/arch-deluge";
|
||||||
@ -59,26 +45,25 @@ in
|
|||||||
];
|
];
|
||||||
};
|
};
|
||||||
delugeVPN = delugeBase // {
|
delugeVPN = delugeBase // {
|
||||||
image = "binhex/arch-delugevpn:latest";
|
image = "binhex/arch-delugevpn";
|
||||||
capabilities = {
|
extraOptions = [
|
||||||
NET_ADMIN = true;
|
"--privileged=true"
|
||||||
};
|
"--sysctl"
|
||||||
autoRemoveOnStop = false;
|
"net.ipv4.conf.all.src_valid_mark=1"
|
||||||
|
];
|
||||||
environment = delugeBase.environment // {
|
environment = delugeBase.environment // {
|
||||||
VPN_ENABLED = "yes";
|
VPN_ENABLED = "yes";
|
||||||
VPN_CLIENT = "openvpn";
|
VPN_CLIENT = "wireguard";
|
||||||
VPN_PROV = "protonvpn";
|
VPN_PROV = "custom";
|
||||||
ENABLE_PRIVOXY = "yes";
|
ENABLE_PRIVOXY = "yes";
|
||||||
LAN_NETWORK = "192.168.0.0/16";
|
LAN_NETWORK = "192.168.0.0/16";
|
||||||
ENABLE_STARTUP_SCRIPTS = "yes";
|
NAME_SERVERS = "194.242.2.9";
|
||||||
#NAME_SERVERS = "194.242.2.9";
|
|
||||||
#NAME_SERVERS = "9.9.9.9";
|
|
||||||
# note, delete /config/perms.txt to force a bulk permissions update
|
# note, delete /config/perms.txt to force a bulk permissions update
|
||||||
|
|
||||||
};
|
};
|
||||||
environmentFiles = [ config.sops.secrets."docker/delugevpn".path ];
|
|
||||||
volumes = [
|
volumes = [
|
||||||
"${delugevpn_path}/config:/config"
|
"${delugevpn_path}/config:/config"
|
||||||
"${deluge_path}/data:/data" # use common torrent path yuck
|
"${delugevpn_path}/data:/data"
|
||||||
"/etc/localtime:/etc/localtime:ro"
|
"/etc/localtime:/etc/localtime:ro"
|
||||||
];
|
];
|
||||||
ports = [
|
ports = [
|
||||||
@ -86,9 +71,6 @@ in
|
|||||||
"8119:8118"
|
"8119:8118"
|
||||||
"39275:39275"
|
"39275:39275"
|
||||||
"39275:39275/udp"
|
"39275:39275/udp"
|
||||||
"48346:48346"
|
|
||||||
"48346:48346/udp"
|
|
||||||
|
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -97,34 +79,25 @@ in
|
|||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
ExecStartPre = [
|
ExecStartPre = [
|
||||||
(
|
(
|
||||||
"${pkgs.bash}/bin/bash -c \"${pkgs.findutils}/bin/find ${delugevpn_path}/config/openvpn/configs "
|
"${pkgs.bash}/bin/bash -c \"${pkgs.findutils}/bin/find ${delugevpn_path}/config/wireguard/configs "
|
||||||
+ "-type l -not -name network.ovpn "
|
+ "-type l -not -name wg0.conf "
|
||||||
+ "| ${pkgs.coreutils}/bin/shuf -n 1 "
|
+ "| ${pkgs.coreutils}/bin/shuf -n 1 "
|
||||||
+ "| ${pkgs.findutils}/bin/xargs -I {} cp -L {} ${delugevpn_path}/config/openvpn/network.ovpn &&"
|
+ "| ${pkgs.findutils}/bin/xargs -I {} cp -L {} ${delugevpn_path}/config/wireguard/wg0.conf &&"
|
||||||
+ "${pkgs.coreutils}/bin/chown docker-service:users ${delugevpn_path}/config/openvpn/network.ovpn &&"
|
+ "${pkgs.coreutils}/bin/chown docker-service:users ${delugevpn_path}/config/wireguard/wg0.conf &&"
|
||||||
+ "${pkgs.coreutils}/bin/chmod 440 ${delugevpn_path}/config/openvpn/network.ovpn\""
|
+ "${pkgs.coreutils}/bin/chmod 440 ${delugevpn_path}/config/wireguard/wg0.conf\""
|
||||||
)
|
|
||||||
(
|
|
||||||
"${pkgs.bash}/bin/bash -c \"${pkgs.findutils}/bin/find ${delugevpn_path}/config/scripts/links "
|
|
||||||
+ "-type l "
|
|
||||||
+ "| ${pkgs.findutils}/bin/xargs -I {} cp -L {} ${delugevpn_path}/config/scripts/ \""
|
|
||||||
)
|
)
|
||||||
];
|
];
|
||||||
ExecStopPost = [ "${pkgs.coreutils}/bin/rm ${delugevpn_path}/config/scripts/*sh" ];
|
ExecStopPost = [ "${pkgs.coreutils}/bin/rm ${delugevpn_path}/config/wireguard/wg0.conf" ];
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
sops.secrets = (genSopsConfOvpn "se.protonvpn.udp.ovpn") // {
|
sops.secrets =
|
||||||
"docker/delugevpn" = {
|
(genSopsConf "se-mma-wg-001.conf")
|
||||||
owner = "docker-service";
|
// (genSopsConf "se-mma-wg-002.conf")
|
||||||
group = "users";
|
// (genSopsConf "se-mma-wg-003.conf")
|
||||||
restartUnits = [ "docker-delugeVPN.service" ];
|
// (genSopsConf "se-mma-wg-004.conf")
|
||||||
};
|
// (genSopsConf "se-mma-wg-005.conf")
|
||||||
"docker/protonvpn-start-script" = {
|
// (genSopsConf "se-mma-wg-101.conf")
|
||||||
path = "${delugevpn_path}/config/scripts/links/protonvpn-start-script.sh";
|
// (genSopsConf "se-mma-wg-102.conf")
|
||||||
owner = "docker-service";
|
// (genSopsConf "se-mma-wg-103.conf");
|
||||||
group = "users";
|
|
||||||
restartUnits = [ "docker-delugeVPN.service" ];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
@ -24,15 +24,6 @@
|
|||||||
|
|
||||||
# collabora
|
# collabora
|
||||||
9980
|
9980
|
||||||
|
|
||||||
# arr
|
|
||||||
6767
|
|
||||||
9696
|
|
||||||
7878
|
|
||||||
8989
|
|
||||||
8686
|
|
||||||
8787
|
|
||||||
5055
|
|
||||||
];
|
];
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -82,10 +82,10 @@ in
|
|||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
|
|
||||||
# nix-serve = {
|
nix-serve = {
|
||||||
# enable = true;
|
enable = true;
|
||||||
# secretKeyFile = config.sops.secrets."nix-serve/secret-key".path;
|
secretKeyFile = config.sops.secrets."nix-serve/secret-key".path;
|
||||||
# };
|
};
|
||||||
prometheus = {
|
prometheus = {
|
||||||
enable = true;
|
enable = true;
|
||||||
webExternalUrl = "https://prom.alicehuston.xyz";
|
webExternalUrl = "https://prom.alicehuston.xyz";
|
||||||
@ -134,7 +134,7 @@ in
|
|||||||
sops = {
|
sops = {
|
||||||
secrets = {
|
secrets = {
|
||||||
"hydra/environment".owner = "hydra";
|
"hydra/environment".owner = "hydra";
|
||||||
# "nix-serve/secret-key".owner = "root";
|
"nix-serve/secret-key".owner = "root";
|
||||||
"alice/gha-hydra-token" = {
|
"alice/gha-hydra-token" = {
|
||||||
sopsFile = ../../users/alice/secrets.yaml;
|
sopsFile = ../../users/alice/secrets.yaml;
|
||||||
owner = "hydra";
|
owner = "hydra";
|
||||||
|
@ -1,28 +0,0 @@
|
|||||||
{
|
|
||||||
pkgs,
|
|
||||||
...
|
|
||||||
}:
|
|
||||||
let
|
|
||||||
vars = import ../vars.nix;
|
|
||||||
in
|
|
||||||
{
|
|
||||||
services.plex = {
|
|
||||||
enable = true;
|
|
||||||
dataDir = vars.primary_plex;
|
|
||||||
};
|
|
||||||
systemd.services.plex_permission = {
|
|
||||||
description = "maintains plex permissions";
|
|
||||||
serviceConfig = {
|
|
||||||
Type = "oneshot";
|
|
||||||
ExecStart = "${pkgs.bash}/bin/bash ${./plex_permission.sh}";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
systemd.timers.plex_permission = {
|
|
||||||
wantedBy = [ "timers.target" ];
|
|
||||||
timerConfig = {
|
|
||||||
OnBootSec = "1h";
|
|
||||||
OnCalendar = "daily 03:00";
|
|
||||||
Unit = "plex_permission.service";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,7 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
plex_dir="/ZFS/ZFS-primary/plex"
|
|
||||||
|
|
||||||
chown docker-service:users -R "$plex_dir"
|
|
||||||
find "$plex_dir" -type f -exec chmod 664 {} \;
|
|
||||||
find "$plex_dir" -type d -exec chmod 775 {} \;
|
|
@ -23,8 +23,6 @@ docker:
|
|||||||
redis: ENC[AES256_GCM,data:c+55cN6IpUNeKd+wC2zv3eunYjBsmZtXTczokqaxB2Q=,iv:M3pwNUlT9kUMv4JDE6bp/gub9CdBGxdApIvpOt3JpgE=,tag:3rPlV3U0AP9zAeF7xDouKw==,type:str]
|
redis: ENC[AES256_GCM,data:c+55cN6IpUNeKd+wC2zv3eunYjBsmZtXTczokqaxB2Q=,iv:M3pwNUlT9kUMv4JDE6bp/gub9CdBGxdApIvpOt3JpgE=,tag:3rPlV3U0AP9zAeF7xDouKw==,type:str]
|
||||||
act-runner: ENC[AES256_GCM,data:gdrqXBBzdMW26MgNfP6P1c/m7pLANCXjcZLvVsxlWcgpAZd8IaO2FUqomL3xFI3UDPveQh0UvC3044ueoWhYJOq7ZmKJGvdf0ZrpP1MkXZKvjFjbTsuf/6/SYKhPqnP28HqznUWIVJYcRmP+A2oVeJY=,iv:/yOqJYDpxbqCm1whqcypp7Ba1Xlaebrv+h6lHr57Qa8=,tag:PzVqxP+QwQq69jqhmagj3w==,type:str]
|
act-runner: ENC[AES256_GCM,data:gdrqXBBzdMW26MgNfP6P1c/m7pLANCXjcZLvVsxlWcgpAZd8IaO2FUqomL3xFI3UDPveQh0UvC3044ueoWhYJOq7ZmKJGvdf0ZrpP1MkXZKvjFjbTsuf/6/SYKhPqnP28HqznUWIVJYcRmP+A2oVeJY=,iv:/yOqJYDpxbqCm1whqcypp7Ba1Xlaebrv+h6lHr57Qa8=,tag:PzVqxP+QwQq69jqhmagj3w==,type:str]
|
||||||
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]
|
|
||||||
protonvpn-start-script: ENC[AES256_GCM,data:ZnlDpCLdILHXSUCI6itWkqO4y75Lwjj7qT1DBkfueLneQOaQ0JhuE2FbOOajkmI046nP9fMrJbu3g4QZHsq1g8yqGU1wb0OOT+eS9+M92Md29B4NnUdwnVAO6/RzvRKXP2tsQ4iprx9An+BEFwZYD6WG6DQc6NjJVSgRcYvfH9rQey2VdwLysNsgFCs8eC6QgikqBpeg4eOIvDDNbdXPKkW+ZPph9xpzGkcFIMwlX5esg0n7qyUoMvWwBn4avC46U5erOw0fNajY60ri9sm5Afht6LZrFal71Hx/K9/5EXBp9dD4teLO2Ew0CQX0i94pKCuR207l9868s7Ao3udLp4wbiLnXoRKq+w==,iv:qR0kNYpb50NXEqSksvHBPAaRG51RKCsSwTq32nosxzo=,tag:+xRQyuWi4Ja/N9lcd11oJA==,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]
|
||||||
@ -43,8 +41,8 @@ sops:
|
|||||||
cXNZWmZqd0R0SmhINExscHBKWmxvblUKEFEQvt/zQFARba4S8vHz/1SoKdKg69At
|
cXNZWmZqd0R0SmhINExscHBKWmxvblUKEFEQvt/zQFARba4S8vHz/1SoKdKg69At
|
||||||
LZ58XQGOmlGbBhPr7EzYQ2XSY4flWbnnD174cmCR8DNFm15DsNA5fw==
|
LZ58XQGOmlGbBhPr7EzYQ2XSY4flWbnnD174cmCR8DNFm15DsNA5fw==
|
||||||
-----END AGE ENCRYPTED FILE-----
|
-----END AGE ENCRYPTED FILE-----
|
||||||
lastmodified: "2025-06-01T23:54:50Z"
|
lastmodified: "2025-05-30T04:36:41Z"
|
||||||
mac: ENC[AES256_GCM,data:xBSrKfuBEXYVqLhZF903HbLaCpgXyuo3r7/FUBPM9Pl+rKUGx8p7LKCIec2NPCGO8ylQvC8T2mochSHSAvN339nxPlQ7f/tKWc6QgicaX4Sb4k0wJdqamSJTq4mkg8482HOUiFCSi3lA3zWC3Y9ZixESmEWTbxe9sQ51Vo69lkw=,iv:XiGVzryZwo5UmJe7I8pkg5IEdms0vR9iRdlFu2wjUeI=,tag:jhOuV+aZd5rQF0xg+0tvOg==,type:str]
|
mac: ENC[AES256_GCM,data:fEsUt5g0/7j8IVgtXQ0thV93dxe6SGCglqeHdnaXFOjKcCUEFWUmi98M8X92hR9AJzscRK6wqzijd/AQBzl+GL2QtDYsn8qx9Nr0DBd6Gh1vi25eh5LtADm09COSae1THWuFLP7L1Qamyt+XzlBa7Xnrzfuzzp0s2/cZoxZiueU=,iv:VYzh833cMQwGmkB6QunRys0Eluz+0KGj8Y43B9icE9w=,tag:EWJSizBMTFZ0TZhncYe2Sw==,type:str]
|
||||||
pgp:
|
pgp:
|
||||||
- created_at: "2024-11-28T18:56:39Z"
|
- created_at: "2024-11-28T18:56:39Z"
|
||||||
enc: |-
|
enc: |-
|
||||||
|
@ -17,6 +17,4 @@ rec {
|
|||||||
primary_nextcloud = "${zfs_primary}/nextcloud";
|
primary_nextcloud = "${zfs_primary}/nextcloud";
|
||||||
primary_redis = "${zfs_primary}/redis";
|
primary_redis = "${zfs_primary}/redis";
|
||||||
primary_torr = "${zfs_primary}/torr";
|
primary_torr = "${zfs_primary}/torr";
|
||||||
primary_plex = "${zfs_primary}/plex";
|
|
||||||
primary_plex_storage = "${zfs_primary}/plex_storage";
|
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,6 @@
|
|||||||
hashedPasswordFile = config.sops.secrets."${name}/user-password".path or null;
|
hashedPasswordFile = config.sops.secrets."${name}/user-password".path or null;
|
||||||
openssh.authorizedKeys.keys = publicKeys;
|
openssh.authorizedKeys.keys = publicKeys;
|
||||||
extraGroups = [
|
extraGroups = [
|
||||||
"users"
|
|
||||||
"wheel"
|
"wheel"
|
||||||
"media"
|
"media"
|
||||||
(lib.mkIf config.networking.networkmanager.enable "networkmanager")
|
(lib.mkIf config.networking.networkmanager.enable "networkmanager")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user