Title: Miroir Local Sync
Author: Tommy Bordas
Published: <strong>23. јул 2026.</strong>
Last modified: 23. јул 2026.

---

Претражи додатке

![](https://ps.w.org/miroir-local-sync/assets/banner-772x250.png?rev=3619915)

![](https://ps.w.org/miroir-local-sync/assets/icon.svg?rev=3619915)

# Miroir Local Sync

 [Tommy Bordas](https://profiles.wordpress.org/tommybordas/)

[Преузимање](https://downloads.wordpress.org/plugin/miroir-local-sync.0.5.0.zip)

 * [Детаљи](https://sr.wordpress.org/plugins/miroir-local-sync/#description)
 * [Прегледи](https://sr.wordpress.org/plugins/miroir-local-sync/#reviews)
 *  [Постављање](https://sr.wordpress.org/plugins/miroir-local-sync/#installation)
 * [Изградња](https://sr.wordpress.org/plugins/miroir-local-sync/#developers)

 [Подршка](https://wordpress.org/support/plugin/miroir-local-sync/)

## Опис

Miroir keeps a local WordPress environment and one or more remote sites in sync,
with an interface designed for non-technical users.

The same plugin embeds two roles: an orchestrator on the local site and an agent
on each remote site. They communicate over the WordPress REST API (authenticated
with Application Passwords) and, optionally, SFTP.

Features:

 * Push (local to production) and Pull (production to local) of the database.
 * Safe search-replace that handles PHP-serialized data, escaped JSON (Gutenberg
   blocks) and `wp_options`.
 * Automatic snapshot and rollback before a database import.
 * Comparison screen with a per-component diff and data-loss warnings.
 * File deployment of specific themes and plugins.
 * Editorial content merge by post type (GUID-matched, no deletion; WooCommerce 
   excluded).
 * One-click deployment shortcuts.
 * REST (chunked) and SFTP transport.

## Снимци екрана

[⌊Dashboard: connected sites and one-click deployment shortcuts.⌉⌊Dashboard: connected
sites and one-click deployment shortcuts.⌉[

Dashboard: connected sites and one-click deployment shortcuts.

[⌊Comparison screen with per-component diff and data-loss warnings.⌉⌊Comparison 
screen with per-component diff and data-loss warnings.⌉[

Comparison screen with per-component diff and data-loss warnings.

[⌊Global settings and system status.⌉⌊Global settings and system status.⌉[

Global settings and system status.

## Постављање

 1. Install and activate Miroir on the remote (production) site.
 2. Install and activate Miroir on the local site.
 3. On the local site, open Miroir, add the remote URL and approve the connection.

## ЧПП

### Does this replace a backup plugin?

No. Miroir is a development and deployment tool, complementary to a general backup
solution.

### Is WooCommerce supported?

Yes for full database sync. Per-type content merge intentionally excludes WooCommerce
products and orders.

### Will a push delete data on the target?

A full database push replaces the target database, so rows that exist only on the

target are removed. The comparison screen warns about this before you confirm, and
a snapshot is taken so a rollback is possible. Content merge (by post type) and 
file deployment are additive and never delete.

### What if my host has no SSH/SFTP?

Everything works over the REST API (chunked transfer). SFTP is optional and only

speeds up file transfers on hosts that provide SSH.

### Are my credentials safe?

Yes. Application Passwords and SFTP secrets are encrypted at rest (AES-256-GCM) 
and
 never logged in clear text. The agent only answers users with `manage_options`.

### Will large sites time out?

The database search-replace is resumable (processed in time-bounded chunks), file

transfers are chunked, and native mysqldump/mysql are used when available.

## Прегледи

Нема рецензија за овај додатак.

## Сарадници и градитељи

„Miroir Local Sync“ је софтвер отвореног кода. Следећи људи су допринели овом додатку.

Сарадници

 *   [ Tommy Bordas ](https://profiles.wordpress.org/tommybordas/)

[Преведите „Miroir Local Sync“ на свој језик.](https://translate.wordpress.org/projects/wp-plugins/miroir-local-sync)

### Заинтересовани сте за градњу?

[Прегледајте код](https://plugins.trac.wordpress.org/browser/miroir-local-sync/),
проверите [SVN складиште](https://plugins.svn.wordpress.org/miroir-local-sync/) 
или се пријавите на [белешку градње](https://plugins.trac.wordpress.org/log/miroir-local-sync/)
преко [RSS-а](https://plugins.trac.wordpress.org/log/miroir-local-sync/?limit=100&mode=stop_on_copy&format=rss).

## Белешка о изменама

#### 0.5.0

 * Internationalization: all source strings are now in English (the WordPress.org
   standard), so the plugin can be translated on translate.wordpress.org and the
   directory page reads consistently with the code.
 * Bundled French translation (fr_FR) in /languages: the admin interface and the
   activity log display in French on French sites out of the box.
 * Loads the bundled text domain on init (load_plugin_textdomain) so translations
   work on WordPress 6.0–6.6; 6.7+ auto-loads them.
 * Included a translation template (miroir-local-sync.pot) for further locales.

#### 0.4.11

 * Progress transients: the literal prefix sumotori_sync_prog_ is now visible at
   every set_transient() call site (no more dynamic keys), so all options/transients
   are verifiably prefixed.
 * Renamed the JS localized object MiroirSync to sumotori_sync_cfg (consistent unique
   prefix).
 * Hardened storage confinement: chunk writes (Agent) and downloads (Transport) 
   now refuse any path outside the protected storage folder under wp_upload_dir()(
   uploads/miroir-local-sync-{key}/). No data is ever written inside the plugin 
   folder.

#### 0.4.10

 * Removed ini_set(‘display_errors’) from the AJAX guard (no error-reporting changes
   in production code).
 * Progress transient key is now force-prefixed with sumotori_sync_ in the push/
   pull setters.

#### 0.4.9

 * Storage folder in uploads now uses the plugin slug prefix (miroir-local-sync-).

#### 0.4.8

 * Portability: use WP_PLUGIN_DIR and get_theme_root() instead of hardcoded WP_CONTENT_DIR
   paths. Correct readme contributor.

#### 0.4.7

 * Renamed to Miroir Local Sync (slug miroir-local-sync) for a distinctive, descriptive
   name.

#### 0.4.6

 * Text domain aligned to the plugin slug (miroir). Plugin Check fixes: escaped 
   CTA button attribute, translators comment, composer.json kept in the package.

#### 0.4.5

 * Security hardening: search-replace unserialize restricted to stdClass (no object
   injection); transfer chunks now capped (size guard against disk-fill); manual
   connection validates the URL like the auto flow.
 * i18n: Push/Pull button label no longer hardcoded after an operation.

#### 0.4.4

 * After synchronizing a component, its row status flips from „modifié“ to „à jour“(
   kept visible until the next refresh).

#### 0.4.3

 * The site „⋯“ menu now closes on outside click or Escape.
 * Removed the per-component „Détails“ button (the (i) panel covers it).

#### 0.4.2

 * Comparer: clickable (i) on each component reveals file/size details below the
   row; „N components up to date“ collapsible to find any already-synced component.
 * Per-component detail now includes total size (LOCAL/PROD files + size).

#### 0.4.1

 * Per-component „Synchroniser“ button on the Comparer page: push a single plugin/
   theme to prod in delta, with a live per-phase spinner.
 * Component versions shown per side (LOCAL vX · PROD vY); file-count detail moved
   to an (i) tooltip to keep rows clean.
 * Consistent „Synchroniser“ terminology across components and database.
 * Manifest hardening: version „0“ handled, null-safe count/size reads.

#### 0.4.0

 * Delta deployment: one-click shortcuts now send only changed files (hash diff 
   vs the remote), ~90% less data on the wire.
 * Comparer page redesigned into per-category cards — including in the sync and 
   expanding the detail are now decoupled (inspect without checking).
 * Local and remote analysis run in parallel (~2x faster), with live per-phase progress.
 * Lightweight component signature (version + size + file count) for an instant 
   overview; exact per-file hashing kept for drill-down and deployment.
 * Dashboard redesigned: centered layout, compact collapsible „add a site“ tile,
   denser sections.
 * Fixes: shortcut edit/delete (id casing), Comparer scope now actually filters,
   raised memory limit for heavy operations.

#### 0.3.0

 * Editorial content merge by post type.
 * One-click deployment shortcuts.
 * Per-component file deployment and one-click agent update.

#### 0.2.0

 * File synchronization, SFTP transport, per-component diff, AJAX progress.

#### 0.1.0

 * Initial connection flow, database push/pull, search-replace engine.

## Мета

 *  Version **0.5.0**
 *  Last updated **1 дан раније**
 *  Active installations **Мање од 10**
 *  WordPress version ** 6.0 или новије **
 *  Tested up to **7.0.2**
 *  PHP version ** 8.1 или новије **
 *  Language
 * [English (US)](https://wordpress.org/plugins/miroir-local-sync/)
 * Tags
 * [database](https://sr.wordpress.org/plugins/tags/database/)[deployment](https://sr.wordpress.org/plugins/tags/deployment/)
   [migration](https://sr.wordpress.org/plugins/tags/migration/)[staging](https://sr.wordpress.org/plugins/tags/staging/)
   [sync](https://sr.wordpress.org/plugins/tags/sync/)
 *  [Напредни преглед](https://sr.wordpress.org/plugins/miroir-local-sync/advanced/)

## Оцене

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/miroir-local-sync/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/miroir-local-sync/reviews/)

## Сарадници

 *   [ Tommy Bordas ](https://profiles.wordpress.org/tommybordas/)

## Подршка

Имате нешто да кажете? Потребна вам је помоћ?

 [Види форум подршке](https://wordpress.org/support/plugin/miroir-local-sync/)