Move rclone-webdav into options

This commit is contained in:
Andreas Zweili 2023-06-05 10:31:10 +02:00
parent c7b7624d75
commit d522bb9465
4 changed files with 63 additions and 55 deletions

View File

@ -19,6 +19,7 @@
./services/logs-share
./services/log-to-ram
./services/pipewire
./services/rclone-webdav
./services/rdp
./services/restic-client-desktop
./services/syslog

View File

@ -1,54 +0,0 @@
{ config, pkgs, inputs, ... }:
let
pathToMonitor = "/home/${config.az-username}/10_documents/";
syncNotes = pkgs.writeShellScriptBin "monitor-notes" ''
${pkgs.rclone}/bin/rclone bisync -P --remove-empty-dirs --max-delete=10 --exclude=/99_archive/** nextcloud:10_documents ${pathToMonitor}
'';
in
{
services.az-telegram-notifications.enable = true;
age.secrets.webdavSecrets = {
file = "${inputs.self}/scrts/webdav_andreas.age";
path = "/home/${config.az-username}/.config/rclone/rclone.conf";
mode = "600";
owner = "${config.az-username}";
group = "users";
};
systemd.timers."rclone-webdav-sync" = {
wantedBy = [ "timers.target" ];
partOf = [ "rclone-webdav-sync.service" ];
timerConfig = {
OnStartupSec = "5min";
OnUnitActiveSec = "5min";
};
};
systemd.services."rclone-webdav-sync" = {
after = [ "network-online.target" ];
serviceConfig = {
User = config.az-username;
Type = "oneshot";
};
onFailure = [ "unit-status-telegram@%n.service" ];
script = "${syncNotes}/bin/monitor-notes";
};
systemd.services."rclone-webdav-monitor" = {
requires = [ "network-online.target" ];
after = [ "network-online.target" ];
serviceConfig = {
User = config.az-username;
};
onFailure = [ "unit-status-telegram@%n.service" ];
wantedBy = [ "multi-user.target" ];
script = ''
${pkgs.inotify-tools}/bin/inotifywait -m -r -e create,modify,delete,move "${pathToMonitor}" |
while read -r directory event file; do
sleep 10
${syncNotes}/bin/monitor-notes
done
'';
};
}

View File

@ -0,0 +1,61 @@
{ config, inputs, lib, pkgs, ... }:
let
cfg = config.services.az-rclone-webdav;
pathToMonitor = "/home/${config.az-username}/10_documents/";
syncNotes = pkgs.writeShellScriptBin "monitor-notes" ''
${pkgs.rclone}/bin/rclone bisync -P --remove-empty-dirs --max-delete=10 --exclude=/99_archive/** nextcloud:10_documents ${pathToMonitor}
'';
in
{
options = {
services.az-rclone-webdav.enable = lib.mkEnableOption "Sync my notes with rclone over webdav.";
};
config = lib.mkIf cfg.enable {
services.az-telegram-notifications.enable = true;
age.secrets.webdavSecrets = {
file = "${inputs.self}/scrts/webdav_andreas.age";
path = "/home/${config.az-username}/.config/rclone/rclone.conf";
mode = "600";
owner = "${config.az-username}";
group = "users";
};
systemd.timers."rclone-webdav-sync" = {
wantedBy = [ "timers.target" ];
partOf = [ "rclone-webdav-sync.service" ];
timerConfig = {
OnStartupSec = "5min";
OnUnitActiveSec = "5min";
};
};
systemd.services."rclone-webdav-sync" = {
after = [ "network-online.target" ];
serviceConfig = {
User = config.az-username;
Type = "oneshot";
};
onFailure = [ "unit-status-telegram@%n.service" ];
script = "${syncNotes}/bin/monitor-notes";
};
systemd.services."rclone-webdav-monitor" = {
requires = [ "network-online.target" ];
after = [ "network-online.target" ];
serviceConfig = {
User = config.az-username;
};
onFailure = [ "unit-status-telegram@%n.service" ];
wantedBy = [ "multi-user.target" ];
script = ''
${pkgs.inotify-tools}/bin/inotifywait -m -r -e create,modify,delete,move "${pathToMonitor}" |
while read -r directory event file; do
sleep 10
${syncNotes}/bin/monitor-notes
done
'';
};
};
}

View File

@ -5,7 +5,6 @@
ip = "10.7.89.150";
inherit hostname;
})
"${inputs.self}/modules/rclone-webdav"
(import "${inputs.self}/modules/restic-client-server" {
path = "/home/andreas";
tag = "management";
@ -25,6 +24,7 @@
az-data-share.enable = true;
az-docker.enable = true;
az-logs-share.enable = true;
az-rclone-webdav.enable = true;
};
# Enable dictionaries
programs = {