Skip to main content

Backup targets

A target is somewhere backups are written. An instance can have several, and every configured target receives a copy of each backup.

Configuring

In the Web UI, the instance's Backup configuration tab. On the command line:

Remote or localagainst prod-1
# odoocli instance backup-config show --instance acme
Remote or localagainst prod-1
# odoocli instance backup-config set --instance acme

Targets are keyed by name, so setting one that already exists updates it rather than adding a duplicate.

The four kinds

Local filesystem

A directory on the server. The fastest option and the least useful in a disaster: a local backup does not survive the machine.

Put it on separate storage from the instance root if you can. The defaults keep everything under /var/lib/odoo, which means one failed disk takes both.

FTP

An FTP or FTPS server. Available at every edition, which makes it the off-site option for unregistered and Community installations.

Amazon S3 and S3-compatible

Any S3-compatible endpoint works, not only AWS: the configuration takes an explicit service URL, region, bucket and prefix.

Azure Blob Storage

Configured with a storage account, an access key and a container.

Credentials

Target credentials are write-only through the API. You can set them and you can replace them; nothing reads them back, and they are never included in a backup configuration export, a job payload, a job result or a log.

Credentials are stored unencrypted at rest

Backup provider credentials are held in plaintext in the master database. Anyone with the database file, or a database backup of it, has them.

Protect the master database accordingly, and prefer credentials scoped to exactly the bucket or container they need, so that a leak costs you one prefix rather than an account.

When a target fails

A backup does not stop at the first failed target. It attempts every one and records a per-target result, so a broken S3 credential does not cost you the local copy.

The same mechanism carries the licence case: without a Professional licence the cloud targets are skipped and recorded as failed, while local and FTP copies are written normally.