diff --git a/flake.lock b/flake.lock index 59c650c..01c7323 100644 --- a/flake.lock +++ b/flake.lock @@ -68,6 +68,25 @@ "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" + } + }, "firefox-addons": { "inputs": { "nixpkgs": [ @@ -148,6 +167,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": { "inputs": { "systems": "systems" }, @@ -238,8 +272,8 @@ }, "lazyvim": { "inputs": { - "flake-utils": "flake-utils", - "nixpkgs": "nixpkgs" + "flake-utils": "flake-utils_2", + "nixpkgs": "nixpkgs_2" }, "locked": { "lastModified": 1769812456, @@ -259,7 +293,7 @@ "inputs": { "niri-stable": "niri-stable", "niri-unstable": "niri-unstable", - "nixpkgs": "nixpkgs_2", + "nixpkgs": "nixpkgs_3", "nixpkgs-stable": "nixpkgs-stable", "xwayland-satellite-stable": "xwayland-satellite-stable", "xwayland-satellite-unstable": "xwayland-satellite-unstable" @@ -313,18 +347,17 @@ }, "nixpkgs": { "locked": { - "lastModified": 1752480373, - "narHash": "sha256-JHQbm+OcGp32wAsXTE/FLYGNpb+4GLi5oTvCxwSoBOA=", + "lastModified": 1748162331, + "narHash": "sha256-rqc2RKYTxP3tbjA+PB3VMRQNnjesrT0pEofXQTrMsS8=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "62e0f05ede1da0d54515d4ea8ce9c733f12d9f08", + "rev": "7c43f080a7f28b2774f3b3f43234ca11661bf334", "type": "github" }, "original": { - "owner": "NixOS", - "ref": "nixos-unstable", - "repo": "nixpkgs", - "type": "github" + "id": "nixpkgs", + "ref": "nixos-25.05", + "type": "indirect" } }, "nixpkgs-stable": { @@ -344,6 +377,22 @@ } }, "nixpkgs_2": { + "locked": { + "lastModified": 1752480373, + "narHash": "sha256-JHQbm+OcGp32wAsXTE/FLYGNpb+4GLi5oTvCxwSoBOA=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "62e0f05ede1da0d54515d4ea8ce9c733f12d9f08", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { "locked": { "lastModified": 1769789167, "narHash": "sha256-kKB3bqYJU5nzYeIROI82Ef9VtTbu4uA3YydSk/Bioa8=", @@ -359,7 +408,7 @@ "type": "github" } }, - "nixpkgs_3": { + "nixpkgs_4": { "locked": { "lastModified": 1769741972, "narHash": "sha256-RxSg1EioTWNpoLaykiT1UQKTo/K0PPdLqCyQgNjNqWs=", @@ -375,7 +424,7 @@ "type": "github" } }, - "nixpkgs_4": { + "nixpkgs_5": { "locked": { "lastModified": 1769461804, "narHash": "sha256-msG8SU5WsBUfVVa/9RPLaymvi5bI8edTavbIq3vRlhI=", @@ -438,13 +487,14 @@ }, "root": { "inputs": { + "copyparty": "copyparty", "firefox-addons": "firefox-addons", "flake-parts": "flake-parts", "home-manager": "home-manager", "import-tree": "import-tree", "lazyvim": "lazyvim", "niri-flake": "niri-flake", - "nixpkgs": "nixpkgs_3", + "nixpkgs": "nixpkgs_4", "noctalia": "noctalia", "sops-nix": "sops-nix", "spicetify-nix": "spicetify-nix", @@ -473,7 +523,7 @@ }, "spicetify-nix": { "inputs": { - "nixpkgs": "nixpkgs_4", + "nixpkgs": "nixpkgs_5", "systems": "systems_2" }, "locked": { diff --git a/flake.nix b/flake.nix index ac9d3d8..4f5815c 100644 --- a/flake.nix +++ b/flake.nix @@ -37,6 +37,8 @@ url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; + + copyparty.url = "github:9001/copyparty"; }; outputs = inputs@{ flake-parts, ... }: diff --git a/modules/server/copyparty.nix b/modules/server/copyparty.nix new file mode 100644 index 0000000..d4ee74d --- /dev/null +++ b/modules/server/copyparty.nix @@ -0,0 +1,38 @@ +{ inputs, ... }: + +{ + flake.modules.nixos.server = { pkgs, config, ... }: { + imports = [ + inputs.copyparty.nixosModules.default + ]; + + sops.secrets."copyparty/passwords/teesh" = { + owner = config.services.copyparty.user; + }; + + nixpkgs.overlays = [ inputs.copyparty.overlays.default ]; + environment.systemPackages = [ pkgs.copyparty ]; + services.copyparty = { + enable = true; + settings = { + i = "0.0.0.0"; + p = [ 3293 ]; + }; + accounts = { + teesh.passwordFile = config.sops.secrets."copyparty/passwords/teesh".path; + }; + volumes = { + "/" = { + path = "/var/lib/copyparty/data"; # the default path + access = { + rwmda = [ "teesh" ]; + }; + flags = { + e2d = true; + e2t = true; + }; + }; + }; + }; + }; +} diff --git a/secrets.yaml b/secrets.yaml index bf87147..870e32e 100644 --- a/secrets.yaml +++ b/secrets.yaml @@ -1,5 +1,8 @@ irc: password: ENC[AES256_GCM,data:2ygTfVViSUw=,iv:Gj/43g2FPStdaxhvPt/cFZYxprmw1GeCPLr1X2hu5JU=,tag:EMMYsLI7az9r3rTc+YzRwA==,type:str] +copyparty: + passwords: + teesh: ENC[AES256_GCM,data:jQiXNWRsmF0=,iv:5YKpca50qSixhWhWOKpLaoHOoVpFxUBA6K20JDsbvvY=,tag:WsDKZTDBNionXD18507rtg==,type:str] sops: age: - recipient: age1fdrtfvf3ywarc4sq7jjc5d6elas3fr73cfenkkyyj0ck6z9x2d0qlpn92h @@ -29,7 +32,7 @@ sops: MFp0UW1HSW9MbmppcHlNM25CaFhqOWcKppF0dE4YNh+mN1tyZju4zxM6ZFBSKx9U cGYtUemtt4s9ko3hPt8ZM/ysKOeZgnYoeG7QQnwSoF3F+/gurvb0Bg== -----END AGE ENCRYPTED FILE----- - lastmodified: "2026-02-02T14:10:01Z" - mac: ENC[AES256_GCM,data:+9LkPoOVneK1k8SionYYVbl/+4Ulxc7xeKKlRWOsERc7uGrnj1ED+yROrhhTcKJuzlNdi/1xjJPpw7Suks3+vArPH2mO1rA5yX5PihSGr8enjLTPYa7gcRD55vJ2HyEhyr1KhbeqZXr98yRZVzrQzG+Zhb4KMpn4qoWWg0glbp4=,iv:AsNYRTWOa1az3eYyPz2IFcqDX4jqtQdbCBbo8o4QXDU=,tag:ExEl0qW4Xab6hSr7jwGq7Q==,type:str] + lastmodified: "2026-02-03T13:05:58Z" + mac: ENC[AES256_GCM,data:GupQhPN7t+TDNFmEwpC+gNcqVw66KZ9PJ9QFp3Z848Ut0DJKPK/9yZz80OocJPtmxOfgvZPsw8HeAOSOxbhCpcco0ngXGinu2mVIr9cuCR+PCP3mk6mFDfLOR2hHQ2fFD9yvpDHR8+fPPUbH+CUQMUqOVEY7bvg0sjip+hHoskc=,iv:4kEYD+qJ5m5ajmJwUPqFTJZl0p+Yg2+6M002JHQ6iCM=,tag:EpPwTT5PcKGLRIhPQ9g+3Q==,type:str] unencrypted_suffix: _unencrypted version: 3.11.0