feat: finally, the file server!

This commit is contained in:
Teesh 2026-02-03 15:09:08 +02:00
parent 41615bb345
commit e4ed077928
4 changed files with 109 additions and 16 deletions

78
flake.lock generated
View file

@ -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": {

View file

@ -37,6 +37,8 @@
url = "github:Mic92/sops-nix";
inputs.nixpkgs.follows = "nixpkgs";
};
copyparty.url = "github:9001/copyparty";
};
outputs = inputs@{ flake-parts, ... }:

View file

@ -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;
};
};
};
};
};
}

View file

@ -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