Documentation Deploy & operate
Backups & restore
Nightly and manual backups, downloads, restoring into any environment, and copies on your own S3 or SFTP storage.
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).
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.
| Backup | Kept |
|---|---|
| Automated (nightly) | While it is among the 5 newest nightly backups, then as its week's last backup for 3 more weeks. |
| Manual | 30 days from the day it was taken. |
| Off-site only | The 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.
| Format | What 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.
Restoring a backup
Press Restore on a completed backup. The app must be deployed, or have failed after it was.
- Backup Selection: the backup you pressed Restore on.
- 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.
- 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.
- Press Create.
Restoring into production asks twice: a warning, then you type RESTORE.
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
cwneeds 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).
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).
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;
0keeps 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.
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_keysat 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,scpandrsynccommands 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).
| Action | Development | Staging | Production |
|---|---|---|---|
| See backups and restorations | Viewer | Viewer | Viewer |
| Take, download, retry or cancel a backup | Developer | Developer Plus | Maintainer |
| Restore into an app of this environment | Developer | Developer Plus | Maintainer |
| Delete a backup | Developer | Developer Plus | Maintainer |
| Change the Neutralize Database switch | Admin | ||
| Add or connect a storage (Infrastructure → Storage) | Maintainer | ||
| Register a storage on a project | Developer Plus | ||
| Clean up old copies, delete a copy from a storage | Admin | ||
Was this page helpful?
Your answer helps us prioritize documentation improvements.
Thanks — your feedback helps us improve.
Type to search titles and text.
↑↓ to move ↵ to open Esc to close