1 Commits

Author SHA1 Message Date
f5c48b41fa immich proxy 2025-01-08 18:59:30 +00:00
10 changed files with 118 additions and 68 deletions

138
flake.lock generated
View File

@ -87,11 +87,11 @@
]
},
"locked": {
"lastModified": 1737162735,
"narHash": "sha256-5T+HkouTMGaRm0rh3kgD4Z1O7ONKfgjyoPQH5rSyreU=",
"lastModified": 1735956190,
"narHash": "sha256-svzx3yVXD5tbBJZCn3Lt1RriH8GHo6CyVUPTHejf7sU=",
"owner": "lnl7",
"repo": "nix-darwin",
"rev": "87131f51f8256952d1a306b5521cedc2dc61aa08",
"rev": "3feaf376d75d3d58ebf7e9a4f584d00628548ad9",
"type": "github"
},
"original": {
@ -108,11 +108,11 @@
]
},
"locked": {
"lastModified": 1737038063,
"narHash": "sha256-rMEuiK69MDhjz1JgbaeQ9mBDXMJ2/P8vmOYRbFndXsk=",
"lastModified": 1735468753,
"narHash": "sha256-2dt1nOe9zf9pDkf5Kn7FUFyPRo581s0n90jxYXJ94l0=",
"owner": "nix-community",
"repo": "disko",
"rev": "bf0abfde48f469c256f2b0f481c6281ff04a5db2",
"rev": "84a5b93637cc16cbfcc61b6e1684d626df61eb21",
"type": "github"
},
"original": {
@ -145,11 +145,11 @@
]
},
"locked": {
"lastModified": 1737161595,
"narHash": "sha256-Txp3uh0KdB3+Pe6xihU0JWWe0LK8iXTUnZ8bOcKu3w0=",
"lastModified": 1735952135,
"narHash": "sha256-1omANFYtwEeAwwzSQqJbob1ctswLa9L9QS18Kg8ICjc=",
"owner": "bandithedoge",
"repo": "nixpkgs-firefox-darwin",
"rev": "3224752c71a5245e90cfae360e0dc5de98e2b53c",
"rev": "72ce135b49236c110d86bce6e6d25bfafcc2158d",
"type": "github"
},
"original": {
@ -268,14 +268,32 @@
"type": "github"
}
},
"flake-utils_4": {
"inputs": {
"systems": "systems_4"
},
"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"
}
},
"gh-collaborators": {
"flake": false,
"locked": {
"lastModified": 1736185279,
"narHash": "sha256-SGmP/8Fvf2rcYkwscMOFG01Y0VJGb/TXrNZtLacurxA=",
"lastModified": 1717117275,
"narHash": "sha256-x3p2bHL6U8gWanXnTTJGgA9x4Ixy9AOZiBbfcfn5VVw=",
"owner": "katiem0",
"repo": "gh-collaborators",
"rev": "bf412dde50605e48af86f291c2ac8714f2c1b228",
"rev": "4dfcd0b5c2e31f2d0fbfd4b83fdfae787a5e6ff8",
"type": "github"
},
"original": {
@ -307,11 +325,11 @@
]
},
"locked": {
"lastModified": 1737120639,
"narHash": "sha256-p5e/45V41YD3tMELuiNIoVCa25/w4nhOTm0B9MtdHFI=",
"lastModified": 1735947440,
"narHash": "sha256-jnEcfmOhWntmVEcqlvs+j532+mvmgsKtQSSfukgkn+A=",
"owner": "nix-community",
"repo": "home-manager",
"rev": "a0046af169ce7b1da503974e1b22c48ef4d71887",
"rev": "a9987622b7b93c82e147f198574e8e6ffbf5e327",
"type": "github"
},
"original": {
@ -330,11 +348,11 @@
"rust-overlay": "rust-overlay"
},
"locked": {
"lastModified": 1737163288,
"narHash": "sha256-PROBXqOUzgqIG66S74P1nyg7MbNoQ01k3oF0IM7qpHY=",
"lastModified": 1735923240,
"narHash": "sha256-xRJvm/YfV9aHyesx52N/t6fauk86Ajfj/ILFldEZ8nk=",
"owner": "martinvonz",
"repo": "jj",
"rev": "83d40d2c425fa2e050bdac8837b19e5beb3bef25",
"rev": "1ddfc59ee95d680ccbd0cfcbcf86c9202f8e44ca",
"type": "github"
},
"original": {
@ -409,7 +427,7 @@
"nextcloud-snappymail": {
"flake": false,
"locked": {
"lastModified": 1737171597,
"lastModified": 1735962117,
"narHash": "sha256-oCw6Brs85rINBHvz3UJXheyLVqvA3RgPXG03b30Fx7E=",
"type": "tarball",
"url": "https://snappymail.eu/repository/nextcloud/snappymail-2.38.2-nextcloud.tar.gz"
@ -442,11 +460,11 @@
},
"nixlib": {
"locked": {
"lastModified": 1736643958,
"narHash": "sha256-tmpqTSWVRJVhpvfSN9KXBvKEXplrwKnSZNAoNPf/S/s=",
"lastModified": 1734829460,
"narHash": "sha256-dPhc+f2wkmhMqMIfq+hColJdysgVxKP9ilZ5bR0NRZI=",
"owner": "nix-community",
"repo": "nixpkgs.lib",
"rev": "1418bc28a52126761c02dd3d89b2d8ca0f521181",
"rev": "0a31e8d833173ae63e43fd9dbff1ccf09c4f778c",
"type": "github"
},
"original": {
@ -463,11 +481,11 @@
]
},
"locked": {
"lastModified": 1737057290,
"narHash": "sha256-3Pe0yKlCc7EOeq1X/aJVDH0CtNL+tIBm49vpepwL1MQ=",
"lastModified": 1734915500,
"narHash": "sha256-A7CTIQ8SW0hfbhKlwK+vSsu4pD+Oaelw3v6goX6go+U=",
"owner": "nix-community",
"repo": "nixos-generators",
"rev": "d002ce9b6e7eb467cd1c6bb9aef9c35d191b5453",
"rev": "051d1b2dda3b2e81b38d82e2b691e5c2f4d335f4",
"type": "github"
},
"original": {
@ -478,11 +496,11 @@
},
"nixpkgs": {
"locked": {
"lastModified": 1737062831,
"narHash": "sha256-Tbk1MZbtV2s5aG+iM99U8FqwxU/YNArMcWAv6clcsBc=",
"lastModified": 1735834308,
"narHash": "sha256-dklw3AXr3OGO4/XT1Tu3Xz9n/we8GctZZ75ZWVqAVhk=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "5df43628fdf08d642be8ba5b3625a6c70731c19c",
"rev": "6df24922a1400241dae323af55f30e4318a6ca65",
"type": "github"
},
"original": {
@ -526,11 +544,11 @@
},
"nixpkgs_2": {
"locked": {
"lastModified": 1737062831,
"narHash": "sha256-Tbk1MZbtV2s5aG+iM99U8FqwxU/YNArMcWAv6clcsBc=",
"lastModified": 1735834308,
"narHash": "sha256-dklw3AXr3OGO4/XT1Tu3Xz9n/we8GctZZ75ZWVqAVhk=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "5df43628fdf08d642be8ba5b3625a6c70731c19c",
"rev": "6df24922a1400241dae323af55f30e4318a6ca65",
"type": "github"
},
"original": {
@ -547,11 +565,11 @@
"treefmt-nix": "treefmt-nix"
},
"locked": {
"lastModified": 1737170882,
"narHash": "sha256-Km700i1Eg72bFsU2X2ZgH4qEgx6SrdZFJURJGTSQH2M=",
"lastModified": 1735962132,
"narHash": "sha256-7elXLoHAQ/+usWi6R08SntEiV8WyAisJAin3T0GEBPE=",
"owner": "nix-community",
"repo": "nur",
"rev": "62cdd681201843553ec740a85ccf2f0a6fca75c6",
"rev": "b085ce9e13651cc235ca993af7a5b09990d27807",
"type": "github"
},
"original": {
@ -563,11 +581,11 @@
"nvim-lint-src": {
"flake": false,
"locked": {
"lastModified": 1736154173,
"narHash": "sha256-OChCLXHAqa129NiGfmwddq0Hj5F9AtC3TmFbnNCZqfo=",
"lastModified": 1734606055,
"narHash": "sha256-tD1ciHUdHIcqymImZjSSNq6M5hjsrD66AJhmLTy0cIY=",
"owner": "mfussenegger",
"repo": "nvim-lint",
"rev": "dfa45de973c3ce7bd1b9a6d346f896a68ad07e44",
"rev": "1fea92f1d9908eaa5eb8bafe08b4293d7aadaa55",
"type": "github"
},
"original": {
@ -596,11 +614,11 @@
"nvim-tree-lua-src": {
"flake": false,
"locked": {
"lastModified": 1737156486,
"narHash": "sha256-b8YOOIYML9aKy4Y7S+iLKIaTfCqrxK1wB/ZaeFRCUmo=",
"lastModified": 1734820548,
"narHash": "sha256-4PmP31vYPH9xw4AjV5rDSKvcvZGTnIaPfR4Bwc0lAiA=",
"owner": "kyazdani42",
"repo": "nvim-tree.lua",
"rev": "fca0b67c0b5a31727fb33addc4d9c100736a2894",
"rev": "68fc4c20f5803444277022c681785c5edd11916d",
"type": "github"
},
"original": {
@ -748,11 +766,11 @@
"snipe-nvim-src": {
"flake": false,
"locked": {
"lastModified": 1736108869,
"narHash": "sha256-sJ71eiE0XmMJkhNCkbY82R4eHzBOOKFrPa+nxLc1f8s=",
"lastModified": 1734918876,
"narHash": "sha256-nut2POcxH1LgxTEKDikvRPPpbtmvlDDF52SoWZNC1Fg=",
"owner": "leath-dub",
"repo": "snipe.nvim",
"rev": "0d0a482ac713370196e4fc0025d5aaac5030104d",
"rev": "2550012916d4fb21d6d1c7a88a9bddde651bb1f0",
"type": "github"
},
"original": {
@ -806,6 +824,21 @@
"type": "github"
}
},
"systems_4": {
"locked": {
"lastModified": 1681028828,
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
"owner": "nix-systems",
"repo": "default",
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
"type": "github"
},
"original": {
"owner": "nix-systems",
"repo": "default",
"type": "github"
}
},
"telescope-nvim-src": {
"flake": false,
"locked": {
@ -842,11 +875,11 @@
"tiny-inline-diagnostic-nvim-src": {
"flake": false,
"locked": {
"lastModified": 1736959343,
"narHash": "sha256-11+Z54shcy5oRevfTOu3dt5DtXhnYaH9zvktH6Lvxjs=",
"lastModified": 1735568714,
"narHash": "sha256-rZ5+w6v9ONFTQIXvwTUJuwZKRaXdHZUNEUDfBsC2IMM=",
"owner": "rachartier",
"repo": "tiny-inline-diagnostic.nvim",
"rev": "aaa6f0dd097f8ca2478cad259e61b7cb26ec0eb8",
"rev": "867902d5974a18c156c918ab8addbf091719de27",
"type": "github"
},
"original": {
@ -941,11 +974,11 @@
"tree-sitter-python": {
"flake": false,
"locked": {
"lastModified": 1736288149,
"narHash": "sha256-IIAL2qteFPBCPmDK1N2EdDgpI4CwfMuuVL8t5tYueLU=",
"lastModified": 1734908773,
"narHash": "sha256-71Od4sUsxGEvTwmXX8hBvzqD55hnXkVJublrhp1GICg=",
"owner": "tree-sitter",
"repo": "tree-sitter-python",
"rev": "409b5d671eb0ea4972eeacaaca24bbec1acf79b1",
"rev": "bffb65a8cfe4e46290331dfef0dbf0ef3679de11",
"type": "github"
},
"original": {
@ -1027,16 +1060,17 @@
"wsl": {
"inputs": {
"flake-compat": "flake-compat_2",
"flake-utils": "flake-utils_4",
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1736095716,
"narHash": "sha256-csysw/Szu98QDiA2lhWk9seYOyCebeVEWL89zh1cduM=",
"lastModified": 1733854371,
"narHash": "sha256-K9qGHniYBbjqVcEiwXyiofj/IFf78L5F0/FCf+CKyr0=",
"owner": "nix-community",
"repo": "NixOS-WSL",
"rev": "63c3b4ed1712a3a0621002cd59bfdc80875ecbb0",
"rev": "dee4425dcee3149475ead0cb6a616b8a028c5888",
"type": "github"
},
"original": {

View File

@ -100,7 +100,6 @@ inputs.nixpkgs.lib.nixosSystem rec {
endpoint = "s3.us-west-002.backblazeb2.com";
bucket = "noahmasur-backup";
accessKeyId = "0026b0e73b2e2c80000000005";
resticBucket = "noahmasur-restic";
};
# Disable passwords, only use SSH key

View File

@ -134,7 +134,7 @@ inputs.nixpkgs.lib.nixosSystem rec {
endpoint = "s3.us-west-002.backblazeb2.com";
bucket = "noahmasur-backup";
accessKeyId = "0026b0e73b2e2c80000000005";
resticBucket = "noahmasur-restic";
glacierBucket = "noahmasur-archive";
};
# Disable passwords, only use SSH key

View File

@ -34,7 +34,6 @@
pkgs.ipcalc # Make IP network calculations
# pkgs.teams
pkgs.cloudflared # Allow connecting to Cloudflare tunnels
pkgs.monitorcontrol # Allows adjusting external displays
(pkgs.writeShellApplication {
name = "ocr";
runtimeInputs = [ pkgs.tesseract ];

View File

@ -66,9 +66,6 @@
# Configure Cloudflare DNS to point to this machine
services.cloudflare-dyndns.domains = [ config.hostnames.budget ];
# Backups
services.restic.backups.default.paths = [ "/var/lib/actualbudget" ];
};
}

View File

@ -22,9 +22,9 @@
description = "S3 access key ID for backups";
default = null;
};
resticBucket = lib.mkOption {
glacierBucket = lib.mkOption {
type = lib.types.nullOr lib.types.str;
description = "S3 bucket for restic backups";
description = "S3 bucket for glacier backups";
default = null;
};
};
@ -84,9 +84,9 @@
dest = "${config.secretsDirectory}/restic";
};
services.restic.backups = lib.mkIf (config.backup.s3.resticBucket != null) {
services.restic.backups = lib.mkIf (config.backup.s3.glacierBucket != null) {
default = {
repository = "s3:s3.us-east-1.amazonaws.com/${config.backup.s3.resticBucket}/restic";
repository = "s3:s3.us-east-1.amazonaws.com/${config.backup.s3.glacierBucket}/restic";
paths = [ ];
environmentFile = config.secrets.s3-glacier.dest;
passwordFile = config.secrets.restic.dest;

View File

@ -16,6 +16,7 @@
./cloudflare.nix
./filebrowser.nix
./identity.nix
./immich-proxy.nix
./immich.nix
./irc.nix
./gitea-runner.nix

View File

@ -0,0 +1,23 @@
{ config, lib, ... }:
{
options = {
immich-proxy.enable = lib.mkEnableOption "Immich proxy";
};
config = lib.mkIf config.services.immich-proxy.enable {
caddy.routes = [
{
match = [ { host = [ config.hostnames.photosProxy ]; } ];
handle = [
{
handler = "reverse_proxy";
upstreams = [ { dial = "${config.hostnames.photosBackend}:443"; } ];
}
];
}
];
};
}

View File

@ -57,9 +57,5 @@
systemd.services.paperless-web.serviceConfig.UMask = lib.mkForce "0026";
systemd.services.paperless-scheduler.serviceConfig.UMask = lib.mkForce "0026";
systemd.services.paperless-task-queue.serviceConfig.UMask = lib.mkForce "0026";
# Backups
services.restic.backups.default.paths = [ "/data/generic/paperless/documents" ];
};
}

View File

@ -2,10 +2,11 @@ inputs: _final: prev: {
gh-collaborators = prev.buildGoModule rec {
pname = "gh-collaborators";
version = "v3.0.0";
version = "v2.0.3";
src = inputs.gh-collaborators;
vendorHash = "sha256-9qmvG2q9t1Zj8yhKFyA99IaJ90R/gRVdQVjdliVKLRE";
# vendorHash = "sha256-rsRDOgJBa8T6+bC/APcmuRmg6ykbIp9pwRnJ9rrfHEs=";
vendorHash = "sha256-fykxRb2U9DDsXorRTLiVWmhMY89N7RS07sal8ww6gz4=";
ldflags = [
"-s"