Deploy Cups Collector

This commit is contained in:
Gene Liverman 2026-05-20 13:59:32 -04:00 committed by Gene Liverman
parent c051e939f9
commit 82ce04abf8
Signed by: genebean
SSH key fingerprint: SHA256:gMnZbl3rg8nIXl4AomxNeNiOG4mWP/xEywbmQjVfhtY
5 changed files with 118 additions and 8 deletions

57
flake.lock generated
View file

@ -69,6 +69,27 @@
"type": "github"
}
},
"cup-collector": {
"inputs": {
"flake-utils": "flake-utils_2",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1779331325,
"narHash": "sha256-5eBy6bkfBSn8KXtxEfNlmINaDCvjMhuwepvtjYplTJ0=",
"owner": "genebean",
"repo": "cup-collector",
"rev": "bd7fb3c666e22a89adca68c3afe0001d51b95b55",
"type": "github"
},
"original": {
"owner": "genebean",
"repo": "cup-collector",
"type": "github"
}
},
"deadnix": {
"inputs": {
"nixpkgs": [
@ -235,6 +256,24 @@
"type": "github"
}
},
"flake-utils_2": {
"inputs": {
"systems": "systems"
},
"locked": {
"lastModified": 1731533236,
"narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=",
"owner": "numtide",
"repo": "flake-utils",
"rev": "11707dc2f618dd54ca8739b309ec4fc024de578b",
"type": "github"
},
"original": {
"owner": "numtide",
"repo": "flake-utils",
"type": "github"
}
},
"flox": {
"inputs": {
"crane": "crane",
@ -716,6 +755,7 @@
"root": {
"inputs": {
"compose2nix": "compose2nix",
"cup-collector": "cup-collector",
"deadnix": "deadnix",
"disko": "disko",
"flox": "flox",
@ -871,6 +911,21 @@
"type": "github"
}
},
"systems_2": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"treefmt-nix": {
"inputs": {
"nixpkgs": "nixpkgs_2"
@ -891,7 +946,7 @@
},
"utils": {
"inputs": {
"systems": "systems"
"systems": "systems_2"
},
"locked": {
"lastModified": 1731533236,

View file

@ -11,6 +11,11 @@
inputs.nixpkgs.follows = "nixpkgs";
};
cup-collector = {
url = "github:genebean/cup-collector";
inputs.nixpkgs.follows = "nixpkgs";
};
# Linting and formatting
deadnix = {
url = "github:astro/deadnix";
@ -173,6 +178,7 @@
nixnuc = localLib.mkNixosHost {
hostname = "nixnuc";
additionalModules = [
inputs.cup-collector.nixosModules.default
inputs.private-flake.nixosModules.private.nixnuc
inputs.simple-nixos-mailserver.nixosModule
];

View file

@ -99,6 +99,7 @@
"BetterSnapTool" = 417375580;
"Brother iPrint&Scan" = 1193539993;
"Home Assistant" = 1099568401;
"LocalSend" = 1661733229;
"MQTT Explorer" = 1455214828;
};
};
@ -109,6 +110,7 @@
settings = {
bash-prompt-prefix = "(nix:$name)\040";
build-users-group = "nixbld";
download-buffer-size = 524288000;
experimental-features = [
"auto-allocate-uids"
"flakes"

View file

@ -0,0 +1,44 @@
{
inputs,
config,
pkgs,
...
}:
let
home_domain = "home.technicalissues.us";
in
{
services = {
cupCollector = {
enable = true;
# dataDir = "/var/lib/cup-collector";
domain = "cups.${home_domain}";
envFile = config.sops.secrets.cup_collector_env.path;
households = [
{
name = "Liverman Family";
slug = "liverman_family";
}
];
migrationsDir = inputs.cup-collector.packages.${pkgs.stdenv.hostPlatform.system}.migrations;
pbBindIp = "0.0.0.0";
pbPort = 8091; # override default due to conflict
pocketidIssuerUrl = config.services.pocket-id.settings.APP_URL;
port = 3010; # override default due to conflict
};
restic.backups.daily = {
paths = [
config.services.cupCollector.dataDir
];
};
};
sops = {
defaultSopsFile = ./secrets.yaml;
secrets.cup_collector_env.restartUnits = [
"cup-collector-pb-init.service"
"cup-collector.service"
];
};
}

View file

@ -17,6 +17,7 @@ in
./containers/audiobookshelf.nix
./containers/mountain-mesh-bot-discord.nix
./containers/psitransfer.nix
./cup-collector.nix
./monitoring-stack.nix
../../../shared/nixos/lets-encrypt.nix
../../../shared/nixos/restic.nix
@ -98,12 +99,14 @@ in
3002 # grafana
3005 # Firefly III
3006 # Firefly III Data Importer
3010 # Cup Collector
3030 # Forgejo
3087 # Youtarr in docker compose
8001 # Tube Archivist
8384 # Syncthing gui
8888 # Atuin
8090 # Wallabag in docker compose
8091 # PocketBase
8945 # Pinchflat
13378 # Audiobookshelf in oci-container
];
@ -146,13 +149,6 @@ in
# List services that you want to enable:
services = {
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
pulseaudio.enable = false;
atuin = {
enable = true;
host = "127.0.0.1";
@ -594,6 +590,12 @@ in
selfhosted = true; # Only because this is not exsposed to the web
user = "jellyfin";
};
pipewire = {
enable = true;
alsa.enable = true;
alsa.support32Bit = true;
pulse.enable = true;
};
pocket-id = {
enable = true;
settings = {
@ -617,6 +619,7 @@ in
backupAll = true;
startAt = "*-*-* 23:00:00";
};
pulseaudio.enable = false;
resolved.enable = true;
restic.backups.daily = {
paths = [