This commit is contained in:
Chris Kruining 2025-05-20 18:21:37 +02:00
parent 2248891dea
commit d68ce07602
Signed by: chris
SSH key fingerprint: SHA256:nG82MUfuVdRVyCKKWqhY+pCrbz9nbX6uzUns4RKa1Pg
3 changed files with 57 additions and 30 deletions

View file

@ -14,10 +14,10 @@
services = { services = {
auth.enable = true; auth.enable = true;
media.enable = true; media.enable = true;
# nextcloud.enable = true; nextcloud.enable = true;
games = { games = {
minecraft.enable = true; # minecraft.enable = true;
}; };
}; };

View file

@ -13,6 +13,15 @@ in
enable = mkEnableOption "Media tools"; enable = mkEnableOption "Media tools";
}; };
imports = let
extras = fetchTarball {
url = "https://github.com/onny/nixos-nextcloud-testumgebung/archive/fa6f062830b4bc3cedb9694c1dbf01d5fdf775ac.tar.gz";
sha256 = "0gzd0276b8da3ykapgqks2zhsqdv4jjvbv97dsxg0hgrhb74z0fs";
};
in [
"${extras}/nextcloud-extras.nix"
];
config = mkIf config.modules.services.media.enable { config = mkIf config.modules.services.media.enable {
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
podman-tui podman-tui
@ -36,6 +45,7 @@ in
systemd.tmpfiles.rules = [ systemd.tmpfiles.rules = [
"d '${directory}/series' 0700 ${user} ${group} - -" "d '${directory}/series' 0700 ${user} ${group} - -"
"d '${directory}/movies' 0700 ${user} ${group} - -" "d '${directory}/movies' 0700 ${user} ${group} - -"
"d '${directory}/music' 0700 ${user} ${group} - -"
"d '${directory}/qbittorrent' 0700 ${user} ${group} - -" "d '${directory}/qbittorrent' 0700 ${user} ${group} - -"
"d '${directory}/sabnzbd' 0700 ${user} ${group} - -" "d '${directory}/sabnzbd' 0700 ${user} ${group} - -"
"d '${directory}/reiverr/config' 0700 ${user} ${group} - -" "d '${directory}/reiverr/config' 0700 ${user} ${group} - -"

View file

@ -4,6 +4,7 @@ let
inherit (lib.modules) mkIf; inherit (lib.modules) mkIf;
user = "nextcloud"; user = "nextcloud";
group = "nextcloud";
in in
{ {
options.modules.services.nextcloud = { options.modules.services.nextcloud = {
@ -13,42 +14,58 @@ in
config = mkIf config.modules.services.nextcloud.enable { config = mkIf config.modules.services.nextcloud.enable {
users = { users = {
users.${user} = { users.${user} = {
name = user;
isSystemUser = true; isSystemUser = true;
home = "/home/${user}"; group = group;
group = user;
}; };
groups.${user} = {}; groups.${group} = {};
}; };
home-manager.users.${user}.home.file.".netrc".text = '' home-manager.users.${user}.home = {
stateVersion = config.system.stateVersion;
file.".netrc".text = ''
login root login root
password KaasIsAwesome! password KaasIsAwesome!
''; '';
systemd.user = {
services.nextcloud-autosync = {
Unit = {
Description = "Automatic nextcloud sync";
After = "network-online.target";
}; };
WantedBy = [ "multi-user.target" ];
Service = { services.nextcloud = {
Type = "simple"; enable = true;
ExecStart = "${pkgs.nextcloud-client}/bin/nextcloudcmd -h -n --path /var/music /home/${user}/Music https://cloud.kruining.eu"; webserver = "caddy";
TimeoutStopSec = "180"; package = pkgs.nextcloud31;
KillMode = "process"; hostName = "localhost";
KillSignal = "SIGINT";
config = {
adminpassFile = "/var/lib/nextcloud/admin-pass";
dbtype = "sqlite";
}; };
}; };
timers.nextcloud-autosync = { # systemd.user = {
Unit.Description = "Automatic nextcloud sync"; # services.nextcloud-autosync = {
Timer.OnBootSec = "5min"; # Unit = {
Timer.OnUnitActiveSec = "60min"; # Description = "Automatic nextcloud sync";
Install.WantedBy = [ "multi-user.target" "timers.target" ]; # After = "network-online.target";
}; # };
}; # WantedBy = [ "multi-user.target" ];
# Service = {
# Type = "simple";
# ExecStart = "${pkgs.nextcloud-client}/bin/nextcloudcmd -h -n --path /var/media/music https://cloud.kruining.eu";
# TimeoutStopSec = "180";
# KillMode = "process";
# KillSignal = "SIGINT";
# };
# };
# timers.nextcloud-autosync = {
# Unit.Description = "Automatic nextcloud sync";
# Timer.OnBootSec = "5min";
# Timer.OnUnitActiveSec = "60min";
# Install.WantedBy = [ "multi-user.target" "timers.target" ];
# };
# startServices = true;
# };
services.caddy = { services.caddy = {
enable = true; enable = true;