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.
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. Go to Dashboard → Cloud Snapshots
- 2. Click Add Resource
- 3. Select your cloud provider (DigitalOcean, Hetzner, or Vultr)
- 4. Enter your API token and resource ID
- 5. Configure schedule and retention settings
- 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
| Field | Description |
|---|---|
| resource_id | Droplet ID (numeric) |
| api_token | Personal Access Token with read/write scope |
Generate a token at: DigitalOcean API Tokens
Hetzner Cloud
| Field | Description |
|---|---|
| resource_id | Server ID (numeric) |
| api_token | API Token with Read & Write permissions |
Generate a token at: Hetzner Cloud Console → Project → Security → API Tokens
Vultr
| Field | Description |
|---|---|
| resource_id | Instance ID (UUID format) |
| api_key | Personal 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:
| Schedule | Cron Expression |
|---|---|
| Manual only | (leave empty) |
| Daily at midnight | 0 0 * * * |
| Daily at 3 AM | 0 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
| Method | Endpoint | Description |
|---|---|---|
| GET | /cloud-snapshots/providers | List available providers |
| GET | /cloud-snapshots/summary | Get summary statistics |
| GET | /cloud-snapshots/resources | List all resources |
| POST | /cloud-snapshots/resources | Create resource |
| POST | /cloud-snapshots/resources/:uuid/test | Test connection |
| POST | /cloud-snapshots/resources/:uuid/snapshots | Create snapshot manually |
| GET | /cloud-snapshots/resources/:uuid/snapshots | List snapshots |
| DELETE | /cloud-snapshots/snapshots/:uuid | Delete 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.