Skip to Content
Getting StartedQuickstart

Quickstart: Prove One Restore

One useful evaluation has one outcome: restore a known file from a verified backup. Use Docker Compose and one non-production machine to prove that outcome before configuring anything else.

Start XReplicator. Protect one test machine. Restore one file and match its checksum.

Before You Start

You need a trusted Linux host with Docker Compose, one non-production Linux or Windows machine, and root or Administrator access. Allow TCP 3000 to the web UI and TCP 50051 from the test machine to the Docker host.

Create a free Community license  and download license.json.

1. Start XReplicator

On the Docker host:

mkdir -p xreplicator-compose && cd xreplicator-compose curl -LO https://raw.githubusercontent.com/xmigrate/xreplicator/main/deploy/docker-compose/compose.yaml curl -LO https://raw.githubusercontent.com/xmigrate/xreplicator/main/deploy/docker-compose/.env.example cp .env.example .env mkdir -p tls license openssl req -x509 -newkey rsa:4096 -nodes -days 30 \ -keyout tls/tls.key \ -out tls/tls.crt \ -subj "/CN=backup-server.xmigrate.com" \ -addext "subjectAltName=DNS:backup-server.xmigrate.com,DNS:backup-server,IP:127.0.0.1" cp tls/tls.crt tls/ca.crt cp /path/to/license.json license/license.json docker compose up -d docker compose ps

When backup-server and frontend are healthy, open http://DOCKER_HOST:3000.

This quickstart uses a self-signed certificate and a privileged backup-server container with host /dev access. Use your organization CA, separate client certificates, and a reviewed topology for production.

2. Protect One Test Machine

Create a small file before the backup and keep its checksum:

printf 'XReplicator restore proof\n' | sudo tee /var/tmp/xreplicator-restore-proof.txt sudo sha256sum /var/tmp/xreplicator-restore-proof.txt

Install one backup agent, then configure only these evaluation values:

  • device.paths: the test disk containing the proof file.
  • storage.grpc.server_address: DOCKER_HOST:50051.
  • storage.grpc.max_retries: 0.
  • storage.grpc.tls.server_name: backup-server.xmigrate.com.

For this isolated lab, securely copy tls/ca.crt, tls/tls.crt, and tls/tls.key from the Docker host to the test machine and point the agent TLS fields at them. Do not reuse this certificate arrangement in production.

Configuration references: Linux, Windows, and production mTLS.

Restart the agent:

sudo systemctl restart backup-agent sudo systemctl status backup-agent

In the web UI, open Clients, confirm the machine is connected, and click Trigger Backup. Continue when Snapshots shows a completed restore point.

3. Prove the Restore

In Snapshots:

  1. Run metadata or sample verification against the completed restore point.
  2. Browse to the proof file and click Restore.
  3. Restore to a safe temporary destination, never over the source.
  4. Calculate the restored file checksum.
sha256sum /path/to/restored/xreplicator-restore-proof.txt

The restored file exists, opens correctly, and matches the checksum recorded before the backup. That is the first successful XReplicator evaluation.

If It Does Not Pass

Check the service nearest the failure:

# Docker host docker compose ps docker compose logs --tail=100 backup-server frontend # Linux test machine sudo journalctl -u backup-agent -n 100 --no-pager

The common causes are an unreachable DOCKER_HOST:50051, a certificate name or CA mismatch, the wrong device path, or an inactive license.

After the First Restore

Stop the Docker evaluation with docker compose down. Add -v only when you also intend to delete its local database and backup data.

Last updated on