From 91e0a6c522c607a75af6fcf44c2fea67cd051ea3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Guillaume=20T=C3=A2che?= Date: Sun, 1 Feb 2026 17:33:47 +0100 Subject: [PATCH] Adds rclone-parents, fixes some other files --- files/defragment-nas.service | 7 ++++--- files/defragment-nas.timer | 3 ++- files/rclone-parents.service | 6 ++++++ files/rclone-parents.timer | 13 +++++++++++++ files/scrub-nas.service | 7 ++++++- files/scrub-nas.timer | 3 ++- home/root/copy-music.sh | 4 ++-- home/root/move-downloads-nextcloud.sh | 16 ++++++++-------- home/root/rclone-parents.sh | 2 ++ pi4.bu | 12 ++++++++++++ quadlets/nextcloud/nextcloud.container | 3 ++- quadlets/samba/samba.container | 2 +- 12 files changed, 60 insertions(+), 18 deletions(-) create mode 100644 files/rclone-parents.service create mode 100644 files/rclone-parents.timer create mode 100644 home/root/rclone-parents.sh diff --git a/files/defragment-nas.service b/files/defragment-nas.service index 5f88bf2..37d5026 100644 --- a/files/defragment-nas.service +++ b/files/defragment-nas.service @@ -1,9 +1,10 @@ [Unit] Description=Defragments the NAS +ConditionPathIsMountPoint=/var/mnt/nas +RequiresMountsFor=/var/mnt/nas [Service] +Nice=19 +IOSchedulingClass=idle Type=oneshot ExecStart=btrfs filesystem defragment -r /var/mnt/nas - -[Install] -WantedBy=multi-user.target diff --git a/files/defragment-nas.timer b/files/defragment-nas.timer index 1ad7ed2..ee5a0ea 100644 --- a/files/defragment-nas.timer +++ b/files/defragment-nas.timer @@ -2,7 +2,8 @@ Description=Timer for the defragment-nas service [Timer] -OnCalendar=*-*-03 00:00:00 +OnCalendar=*-06-03 00:00:00 +OnCalendar=*-12-03 00:00:00 Persistent=true Unit=defragment-nas.service diff --git a/files/rclone-parents.service b/files/rclone-parents.service new file mode 100644 index 0000000..e84d108 --- /dev/null +++ b/files/rclone-parents.service @@ -0,0 +1,6 @@ +[Unit] +Description=Runs rclone to copy the NAS content to the parents NAS + +[Service] +Type=oneshot +ExecStart=/usr/bin/flock -n /run/rclone-parents.lock /root/scripts/rclone-parents.sh diff --git a/files/rclone-parents.timer b/files/rclone-parents.timer new file mode 100644 index 0000000..b343511 --- /dev/null +++ b/files/rclone-parents.timer @@ -0,0 +1,13 @@ +[Unit] +Description=Timer for the rclone-parents service + +[Timer] +OnCalendar=08:00:00 +OnCalendar=12:00:00 +OnCalendar=16:00:00 +OnCalendar=20:00:00 +Persistent=true +Unit=rclone-parents.service + +[Install] +WantedBy=timers.target diff --git a/files/scrub-nas.service b/files/scrub-nas.service index ab25224..82f2188 100644 --- a/files/scrub-nas.service +++ b/files/scrub-nas.service @@ -1,6 +1,11 @@ [Unit] Description=Scrubs the NAS +ConditionPathIsMountPoint=/var/mnt/nas +RequiresMountsFor=/var/mnt/nas [Service] +Nice=19 +IOSchedulingClass=idle +KillSignal=SIGINT Type=oneshot -ExecStart=btrfs scrub start /var/mnt/nas +ExecStart=btrfs scrub start -B /var/mnt/nas diff --git a/files/scrub-nas.timer b/files/scrub-nas.timer index 20e68e7..dd68c5d 100644 --- a/files/scrub-nas.timer +++ b/files/scrub-nas.timer @@ -2,7 +2,8 @@ Description=Timer for the scrub-nas service [Timer] -OnCalendar=*-*-05 00:00:00 +OnCalendar=*-06-05 00:00:00 +OnCalendar=*-12-05 00:00:00 Persistent=true Unit=scrub-nas.service diff --git a/home/root/copy-music.sh b/home/root/copy-music.sh index 468d0ab..45659e3 100644 --- a/home/root/copy-music.sh +++ b/home/root/copy-music.sh @@ -3,6 +3,6 @@ set -o errexit -o pipefail -o noclobber -o nounset target=/var/mnt/nas/containers/navidrome/storage/music ugid="$(stat -c "%U:%G" "${target}")" -source=/var/mnt/nas/containers/nextcloud/storage/data/__groupfolders/1/media/music -podman run --rm -v "${source}":/input -v "${target}":/output docker.io/eeacms/rsync -a /input /output +source=/var/mnt/nas/containers/nextcloud/storage/data/__groupfolders/1/files/media/music +podman run --rm -v "${source}":/input -v "${target}":/output docker.io/instrumentisto/rsync-ssh rsync -a /input/ /output/ chown -R "${ugid}" "${target}" diff --git a/home/root/move-downloads-nextcloud.sh b/home/root/move-downloads-nextcloud.sh index 18dd03d..bc3fc9b 100644 --- a/home/root/move-downloads-nextcloud.sh +++ b/home/root/move-downloads-nextcloud.sh @@ -2,25 +2,25 @@ set -o errexit -o pipefail -o noclobber -o nounset echo "Running $(date)" -torrents=/var/mnt/nas/containers/qbittorrent/storage/torrents +torrents=/var/mnt/nas/containers/qbittorrent/storage/downloads/completed jdownloader=/var/mnt/nas/containers/jdownloader/storage/output/completed -target=/var/mnt/nas/containers/nextcloud/storage/data/__groupfolders/1/downloads +target=/var/mnt/nas/containers/nextcloud/storage/data/__groupfolders/1/files/downloads -num_torrents="$(find "${torrents}" -maxdepth 1 -type f | wc -l)" || echo 0 +num_torrents="$(find "${torrents}" -mindepth 1 -maxdepth 1 | wc -l)" || echo 0 if [[ "${num_torrents}" -gt 0 ]]; then - find "${torrents}" -maxdepth 1 -type f -exec mv {} "${target}/" \; + mv "${torrents}"* "${target}/" fi echo "Found ${num_torrents} torrent files" -num_jdownloader="$(ls "${jdownloader}" | wc -l)" || echo 0 +num_jdownloader="$(find "${jdownloader}" -mindepth 1 -maxdepth 1 | wc -l)" || echo 0 if [[ "${num_jdownloader}" -gt 0 ]]; then mv "${jdownloader}/"* "${target}/" fi echo "Found ${num_jdownloader} jdownloader files" total_files=$(("${num_torrents}" + "${num_jdownloader}")) if [[ "${total_files}" -gt 0 ]]; then - ugid="$(stat -c "%U:%G" "${target}")" - chown -R "${ugid}" "${target}/"* - chmod 755 "${target}/"* + chown --reference="${target}" -R "${target}/"* + chmod --reference="${target}" -R "${target}/"* + restorecon -vFR "${target}" echo "Running podman" cd /var/home/nextcloud sudo -u nextcloud podman exec -it nextcloud bash -c "/var/www/html/occ groupfolders:scan 1" diff --git a/home/root/rclone-parents.sh b/home/root/rclone-parents.sh new file mode 100644 index 0000000..88b21a3 --- /dev/null +++ b/home/root/rclone-parents.sh @@ -0,0 +1,2 @@ +#!/bin/bash +/root/scripts/rclone sync --links /var/mnt/nas encrypted-parents:Backup/ diff --git a/pi4.bu b/pi4.bu index 67fa41a..3a48170 100644 --- a/pi4.bu +++ b/pi4.bu @@ -88,6 +88,10 @@ storage: mode: 0755 contents: local: /home/root/move-downloads-nextcloud.sh + - path: /root/scripts/rclone-parents.sh + mode: 0755 + contents: + local: /home/root/rclone-parents.sh - path: /root/scripts/copy-music.sh mode: 0755 contents: @@ -133,6 +137,14 @@ systemd: enabled: false contents_local: files/move-downloads-nextcloud.service mask: false + - name: rclone-parents.timer + enabled: false + contents_local: files/rclone-parents.timer + mask: false + - name: rclone-parents.service + enabled: false + contents_local: files/rclone-parents.service + mask: false - name: copy-music.timer enabled: false contents_local: files/copy-music.timer diff --git a/quadlets/nextcloud/nextcloud.container b/quadlets/nextcloud/nextcloud.container index e1a7b94..05cdb8d 100644 --- a/quadlets/nextcloud/nextcloud.container +++ b/quadlets/nextcloud/nextcloud.container @@ -11,7 +11,7 @@ ContainerName=nextcloud Environment=MYSQL_DATABASE=nextcloud Environment=MYSQL_HOST=nextcloud-database Environment=NEXTCLOUD_TRUSTED_DOMAINS=localhost host.containers.internal nextcloud.gtache.ch -Environment=PHP_MEMORY_LIMIT=1024M +Environment=PHP_MEMORY_LIMIT=2048M Environment=PHP_UPLOAD_LIMIT=100G Environment=REDIS_HOST=nextcloud-redis Environment=TRUSTED_PROXIES=192.168.0.0/16 172.16.0.0/12 169.254.0.0/16 10.0.0.0/8 @@ -31,6 +31,7 @@ Volume=nextcloud-apps.volume:/var/www/html/custom_apps Volume=nextcloud-themes.volume:/var/www/html/themes Volume=/var/mnt/nas/containers/nextcloud/storage/redis-session.ini:/usr/local/etc/php/conf.d/redis-session.ini Volume=/var/mnt/nas/containers/nextcloud/storage/remoteip.conf:/etc/apache2/conf-enabled/remoteip.conf +Volume=/var/mnt/nas/containers/nextcloud/storage/php-local.ini:/usr/local/etc/php/conf.d/php-local.ini Volume=nextcloud-data.volume:/var/www/html/data [Service] diff --git a/quadlets/samba/samba.container b/quadlets/samba/samba.container index 7f6db88..3271092 100644 --- a/quadlets/samba/samba.container +++ b/quadlets/samba/samba.container @@ -16,7 +16,7 @@ Secret=tga-credentials,type=env,target=USER Secret=zero-credentials,type=env,target=USER1 Volume=/var/mnt/nas:/nas Volume=/var/mnt/nas/backup/zero:/zero -Volume=/var/mnt/nas/paperless/input:/paperless-input +Volume=/var/mnt/nas/containers/paperless/storage/consume:/paperless-input [Service] Restart=always