DafeApp user guide
From an empty server to a live Odoo site with your own domain, automatic backups and your custom add-ons — and what to do when something does not behave.
Contents
Before you start
You need two things, and nothing else:
Ubuntu 22.04 or 24.04 with a public IP. 2 GB RAM is enough for a small site; 4–8 GB for a busy one. Hetzner, Contabo, DigitalOcean, AWS or your own hardware all work. Or let DafeApp create one on DigitalOcean or AWS for you.
Every site gets a free yourname.dafeapp.com address
immediately. Bring your own domain whenever you are ready — it can be added
later without rebuilding anything.
You do not need Docker, Nginx, PostgreSQL or Linux knowledge. DafeApp installs and configures all of it. You keep SSH access so you are never locked out of your own machine — not because you are expected to use it.
Connect a server
One server holds many sites. You do not need a machine per customer. Add sites until the box is full, then add a second server — and the sites on one server do not all have to run the same Odoo version.
Create your first site
yourname.dafeapp.com address.
The admin password is shown once when the site is created. Save it. If you lose it you can reset it from the dashboard, but you cannot read it back.
Add your own domain
One DNS record, and nothing else. You do not have to move your domain, change nameservers, or give DafeApp access to your registrar.
.dafeapp.com address keeps
working alongside it.
Check the spelling. The single most common failure here is a typo in the hostname — the certificate can never be issued for a name that does not resolve, and the symptom is an unhelpful browser warning rather than an error message.
Backups and restoring
Backups go to object storage off the server, because a backup sitting on the same machine as the database is not a backup. Each one is a PostgreSQL dump and a filestore archive — ordinary files you can restore with standard tools.
Database and filestore — everything, including attachments and images. This is what you rebuild from.
Skips the filestore, which is usually most of the weight — often 800 MB of an 830 MB backup. A few percent of the size, so you can keep far more restore points.
Set a schedule on each site — daily or weekly, with a retention policy — and choose whether those runs include the filestore. A good default is a daily database-only backup plus a weekly full one.
Restoring goes either onto the same site, replacing it, or into a new site so you can check it first. The second is almost always what you want: a backup you have never restored is a hope, not a plan.
Restore into a second site once, log in, and look at the data. It costs an hour and it is the only way to know your backups work. Restoring a database-only backup leaves the existing filestore untouched, so attachments saved since that backup stay where they are — which is right for rolling a database back, but means the two can disagree.
Custom add-ons from Git
Connect a repository to a site and its modules become available to install from Odoo's Apps menu. Connect GitHub once and pick from a list, or paste any Git URL with a deploy token for a private repository.
Pushing to the tracked branch can update the site automatically. Pushing code that does not load will take the site down, so a staging site is worth having before you turn that on.
Module folder names matter. Odoo identifies a module by its
directory name, and the manifest version must match the Odoo series you are
running — a module declaring 17.0.1.0.0 on Odoo 18 is rejected,
and one bad manifest stops the whole add-ons list from loading.
Staging environments
A staging site is a copy of production — same data, same add-ons, separate database and address. Use it to try an upgrade, test a module, or train someone without touching the live site.
Create one from the site's Staging tab. It can be given an expiry so it cleans itself up rather than quietly costing you memory for months. Staging sites are real sites: anything you learn there applies to production.
Migrating from another host
An export can be damaged in two ways that both look fine. A truncated SQL dump restores and starts, with the tables late in the alphabet empty — DafeApp refuses these rather than restoring half a database. And an incomplete filestore can accompany a perfect database; one real export was missing 1,058 attachment files, including several hundred invoice PDFs, and nothing flagged it until someone opened an old invoice.
When something is wrong
My site shows "404 page not found"
That bare 404 comes from the reverse proxy, not from Odoo — it means no route matched, which almost always means the site's container is stopped or unhealthy rather than that anything is lost. It is also normal for a minute during maintenance: restores, module updates and domain changes all stop the container deliberately. If it persists, restart the site from the dashboard.
The site is slow, then stops responding entirely
Usually something is holding every worker. Printing a PDF report that cannot finish is the common culprit: each stuck report occupies one worker, and a site with two workers needs only two of them to stop serving completely. A restart clears it. If it recurs, the site likely needs more workers, which means more CPU allocated to it.
Images and attachments are missing after a restore
The database came across but the filestore did not — either it was a database-only backup, or the export was incomplete. The site works; only stored files are absent. Upload the matching filestore if you still have it, or clear the dangling attachment records so Odoo stops looking for them.
A page in Odoo crashes with "field is undefined"
A view is referencing a field from a module that is not loaded — usually a custom module whose code is not on the server, or one that failed to load at startup. Check the site's add-ons: if a module shows as installed but its repository is not connected, connect it and restart.
My custom domain shows a certificate warning
The certificate has not been issued yet. Confirm the domain's A record actually resolves to your server's IP — and check the spelling in DafeApp against the spelling at your registrar. A hostname with a typo can never be certified, and that is the most common cause.
Every site keeps a log of what was done to it and what happened. When you ask for help, that log answers most of the questions before they are asked.
Frequently asked
Do I need to know Linux to use DafeApp?
No. Everything in this guide is done from the dashboard. SSH access exists so you are never locked out of your own server, not because you are expected to use it.
What kind of server do I need?
Ubuntu 22.04 or 24.04, 2 GB of RAM for a small site and 4–8 GB for a busy one, and a public IP. Any provider works — Hetzner, Contabo, DigitalOcean, AWS, or hardware you own.
Can I run more than one Odoo site on one server?
Yes, and it is the usual case. Instances are containers, so several sites share a machine until it is full — and they do not all have to be the same Odoo version.
How do I get my data out?
Download any backup. It is a PostgreSQL dump and a filestore archive, restorable with standard tools whether or not you are still a customer.
Ready to try it
Point DafeApp at a server you already have and follow this guide from the top.