copyparty configs!
This commit is contained in:
parent
bcab2b8307
commit
0f05d21280
6 changed files with 102 additions and 82 deletions
|
@ -1,71 +0,0 @@
|
||||||
{
|
|
||||||
inputs,
|
|
||||||
config,
|
|
||||||
pkgs,
|
|
||||||
lib,
|
|
||||||
...
|
|
||||||
}: let
|
|
||||||
port = "3923";
|
|
||||||
in {
|
|
||||||
nixpkgs.overlays = [inputs.copyparty.overlays.default];
|
|
||||||
environment.systemPackages = with pkgs; [copyparty];
|
|
||||||
services.copyparty = {
|
|
||||||
enable = true;
|
|
||||||
# directly maps to values in the [global] section of the copyparty config.
|
|
||||||
# see `copyparty --help` for available options
|
|
||||||
settings = {
|
|
||||||
i = "127.0.0.1";
|
|
||||||
p = port;
|
|
||||||
ed = true;
|
|
||||||
e2dsa = true;
|
|
||||||
# hist = "/storage/copyparty";
|
|
||||||
forget-ip = 1440;
|
|
||||||
e2ts = true;
|
|
||||||
shr = "/share";
|
|
||||||
shr-adm = "gabe";
|
|
||||||
u2abort = 3;
|
|
||||||
magic = true;
|
|
||||||
df = 5;
|
|
||||||
u2j = 16;
|
|
||||||
ls = "**,*,ln,p,r";
|
|
||||||
xvol = true;
|
|
||||||
xdev = true;
|
|
||||||
no-logues = true;
|
|
||||||
no-robots = true;
|
|
||||||
md-hist = "v";
|
|
||||||
nsort = true;
|
|
||||||
log-utc = true;
|
|
||||||
};
|
|
||||||
|
|
||||||
# create users
|
|
||||||
accounts = {
|
|
||||||
# gabe.passwordFile = "/run/keys/copyparty/k_password";
|
|
||||||
};
|
|
||||||
|
|
||||||
# create a volume
|
|
||||||
volumes = {
|
|
||||||
"/" = {
|
|
||||||
path = "/storage/syncthing/";
|
|
||||||
# see `copyparty --help-accounts` for available options
|
|
||||||
access = {
|
|
||||||
r = "*";
|
|
||||||
A = "*";
|
|
||||||
# rw = ["gabe" "erica"];
|
|
||||||
};
|
|
||||||
# see `copyparty --help-flags` for available options
|
|
||||||
flags = {
|
|
||||||
# "fk" enables filekeys (necessary for upget permission) (4 chars long)
|
|
||||||
fk = 4;
|
|
||||||
# scan for new files every 60sec
|
|
||||||
scan = 600;
|
|
||||||
# volflag "e2d" enables the uploads database
|
|
||||||
e2d = true;
|
|
||||||
# "d2t" disables multimedia parsers (in case the uploads are malicious)
|
|
||||||
d2t = false;
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
# you may increase the open file limit for the process
|
|
||||||
openFilesLimit = 8192;
|
|
||||||
};
|
|
||||||
}
|
|
17
flake.lock
generated
17
flake.lock
generated
|
@ -10,15 +10,16 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1745176775,
|
"lastModified": 1745400750,
|
||||||
"narHash": "sha256-7bWct47AKcQntlJaY8NMECZ1FXIaFlYb/yCMC0Bm30M=",
|
"narHash": "sha256-sXLl6fuWPyZll4ok1b1pbxJLJ5ZnK/NUfL8+SK42P5Q=",
|
||||||
"owner": "9001",
|
"owner": "gabevenberg",
|
||||||
"repo": "copyparty",
|
"repo": "copyparty",
|
||||||
"rev": "68e7000275425f5dd1d2d80dc428fe2fcab6cc9c",
|
"rev": "a54e950ecca45225d94c5e982e2dd3453c09ea22",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
"owner": "9001",
|
"owner": "gabevenberg",
|
||||||
|
"ref": "nixos-module",
|
||||||
"repo": "copyparty",
|
"repo": "copyparty",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
}
|
}
|
||||||
|
@ -192,10 +193,10 @@
|
||||||
"nix-secrets": {
|
"nix-secrets": {
|
||||||
"flake": false,
|
"flake": false,
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1742472608,
|
"lastModified": 1745397247,
|
||||||
"narHash": "sha256-CelDYGqeNk4pGs9ObnV56rAK9C0ajN4Pz4n/5y8Ghtw=",
|
"narHash": "sha256-R8RPX20EJFpaUSQpiUE0N5d31UDbB+3Qu8yapab5F2k=",
|
||||||
"ref": "refs/heads/main",
|
"ref": "refs/heads/main",
|
||||||
"rev": "69bdba99f321bc9adbff9a147450e23d6e15c89b",
|
"rev": "01654a652e4b9b5ade200d85a1e3fd3e1b058053",
|
||||||
"shallow": true,
|
"shallow": true,
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "ssh://forgejo@git.venberg.xyz/Gabe/nix-secrets.git"
|
"url": "ssh://forgejo@git.venberg.xyz/Gabe/nix-secrets.git"
|
||||||
|
|
|
@ -34,7 +34,8 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
copyparty = {
|
copyparty = {
|
||||||
url = "github:9001/copyparty";
|
# url = "github:9001/copyparty";
|
||||||
|
url = "github:gabevenberg/copyparty/nixos-module";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
inputs.flake-utils.follows = "flake-utils";
|
inputs.flake-utils.follows = "flake-utils";
|
||||||
};
|
};
|
||||||
|
|
89
hosts/cirrostratus/copyparty.nix
Normal file
89
hosts/cirrostratus/copyparty.nix
Normal file
|
@ -0,0 +1,89 @@
|
||||||
|
{
|
||||||
|
inputs,
|
||||||
|
config,
|
||||||
|
pkgs,
|
||||||
|
lib,
|
||||||
|
...
|
||||||
|
}: let
|
||||||
|
port = "3923";
|
||||||
|
defaultvolflags = {
|
||||||
|
scan = 60;
|
||||||
|
grid = true;
|
||||||
|
nsort = true;
|
||||||
|
fk = 8;
|
||||||
|
};
|
||||||
|
in {
|
||||||
|
nixpkgs.overlays = [inputs.copyparty.overlays.default];
|
||||||
|
environment.systemPackages = with pkgs; [copyparty];
|
||||||
|
services.copyparty = {
|
||||||
|
enable = true;
|
||||||
|
user = config.host.details.user;
|
||||||
|
group = "users";
|
||||||
|
# directly maps to values in the [global] section of the copyparty config.
|
||||||
|
# see `copyparty --help` for available options
|
||||||
|
settings = {
|
||||||
|
# i = "127.0.0.1";
|
||||||
|
p = port;
|
||||||
|
ed = true;
|
||||||
|
e2dsa = true;
|
||||||
|
forget-ip = 1440;
|
||||||
|
e2ts = true;
|
||||||
|
shr = "/share";
|
||||||
|
shr-adm = "gabe";
|
||||||
|
u2abort = 3;
|
||||||
|
magic = true;
|
||||||
|
df = 5;
|
||||||
|
u2j = 16;
|
||||||
|
ls = "**,*,ln,p,r";
|
||||||
|
xvol = true;
|
||||||
|
xdev = true;
|
||||||
|
no-logues = true;
|
||||||
|
no-robots = true;
|
||||||
|
md-hist = "v";
|
||||||
|
nsort = true;
|
||||||
|
log-utc = true;
|
||||||
|
ah-alg = "argon2";
|
||||||
|
ah-salt = "ImSaltyAboutNonPersistentSalts";
|
||||||
|
};
|
||||||
|
accounts = lib.mkIf (inputs ? nix-secrets) (
|
||||||
|
builtins.mapAttrs (name: value: {passwordFile = "${inputs.nix-secrets}/copyparty/${name}";})
|
||||||
|
(builtins.readDir "${inputs.nix-secrets}/copyparty")
|
||||||
|
);
|
||||||
|
volumes = {
|
||||||
|
"/" = {
|
||||||
|
path = "/storage/syncthing/family";
|
||||||
|
access = {
|
||||||
|
rwmd = ["gabe" "erica"];
|
||||||
|
A = ["gabe"];
|
||||||
|
};
|
||||||
|
flags = defaultvolflags;
|
||||||
|
};
|
||||||
|
"/gabe" = {
|
||||||
|
path = "/storage/syncthing/gabe";
|
||||||
|
access = {
|
||||||
|
rwmd = "gabe";
|
||||||
|
A = ["gabe"];
|
||||||
|
};
|
||||||
|
flags = defaultvolflags;
|
||||||
|
};
|
||||||
|
"/erica" = {
|
||||||
|
path = "/storage/syncthing/erica";
|
||||||
|
access = {
|
||||||
|
rwmd = "erica";
|
||||||
|
A = ["erica"];
|
||||||
|
};
|
||||||
|
flags = defaultvolflags;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
# you may increase the open file limit for the process
|
||||||
|
openFilesLimit = 8192;
|
||||||
|
};
|
||||||
|
|
||||||
|
services.nginx.virtualHosts."files.venberg.xyz" = {
|
||||||
|
enableACME = true;
|
||||||
|
forceSSL=true;
|
||||||
|
locations."/" = {
|
||||||
|
proxyPass= "http://localhost:${port}";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
|
@ -16,6 +16,7 @@ inputs.nixpkgs.lib.nixosSystem {
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
./restic.nix
|
./restic.nix
|
||||||
./nginx.nix
|
./nginx.nix
|
||||||
|
./copyparty.nix
|
||||||
../../configs/nixos/common.nix
|
../../configs/nixos/common.nix
|
||||||
../../configs/nixos/tailscale.nix
|
../../configs/nixos/tailscale.nix
|
||||||
../../configs/nixos/sshd.nix
|
../../configs/nixos/sshd.nix
|
||||||
|
@ -29,7 +30,6 @@ inputs.nixpkgs.lib.nixosSystem {
|
||||||
../../configs/nixos/miniserve-tmp-upload.nix
|
../../configs/nixos/miniserve-tmp-upload.nix
|
||||||
../../configs/nixos/minecraft-docker.nix
|
../../configs/nixos/minecraft-docker.nix
|
||||||
../../configs/nixos/nginx-static.nix
|
../../configs/nixos/nginx-static.nix
|
||||||
../../configs/nixos/copyparty.nix
|
|
||||||
({
|
({
|
||||||
config,
|
config,
|
||||||
pkgs,
|
pkgs,
|
||||||
|
|
|
@ -130,7 +130,7 @@
|
||||||
})
|
})
|
||||||
(
|
(
|
||||||
lib.mkIf cfg.enable (
|
lib.mkIf cfg.enable (
|
||||||
lib.mapAttrs (
|
builtins.mapAttrs (
|
||||||
name: backup: {
|
name: backup: {
|
||||||
repositoryFile = cfg.repositoryFile;
|
repositoryFile = cfg.repositoryFile;
|
||||||
repository = cfg.repository;
|
repository = cfg.repository;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue