galanthus: Cleanup, add Copyparty
This commit is contained in:
parent
be4409abcb
commit
fe8273c4d3
16 changed files with 103 additions and 265 deletions
|
|
@ -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 = [
|
||||
./copyparty.nix
|
||||
# ./forgejo.nix
|
||||
# ./immich.nix
|
||||
./jellyfin.nix
|
||||
# ./minecraft.nix
|
||||
./opencloud.nix
|
||||
# ./pinchflat.nix
|
||||
./samba.nix
|
||||
# ./samba.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;
|
||||
|
||||
bindMounts = {
|
||||
|
|
@ -13,7 +13,8 @@
|
|||
services = {
|
||||
immich = {
|
||||
enable = true;
|
||||
host = "immich.alpine-centauri.ts.net";
|
||||
# port = 2283;
|
||||
host = "photos.alpine-centauri.ts.net";
|
||||
};
|
||||
|
||||
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
|
||||
{
|
||||
"nextcloud.age".publicKeys = all;
|
||||
"copyparty-jan.age".publicKeys = all;
|
||||
"forgejo-runner-token.age".publicKeys = all;
|
||||
"tailscale.age".publicKeys = all;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue