From 188ddc66c4569a8edd2257fe4bdb729604db8205 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kha=C3=AFs=20COLIN?= Date: Wed, 13 Aug 2025 17:41:35 +0200 Subject: [PATCH] install copyparty --- flake.lock | 90 ++++++++++++++++++++++++++++++++++++++++++------------ flake.nix | 9 ++++++ void.nix | 42 +++++++++++++++++++++++++ 3 files changed, 121 insertions(+), 20 deletions(-) diff --git a/flake.lock b/flake.lock index 5b1d3ad..19f815c 100644 --- a/flake.lock +++ b/flake.lock @@ -107,6 +107,25 @@ "url": "ssh://forgejo@forgejo.005540.xyz/logistic-bot/cassowary" } }, + "copyparty": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1755035202, + "narHash": "sha256-gFYvDIAU1HoqgYUOuetUsiJZAe1tuU/f0ju5JYoGySg=", + "owner": "9001", + "repo": "copyparty", + "rev": "715d374ee4d849ef4e7da2aec84f68f5dad87458", + "type": "github" + }, + "original": { + "owner": "9001", + "repo": "copyparty", + "type": "github" + } + }, "devshell": { "inputs": { "nixpkgs": [ @@ -276,6 +295,21 @@ } }, "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" + } + }, + "flake-utils_2": { "locked": { "lastModified": 1667395993, "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", @@ -290,7 +324,7 @@ "type": "github" } }, - "flake-utils_2": { + "flake-utils_3": { "inputs": { "systems": "systems_2" }, @@ -308,7 +342,7 @@ "type": "github" } }, - "flake-utils_3": { + "flake-utils_4": { "inputs": { "systems": "systems_3" }, @@ -477,9 +511,9 @@ "mms": { "inputs": { "flake-compat": "flake-compat", - "flake-utils": "flake-utils", + "flake-utils": "flake-utils_2", "nix": "nix", - "nixpkgs": "nixpkgs_2" + "nixpkgs": "nixpkgs_3" }, "locked": { "lastModified": 1669478601, @@ -498,7 +532,7 @@ "nix": { "inputs": { "lowdown-src": "lowdown-src", - "nixpkgs": "nixpkgs", + "nixpkgs": "nixpkgs_2", "nixpkgs-regression": "nixpkgs-regression" }, "locked": { @@ -562,7 +596,7 @@ }, "nixos-06cb-009a-fingerprint-sensor": { "inputs": { - "nixpkgs": "nixpkgs_3" + "nixpkgs": "nixpkgs_4" }, "locked": { "lastModified": 1734692513, @@ -580,18 +614,17 @@ }, "nixpkgs": { "locked": { - "lastModified": 1657693803, - "narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=", + "lastModified": 1748162331, + "narHash": "sha256-rqc2RKYTxP3tbjA+PB3VMRQNnjesrT0pEofXQTrMsS8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "365e1b3a859281cf11b94f87231adeabbdd878a2", + "rev": "7c43f080a7f28b2774f3b3f43234ca11661bf334", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixos-22.05-small", - "repo": "nixpkgs", - "type": "github" + "id": "nixpkgs", + "ref": "nixos-25.05", + "type": "indirect" } }, "nixpkgs-lib": { @@ -639,6 +672,22 @@ } }, "nixpkgs_2": { + "locked": { + "lastModified": 1657693803, + "narHash": "sha256-G++2CJ9u0E7NNTAi9n5G8TdDmGJXcIjkJ3NF8cetQB8=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "365e1b3a859281cf11b94f87231adeabbdd878a2", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-22.05-small", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { "locked": { "lastModified": 1669378442, "narHash": "sha256-nm+4PN0A4SnV0SzEchxrMyKPvI3Ld/aoom4PnHeHucs=", @@ -654,7 +703,7 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_4": { "locked": { "lastModified": 1734323986, "narHash": "sha256-m/lh6hYMIWDYHCAsn81CDAiXoT3gmxXI9J987W5tZrE=", @@ -669,7 +718,7 @@ "type": "indirect" } }, - "nixpkgs_4": { + "nixpkgs_5": { "locked": { "lastModified": 1757810152, "narHash": "sha256-Vp9K5ol6h0J90jG7Rm4RWZsCB3x7v5VPx588TQ1dkfs=", @@ -685,7 +734,7 @@ "type": "github" } }, - "nixpkgs_5": { + "nixpkgs_6": { "locked": { "lastModified": 1721924956, "narHash": "sha256-Sb1jlyRO+N8jBXEX9Pg9Z1Qb8Bw9QyOgLDNMEpmjZ2M=", @@ -704,7 +753,7 @@ "nixvim": { "inputs": { "flake-parts": "flake-parts", - "nixpkgs": "nixpkgs_5", + "nixpkgs": "nixpkgs_6", "nixvim": "nixvim_2" }, "locked": { @@ -778,7 +827,7 @@ }, "nuschtosSearch": { "inputs": { - "flake-utils": "flake-utils_2", + "flake-utils": "flake-utils_3", "nixpkgs": [ "nixvim", "nixvim", @@ -801,7 +850,7 @@ }, "other-transcode": { "inputs": { - "flake-utils": "flake-utils_3", + "flake-utils": "flake-utils_4", "nixpkgs": [ "nixpkgs" ] @@ -844,11 +893,12 @@ "inputs": { "breezex-cursor": "breezex-cursor", "cassowary": "cassowary", + "copyparty": "copyparty", "home-manager": "home-manager", "mms": "mms", "nix-doom-emacs-unstraightened": "nix-doom-emacs-unstraightened", "nixos-06cb-009a-fingerprint-sensor": "nixos-06cb-009a-fingerprint-sensor", - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs_5", "nixpkgs-unstable": "nixpkgs-unstable", "nixvim": "nixvim", "other-transcode": "other-transcode", diff --git a/flake.nix b/flake.nix index 6a608ba..80cca1e 100644 --- a/flake.nix +++ b/flake.nix @@ -47,6 +47,8 @@ }; mms.url = "github:mkaito/nixos-modded-minecraft-servers"; + + copyparty.url = "github:9001/copyparty"; }; outputs = { nixpkgs, @@ -61,6 +63,7 @@ nixos-06cb-009a-fingerprint-sensor, cassowary, mms, + copyparty, ... }: let system = "x86_64-linux"; @@ -92,6 +95,12 @@ stylix.nixosModules.stylix ./stylix.nix + + copyparty.nixosModules.default + ({ ... }: { + # add the copyparty overlay to expose the package to the module + nixpkgs.overlays = [ copyparty.overlays.default ]; + }) ]; specialArgs = { pkgs-unstable = nixpkgs-unstable.legacyPackages.${system}; diff --git a/void.nix b/void.nix index e5f668a..e53f405 100644 --- a/void.nix +++ b/void.nix @@ -56,6 +56,7 @@ # package for controlling brightness on external monitor environment.systemPackages = [ pkgs.ddcutil + pkgs.copyparty ]; # mount external drive @@ -373,6 +374,41 @@ }; }; + services.copyparty = { + enable = true; + settings = { + z = true; + i = "127.0.0.1"; + p = "3004"; + xff-hdr = "X-Forwarded-For"; + xff-src = "127.0.0.1"; + rproxy = 1; + e2dsa = true; + e2ts = true; + re-maxage = 7200; # rescan every 2 hours + no-robots = true; + theme = 2; + shr = "/shr"; + }; + accounts = { + "khais" = { + passwordFile = "/etc/nixos/secrets/copyparty/khais.password"; + }; + }; + volumes = { + "/" = { + path = "/pile/copyparty/"; + access = { + "g" = "*"; + "A" = ["khais"]; + }; + flags = { + fk = 8; + }; + }; + }; + }; + services.victorialogs = { enable = true; extraOptions = ["-memory.allowedBytes=100MB"]; @@ -400,6 +436,7 @@ recommendedGzipSettings = true; recommendedProxySettings = true; logError = "stderr info"; + clientMaxBodySize = "64G"; appendHttpConfig = '' access_log syslog:server=unix:/dev/log combined; ''; @@ -460,6 +497,11 @@ enableACME = true; forceSSL = true; }; + "copyparty.005540.xyz" = { + locations."/".proxyPass = "http://localhost:3004"; + enableACME = true; + forceSSL = true; + }; }; }; }