Start
How arcula works
arcula backs up your Linux servers to your S3 storages. In the panel it shows what matters: how much data is lost if a server fails right now, and whether the copies in each storage are fine.
What it consists of
| Part | Where it runs | What it does |
|---|---|---|
Agent arcula | On each protected server: the arcula-agent service, as root | Finds what's on the server, makes backups on schedule and sends them to the storages. The same file is the arcula command for restoring |
| Panel | On your server, in Docker, with PostgreSQL next to it | Stores protection plans, receives agent reports, checks storages, cleans up old backups, calculates statuses and sends notifications |
| Web UI | In the browser | Servers, storages, protection plans, settings and this help |
| Storages | S3 at any providers, yours | Encrypted backups: a separate restic repository for each server in each storage |
arcula has no format of its own: backups are ordinary restic repositories. The data can be restored without arcula, with restic alone.
Three rules
- The agent contacts the panel itself. No inbound port is opened on the server. The agent picks up commands from the panel — “Back up now”, “Update agent” — on its own, usually within seconds.
- Backups don't depend on the panel. The schedule and the last accepted plan are stored on the server. If the panel is unavailable, backups continue, and the agent sends its reports when the connection is back.
- Restore doesn't depend on the panel. With the recovery kit the data can be restored on any machine — without the panel and without our service.
So “Agent offline” in the panel means only one thing: the panel doesn't hear the agent. If the server is running, backups are most likely continuing and will show up in the panel when the connection is back.
From connecting to the first backup
- Storage. “Storages” → “+ Storage”: endpoint, bucket and key. The panel checks access in a test prefix right away. Details — Storages.
- Agent. “Servers” → “+ Server”. The panel shows one install line — run it on the server (example below).
- Code. The agent shows a code and a link. Open the link or enter the code in the panel, set the server name and click “Connect”. The code is valid for 10 minutes.
- What the agent found. The agent scans the server right away: Docker and Compose, volumes, databases, directories, host settings. The findings usually show in the panel within a minute.
- Protection plan. Check what to protect, choose the frequency profile and storages, and click “Confirm plan”. Details — Protection plan.
- First backup. The agent gets the plan with the next heartbeat (every minute), creates repositories in the storages and starts the first backup right away.
The install line looks like this:
curl -fsSL https://<panel address>/install.sh | sudo shUntil the plan is confirmed, the server's status is “Not set up” and there are no backups in any storage.
What you see afterwards
- For a server — the “Latest copy”: how much data is lost if it fails now, and the profile target. Details — If it fails now.
- Next to each storage — the state of the copy and the history strip.
- For a storage — how much space is used, how long it will last, and the check results.
- The server status: “OK”, “Needs attention”, “Critical” or “Not set up”. Servers with problems come first in the list.
Time in the panel
All times in the panel are in the time zone of the device you opened it on. The panel has its own time zone: it's used for the schedule and upload windows, nightly checks and cleanup, and for times in notifications. The panel time zone — “Settings” → “Account” → “Time zone”.
Articles in this section
The same article is in the panel, under “Help”.