From f2d0e3145eeba56c130d78efb1a788b8db03e4ac Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Tue, 27 Feb 2024 22:48:32 +0100 Subject: [PATCH 1/4] move the nextcloud logs to /var/log --- scripts/backup | 6 ++++++ scripts/install | 7 +++++-- scripts/restore | 10 ++++++++-- scripts/upgrade | 8 +++++++- 4 files changed, 26 insertions(+), 5 deletions(-) diff --git a/scripts/backup b/scripts/backup index 924f0bd..da8f172 100755 --- a/scripts/backup +++ b/scripts/backup @@ -60,6 +60,12 @@ ynh_backup --src_path="/etc/fail2ban/filter.d/$app.conf" ynh_backup --src_path="/etc/cron.d/$app" +#================================================= +# BACKUP LOGS +#================================================= + +ynh_backup --src_path="/var/log/$app" + #================================================= # BACKUP THE MYSQL DATABASE #================================================= diff --git a/scripts/install b/scripts/install index 1aaf177..24cd665 100755 --- a/scripts/install +++ b/scripts/install @@ -87,6 +87,9 @@ ynh_script_progression --message="Configuring $app..." --weight=8 # Set the mysql.utf8mb4 config to true in config.php exec_occ config:system:set mysql.utf8mb4 --type boolean --value="true" +# move the logs from the data_dir to the standard /var/log +exec_occ config:system:set logfile --value="/var/log/$app/nextcloud.log" + # Ensure that UpdateNotification app is disabled exec_occ app:disable updatenotification @@ -240,7 +243,7 @@ chmod 750 $install_dir ynh_script_progression --message="Configuring log rotation..." --weight=1 # Use logrotate to manage application logfile(s) -ynh_use_logrotate --logfile="$data_dir/data/nextcloud.log" +ynh_use_logrotate #================================================= # SETUP FAIL2BAN @@ -248,7 +251,7 @@ ynh_use_logrotate --logfile="$data_dir/data/nextcloud.log" ynh_script_progression --message="Configuring Fail2Ban..." --weight=8 # Create a dedicated Fail2Ban config -ynh_add_fail2ban_config --logpath="$data_dir/data/nextcloud.log" --failregex="^.*Login failed: '.*' \(Remote IP: ''.*$" --max_retry=5 +ynh_add_fail2ban_config --logpath="/var/log/$app/nextcloud.log" --failregex="^.*Login failed: '.*' \(Remote IP: ''.*$" --max_retry=5 #================================================= # END OF SCRIPT diff --git a/scripts/restore b/scripts/restore index cca5de4..1b0f63c 100755 --- a/scripts/restore +++ b/scripts/restore @@ -53,6 +53,12 @@ ynh_script_progression --message="Restoring cron job..." --weight=1 ynh_restore_file --origin_path="/etc/cron.d/$app" +#================================================= +# RESTORE LOGS +#================================================= + +ynh_restore_file --origin_path="/var/log/$app" + #================================================= # BACKUP THE LOGROTATE CONFIGURATION #================================================= @@ -109,10 +115,10 @@ ynh_restore_file --origin_path="/etc/fail2ban/jail.d/$app.conf" ynh_restore_file --origin_path="/etc/fail2ban/filter.d/$app.conf" # Make sure a log file exists (mostly for CI tests) -logfile="$data_dir/data/nextcloud.log" +logfile="/var/log/$app/nextcloud.log" if [ ! -f "$logfile" ]; then touch "$logfile" - chown $app: "$logfile" + chown "$app:" "$logfile" fi ynh_systemd_action --action=restart --service_name=fail2ban diff --git a/scripts/upgrade b/scripts/upgrade index 7bce6fe..7189f68 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -24,6 +24,12 @@ then ynh_die --message="Upgrading from Nextcloud < 22.2 is not supported anymore. You should first upgrade to 22.2 using: yunohost app upgrade nextcloud -u https://github.com/YunoHost-Apps/nextcloud_ynh/tree/41f5f902e7c7cd3c30a6793020562ba98b9bf3e9" fi +# move the logs from the data_dir to the standard /var/log +if [ -f "$data_dir/data/nextcloud.log" ]; then + mv "$data_dir"/data/nextcloud.log* "/var/log/$app" + # adapt the nextcloud config + exec_occ config:system:set logfile --value="/var/log/$app/nextcloud.log" +fi #================================================= # SPECIFIC UPGRADE @@ -360,7 +366,7 @@ ynh_use_logrotate --non-append #------------------------------------------------- # Create a dedicated Fail2Ban config -ynh_add_fail2ban_config --logpath="$data_dir/data/nextcloud.log" --failregex="^.*Login failed: '.*' \(Remote IP: ''.*$" --max_retry=5 +ynh_add_fail2ban_config --logpath="/var/log/$app/nextcloud.log" --failregex="^.*Login failed: '.*' \(Remote IP: ''.*$" --max_retry=5 #================================================= # END OF SCRIPT From e1652d4583596de05fa70bd0a8ee30726178101a Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Tue, 27 Feb 2024 22:56:09 +0100 Subject: [PATCH 2/4] remove logs at app removal --- scripts/remove | 3 +++ 1 file changed, 3 insertions(+) diff --git a/scripts/remove b/scripts/remove index c39ac68..f8d582f 100755 --- a/scripts/remove +++ b/scripts/remove @@ -16,6 +16,9 @@ ynh_remove_nginx_config # Remove the dedicated PHP-FPM config ynh_remove_fpm_config +# remove logs +ynh_secure_remove --file="/var/log/$app" + # Remove the app-specific logrotate config ynh_remove_logrotate From d4f998a22d0bff5eec2da09cee02fddcb4e4a41b Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Tue, 27 Feb 2024 23:14:46 +0100 Subject: [PATCH 3/4] formating --- scripts/upgrade | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/scripts/upgrade b/scripts/upgrade index 7189f68..503e6e0 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -346,9 +346,10 @@ fi # Create a dedicated NGINX config ynh_add_nginx_config -#------------------------------------------------- +#================================================= # CRON JOB -#------------------------------------------------- +#================================================= + cron_path="/etc/cron.d/$app" ynh_add_config --template="nextcloud.cron" --destination="$cron_path" chown root: "$cron_path" @@ -356,14 +357,15 @@ chmod 644 "$cron_path" exec_occ background:cron -#------------------------------------------------- +#================================================= # LOGROTATE -#------------------------------------------------- +#================================================= + ynh_use_logrotate --non-append -#------------------------------------------------- +#================================================= # FAIL2BAN -#------------------------------------------------- +#================================================= # Create a dedicated Fail2Ban config ynh_add_fail2ban_config --logpath="/var/log/$app/nextcloud.log" --failregex="^.*Login failed: '.*' \(Remote IP: ''.*$" --max_retry=5 From e92e70a00285f4f3f8b6c48331cde22a140189c2 Mon Sep 17 00:00:00 2001 From: OniriCorpe Date: Wed, 28 Feb 2024 02:54:53 +0100 Subject: [PATCH 4/4] fix exec_occ config:system:set logfile --- scripts/upgrade | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/scripts/upgrade b/scripts/upgrade index 503e6e0..c6ea89a 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -24,13 +24,6 @@ then ynh_die --message="Upgrading from Nextcloud < 22.2 is not supported anymore. You should first upgrade to 22.2 using: yunohost app upgrade nextcloud -u https://github.com/YunoHost-Apps/nextcloud_ynh/tree/41f5f902e7c7cd3c30a6793020562ba98b9bf3e9" fi -# move the logs from the data_dir to the standard /var/log -if [ -f "$data_dir/data/nextcloud.log" ]; then - mv "$data_dir"/data/nextcloud.log* "/var/log/$app" - # adapt the nextcloud config - exec_occ config:system:set logfile --value="/var/log/$app/nextcloud.log" -fi - #================================================= # SPECIFIC UPGRADE #================================================= @@ -245,6 +238,15 @@ then # Update all installed apps exec_occ app:update --all + # move the logs from the data_dir to the standard /var/log + # it would be better in the ENSURE DOWNWARD COMPATIBILITY section + # but it must be after the exec_occ() definition, so it's here + if [ -f "$data_dir/data/nextcloud.log" ]; then + mv "$data_dir"/data/nextcloud.log* "/var/log/$app" + # adapt the nextcloud config + exec_occ config:system:set logfile --value="/var/log/$app/nextcloud.log" + fi + # Load the config file in nextcloud exec_occ config:import "$nc_conf"