{"id":171557,"date":"2023-03-02T09:52:45","date_gmt":"2023-03-02T09:52:45","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/stn-save-to-nextcloud\/"},"modified":"2026-10-02T10:27:46","modified_gmt":"2026-10-02T10:27:46","slug":"stn-save-to-nextcloud","status":"publish","type":"plugin","link":"https:\/\/pl.wordpress.org\/plugins\/stn-save-to-nextcloud\/","author":17703308,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.6.2","stable_tag":"2.6.2","tested":"7.2","requires":"4.7","requires_php":"7.4","requires_plugins":null,"header_name":"STN - Save To Nextcloud","header_author":"Dave DELALLEAU","header_description":"Sauvegarde wordpress + Bdd mensuelle vers votre instance Nextcloud","assets_banners_color":"","last_updated":"2026-10-02 10:27:46","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/www.davelopweb.fr\/","header_author_uri":"https:\/\/www.davelopweb.fr\/#contact","rating":0,"author_block_rating":0,"active_installs":60,"downloads":5136,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","changelog"],"tags":{"2.6.2":{"tag":"2.6.2","author":"davelopweb","date":"2026-10-02 10:27:46","revision":3724560}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon.svg":{"filename":"icon.svg","revision":2873525,"resolution":false,"location":"assets","locale":false}},"assets_banners":[],"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.6.2"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[151,178125,152,265189,16712],"plugin_category":[59],"plugin_contributors":[283997],"plugin_business_model":[],"class_list":["post-171557","plugin","type-plugin","status-publish","hentry","plugin_tags-backup","plugin_tags-nextcloud","plugin_tags-restore","plugin_tags-scheduled-backup","plugin_tags-webdav","plugin_category-utilities-and-tools","plugin_contributors-davelopweb","plugin_committers-davelopweb"],"banners":[],"icons":{"svg":"https:\/\/ps.w.org\/stn-save-to-nextcloud\/assets\/icon.svg?rev=2873525","icon":"https:\/\/ps.w.org\/stn-save-to-nextcloud\/assets\/icon.svg?rev=2873525","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>STN \u2013 Save To Nextcloud is a simple and reliable plugin to automatically back up your WordPress site and its database directly to your Nextcloud instance.<\/p>\n\n<p>Set your schedule once, and the plugin runs silently in the background \u2014 no manual intervention required. Backups are stored on your own Nextcloud server, giving you full control over your data, accessible from anywhere at any time.<\/p>\n\n<p><strong>Features:<\/strong><\/p>\n\n<ul>\n<li>Scheduled backups: weekly, twice a month, or monthly<\/li>\n<li>Full backup: database + wp-content folder + wp-config.php + .htaccess<\/li>\n<li>Database-only backup option<\/li>\n<li>Chunked upload to Nextcloud (handles large sites on limited hosting)<\/li>\n<li>Automatic cleanup: keeps only the N most recent backups verified as physically present on Nextcloud<\/li>\n<li>Auto-update lock: WordPress core, plugins and themes are only auto-updated after a successful scheduled backup<\/li>\n<li><strong>Restore system<\/strong>: restore any backup directly from Nextcloud or from a local ZIP file, with step-by-step progress<\/li>\n<li>Email notifications on backup and restore completion (or on error)<\/li>\n<li>REST API endpoints to query backup status and settings<\/li>\n<li>Multisite compatible<\/li>\n<\/ul>\n\n<p><strong>How it works:<\/strong><\/p>\n\n<p>Each backup runs in multiple steps, each adapted to your server\u2019s available memory, so it works reliably even on shared hosting with low memory limits:<\/p>\n\n<ol>\n<li>Database export to SQL<\/li>\n<li>ZIP of wp-content (cache excluded)<\/li>\n<li>Merge of SQL, wp-config.php and .htaccess into the ZIP<\/li>\n<li>Chunked upload to Nextcloud<\/li>\n<li>Assembly of chunks into the final ZIP on Nextcloud<\/li>\n<li>Cleanup of temporary files and old backups<\/li>\n<\/ol>\n\n<p><strong>REST API:<\/strong><\/p>\n\n<ul>\n<li><code>\/wp-json\/STN\/saves<\/code> \u2014 list of backups and next scheduled backup date<\/li>\n<li><code>\/wp-json\/STN\/param<\/code> \u2014 backup frequency, day, time and retention count<\/li>\n<\/ul>\n\n<h3>Links<\/h3>\n\n<p><a href=\"https:\/\/davelopweb.fr\/\">Knowledge Base<\/a><\/p>\n\n<!--section=installation-->\n<ol>\n<li>Install STN from the WordPress plugin store and activate it.<\/li>\n<li>Go to <strong>Save To Nextcloud \u2192 Sauvegarder<\/strong> and fill in your Nextcloud credentials (URL, username, password) and backup preferences.<\/li>\n<li>Click <strong>\"Enregistrer la planification\"<\/strong> to schedule your next automatic backup.<\/li>\n<li>Click <strong>\"Faire une sauvegarde maintenant\"<\/strong> to run an immediate backup.<\/li>\n<\/ol>\n\n<p><strong>Advanced options (in the settings panel):<\/strong><\/p>\n\n<ul>\n<li><strong>Number of backups to keep<\/strong> (1\u201310): only backups physically present on Nextcloud with a valid ID are counted.<\/li>\n<li><strong>Auto-update lock<\/strong>: when enabled, WordPress core, plugins and themes are only auto-updated within 2 days of a successful backup.<\/li>\n<li><strong>Database only<\/strong>: skip the wp-content ZIP and back up only the database.<\/li>\n<\/ul>\n\n<p><strong>Restore:<\/strong><\/p>\n\n<p>Go to <strong>Save To Nextcloud \u2192 Restaurer<\/strong> to restore a backup. Each backup stored on Nextcloud is verified before being offered as a restore option. You can also restore from a local ZIP file already present on your server.<\/p>\n\n<p>Note: wp-config.php is never overwritten automatically. It is placed as <code>wp-config_stn_restore.php<\/code> at the root of your site for manual review.<\/p>\n\n<p><strong>Deactivating the plugin<\/strong> removes all scheduled events.\n<strong>Deleting the plugin<\/strong> also removes all database tables and saved options.<\/p>\n\n<!--section=changelog-->\n<h4>2.6.2<\/h4>\n\n<p>Corrections de fiabilit\u00e9 (sauvegarde\/restauration) et s\u00e9curit\u00e9 :\n- Correction critique : la restauration de la base pouvait tronquer silencieusement les grosses tables (INSERT multi-lignes coup\u00e9 entre deux relances cron). L'export borne d\u00e9sormais la taille de chaque INSERT et la restauration ne coupe qu'\u00e0 une fronti\u00e8re de statement.\n- Confidentialit\u00e9 : les routes REST \/wp-json\/STN\/saves et \/wp-json\/STN\/param n'exposent plus d'informations inutiles (UUID, noms de fichiers complets, \u00e9tat interne) ; les champs restants sont r\u00e9duits au strict n\u00e9cessaire et neutralis\u00e9s (cl\u00e9s opaques) pour \u00e9viter toute interpr\u00e9tation par un tiers.\n- Correction : la d\u00e9tection des mises \u00e0 jour en attente (expos\u00e9e par l'API de supervision) ne fonctionnait pas en single-site (lecture via get_transient au lieu de get_site_transient) et pouvait renvoyer des donn\u00e9es p\u00e9rim\u00e9es en contexte REST. Les transients sont d\u00e9sormais rafra\u00eechis avant lecture et lus en site-transient.\n- Correction : l'assemblage final des morceaux sur Nextcloud (MOVE) est maintenant v\u00e9rifi\u00e9 ; en cas d'\u00e9chec, la sauvegarde n'est plus d\u00e9clar\u00e9e r\u00e9ussie \u00e0 tort, le ZIP est conserv\u00e9 et r\u00e9cup\u00e9rable par FTP, l'utilisateur est alert\u00e9.\n- Correction : plafonnement des relances en cas d'erreur r\u00e9seau pendant l'envoi (SendChunk) et le t\u00e9l\u00e9chargement (DownloadChunk) \u2014 plus de boucle de cron infinie si Nextcloud reste injoignable.\n- Correction : .htaccess ajout\u00e9 au ZIP uniquement s'il existe (FusionZip).\n- Compatibilit\u00e9 : Tested up to corrig\u00e9 (version WordPress, et non PHP).\n- Fiabilit\u00e9 restauration : v\u00e9rification du code HTTP au t\u00e9l\u00e9chargement (une page d'erreur Nextcloud n'est plus \u00e9crite dans le ZIP), gestion des r\u00e9ponses 200\/206 et corps vides, pas de d\u00e9compression auto.\n- Fiabilit\u00e9 restauration : un fichier plus volumineux que la m\u00e9moire disponible n'est plus saut\u00e9 (copie avant contr\u00f4le de pause) ; extraction repartant d'un dossier temporaire propre et v\u00e9rifi\u00e9e.\n- Fiabilit\u00e9 restauration : SET FOREIGN_KEY_CHECKS=0, et remont\u00e9e d'un bilan d'erreurs (requ\u00eates SQL \/ fichiers en \u00e9chec) dans le mail de fin au lieu d'un succ\u00e8s affich\u00e9 \u00e0 tort.<\/p>\n\n<h4>2.6.1<\/h4>\n\n<p>Corrections :\n- Correction : page blanche sur wp-admin\/options.php lors de l'enregistrement de la planification (champ action dupliqu\u00e9 + hook admin_post_ProgramSave mort)\n- Correction : Quirks Mode et JSON corrompu caus\u00e9s par une sortie PHP parasite entre les fonctions de page (balise ?&gt; fermante au niveau fichier)\n- Correction : en cas d'\u00e9chec d'envoi vers Nextcloud, le fichier ZIP est maintenant renomm\u00e9 (stn_save_domain_YYYYMMDDHHMMSS.zip) et r\u00e9cup\u00e9rable par FTP, la BDD est nettoy\u00e9e et le mail d'erreur indique le nom du fichier<\/p>\n\n<h4>2.6.0<\/h4>\n\n<p>Ajout du syst\u00e8me de restauration :\n- Restauration depuis Nextcloud : t\u00e9l\u00e9chargement du ZIP par morceaux (chunked, adapt\u00e9 \u00e0 la m\u00e9moire disponible)\n- Restauration depuis un fichier ZIP local (FTP)\n- Restauration de la base de donn\u00e9es (uniquement les tables avec le pr\u00e9fixe WP configur\u00e9)\n- Restauration de wp-content et .htaccess fichier par fichier avec reprise sur timeout\n- wp-config.php plac\u00e9 sous wp-config_stn_restore.php pour r\u00e9vision manuelle\n- Nettoyage automatique des fichiers temporaires apr\u00e8s restauration\n- Notification par mail \u00e0 la fin de la restauration\n- Interface admin d\u00e9di\u00e9e avec liste des sauvegardes disponibles et confirmation avant action<\/p>\n\n<h4>2.5.0<\/h4>\n\n<p>Corrections critiques de compatibilit\u00e9 h\u00e9bergeur :\n- Correction : stn_get_memory() retournait une valeur n\u00e9gative sur les h\u00e9bergeurs avec memory_limit = -1\n- Correction : INSERT SQL invalide quand des colonnes avaient des valeurs NULL ou vides (CreateBDD)\n- Correction : les fichiers SQL n'\u00e9taient pas supprim\u00e9s apr\u00e8s fusion (FusionZip)\n- Correction : le filtre d'exclusion du cache s'appliquait uniquement aux dossiers, pas aux fichiers (CreateZip)\n- Correction : envoi de chunk silencieusement ignor\u00e9 en cas d'erreur r\u00e9seau (SendChunk)\n- Correction : acc\u00e8s \u00e0 response[\"code\"] sans v\u00e9rifier WP_Error possible (MergeChunk)\n- Correction : wp_next_scheduled('stn_Save', 'next') \u2192 array('next')\n- Correction : wp_redirect() sans exit() apr\u00e8s la redirection\n- Correction : emails s\u00e9par\u00e9s par \";\" non transmis \u00e0 wp_mail()\n- Correction : pr\u00e9fixe LIKE SQL avec _ interpr\u00e9t\u00e9 comme wildcard\n- Ajout : v\u00e9rification connexion MySQLi et ouverture fichier avec mail d'alerte\n- Ajout : v\u00e9rification extension ZipArchive et MySQLi au d\u00e9marrage\n- Ajout : set_time_limit(0) sur les op\u00e9rations longues\n- S\u00e9curit\u00e9 : nonce sur le formulaire \"Faire une sauvegarde maintenant\"\n- S\u00e9curit\u00e9 : sanitize_callback sur tous les register_setting()\n- Correction : formatage du header plugin (double ast\u00e9risque sur Plugin URI et Version)<\/p>\n\n<h4>2.4.6<\/h4>\n\n<p>Nettoyage des anciennes sauvegardes<\/p>\n\n<h4>2.4.5<\/h4>\n\n<p>Optimisation de MAJ auto<\/p>\n\n<h4>2.4.4<\/h4>\n\n<p>Clean Save lors du lancement manuel<\/p>\n\n<h4>2.4.3<\/h4>\n\n<p>Debug BDD only<\/p>\n\n<h4>2.4.1<\/h4>\n\n<p>Possibilit\u00e9 de sauvegarder d'autres app en meme temps en modifiant le fichier OtherApp.php<\/p>\n\n<h4>2.3.4<\/h4>\n\n<p>Correction de bugs<\/p>\n\n<h4>2.3.3<\/h4>\n\n<p>Ajout 'permission_callback' en public les API<\/p>\n\n<h4>2.3.1<\/h4>\n\n<p>Ajout NeedUpdate dans l'API param<\/p>\n\n<h4>2.3.1<\/h4>\n\n<p>Calcul la m\u00e9moire disponible pour les diff\u00e9rentes \u00e9tapes de la sauvegarde<\/p>\n\n<h4>2.3<\/h4>\n\n<p>Ajout d\u00e9tection update et suppression<\/p>\n\n<h4>2.1.0 -&gt; 2.2.4<\/h4>\n\n<p>Correctifs Bugs<\/p>\n\n<h4>1.0.0 -&gt; 2.1.0<\/h4>\n\n<p>Mise en conformit\u00e9 du code pour le store Wordpress<\/p>","raw_excerpt":"STN \u2013 Save To Nextcloud is a simple and reliable plugin to automatically back up your WordPress site and its database directly to your Nextcloud insta &hellip;","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/171557","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=171557"}],"author":[{"embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/davelopweb"}],"wp:attachment":[{"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=171557"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=171557"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=171557"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=171557"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=171557"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/pl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=171557"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}