From fe8273c4d3eed7b51d67a81c69618151bf3c2fcc Mon Sep 17 00:00:00 2001 From: Jan Kremer Date: Mon, 2 Feb 2026 23:11:28 +0100 Subject: [PATCH] galanthus: Cleanup, add Copyparty --- flake.lock | 55 +++++++++++++++---- flake.nix | 4 ++ hosts/galanthus/configuration.nix | 1 + modules/nixos/adguardhome.nix | 6 --- modules/nixos/audiobookshelf.nix | 31 ----------- modules/nixos/copyparty.nix | 46 ++++++++++++++++ modules/nixos/default.nix | 5 +- modules/nixos/freshrss.nix | 24 --------- modules/nixos/immich.nix | 5 +- modules/nixos/nextcloud.nix | 86 ------------------------------ modules/nixos/opencloud.nix | 33 ------------ modules/nixos/pinchflat.nix | 31 ----------- modules/nixos/vaultwarden.nix | 32 ----------- modules/secrets/copyparty-jan.age | Bin 0 -> 343 bytes modules/secrets/nextcloud.age | 7 --- modules/secrets/secrets.nix | 2 +- 16 files changed, 103 insertions(+), 265 deletions(-) delete mode 100644 modules/nixos/adguardhome.nix delete mode 100644 modules/nixos/audiobookshelf.nix create mode 100644 modules/nixos/copyparty.nix delete mode 100644 modules/nixos/freshrss.nix delete mode 100644 modules/nixos/nextcloud.nix delete mode 100644 modules/nixos/opencloud.nix delete mode 100644 modules/nixos/pinchflat.nix delete mode 100644 modules/nixos/vaultwarden.nix create mode 100644 modules/secrets/copyparty-jan.age delete mode 100644 modules/secrets/nextcloud.age diff --git a/flake.lock b/flake.lock index 183253c..44632b6 100644 --- a/flake.lock +++ b/flake.lock @@ -23,6 +23,27 @@ "type": "github" } }, + "copyparty": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1770072317, + "narHash": "sha256-hxkLrjOO7pZ5m3ZRP3nCQEccSFDvC2cj7quEldSKhtM=", + "owner": "9001", + "repo": "copyparty", + "rev": "6694998985e98326ca4ca0a0724cfd4901be2430", + "type": "github" + }, + "original": { + "owner": "9001", + "repo": "copyparty", + "type": "github" + } + }, "darwin": { "inputs": { "nixpkgs": [ @@ -52,11 +73,11 @@ ] }, "locked": { - "lastModified": 1768220509, - "narHash": "sha256-8wMrJP/Xk5Dkm0TxzaERLt3eGFEhHTWaJKUpK3AoL4o=", + "lastModified": 1768764703, + "narHash": "sha256-5ulSDyOG1U+1sJhkJHYsUOWEsmtLl97O0NTVMvgIVyc=", "owner": "LnL7", "repo": "nix-darwin", - "rev": "7b1d394e7d9112d4060e12ef3271b38a7c43e83b", + "rev": "0fc4e7ac670a0ed874abacf73c4b072a6a58064b", "type": "github" }, "original": { @@ -65,6 +86,21 @@ "type": "github" } }, + "flake-utils": { + "locked": { + "lastModified": 1678901627, + "narHash": "sha256-U02riOqrKKzwjsxc/400XnElV+UtPUQWpANPlyazjH0=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "93a2b84fc4b70d9e089d029deacc3583435c2ed6", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, "home-manager": { "inputs": { "nixpkgs": [ @@ -93,11 +129,11 @@ ] }, "locked": { - "lastModified": 1768410656, - "narHash": "sha256-9CfEGvHgQ8KdhBI5x6RVkuvqCCM7KiVxCM1n9e3lVBA=", + "lastModified": 1769978395, + "narHash": "sha256-gj1yP3spUb1vGtaF5qPhshd2j0cg4xf51pklDsIm19Q=", "owner": "nix-community", "repo": "home-manager", - "rev": "85c83f70968516f571015e260fb21c774e586c0b", + "rev": "984708c34d3495a518e6ab6b8633469bbca2f77a", "type": "github" }, "original": { @@ -108,11 +144,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1768127708, - "narHash": "sha256-1Sm77VfZh3mU0F5OqKABNLWxOuDeHIlcFjsXeeiPazs=", + "lastModified": 1770019141, + "narHash": "sha256-VKS4ZLNx4PNrABoB0L8KUpc1fE7CLpQXQs985tGfaCU=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "ffbc9f8cbaacfb331b6017d5a5abb21a492c9a38", + "rev": "cb369ef2efd432b3cdf8622b0ffc0a97a02f3137", "type": "github" }, "original": { @@ -125,6 +161,7 @@ "root": { "inputs": { "agenix": "agenix", + "copyparty": "copyparty", "darwin": "darwin_2", "home-manager": "home-manager_2", "nixpkgs": "nixpkgs" diff --git a/flake.nix b/flake.nix index 6322a33..622ddfc 100644 --- a/flake.nix +++ b/flake.nix @@ -15,6 +15,10 @@ url = "github:ryantm/agenix"; inputs.nixpkgs.follows = "nixpkgs"; }; + copyparty = { + url = "github:9001/copyparty"; + inputs.nixpkgs.follows = "nixpkgs"; + }; }; outputs = diff --git a/hosts/galanthus/configuration.nix b/hosts/galanthus/configuration.nix index 1eaf13d..ad7af8f 100644 --- a/hosts/galanthus/configuration.nix +++ b/hosts/galanthus/configuration.nix @@ -7,6 +7,7 @@ { imports = [ inputs.agenix.nixosModules.default + inputs.copyparty.nixosModules.default ./hardware-configuration.nix ../../modules/nixos ]; diff --git a/modules/nixos/adguardhome.nix b/modules/nixos/adguardhome.nix deleted file mode 100644 index d9b9e65..0000000 --- a/modules/nixos/adguardhome.nix +++ /dev/null @@ -1,6 +0,0 @@ -{ - services.adguardhome = { - enable = true; - port = 3000; - }; -} diff --git a/modules/nixos/audiobookshelf.nix b/modules/nixos/audiobookshelf.nix deleted file mode 100644 index 03c1422..0000000 --- a/modules/nixos/audiobookshelf.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ - containers.audiobooks = { - autoStart = true; - bindMounts = { - "/var/lib/audiobookshelf" = { - hostPath = "/mnt/sdb1/media/audiobooks"; - isReadOnly = false; - }; - }; - - config = - { pkgs, ... }: - { - services = { - audiobookshelf = { - enable = true; - # port = 8000; - # host = "audiobooks.alpine-centauri.ts.net"; - }; - - tailscale = { - enable = true; - useRoutingFeatures = "server"; - interfaceName = "userspace-networking"; - }; - }; - - system.stateVersion = "24.05"; - }; - }; -} diff --git a/modules/nixos/copyparty.nix b/modules/nixos/copyparty.nix new file mode 100644 index 0000000..a97c44f --- /dev/null +++ b/modules/nixos/copyparty.nix @@ -0,0 +1,46 @@ +{ + config, + pkgs, + ... +}: +{ + age.secrets."copyparty-jan" = { + file = ../secrets/copyparty-jan.age; + mode = "400"; + owner = "copyparty"; + }; + + environment.systemPackages = [ pkgs.copyparty ]; + + services.copyparty = { + enable = true; + + settings = { + # p = 3923; + z = true; + ed = true; + e2dsa = true; + e2ts = true; + daw = true; # WebDAV + }; + + accounts = { + jan.passwordFile = config.age.secrets.copyparty-jan.path; + }; + + groups = { + family = [ "jan" ]; + }; + + volumes = { + "/" = { + path = "/mnt/sdb1/cloud"; + access = { + A = [ "jan" ]; + r = "*"; + }; + # flags = { }; + }; + }; + }; +} diff --git a/modules/nixos/default.nix b/modules/nixos/default.nix index c099ce2..5672f20 100644 --- a/modules/nixos/default.nix +++ b/modules/nixos/default.nix @@ -1,12 +1,11 @@ { imports = [ + ./copyparty.nix # ./forgejo.nix # ./immich.nix ./jellyfin.nix # ./minecraft.nix - ./opencloud.nix - # ./pinchflat.nix - ./samba.nix + # ./samba.nix ./tailscale.nix ]; } diff --git a/modules/nixos/freshrss.nix b/modules/nixos/freshrss.nix deleted file mode 100644 index 46d4cd4..0000000 --- a/modules/nixos/freshrss.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ - containers.freshrss = { - autoStart = true; - - config = { - services = { - freshrss = { - enable = true; - language = "de"; - authType = "none"; - baseUrl = "https://freshrss.alpine-centauri.ts.net"; - }; - - tailscale = { - enable = true; - useRoutingFeatures = "server"; - interfaceName = "userspace-networking"; - }; - }; - - system.stateVersion = "24.05"; - }; - }; -} diff --git a/modules/nixos/immich.nix b/modules/nixos/immich.nix index f171dfd..5512550 100644 --- a/modules/nixos/immich.nix +++ b/modules/nixos/immich.nix @@ -1,5 +1,5 @@ { - containers.immich = { + containers.photos = { autoStart = true; bindMounts = { @@ -13,7 +13,8 @@ services = { immich = { enable = true; - host = "immich.alpine-centauri.ts.net"; + # port = 2283; + host = "photos.alpine-centauri.ts.net"; }; tailscale = { diff --git a/modules/nixos/nextcloud.nix b/modules/nixos/nextcloud.nix deleted file mode 100644 index 89d1cd5..0000000 --- a/modules/nixos/nextcloud.nix +++ /dev/null @@ -1,86 +0,0 @@ -{ inputs, ... }: -{ - containers.nextcloud = { - autoStart = true; - bindMounts = { - "/etc/ssh/ssh_host_ed25519_key".hostPath = "/etc/ssh/ssh_host_ed25519_key"; - "/var/lib/nextcloud/data" = { - hostPath = "/mnt/sdb1/data"; - isReadOnly = false; - }; - }; - - config = - { pkgs, config, ... }: - { - imports = [ inputs.agenix.nixosModules.default ]; - - age = { - identityPaths = [ "/etc/ssh/ssh_host_ed25519_key" ]; - secrets."nextcloud" = { - file = ../secrets/nextcloud.age; - mode = "400"; - owner = "nextcloud"; - }; - }; - - services = { - nextcloud = { - enable = true; - package = pkgs.nextcloud30; - hostName = "nextcloud"; - https = true; - config = { - adminpassFile = config.age.secrets.nextcloud.path; - }; - settings = { - trusted_domains = [ "nextcloud.alpine-centauri.ts.net" ]; - enabledPreviewProviders = [ - "OC\\Preview\\AVI" - "OC\\Preview\\BMP" - "OC\\Preview\\GIF" - "OC\\Preview\\HEIC" - "OC\\Preview\\JPEG" - "OC\\Preview\\Krita" - "OC\\Preview\\MKV" - "OC\\Preview\\MP3" - "OC\\Preview\\MP4" - "OC\\Preview\\MarkDown" - "OC\\Preview\\Movie" - "OC\\Preview\\OpenDocument" - "OC\\Preview\\PDF" - "OC\\Preview\\PNG" - "OC\\Preview\\TXT" - "OC\\Preview\\XBitmap" - ]; - }; - - database.createLocally = true; - configureRedis = true; - - maxUploadSize = "1G"; - - ## Set up non-declaratively for now - # extraAppsEnable = true; - # autoUpdateApps.enable = true; - # extraApps = { - # inherit (config.services.nextcloud.package.packages.apps) - # news - # contacts - # calendar - # tasks - # ; - # }; - }; - - tailscale = { - enable = true; - useRoutingFeatures = "server"; - interfaceName = "userspace-networking"; - }; - }; - - system.stateVersion = "24.05"; - }; - }; -} diff --git a/modules/nixos/opencloud.nix b/modules/nixos/opencloud.nix deleted file mode 100644 index af4379c..0000000 --- a/modules/nixos/opencloud.nix +++ /dev/null @@ -1,33 +0,0 @@ -{ - containers.cloud = { - autoStart = true; - bindMounts = { - "/var/lib/opencloud" = { - hostPath = "/mnt/sdb1/opencloud"; - isReadOnly = false; - }; - }; - - config = { - services = { - opencloud = { - enable = true; - # port = 9200; - # settings = { }; - environment = { - OC_INSECURE = "true"; - OC_URL = "https://cloud.alpine-centauri.ts.net"; - }; - }; - - tailscale = { - enable = true; - useRoutingFeatures = "server"; - interfaceName = "userspace-networking"; - }; - }; - - system.stateVersion = "24.05"; - }; - }; -} diff --git a/modules/nixos/pinchflat.nix b/modules/nixos/pinchflat.nix deleted file mode 100644 index 09451d1..0000000 --- a/modules/nixos/pinchflat.nix +++ /dev/null @@ -1,31 +0,0 @@ -{ - virtualisation.oci-containers = { - containers = { - pinchflat = { - image = "ghcr.io/kieraneglin/pinchflat:latest"; - environment.TZ = "Europe/Berlin"; - ports = [ "127.0.0.1:8945:8945" ]; - volumes = [ - "/mnt/sdb1/media/youtube/config:/config" - "/mnt/sdb1/media/youtube/downloads:/downloads" - ]; - }; - }; - }; - - containers.youtube = { - autoStart = true; - - config = { - services = { - tailscale = { - enable = true; - useRoutingFeatures = "server"; - interfaceName = "userspace-networking"; - }; - }; - - system.stateVersion = "24.05"; - }; - }; -} diff --git a/modules/nixos/vaultwarden.nix b/modules/nixos/vaultwarden.nix deleted file mode 100644 index a7c2f3c..0000000 --- a/modules/nixos/vaultwarden.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ - containers.vault = { - autoStart = true; - bindMounts = { - "/var/backup/vaultwarden" = { - hostPath = "/mnt/sdb1/vaultwarden"; - isReadOnly = false; - }; - }; - - config = { - services = { - vaultwarden = { - enable = true; - backupDir = "/var/backup/vaultwarden"; - dbBackend = "postgresql"; - config = { - # SIGNUPS_ALLOWED = false; - }; - }; - - tailscale = { - enable = true; - useRoutingFeatures = "server"; - interfaceName = "userspace-networking"; - }; - }; - - system.stateVersion = "24.05"; - }; - }; -} diff --git a/modules/secrets/copyparty-jan.age b/modules/secrets/copyparty-jan.age new file mode 100644 index 0000000000000000000000000000000000000000..5fb771d387f1d88bbcc918d693a957ba9ae4e682 GIT binary patch literal 343 zcmYdHPt{G$OD?J`D9Oyv)5|YP*Do{V(zR14F3!+RO))YxHMCSP$}cHMPFL_ZG|lvP ztMYIu&W^N5)OR#DNDVP@F0Dv%O?IsecJ>VkaWi(b$f_!FHsH!hc1jOQPjxr`2fiZIRc@+&D0Hi#;(ibyIcG&a?DH1{&j@z|S63k*(a6-(w5Zt4G(Fte%*)$3JlHU+NINnu zD$U=(HL=p5%0E%NEHEP{FqBJG=Py4W$H%QT+wQ1*p6)Q~NcAk6^Raf}pNlOua%HBU bD7HDSwlK$8Qp)#34|DGp(TRo(2QLBu*qCv9 literal 0 HcmV?d00001 diff --git a/modules/secrets/nextcloud.age b/modules/secrets/nextcloud.age deleted file mode 100644 index c04493b..0000000 --- a/modules/secrets/nextcloud.age +++ /dev/null @@ -1,7 +0,0 @@ -age-encryption.org/v1 --> ssh-ed25519 2otpcg 3veZJ75b0D5gej3P4fHkM8yGzVH5ldkGOCYBkdztoSw -KXDhfvj/wfpMXqQ1MspymfJBBqRJktcSngIkEBDSUu4 --> ssh-ed25519 40YjXQ L1yJYjyAmCi7W05BAVeFZi3mSCzBNU0/hqm2prEV/wI -J6lFx4DD+Lj4tjsBntIlzuvZfqTQ3P7xzNZs0vcZBko ---- 0uC4zy+Xahwt3nuFJyNyHVCIPcgwxVX8cXo0ivwQUaU -Q㲱!RGE)c@ n ڠnzhkr \ No newline at end of file diff --git a/modules/secrets/secrets.nix b/modules/secrets/secrets.nix index c78a80c..fbd1246 100644 --- a/modules/secrets/secrets.nix +++ b/modules/secrets/secrets.nix @@ -7,7 +7,7 @@ let ]; in { - "nextcloud.age".publicKeys = all; + "copyparty-jan.age".publicKeys = all; "forgejo-runner-token.age".publicKeys = all; "tailscale.age".publicKeys = all; }