galanthus: Cleanup, add Copyparty
This commit is contained in:
parent
be4409abcb
commit
fe8273c4d3
16 changed files with 103 additions and 265 deletions
55
flake.lock
generated
55
flake.lock
generated
|
|
@ -23,6 +23,27 @@
|
||||||
"type": "github"
|
"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": {
|
"darwin": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
|
@ -52,11 +73,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1768220509,
|
"lastModified": 1768764703,
|
||||||
"narHash": "sha256-8wMrJP/Xk5Dkm0TxzaERLt3eGFEhHTWaJKUpK3AoL4o=",
|
"narHash": "sha256-5ulSDyOG1U+1sJhkJHYsUOWEsmtLl97O0NTVMvgIVyc=",
|
||||||
"owner": "LnL7",
|
"owner": "LnL7",
|
||||||
"repo": "nix-darwin",
|
"repo": "nix-darwin",
|
||||||
"rev": "7b1d394e7d9112d4060e12ef3271b38a7c43e83b",
|
"rev": "0fc4e7ac670a0ed874abacf73c4b072a6a58064b",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -65,6 +86,21 @@
|
||||||
"type": "github"
|
"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": {
|
"home-manager": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"nixpkgs": [
|
"nixpkgs": [
|
||||||
|
|
@ -93,11 +129,11 @@
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1768410656,
|
"lastModified": 1769978395,
|
||||||
"narHash": "sha256-9CfEGvHgQ8KdhBI5x6RVkuvqCCM7KiVxCM1n9e3lVBA=",
|
"narHash": "sha256-gj1yP3spUb1vGtaF5qPhshd2j0cg4xf51pklDsIm19Q=",
|
||||||
"owner": "nix-community",
|
"owner": "nix-community",
|
||||||
"repo": "home-manager",
|
"repo": "home-manager",
|
||||||
"rev": "85c83f70968516f571015e260fb21c774e586c0b",
|
"rev": "984708c34d3495a518e6ab6b8633469bbca2f77a",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -108,11 +144,11 @@
|
||||||
},
|
},
|
||||||
"nixpkgs": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1768127708,
|
"lastModified": 1770019141,
|
||||||
"narHash": "sha256-1Sm77VfZh3mU0F5OqKABNLWxOuDeHIlcFjsXeeiPazs=",
|
"narHash": "sha256-VKS4ZLNx4PNrABoB0L8KUpc1fE7CLpQXQs985tGfaCU=",
|
||||||
"owner": "NixOS",
|
"owner": "NixOS",
|
||||||
"repo": "nixpkgs",
|
"repo": "nixpkgs",
|
||||||
"rev": "ffbc9f8cbaacfb331b6017d5a5abb21a492c9a38",
|
"rev": "cb369ef2efd432b3cdf8622b0ffc0a97a02f3137",
|
||||||
"type": "github"
|
"type": "github"
|
||||||
},
|
},
|
||||||
"original": {
|
"original": {
|
||||||
|
|
@ -125,6 +161,7 @@
|
||||||
"root": {
|
"root": {
|
||||||
"inputs": {
|
"inputs": {
|
||||||
"agenix": "agenix",
|
"agenix": "agenix",
|
||||||
|
"copyparty": "copyparty",
|
||||||
"darwin": "darwin_2",
|
"darwin": "darwin_2",
|
||||||
"home-manager": "home-manager_2",
|
"home-manager": "home-manager_2",
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,10 @@
|
||||||
url = "github:ryantm/agenix";
|
url = "github:ryantm/agenix";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
};
|
};
|
||||||
|
copyparty = {
|
||||||
|
url = "github:9001/copyparty";
|
||||||
|
inputs.nixpkgs.follows = "nixpkgs";
|
||||||
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs =
|
outputs =
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,7 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
inputs.agenix.nixosModules.default
|
inputs.agenix.nixosModules.default
|
||||||
|
inputs.copyparty.nixosModules.default
|
||||||
./hardware-configuration.nix
|
./hardware-configuration.nix
|
||||||
../../modules/nixos
|
../../modules/nixos
|
||||||
];
|
];
|
||||||
|
|
|
||||||
|
|
@ -1,6 +0,0 @@
|
||||||
{
|
|
||||||
services.adguardhome = {
|
|
||||||
enable = true;
|
|
||||||
port = 3000;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -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";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
46
modules/nixos/copyparty.nix
Normal file
46
modules/nixos/copyparty.nix
Normal file
|
|
@ -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 = { };
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
@ -1,12 +1,11 @@
|
||||||
{
|
{
|
||||||
imports = [
|
imports = [
|
||||||
|
./copyparty.nix
|
||||||
# ./forgejo.nix
|
# ./forgejo.nix
|
||||||
# ./immich.nix
|
# ./immich.nix
|
||||||
./jellyfin.nix
|
./jellyfin.nix
|
||||||
# ./minecraft.nix
|
# ./minecraft.nix
|
||||||
./opencloud.nix
|
# ./samba.nix
|
||||||
# ./pinchflat.nix
|
|
||||||
./samba.nix
|
|
||||||
./tailscale.nix
|
./tailscale.nix
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
{
|
{
|
||||||
containers.immich = {
|
containers.photos = {
|
||||||
autoStart = true;
|
autoStart = true;
|
||||||
|
|
||||||
bindMounts = {
|
bindMounts = {
|
||||||
|
|
@ -13,7 +13,8 @@
|
||||||
services = {
|
services = {
|
||||||
immich = {
|
immich = {
|
||||||
enable = true;
|
enable = true;
|
||||||
host = "immich.alpine-centauri.ts.net";
|
# port = 2283;
|
||||||
|
host = "photos.alpine-centauri.ts.net";
|
||||||
};
|
};
|
||||||
|
|
||||||
tailscale = {
|
tailscale = {
|
||||||
|
|
|
||||||
|
|
@ -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";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -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";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -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";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
@ -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";
|
|
||||||
};
|
|
||||||
};
|
|
||||||
}
|
|
||||||
BIN
modules/secrets/copyparty-jan.age
Normal file
BIN
modules/secrets/copyparty-jan.age
Normal file
Binary file not shown.
|
|
@ -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€½áÁã²±•!ÅR<C385>GÑEØ)®c¦@Ç n²‡¿âôû…ŠÚ ñ‰nz„hµk²—µ€r
|
|
||||||
|
|
@ -7,7 +7,7 @@ let
|
||||||
];
|
];
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
"nextcloud.age".publicKeys = all;
|
"copyparty-jan.age".publicKeys = all;
|
||||||
"forgejo-runner-token.age".publicKeys = all;
|
"forgejo-runner-token.age".publicKeys = all;
|
||||||
"tailscale.age".publicKeys = all;
|
"tailscale.age".publicKeys = all;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue