Skip to main content
Ready to deploy? Try it free

Documentation Deploy & operate

Backups & restore

Nightly and manual backups, downloads, restoring into any environment, and copies on your own S3 or SFTP storage.

Updated 11/12/2026

How backups work

Every app has its own Backups menu. A backup holds the app's database and, in the ZIP format, its filestore (the uploaded files). CloudWady makes two kinds:

  • Automated backups, taken every night for apps with Auto Backup on.
  • Manual backups, taken when you press Backup.

A backup is stored on the app's server first. When your project has off-site storage, it is also copied there, and a restore can read it back from that copy (see Copies on your own storage).

Backups, Restorations and the Backups list come with the Essential, Pro and Premium plans. Copies on your own storage come with Pro and Premium: an Essential project keeps its backups on the app's server. See Billing & pricing.

Automatic backups

Turn nightly backups on or off per app: open the app, then Overview → Automation → Updates & Backups → Auto Backup. Auto Backup is on by default for production apps.

Nightly backups run once a day between 00:00 and 05:00 UTC.

How long backups are kept

Each backup card says how long it stays, in its Kept row.

BackupKept
Automated (nightly)While it is among the 5 newest nightly backups, then as its week's last backup for 3 more weeks.
Manual30 days from the day it was taken.
Off-site onlyThe storage's own retention applies (see Copies on your own storage).

Taking a backup now

Press Backup in the app's header. The Create Backup dialog asks for a format, then Create starts it.

The Create Backup dialog with the backup format picker
Create Backup: pick a format, then Create.
FormatWhat it holds
ZIP Archive (Database + Filestore)The database and every uploaded file. Use this one to move or fully restore an app.
Database Dump (No Filestore)The database only, in PostgreSQL's custom format.
SQL File (Plain SQL)The database only, as plain SQL.

A backup that runs shows a Now row with its current step. Only one backup of an app runs at a time.

The backup list

Every backup of this app, newest first: what it holds, where it is stored and what you can do with it.

You can

  • Open a card to read where the backup is stored, how long it is Kept and its Restore proof.
  • Download the file while it is on the server, or make a New Download Link under More.
  • Restore a complete backup into an app (Restoring a backup).
  • Retry a failed backup, or Cancel one that is still running.
  • Delete a backup that is not running with More → Delete Backup.

Good to know

  • A new download link works for one hour; a link made before keeps working until it expires.
  • Off-site only means the file is no longer on the server; a restore reads it from your storage.
  • Deleting cannot be undone. A production backup asks you to type DELETE.
  • A backup that is off-site only goes with its last off-site copy.
  • Deleted and canceled backups show only while Deleted, in the header, is on.
An app's Backups menu with the newest backup card open
An open backup card: its facts on the left, where it is stored and how long it is kept on the right.
A backup card with its More menu open
Download and Restore sit on the card; rarer actions are under More.

Restoring a backup

Press Restore on a completed backup. The app must be deployed, or have failed after it was.

The Restore Backup dialog with the target environment buttons and restore options
Restore Backup: the backup, where it goes, and how.
  1. Backup Selection: the backup you pressed Restore on.
  2. Restore Target: pick Production, Staging or Development, then the app to restore into. Only deployed apps of the same project and the same Odoo version are offered. An environment you may not restore into is greyed out.
  3. Restore Options:
    • Neutralize Database is always on outside production: it turns off what reaches the outside world after the restore, such as outgoing email and scheduled actions, the way Odoo's neutralize does. A restore into production is never neutralized.
    • Auto Update After Restore updates the app's modules once the restore is done.
  4. Press Create.

Restoring into production asks twice: a warning, then you type RESTORE.

A restore replaces the target app's data. Its database, and with a ZIP backup its filestore, become the backup's. A restore started here takes no safety backup first: press Backup on the target app before you restore. To go back to an earlier state with a safety backup taken for you, use the app's Restore points (see Deployments & rollback).

A Database Dump or SQL backup holds no filestore, so restoring it changes the database only.

Restoring a backup from your computer

A database from anywhere else, such as your laptop, an Odoo.sh download or another host, restored into an app or into a new one.

You can

  • Restore a file into an app: on the app, More → Import, choose the file and press Restore.
  • Start a new app from a file: New App → Restore From → A file on my computer. The file is sent when you press Create App.
  • Do it from a terminal: cw backups import acme.zip --app shop --wait (see API, CLI & MCP).

Good to know

  • It takes an Odoo backup .zip (from Odoo's database manager or Odoo.sh, with or without the filestore), a PostgreSQL dump (.dump) or an SQL file (.sql, .sql.gz). What the file is comes from its content, never its name.
  • The file goes in pieces straight to the app's server, and a dropped connection resumes where it stopped.
  • It is checked before anything changes. A file that is not a backup, is damaged, comes from another Odoo version than the app's, or would not fit on the server's disk is refused, and the app stays as it was.
  • A staging or development app always gets a neutralized copy; a production app gets the data as it is.
  • Restoring replaces the app's database: press Backup on the app first to keep what it holds now.
  • The file stays among the app's backups, marked Imported, and can be restored again.
  • It comes with the Essential, Pro and Premium plans. A token for cw needs Upload a backup and Restore an uploaded backup.

Restorations

Every restore that involved this app: a backup restored into it, or one of its backups restored into another app.

You can

  • Read Restored FROM cards for restores into this app, and Restored TO cards for its backups restored elsewhere.
  • Follow a running restore on its Now row, which names the current step.
  • Retry a failed restore, or Cancel one that has not finished.
  • Open the restored app with Open Target.

Good to know

  • A Neutralize DB badge marks a neutralized restore; Cross Server marks one that moved data between servers.
  • When a restore is verified, the backup's Restore proof becomes Restore verified.
  • Restorations come with the Essential, Pro and Premium plans (Billing & pricing).
The Restorations menu with an incoming restoration card
A finished restoration: source and target app and server, and how long it took.

Every backup in one place

The latest backups of every app in your workspace, on one list.

You can

  • Narrow it by date (Today), namespace, project, environment type and state.
  • Download a row's backup, make a new link, restore it or open its details.
  • Press Monitoring to see, in Health → Backups, which apps are behind on their backups.

Good to know

  • It shows each app's latest backups; the app's own Backups menu holds its whole list.
  • The list comes with the Essential, Pro and Premium plans (Billing & pricing).
  • What you may do on a row follows your role in that app's environment (Who can do what).
The sidebar Backups list with filters and the latest backup of each app
The latest backup of each app, across the workspace.

Copies on your own storage

A copy of your backups away from the app's server, on an S3 bucket or SFTP server, so losing the server does not lose them.

You can

  • Connect an S3 bucket or SFTP server you already have with Connect Your Own, under Infrastructure → Storage.
  • Let CloudWady make an S3 bucket or a Storage Box through your cloud provider with Add Storage.
  • Use a storage in a project: open the project's Storages and press Register Storage.
  • Set how many of each app's newest backups stay on its server with Backup Copies → Kept on the server.
  • Download, upload or re-upload a backup's copy from the External storages rows on its card.

Good to know

  • Production backups are copied to every storage the project registers; other environments' backups once they outgrow their server.
  • Backups beyond the Kept on the server count live only on the storage, marked Off-site only; 0 keeps them all on the server.
  • A restore reads the copy back once the file is off the server, from the Primary Storage first.
  • Test and connect connects your storage only if a test upload works; its host must be reachable on the public internet.
  • Adding a storage takes Maintainer, registering one on a project Developer Plus, and cleaning up or deleting copies Admin.
Infrastructure Storage with an S3 storage connected
Your storages, with a Test Connection button on each.
The Connect Your Own Storage dialog
Connect Your Own: an S3 bucket or an SFTP server you already have.
A project's Backup Storages with one primary S3 storage registered
The project's storages: state, how many backups each holds, and the last upload.
A backup card's External storages rows, one copied and one failed
One row per storage. A failed copy says why.

A storage's screen

One storage: its settings, the backup copies it holds, and the runs that changed it.

You can

  • Check that it answers with Test Connection; on an S3 storage in draft, a test that works makes it active.
  • Create the box or volume at your cloud provider with Create Storage Box or Provision Volume, while it has none.
  • Stop copies to it on every project that uses it with Disable; Enable resumes them.
  • Reopen an active S3 storage's settings for editing with Set to Draft.
  • See the copies it holds under Backups, and its runs under Operations, in the sidebar.

Good to know

  • Besides Info, the tabs follow its type: S3 Configs; SFTP Configuration, SSH Keys, Subaccounts and Connection; or Volume Configuration and Server Attachments.
  • On a Storage Box CloudWady created, the bar above the tabs shows how full it is, read live from Hetzner.
  • Delete needs the Admin level and cannot be undone.
  • When another namespace owns it, or the switcher holds several, its connection details read Hidden and its actions wait until you switch to the owner.

General

What the storage is called, where it lives, and whether it is your namespace's default.

You can

  • Change the name, region or base path, then press Save in the header; Reset drops the change.
  • Open your provider's list of regions with the info button beside Region.
  • Make it the namespace's default with Default Storage.

Good to know

  • Base Path is the folder backups go under: the prefix in the bucket, or the folder on the SFTP server.
  • A project with no storage of its own copies its off-site backups to the default, which joins the project's Storages at the first copy.
  • A namespace has one default, an active S3 or SFTP storage: switching it on here switches it off on the other.
  • Name, region and base path are locked while the storage is active. Set to Draft reopens an S3 storage, but its region stays.
  • Editing needs Developer Plus or above, in the namespace that owns the storage.

Bucket

Which S3 bucket the storage keeps backup copies in, and where it is.

You can

  • Set the Bucket Name, S3 Endpoint and region while the storage is not active yet.
  • Press Test Connection: on a storage CloudWady makes, the first one creates the bucket and makes the storage active.
  • Edit an active storage again with Set to Draft, then make it active with Test Connection.
  • Use another bucket by connecting it as a new storage.

Good to know

  • On a storage CloudWady makes, it names the bucket, the endpoint follows from the region, and your provider's credentials are used.
  • Once the storage is active, the bucket and region stay as they are, even after Set to Draft: copies are stored there.
  • Delete is refused while copies remain: remove them first with Clean up old copies on the project's Storages.
  • Delete removes the bucket only when CloudWady created it and it is empty; a bucket you connected yourself is left as it is.
  • Editing needs Developer Plus or above; Delete needs Admin.

Connection

How your servers reach the SFTP storage, and the key they recognise it by.

You can

  • Copy the host, port and username with their copy buttons, on a box CloudWady created.
  • Show the box's password with the key button (Get Storage Box Password), after you enter your own login password.
  • Press Forget beside the Host Key after you re-created the storage at the same address, so the next connection learns its new key.

Good to know

  • On a box CloudWady creates, the host, username and password are made when it is provisioned.
  • Every server checks the Host Key and refuses a storage that answers with another key.
  • If you did not re-create the storage, a changed key means something sits between your servers and it: do not forget the key.
  • The host, port and username are fixed once the storage is active; to use another server, connect it as a new storage.
  • Seeing the password needs Developer Plus or above; Forget needs Maintainer or Admin.

Access

What the Storage Box lets in: which protocols answer, and whether its files can be changed.

You can

  • Read whether External Access, SSH, SMB and WebDAV are on, and whether Files are read-only.
  • Change them with Edit, then press Update.
  • Follow the change in the storage's Operations.

Good to know

  • Update starts the storage's update run, which sets the switches on the box at Hetzner.
  • Each subaccount has settings of its own (Subaccounts).
  • It works only on a Hetzner Storage Box CloudWady created, from the namespace that owns it.
  • Editing needs Developer Plus or above.

SSH keys

The SSH keys that may sign in to the Storage Box's main account.

You can

  • Make a key pair with Generate Key: Ed25519, recommended, or RSA 4096 bits.
  • Put a key on the box with Deploy to Storage Box, or take it off with Revoke from Storage Box.
  • Save the public half with Download public key.
  • Drop a key that is not deployed with Delete from database.

Good to know

  • CloudWady keeps the private half: you get the public key and its fingerprint.
  • Deploy and revoke change the box's authorized_keys at once, connecting with the box's password.
  • A key signs in to the main account only; subaccounts sign in with their password.
  • The tab works once the box is provisioned.
  • Generating, deploying and revoking need Developer Plus or above; deleting needs Admin.

Subaccounts

Separate SFTP logins on this Storage Box, each kept to its own home directory.

You can

  • Add one with Create Subaccount for the box's owner namespace or one under it; the name and home directory fill in.
  • Keep it as an editable draft with Create, or create it at Hetzner at once with Create & Provision.
  • Change what it allows, or make a new password, with the gear (Edit settings), then Update to apply.
  • Open a terminal on the box in your browser with Connect, when SSH is allowed.
  • Remove a draft, or delete a provisioned subaccount at Hetzner, with the bin.

Good to know

  • On a box CloudWady created, a namespace's backups go through its own subaccount: a namespace with none has no login on the box.
  • The home directory is a relative path under the box's Base Path; it and the namespace are fixed once provisioned.
  • Only the box's owner changes access settings; the subaccount's own namespace may regenerate its password.
  • Deleting a provisioned subaccount cannot be undone.
  • Creating, provisioning and editing need Developer Plus or above; deleting needs Admin.

Connecting to a Storage Box

How to reach the Storage Box yourself, from a terminal or a desktop client.

You can

  • Switch between the Main Account and each provisioned subaccount with the picker on the title row.
  • Copy the host, username, port and base path from Connection Details.
  • Copy ready sftp, scp and rsync commands under With a Password, or With an SSH Key for the main account.
  • Read the protocol and sign-in for FileZilla, Cyberduck, WinSCP or Filestash under Desktop Clients.

Good to know

  • Deploy the key from the SSH Keys tab before you use the key commands.
  • Paths are relative to the base path: leave it out of a client's login.
  • A Hetzner Storage Box answers SSH and SFTP on port 23; port 22 takes SCP and SFTP only, with no interactive shell.
  • The main account's password is under SFTP Configuration → Connection; a subaccount's is on the Subaccounts tab.
  • Until the box is provisioned, the tab says so and shows nothing else.

Volume

The cloud volume itself: where it lives, how big it is, and whether it is attached.

You can

  • Set its region and Size (GB), from 10, before it exists, then press Save.
  • Create it at your cloud provider with Provision Volume, in the header.
  • List the provider's regions with the info button beside Region.
  • Mount it on a server from the Server Attachments tab.

Good to know

  • Once it exists, its name, region and size are locked: nothing resizes a volume from here.
  • It is a disk for one server at a time, in its own provider and region; for storage several servers share, use S3 or SFTP.
  • It never takes off-site backup copies.
  • It cannot be deleted while attached: detach it first.
  • Editing and Provision Volume need Developer Plus or above.

Server attachments

Which server the volume is mounted on, and where.

You can

  • Add a mount with Attach to Server: pick a deployed server of the volume's provider and region, then Create a draft row.
  • Leave Auto Mount on for Hetzner to mount it under /mnt, or turn it off and give a Mount Point.
  • Press Attach on the draft row to start the run that attaches the volume and mounts it.
  • Press Detach to unmount the volume and detach it.

Good to know

  • Attach to Server is offered only while the volume is attached nowhere.
  • Device and Attached At fill in when the attach run ends.
  • Stop anything that uses the volume before you detach it.
  • The server's Storage tab shows the same attachment (Attached storage).
  • Attaching needs Developer Plus or above; detaching needs Admin.

Who can do what

What you may do depends on your access level and on the environment of the app (see Permissions & access).

ActionDevelopmentStagingProduction
See backups and restorationsViewerViewerViewer
Take, download, retry or cancel a backupDeveloperDeveloper PlusMaintainer
Restore into an app of this environmentDeveloperDeveloper PlusMaintainer
Delete a backupDeveloperDeveloper PlusMaintainer
Change the Neutralize Database switchAdmin
Add or connect a storage (Infrastructure → Storage)Maintainer
Register a storage on a projectDeveloper Plus
Clean up old copies, delete a copy from a storageAdmin

Was this page helpful?

Your answer helps us prioritize documentation improvements.

Thanks — your feedback helps us improve.