A good Odoo backup setup answers three questions: where the copies go, how often they are made, and how fast you can get your data back. In Easy Instance, every Odoo database backup is managed from the Backups tab of your instance. You can keep backups on Easy Instance storage with zero setup, send copies to your own FTP, SFTP, Google Drive, Dropbox, Nextcloud or S3-compatible storage, and restore any of them in one click. This guide walks through each option using the current dashboard.
Only instance Admins can create, restore, download and delete backups or manage destinations. Viewers see the backup list only.
The Backups tab at a glance
Open your instance and select Backups (under Data & Apps). The top strip shows four numbers: Last backup, Schedule, Stored backups and Active destinations. Below it, two views:
- Backups: every backup with its name, created time, size and status, plus download, restore and delete actions.
- Destinations: where scheduled backups are written, each with its frequency, last run, an Active/Paused toggle, edit and delete.
An instance can have several destinations, each with its own schedule. A common setup is Easy Instance storage plus one off-site copy.
Start with Easy Instance storage (no setup)
Easy Instance storage keeps your backups on platform storage, in a folder of their own for each instance. There is nothing to fill in.
- In the Backups tab, click Add destination.
- Enter a Name, for example
Nightly backup. - Leave Destination set to Easy Instance storage.
- Review the Schedule and Options sections (below) and click Save destination.
If your Destinations view already lists an active Easy Instance storage destination, you are covered and can skip this step.
Set the Odoo backup schedule and retention
Every destination form has a Schedule section:
- Frequency: Daily, Weekly or Monthly. The default is Daily. The scheduler checks once a day and runs a destination when its last successful backup is older than its period. A failed run is retried the next day.
- Keep (days): how long backups are kept. The default is 30 days.
And an Options section:
- Remove old backups: deletes backups older than the keep period. On by default. Turn it off to keep everything, and Keep (days) is then ignored.
- Include filestore: zips the database together with attachments (the filestore). Turn it off to back up the database only. Keep it on unless you have another copy of your attachments: an Odoo database restored without its filestore loses every uploaded file and image.
- Email me about backups: emails the instance owner when a backup succeeds or fails.
To stop scheduled backups temporarily, switch the destination's toggle to Paused in the Destinations view.
Back up the Odoo database manually
Take a manual backup before risky changes such as installing modules, running an upgrade or importing data.
- Click Create Backup.
- Pick a Destination. Only active destinations are listed.
- Optionally add a Note, for example
Before upgrading modules. It shows under the backup name in the list. - Click Create Backup. The row shows In progress and then Completed or Failed.
Download and restore a backup
Each completed backup in the list has three actions:
- Download saves the backup as a
.zipfile so you can keep a copy anywhere you like. This works for backups stored on external destinations too. - Restore replaces the current database of the instance with that backup. You are asked to confirm, and it cannot be undone. If the file is not a valid Odoo backup, the restore is refused and the live database is left untouched.
- Delete removes the backup file permanently.
Send Odoo backups off-site
Click Add destination, give it a Name, choose the destination type, and fill in its fields. FTP, SFTP, Nextcloud and S3-compatible storage have a Test connection button: use it before saving. Hosts must be public addresses that Easy Instance can reach.
FTP and SFTP
Make sure an FTP or SSH/SFTP service is running on the target server and you have a user that can write to the backup folder.
- Host: the server's public hostname.
- Port: 21 for FTP, 22 for SFTP (pre-filled).
- Username and Password.
- Remote folder: the path where backups are written, for example
/backups/odoo.
Prefer SFTP: plain FTP sends the password and the backup unencrypted.
Google Drive
Google Drive backups go to an Easy Instance Backups folder that is created in your Drive when you connect. Easy Instance requests only the drive.file permission, so it can access the files it creates and nothing else in your Drive.
If the form shows no Client ID field, Easy Instance connects Google Drive for you: click Save destination, allow access on Google's screen, and you are returned to the Backups tab.
If the form asks for a Client ID and Client secret, create your own Google OAuth client first:
- In the Google Cloud console, create or select a project, open APIs and services and click Enable APIs and services.

