Search by

punktde / elastic-sync

punktde

Synchronize Elasticsearch indices from a remote Neos instance to local

Package info

github.com/punktDe/elastic-sync

Type:neos-package

pkg:composer/punktde/elastic-sync

Statistics

Installs: 26 805

Dependents: 0

Suggesters: 0

Stars: 7

Open Issues: 1

1.7.0 2026-09-21 11:22 UTC

This package is auto-updated.

Last update: 2026-09-21 11:23:12 UTC


README

Latest Stable Version Total Downloads License

ElasticSync Schema

The package uses elasticsearch-dump to sync data from a remote Elasticsearch instance to local. If you are already using a tool to sync the database and assets from a remote Neos instance to your local dev instance, you can now also copy the needed Elasticsearch indices. That saves a lot of time needed otherwise for local indexing, especially on large projects.

How the package works:

  1. It gathers the Elasticsearch sync configuration from the remote server
  2. Establishs a ssh tunnel to the remote server and syncs the index mapping, data and aliases through it

Installation

Install the package via composer

composer require punktde/elastic-sync

Install the required JavaScript library:

(cd Packages/Application/PunktDe.Elastic.Sync/Resources/Private/Library && npm install)

Configuration

You can add several presets. A preset consists of three parts

remoteInstance

Configures how the remote server and the remote installation can be reached.

elasticsearch

Describes how the Elasticsearch server instance can be reached. For the remote instance, the config is fetched from there.

If the Elasticsearch instance is protected by http basic authentication, configure username and password. This can be done separately for the local and the remote instance, as the remote configuration is read from the remote server:

elasticsearch:
  scheme: 'https'
  host: 'elasticsearch.example.com'
  port: 9200
  username: 'elastic'
  password: 'the-password'

Leave both empty to connect without authentication.

indices

Several indices to be fetched can be defined. The index name can contain '*' to define a group of indices:

Example for cloning the content repository indices for all content dimensions, including all aliases:

indices:
  contentRepository:
    indexName: 'neos*' 

Usage

./flow elastic:sync <preset>