Free scan of your Odoo. A quote from the counts.
Read-only and no contract. Usually within one business day, you get a report and a quote from the published prices with project fees that are binding for what the scan counts.
See a sample report and quote before you run anything. Or what we see and what we delete.
On your phone?
The scan is a job for a computer: it runs on your Odoo server, or reads a backup. Email yourself a link to the steps for your desk, or call +1 515-644-1400 and we'll walk you through it.
Allodi is run by Mark Kladivo in Des Moines, Iowa; his manufacturing company, Corn Belt Aluminum, is making the same move Allodi sells, to Odoo 19 Community on Hetzner with Backblaze backups. Read the case study.
Which way fits you?
Pick the line that matches where your Odoo runs today. Each way ends with the same report and quote.
| Your Odoo runs | Easiest way | What you send us |
|---|---|---|
| On your own server, or at a partner who gives you server access | Run the scan file (recommended). No backup is needed. | The result file it writes: counts and names only |
| On Odoo.sh | Run the scan file in the Shell tab, or download a backup from the Backups tab and upload it | The result file, or the database part of the backup |
| On Odoo Online (yourcompany.odoo.com) | Upload a backup: get your upload link by email in a minute. On Odoo Online, the backup download is the practical way to get at the data. | The database part of the backup |
| Your IT staff prefer a direct connection | A read-only database login | A password, through a secure link |
| You cannot do either | Call +1 515-644-1400 and we'll walk you through it. |
On Odoo Online? Check your version first
In Odoo, open Settings and scroll to the bottom: the version is shown there, for example 18.0 or saas~18.3. Any version with a number other than 0 after the dot (saas~18.3, for example) is an intermediate version: the database cannot leave Odoo Online until Odoo upgrades it to the next major version (19.0 in that example). The scan still works, and the report says what has to happen first.
On Odoo 13 or older?
The scan file and the upload read Odoo 14 and later. For Odoo 8 to 13, write to us or call +1 515-644-1400: we prepare your upgrade quote by hand from a backup of your database instead. We still upgrade from any earlier version, back to Odoo 8.
Run the scan file yourself
The scan file is one Python program, allodi_scan.py, that you can read before running. It connects to your Odoo database, reads the settings tables in a read-only session, prints a summary and writes a small result file. It does not start Odoo. It connects only to your PostgreSQL database server. If you leave out --db, it first reads the list of database names on that server, and nothing else, to find yours. It reads settings only from the database it scans, and only that database goes in the result file.
You can download it and run it right away. We ask for your name, company and email when you send the result file. On Odoo Online, upload a backup instead.
On your own server, or a partner's
- Log in to the server where Odoo runs (or its database server) with SSH.
- Go to a folder the Odoo user can write to, and download the file:
cd /tmpcurl -fsSLO https://allodi.us/downloads/allodi_scan.py - Run it as the user Odoo runs as:
sudo -u odoo python3 allodi_scan.py collect
Use the Odoo user, notpostgres. Thepostgresuser is a database superuser and can change anything on the server. If the scan is started with more rights than Odoo's own database user has, it stops and tells you why.
Without--db, the scan opens one read-only session on the server's built-inpostgresdatabase (ortemplate1) and reads the list of database names there, nothing else. If the server has one database, it scans that one and tells you which. If it has several, it lists them and stops, and you run the command again with--db NAMEfor the one you choose. If there are more than 50, or the list cannot be read, it says so and stops: add--db NAME. It opens no other database. If the database is on another server, add--hostand--user. The scan then asks for that user's password (your IT person will know it). If Odoo runs in its own Python environment, use that environment's python instead ofpython3. - It prints the counts and writes a file named like
allodi-scan-YOUR_DATABASE-2026-09-25.json. Open it in any text editor if you want to see exactly what it holds. - Send the file with the form below, which shows you what it holds before anything goes, or email it to hello@allodi.us.
On Odoo.sh
- Open your project, choose the production branch, and open the Shell tab.
- Run:
curl -fsSLO https://allodi.us/downloads/allodi_scan.py && python3 allodi_scan.py collect
The Odoo.sh shell already knows the branch's database, so no--dbis needed. If it asks which database, add--dbwith the database name shown on the branch page. - Download the result file from the Editor tab (it is in your home folder) and send it with the form below, or email it to hello@allodi.us.
It needs Python 3.8 or later and either the psql program or the Python environment Odoo runs in, which an Odoo server usually has. On a Windows server, get an upload link instead.
What the result file holds
- Your Odoo version, the database size, the database name and the database login the scan used.
- The number of companies, branches, internal users and portal users.
- Installed modules with their version, author and license, as the modules state them.
- The names of custom fields, views, actions, automation rules, scheduled jobs, reports, access rights and record rules made in the database.
It holds no customer, invoice, order, message, attachment, user name or password.
Send the result file
Choose the file the scan wrote. This page reads it in your browser and shows what it holds; nothing is sent until you press Send. This is where we ask for your name, company and email, so we know where to send the quote. A person at Allodi checks the counts and the report, then sends you the quote, usually within one business day.
Scan file received
Thanks, we have your scan file.
The reply comes from a person at Allodi, with your quote or a few questions about the counts. Nothing is sent to you automatically before a person has looked.
Prefer email? Send the file to hello@allodi.us.
What happens after you press Send
- The file is checked: only a file in the allodi_scan.py result format is accepted.
- We get it with a report worked out from the published prices.
- A person checks the counts, and asks you if anything looks off.
- We send you the report and your quote.
Nothing is sent to you automatically, and nothing is charged. The quote commits you to nothing.
Upload a backup: get your upload link by email in a minute
For Odoo Online, or anyone who would rather not run a program. Fill in the form and a personal upload link goes to your email address. It works for 72 hours.
Check your inbox
Your personal upload link is on its way.
The email comes from notifications@allodi.us with the subject "Your Allodi upload link". Then download your backup, open the link and choose the file.
Then, in four steps
- Download a backup of your database. A database-only backup is the smallest and quickest.
- Open the link from the email and choose the backup file. The page reads it in your browser and shows what will be sent: only the database part. Your attachments and files stay on your computer.
- Press Send and keep the page open until it says Received.
- We usually send your scan results within one business day. We load the database on a temporary server that exists only for your scan and runs the same read-only scan. Once it succeeds, the server and your upload are deleted.
The database part can be up to 5 GB compressed. Larger databases: run the scan file instead, or call +1 515-644-1400.
How to download a backup for the upload
The scan needs only the database, not your attachments, so choose a database-only backup where you can. It is much smaller, and quicker to download and to send.
Your own server, or a partner's
- Add
/web/database/managerto your Odoo address, for examplehttps://odoo.yourcompany.com/web/database/manager, and open it. - Click Backup next to your database.
- Enter the master password. This is not your login password: it is
admin_passwdin the server'sodoo.conffile, and your installer or IT person has it. - For Backup Format, choose "pg_dump custom format (without filestore)". This makes a .dump file with the database only.
- Only if that choice is not offered, choose "zip (includes filestore)", and make sure the download finished: the file size should match what your browser reported, and the name should not end in .crdownload or .part. A large zip can stop part way without a warning.
If the page says the database manager is disabled, your administrator turned it off. Ask them for a backup, or run the scan file instead.
Odoo.sh
Open your project, then the Backups tab. Click Download next to the backup you want, and choose the download without the filestore. The scan needs only the database.
Odoo Online
Go to odoo.com/my/databases, click the gear next to your database, and choose Download backup. This download always includes your attachments, so a large database takes a while: wait until it has finished completely before you upload it.
What leaves your computer
The upload page sends only the database part of the backup and a short description (the backup's file name, sizes, a checksum, the Odoo version and module list). Your attachments and files stay on your computer, even when the backup includes them.
A read-only database login
For IT teams that prefer to let us connect. Your database administrator runs a short script that creates a login called allodi_scan. The database lets that login read only the settings tables, and only a few columns of the users and companies tables, so it cannot see business records, and it has no permission to change any Odoo table. Your administrator lets Allodi's server connect through a restricted SSH account, sends the password through a secure one-time link, and removes the login afterwards. Ask for the script through the contact form.
What you get back, whichever way you choose
The sample report shows all of it for a fictional company.
- A report in plain English: every count, what it means and how it was counted. A model made with Studio counts once, together with the fields, views, access rights and record rules on that model. Fields, views and other items on standard models or on models made by hand, including Studio fields, count one each.
- Your quote, line by line, from the published prices: Managed Odoo, Rescue, Upgrade and Customization cleanup.
- Whether your database can leave Odoo Online now, or what has to happen first.
- What the scan did not count, so nothing is hidden in the quote.
- An appendix with the name of every module and customization it found.
The one-time project fees in the quote are fixed and binding for what the scan counts: modules, Enterprise apps, companies, branches, internal users and customizations. If one of those existed on the scan date and the scan did not count it, that cost is ours. The monthly Managed Odoo fee is an estimate from the counts on the scan date; each month's fee follows the daily counts. The quote uses the published prices on the report date, holds for 30 days and excludes sales tax. What the scan does not count, such as integrations, is listed in the report and agreed with you before work starts.
Free scan: what we see and what we delete
What the scan reads. Odoo's settings tables: installed modules, custom fields and models, views, actions, automation rules, scheduled jobs, reports, access rules, and the number of companies and users. It does not read customers, invoices, orders, messages, attachments or passwords. If you leave out --db, it also reads the list of database names on your database server, to find yours. It changes nothing: it opens the database read-only, so the database itself refuses any change.
If you run the scan file, nothing leaves your server except the result file you choose to send, and you can read it first.
If you upload a backup, the database part of your backup reaches us, and that part does hold your business records, including user password hashes and settings such as stored connection keys. Your attachments and files stay on your computer. The upload is stored in a private Backblaze B2 bucket and loaded on a temporary Hetzner server, both in the United States, used only for your scan. Once the scan succeeds, the temporary server and your upload are deleted. If the scan fails, the upload is kept so it can be run again. A rule on the storage bucket deletes every upload within 7 days of its arrival in any case.
What we keep. The scan results: the counts and names in your report. They become your quote and, if you go ahead, part of the statement of work. If you do not become a customer, we delete them within twelve months, or sooner if you ask.
What it is used for. Your scan and your quote, nothing else. Backblaze and Hetzner store the upload for us from the moment it arrives until it is deleted; no one else receives it.
No contract needed. The scan is free and commits you to nothing.
If your database holds personal data about people in the EU/EEA, the UK or Switzerland, run the scan file yourself, so that only the result file leaves your server. The privacy note covers the scan as well.
Questions people ask
Is the scan really free?
Yes. The scan, the report, the quote and the answer about leaving Odoo Online are free, need no contract and commit you to nothing.
Can the scan change our database?
No. The scan file opens the database in a read-only session, so the database itself refuses any change. It reads Odoo's settings tables and does not start Odoo. An uploaded backup is scanned on a temporary server, away from your live database.
Is it a full Odoo health check?
It is an inventory rather than a full health check. It counts and names what is installed and customized, checks your version and edition, and says whether you can leave Odoo Online yet. It does not test performance, security or data quality.
What does the scan read, and what does it skip?
It reads installed modules, custom fields and models, views, actions, automation rules, scheduled jobs, reports, access rules, and the number of companies and users. It does not read customers, invoices, orders, messages, attachments or passwords.
Does it work on Odoo Online and Odoo.sh?
Yes. On Odoo.sh you can run the scan file in the Shell tab or upload a backup. On Odoo Online, where the backup download is the practical way to get at the data, you upload a backup through a personal link we email you.
How soon do we get the results?
A person at Allodi checks the counts and sends the report and quote, usually within one business day of receiving the result file or the upload.
Is the quote binding?
Yes for the one-time project fees: they are fixed and binding on us for what the scan counts, which is modules, Enterprise apps, companies, branches, internal users and customizations. If one of those existed on the scan date and the scan missed it, that cost is ours. The monthly Managed Odoo fee is an estimate from the counts on the scan date, and each month's fee follows the daily counts. The quote uses the published prices on the report date, holds for 30 days and excludes sales tax. Anything the scan does not count, such as integrations, is listed in the report and agreed with you before work starts.
Sources, as of September 2026: Change hosting solution (intermediate versions cannot leave Odoo Online until upgraded to a major version), Odoo Online database management (backup download from the database manager). Odoo changes its terms and documentation from time to time; the linked pages are the current word.
Ready for your scan?
Run the scan file, or get an upload link by email in a minute. The scan, the quote and the answer about Odoo Online are free.
Stuck on a step? Call us: +1 515-644-1400, any time. What happens after the scan.