- Search for Google Drive API and click Enable.

- Open Google Auth Platform and complete the project configuration (app information, audience, contact information).

- Under Clients, click Create client and choose Web application.

- Under Authorised redirect URIs, add the redirect URI shown in the Easy Instance destination form (
https://web.easyinstance.com/google_drive/authentication), then click Create and copy the Client ID and Client secret.
- Under Audience, either add your Google account as a test user or publish the app. Google expires refresh tokens of apps left in Testing after 7 days, so publish it for backups that keep running.
- Back in Easy Instance, paste the Client ID and Client secret, click Save destination, then Authorize with Google Drive and allow access.
Once connected, the form shows Authorized. If access is ever revoked, open the destination and click Re-authorize with Google Drive (or Reconnect).
Dropbox
If the form shows no App key field, Easy Instance connects Dropbox for you: the Folder is optional, click Save destination and allow access.
Otherwise, create a Dropbox app:
- In the Dropbox App Console, create an app with Scoped access. Choose App folder (access to one folder only) or Full Dropbox.

- On the Settings tab, add the redirect URI shown in the Easy Instance form (
https://web.easyinstance.com/dropbox/authentication) and copy the App key and App secret. - On the Permissions tab, enable
files.content.writeandfiles.content.read, then click Submit.
- In Easy Instance, fill in App key, App secret and Folder (for example
/odoo-backups), click Save destination, then Authorize with Dropbox and allow access.
Nextcloud
- Nextcloud URL: the address of your Nextcloud, for example
https://cloud.example.com. - Username and Password. Use an app password created in Nextcloud under Settings, Security, rather than your login password.
- Folder: the folder for backups, for example
/odoo-backups. Missing folders are created on the first upload.
S3-compatible storage (Amazon S3, Hetzner and others)
The S3 destination works with Amazon S3 and other S3-compatible object storage. The form has these fields:
- Bucket: the bucket name.
- Prefix (optional): a folder inside the bucket, for example
odoo/production. - Endpoint URL: required by the form. For Amazon S3 enter the regional endpoint, for example
https://s3.us-east-1.amazonaws.com. For Hetzner Object Storage, for examplehttps://fsn1.your-objectstorage.com. - Region: the bucket's region, for example
us-east-1orfsn1. - Access key and Secret key.
On AWS, create the bucket in the S3 console (Create bucket, General purpose, keep public access blocked):
Do not use root account access keys. In IAM, create a dedicated user, attach a policy limited to the backup bucket, and create an access key for that user. Replace my-odoo-backups with your bucket name:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": ["s3:ListBucket"],
"Resource": "arn:aws:s3:::my-odoo-backups"
},
{
"Effect": "Allow",
"Action": ["s3:PutObject", "s3:GetObject", "s3:DeleteObject"],
"Resource": "arn:aws:s3:::my-odoo-backups/*"
}
]
}Get and Delete are needed for downloads, restores and removing old backups. Click Test connection, then Save destination. Backup files then appear under your prefix in the bucket:
A simple Odoo backup checklist
- One active destination on Easy Instance storage, plus one off-site copy.
- Include filestore on, Remove old backups set to a keep period that matches your needs.
- Email notifications on, so a failed backup does not go unnoticed.
- A manual backup with a note before every upgrade or module install.
- A test restore now and then, on a staging instance, so you know the backups work.
For the wider picture of running Odoo in production, see how to host Odoo and Odoo server configuration. If you run Odoo in Docker yourself, Odoo Docker volumes covers backing up the database and filestore volumes.
Easy Instance is managed Odoo hosting for Odoo 17 to 20, Community or Enterprise, with backups, SSL and monitoring built in. See pricing or the FAQ, or start a 10-day free trial, no credit card needed.