Odoo Backup in Easy Instance: Schedule, Restore, Off-site

Set up Odoo backup in Easy Instance: zero-setup storage, daily, weekly or monthly schedules, retention, one-click restore and off-site copies.

Updated . 7 min read

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.

Backups stats strip and Backups list with names, created times, sizes and status

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.

  1. In the Backups tab, click Add destination.
  2. Enter a Name, for example Nightly backup.
  3. Leave Destination set to Easy Instance storage.
  4. 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.

New destination modal with Name Nightly backup and Easy Instance storage destination

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.

Schedule and Options sections of the destination modal with frequency, retention and toggles

Back up the Odoo database manually

Take a manual backup before risky changes such as installing modules, running an upgrade or importing data.

  1. Click Create Backup.
  2. Pick a Destination. Only active destinations are listed.
  3. Optionally add a Note, for example Before upgrading modules. It shows under the backup name in the list.
  4. Click Create Backup. The row shows In progress and then Completed or Failed.
Create Backup modal with destination selected and note Before upgrading modules

Download and restore a backup

Each completed backup in the list has three actions:

  • Download saves the backup as a .zip file 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.
Before restoring over production, create a fresh manual backup first so you can go back if the restored data is not what you expected. To try changes without touching production at all, use a staging instance.
Restore backup confirmation dialog for the Before upgrading modules backup

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.

New destination modal with SFTP host, port, user, folder and successful connection test

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:

  1. In the Google Cloud console, create or select a project, open APIs and services and click Enable APIs and services. Google Cloud APIs and services page with the Enable APIs and services button
  2. Search for Google Drive API and click Enable. Google Drive API product page with the Enable button
  3. Open Google Auth Platform and complete the project configuration (app information, audience, contact information). Google Auth Platform project configuration steps with the Create button
  4. Under Clients, click Create client and choose Web application. Google Auth Platform Clients page with the Create client button
  5. 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. Create OAuth client ID form with the Easy Instance Google Drive redirect URI
  6. 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.
  7. 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).

Edit destination modal for Google Drive showing Authorized with no client ID field

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:

  1. In the Dropbox App Console, create an app with Scoped access. Choose App folder (access to one folder only) or Full Dropbox. Dropbox App Console create app form with scoped access and access type options
  2. 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.
  3. On the Permissions tab, enable files.content.write and files.content.read, then click Submit. Dropbox app Permissions tab with files content read and write scopes selected
  4. 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.
New destination modal with Dropbox app key, secret, folder and redirect URI box

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.
New destination modal with Nextcloud URL, username, password, folder and passing test

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 example https://fsn1.your-objectstorage.com.
  • Region: the bucket's region, for example us-east-1 or fsn1.
  • Access key and Secret key.

On AWS, create the bucket in the S3 console (Create bucket, General purpose, keep public access blocked):

Amazon S3 Create bucket form with general purpose bucket type and bucket name field

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:

IAM policy for one backup bucket
{
  "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:

Amazon S3 bucket folder listing an Odoo backup zip file S3-compatible destination modal with bucket, prefix, endpoint, region, keys and passing test

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.

Rather not run the server yourself?

Get managed Odoo hosting with backups, SSL, monitoring and updates handled for you. Free for 10 days.