Cloud Snapshots

Orchestrate cloud provider snapshots for your VPS and cloud servers. LOX coordinates snapshot creation, verification, and rotation across DigitalOcean, Hetzner Cloud, and Vultr.

v1.0.0Updated 2026-01-01
DigitalOcean
Droplet Snapshots
Hetzner Cloud
Server Images
Vultr
Instance Snapshots

Features

  • Scheduled automatic snapshots (cron-based)
  • Manual on-demand snapshot creation
  • Automatic snapshot verification
  • Retention-based rotation (keep last N snapshots)
  • Health monitoring with failure alerts
  • Centralized management from LOX dashboard
  • Encrypted API token storage

Quick Start

1. Add a Cloud Resource

  1. 1. Go to Dashboard → Cloud Snapshots
  2. 2. Click Add Resource
  3. 3. Select your cloud provider (DigitalOcean, Hetzner, or Vultr)
  4. 4. Enter your API token and resource ID
  5. 5. Configure schedule and retention settings
  6. 6. Click Create Resource

2. Configure via API

POST /api/v1/cloud-snapshots/resources
{
  "name": "Production Web Server",
  "provider_type": "digitalocean",
  "resource_id": "123456789",
  "resource_name": "web-prod-1",
  "config": {
    "api_token": "dop_v1_xxxxxxxxxxxxxxxx"
  },
  "schedule_cron": "0 3 * * *",
  "retention_count": 7,
  "is_enabled": true
}

Provider Configuration

DigitalOcean

FieldDescription
resource_idDroplet ID (numeric)
api_tokenPersonal Access Token with read/write scope

Generate a token at: DigitalOcean API Tokens

Hetzner Cloud

FieldDescription
resource_idServer ID (numeric)
api_tokenAPI Token with Read & Write permissions

Generate a token at: Hetzner Cloud Console → Project → Security → API Tokens

Vultr

FieldDescription
resource_idInstance ID (UUID format)
api_keyPersonal Access Token

Generate a key at: Vultr API Settings

Secure Token Storage

API tokens are encrypted at rest using AES-256. They are never logged or exposed in API responses. Only the first 8 characters are shown in the dashboard for identification.

Schedule Options

Snapshots can be scheduled using standard cron expressions or set to manual-only:

ScheduleCron Expression
Manual only(leave empty)
Daily at midnight0 0 * * *
Daily at 3 AM0 3 * * *
Weekly (Sunday midnight)0 0 * * 0
Monthly (1st at midnight)0 0 1 * *

Retention & Rotation

Set retention_count to automatically delete old snapshots:

  • After each successful snapshot, oldest snapshots beyond retention count are deleted
  • Failed snapshots do not trigger rotation
  • Default retention: 7 snapshots

Provider Costs

Cloud provider snapshots are billed by the provider based on storage used. Check your provider's pricing for snapshot storage costs. LOX does not charge additional fees for snapshot orchestration.

API Reference

Endpoints

MethodEndpointDescription
GET/cloud-snapshots/providersList available providers
GET/cloud-snapshots/summaryGet summary statistics
GET/cloud-snapshots/resourcesList all resources
POST/cloud-snapshots/resourcesCreate resource
POST/cloud-snapshots/resources/:uuid/testTest connection
POST/cloud-snapshots/resources/:uuid/snapshotsCreate snapshot manually
GET/cloud-snapshots/resources/:uuid/snapshotsList snapshots
DELETE/cloud-snapshots/snapshots/:uuidDelete snapshot

Troubleshooting

Snapshot creation fails with 401

Your API token may be expired or have insufficient permissions. Generate a new token with read/write access and update the resource configuration.

Resource shows as unhealthy

A resource is marked unhealthy after 3 consecutive failures. Use the Test button to verify connectivity and check the error message in the resource details.

Snapshot takes too long

Snapshot creation time depends on the server size and provider. Large servers (100GB+) may take 10-30 minutes. LOX polls the provider until the snapshot is complete.