Documentation

Everything you need to get started with RestoreProof

Runner Installation

app.restoreproof.io
RestoreProof deploy-a-runner wizard showing the generated docker run command
The app generates this command for you, with your key.

Docker

docker run -d \
  --name restoreproof-runner \
  --restart unless-stopped \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v restoreproof-work:/var/lib/restoreproof \
  -e RESTOREPROOF_API_KEY="<your-api-key>" \
  -e RESTOREPROOF_URL="https://api.restoreproof.io" \
  -e RESTOREPROOF_RUNNER_NAME="my-runner" \
  ghcr.io/kolapsis/restoreproof/runner:main

Kubernetes Coming soon

Helm chart in the works.

Interested? Write to us: hello@restoreproof.io

Binary Coming soon

Linux binary in the works.

Interested? Write to us: hello@restoreproof.io

Configuration

Environment variables are enough to get started (see the Docker command above). For advanced cases, you can also use a config.yaml file:

control_plane:
  url: "https://api.restoreproof.io"
  api_key: "rp_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

runner:
  name: "prod-runner-01"
  labels:
    - "env:production"
    - "region:us-east-1"
    - "tier:database"

docker:
  socket: "unix:///var/run/docker.sock"

secrets:
  postgres_password:
    source: "env://PGPASSWORD"

Example Restore Plan

Define a restore plan in JSON:

{
  "name": "daily-postgres-verify",
  "runner_labels": ["tier:database"],
  "steps": [
    {
      "type": "fetch",
      "source": "s3://backups/postgres/latest.sql.gz"
    },
    {
      "type": "unpack",
      "format": "gzip"
    },
    {
      "type": "start_sandbox",
      "image": "postgres:15"
    },
    {
      "type": "restore_postgres"
    }
  ],
  "probes": [
    {
      "type": "postgres",
      "config": {
        "tables": ["users", "orders"],
        "sample_rows": 1000
      }
    }
  ]
}