Skip to main content

Release notes

These are the notes each release of the Odoo Host Manager ships with, newest first: 48 releases, the latest 0.26.0. To see which release a server runs, run ohm --version on it, or open the console's Release notes page, which marks the running release as Current and is described in Updates. Changes that alter nothing you see or do are left out here.

0.26.0​

Released 6 November 2026.

Breaking​

  • Changed an offline license to run only on a server whose TPM proves, when the management API starts and then twice a day, that it holds its endorsement key.
  • Changed a perpetual or offline license to be refused until it is activated on the server, with no activation window.

Improvements​

  • Changed the rate limit to count a visitor on an IPv6 address by its /64 block, so one machine can no longer escape the limit by switching addresses.
  • Added Ask AI to the top bar: a panel where you ask questions about the page you are on and get answers with links to the console and the manual, using your own AI key or the server's.
  • Added limits on how many tokens people may use with the server's AI key, per day and per month.
  • Added this month's Ask AI use per person to Configuration > AI assistant, where administrators can also read people's conversations, each read recorded in the audit trail.

Bugfixes​

  • Fixed an issue where the management API believed the host agent's machine identity without a proof from the server's TPM.

Known Issues​

  • An offline license runs only once the host agent and the management API are both on this release; update both together on a server with an offline license.
  • Ask AI is off after the update; an administrator switches it on under Configuration > AI assistant.

0.25.0​

Released 5 November 2026.

Breaking​

  • Changed the AI assistant to come with the Professional and Provider editions only.
  • Removed port forwarding from the browser editor on an instance's Code tab.
  • Changed the trusted proxies so that only an Administrator can change an instance's list, and a range wider than /8 for IPv4 or /32 for IPv6 is refused, on an instance and server-wide.

Improvements​

  • Renamed OHM console to Management console in the rules of Security > Firewall > Published (443).
  • Moved the Logging card above Rate limiting on an instance's Firewall > Configuration tab.
  • Moved the AI assistant settings to a tab of their own, AI assistant, on the Configuration page and on My Account.
  • Added a way to take a server back to an older release on purpose when it is repaired with an older installer.
  • Added OpenAI and Azure OpenAI beside Anthropic as providers for Diagnose, each with its own key and model, and for Azure OpenAI its endpoint and deployment, on Configuration > AI assistant.
  • Added several AI providers switched on at once, with one default provider for the server's keys, on Configuration > AI assistant.
  • Added a key of your own per AI provider, and the provider you prefer, on My Account > AI assistant.
  • Added the provider that answered to each diagnosis on an instance's Diagnose tab.
  • Added deleting diagnoses on an instance's Diagnose tab, one at a time or several at once.
  • Added submitting a bug report or a feature request from the Support page as a ticket in Antelao's helpdesk, for Professional and Provider licenses, with the attachments, the support bundle and the session trace; with GitHub set up as well, My Account > Git sets the default and the form can pick either.

Bugfixes​

  • Fixed an issue where a repair with an older installer kept the server on its newer release without saying so.
  • Fixed an issue where a long line in a code block widened a card's details past the edge of the page.
  • Fixed an issue where the people behind a console that manages this server could act with more rights than its key allows, such as opening a container console through a read-only key or one limited to some instances.
  • Fixed an issue where an API key could add an SSH key, a git credential or a passkey to a console account, or change an account's notification address.
  • Fixed an issue where a console that manages this server could act for a person who has no account on this server, or with more rights than that person's account here holds.
  • Fixed an issue where the browser editor opened through a console that manages this server carried the git credentials, SSH keys and unsaved work of the account it named.
  • Fixed an issue where an act done through the key of a console that manages this server, or of the Odoo Management Plane, showed on the Audit page as done in this server's own console, without the key's name.
  • Fixed an issue where a console that manages this server could queue more jobs than the limit of waiting jobs allows by naming a different person on each request.
  • Fixed an issue where the key of a console that manages this server, or of the Odoo Management Plane, could list and end the console sessions of an account on this server.
  • Fixed an issue where Security > Firewall showed the Console or API tab as open, and did not warn that you would lock yourself out, when every rule in its list was switched off, which refuses everyone but the server itself.
  • Fixed an issue where an API tab rule list under Security > Firewall that admits nobody, such as one rule refusing everyone or every rule switched off, still let everyone reach the management API.
  • Fixed an issue where a session trace kept the names and e-mail addresses of the server's people in its pages and its record of actions.
  • Fixed an issue where a support bundle could contain the outbound proxy's user name and password.
  • Fixed an issue where the support bundle made on the server's command line kept password reset and portal links' tokens from the Odoo logs.
  • Fixed an issue where another site could sign a person in to the console through a demo visitor link or an Odoo Management Plane hand-off of its own choosing.
  • Fixed an issue where a page opened through the browser editor's port forwarding could reach another instance's editor.
  • Fixed an issue where an account the license had suspended could be enabled again on a license that does not carry its role, or above the license's limit of console accounts.
  • Fixed an issue where, while the license could not be read, the server could run with more features or higher limits than the license server last granted.
  • Fixed an issue where a firewall redirect URL ending in a backslash could take the instance's site offline.
  • Fixed an issue where an Operator could change an instance's trusted proxies and so get any address banned from every instance on the server.
  • Fixed an issue where saving an instance did not check its host names against the other instances on the server, so one instance could take over another's web address.
  • Fixed an issue where, with Debug logging on, the master database password could be written to the log at start.
  • Fixed an issue where an Operator limited to some instances could list the names of files in other instances' and the server's own directories.
  • Fixed an issue where code running in an instance could get any address banned from every instance on the server through the Fail2Ban 4xx jail.

Known Issues​

  • Session traces recorded before this update are not scrubbed; delete them on the Support page before sending them, and record a new one if support needs it.
  • People working through a console that manages this server now get no more than its key allows: a read-only key keeps them read-only and a key limited to some instances keeps them to those instances, so if they need more, issue a read-write key for every instance under Security > API keys > Issue a key for a console that manages this server and enter it on that console.
  • Each person who works on this server from a console that manages it now needs an enabled account on this server with the same user name, and that account's role and instances limit what they can do here, so create those accounts under Security > Users before updating.
  • People working through a console that manages this server open the browser editor without the git credentials and SSH keys of their account here, so they cannot push from it there; they push after signing in on this server itself, or from their own machine.
  • The AI assistant's new license features (ai, ai-ask, ai-code, ai-provider-anthropic, ai-provider-openai and ai-provider-azure-openai) reach a license only once they are imported into the license server's catalogue and carried by the Professional and Provider offers.
  • A Professional or Provider license gets OpenAI and Azure OpenAI once its offer is applied to it again; until then Diagnose keeps working with Anthropic as it did.
  • A Community or Developer license that carries AI diagnostics today keeps Diagnose with Anthropic until its offer is applied again, after which the AI assistant needs the Professional or Provider edition.
  • A server that cannot reach antelao.io cannot submit to the helpdesk; the submission is kept and can be sent again.
  • While the license cannot be read, the server now keeps running only until the offline days of its last check-in run out, when that comes before the 14 days, so install a newly issued license on the License page as soon as the fault appears.

0.24.0​

Released 4 November 2026.

Breaking​

  • Changed a database backup, a database dump and an instance backup's manual copy started by an Operator or by an API key limited to some instances to write only into that instance's backup folder.
  • Changed a restore or a database load from a file on the server, started by an Operator or by an API key limited to some instances, to read only that instance's own backups and files, or an archive the same person uploaded for it.
  • Changed the browser editor on an instance's Code tab to open on a port of its own, 5323, beside the console's, instead of on the console's own address.
  • Changed a server registered under Environments to need a key issued on it for a console that manages it, so a key issued there earlier is refused for every signed-in person, Administrators included.
  • Changed Create repository on a developer workstation to refuse a repository name other than letters, digits, dots, hyphens and underscores, a module name other than letters, digits and underscores, and a scaffold into a folder that already exists.
  • Changed the Odoo login protection of Fail2Ban and CrowdSec to count only failed sign-ins on an instance's sign-in page, read from the web server's own log, so failed sign-ins through Odoo's external API no longer count toward a ban.
  • Changed a license fault to be bridged on the last valid license only while the license file is still on the server and the license server's last receipt for it is there, so a server whose license file was deleted runs unregistered at once.
  • Changed an API key issued under Security > API keys so it can no longer add a passkey or a trusted device to a console account, or create, change, unlock or remove console accounts.

Improvements​

  • Added Issue a key for a console that manages this server to Security > API keys, so the people of that console work on this server with their own role and instances.

Bugfixes​

  • Fixed an issue where a database dump or load could run a command on the server when its file path held shell characters.
  • Fixed an issue where an Operator could restore an instance from another instance outside their assignment.
  • Fixed an issue where a backup, a database duplicate or a database restore could copy files from outside the instance when its file store had been replaced by a link.
  • Fixed an issue where a firewall rule's allowed addresses accepted text that is not an address or a range.
  • Fixed an issue where code inside an instance could make the host agent read files outside the instance through the browser editor.
  • Fixed an issue where code inside an instance could change the browser editor an administrator opens.
  • Fixed an issue where a user who switched to another environment could download that server's backups, database dumps and master data exports whatever their role.
  • Fixed an issue where a crafted sign-in link could send the browser to another site after signing in.
  • Fixed an issue where wrong codes while setting up an authenticator did not count toward the account lockout.
  • Fixed an issue where a repository name with a space or a special character broke Create repository on a developer workstation.
  • Fixed an issue where a failed Create repository on a developer workstation left the git token in the new checkout.
  • Fixed an issue where importing an instance, moving one in from another server or making several duplicates at once could go past the license's instance limit.
  • Fixed an issue where a visitor from a private network could open an instance's sign-in page past its firewall rules and pre-authentication.
  • Fixed an issue where a crafted login name on an Odoo sign-in page, or code running in an instance, could make Fail2Ban or CrowdSec ban an unrelated address on every instance.
  • Fixed an issue where reloading the server firewall switched off the instance metadata block until the host agent restarted.
  • Fixed an issue where an issued API key could add a passkey or a trusted device to a console account, or create and change console accounts, and so sign in as that account.
  • Fixed an issue where console accounts' authenticator secrets were stored unencrypted.
  • Fixed an issue where another site could sign a visitor in to a console account of its choosing.
  • Fixed an issue where an open console tab kept working from an address the console's firewall rules no longer admit.
  • Fixed an issue where the message of a failed production upgrade ran the failure and the way back together without a full stop.
  • Fixed an issue where Rehearse and Upgrade production let a large database start on a disk too small for it: they now ask for about five times the databases with their filestores free.

Known Issues​

  • A script that uses an API key limited to some instances to write a backup or a dump to a folder of its own must now name only a file, which lands in the instance's own folder of the server's backup directory; an Administrator or an unscoped key still writes anywhere.
  • An Operator who restored from an archive left in a shared folder of the server, such as the database dumps, now has an Administrator restore it, or copy it into the instance's backup folder first.
  • An Instance source saved earlier by an Operator for an instance outside their assignment stays in that instance's restore configuration until the next save, which refuses it; an Administrator should review the Instance sources on each instance's Restore tab.
  • A server where a database's file store, or an instance's data folder, was linked to another disk on purpose now has that backup, duplicate or restore refused with the reason; move the folder instead of linking it, or link the instance's whole directory, which is still followed.
  • An allowed address saved earlier in an instance's firewall rule that is not an address or a range, such as a host name, is left out of the site from this update on; move a host name to the host names of its rule on the instance's Firewall tab.
  • An open browser editor restarts once on its next open after this update, and a session's SSH access and push credential start working again with it.
  • The browser editor now opens on port 5323 of the server: allow 5323 wherever you allow the console's 5322, at the provider's firewall and in antelao-ohm-ufw.sh, which opens it from this release; a console reached on port 443 opens the editor on 5323 of the same server too.
  • Every browser editor session starts afresh once after this update: the settings and the extensions a developer added in it are not carried over, and their workspace profile applies again.
  • For every server registered under Environments, after updating both servers: on that server open Security > API keys and press Issue a key for a console that manages this server, then on this console open Environments, edit that environment, choose Replace the key and enter the new key; until then nobody signed in can work on that environment from here.
  • A server registered under Environments that is not yet on this release does not apply a person's role, so this console refuses its Viewers, Operators and Read-only administrators there until it is updated and re-keyed.
  • A Viewer or Operator assigned to a registered environment now sees only the instances assigned to them there, and everybody accepts that server's license agreement once on their first visit.
  • On a developer workstation where Create repository failed to push before this update, the checkout it left in the instance's add-ons may still hold the git token in .git/config: delete that checkout, or revoke the token and issue a new one.
  • Create repository with a scaffold on a developer workstation refuses a folder of that name already in the instance's add-ons: move or rename that folder first, or create the repository without a scaffold.
  • An instance with firewall rules or pre-authentication can read as refused in the uptime view until its web server site is rebuilt after this update: repair the site on the instance's Health tab, or apply the instance's configuration.
  • A server that counted on the Odoo login protection to stop password guessing through Odoo's external API should keep that instance's Rate limiting on, on its Firewall tab, with the 4xx and 429 protections.
  • If you ran antelao-ohm-ufw.sh on this server before, run it once more after this update, so its block also carries the instance metadata block; until then the host agent puts the block back within a minute of any firewall reload.
  • A server whose license file is gone, or whose license has not checked in with the license server yet, is no longer kept running on its last valid license during a license fault: install the license again on the License page.
  • The ohm user commands that change an account, run against another server with --server and an issued key, are now refused: run them on that server with ohm itself, or change the account on its Users page.
  • A copy of the master database restored on a server without its key ring no longer checks the authenticator codes of console accounts; sign in with a recovery code, or run ohm user totp-disable on the server.
  • An offline license runs only on a TPM whose endorsement key certificate is signed by its manufacturer, and only once the host agent and the management API are both on this release; update both together on a server with an offline license.
  • A perpetual license removed or replaced on the License page stays activated on this server at the license server: to install it on another server, ask support to reset its activations.
  • Rehearse and Upgrade production now start only with about five times the size of the databases with their filestores free on the server's backup volume, where three times was enough before: make room there before the next upgrade of a large database.

0.23.0​

Released 4 November 2026.

Bugfixes​

  • Fixed an issue where a console published on port 443 by a Published (443) rule answered 404 to every visitor.
  • Fixed an issue where the support bundle left out the web server logs of the consoles published on port 443.
  • Fixed an issue where an upgrade across several Odoo versions ran its steps in between without the custom modules kept in a folder of a larger repository.
  • Fixed an issue where a production upgrade whose automatic way back also failed was listed as rolled back on the Upgrade tab.
  • Fixed an issue where a rehearsal of a production on another server that failed before it began left its copy of production on this server's disk for up to a day.
  • Fixed an issue where rolling back an upgrade in place, by hand or automatically after a failure, brought the databases back under new names made from the instance's name.

0.22.0​

Released 3 November 2026.

Breaking​

  • Removed Console on port 443 from Configuration > General: the console is served on port 443 only while a rule on Security > Firewall > Rules > Published (443) publishes it, now at /admin, so a server that had the switch on is no longer served there after the update.
  • Changed the Console and API rules on Security > Firewall so that machines on the server's private networks are judged by them like any other caller; only the server itself is always admitted.
  • Changed the custom-module, database, host-name and parallel-job limits so that they are read from the license, with no custom module on an unregistered server and one per instance on Community, counting every custom module installed in a database however it was added.
  • Removed database upgrades from the Community and Developer editions; they come with Professional and Provider.

Improvements​

  • Added Published (443) to Security > Firewall > Rules, where a rule that governs the OHM console, pgAdmin, Portainer or Metabase publishes it on port 443 under its own path and decides who reaches it there.
  • Renamed the rule tabs on Security > Firewall > Rules to Console and API, each named with its port and saying what it covers, and the Log tab now shows the port and the path of each request.
  • Renamed the Rate limits tab of Security > Firewall to Configuration, which holds the rate limits in a Rate limiting card.
  • Renamed the Rate limiting tab of an instance's Firewall to Configuration, which holds the rate limits in a Rate limiting card and the request-body logging, moved there from the Rules tab, in a Logging card.
  • Moved a database's Sign-in protection card from the Overview tab to a Sign-in protection tab of its own on the database page, which reads the settings only when it is opened.
  • Improved Fail2Ban so that a ban also blocks a visitor who reaches the server through a trusted reverse proxy: the web server refuses the banned address the proxy forwards until the ban ends.
  • Improved the license check-in so that after a failed check-in the server tries again at the retry interval the license server sets, one hour by default, until a check-in succeeds, and the License page says when the next attempt is due.
  • Improved the Upgrade tab of an instance so that Rehearse, Re-run my modules, Upgrade production and Use as prepared instance are not offered while the license does not include database upgrades, and Roll back stays available whatever the license.

Bugfixes​

  • Fixed an issue where the On block choices on the last row of the server and instance firewall rules were laid out unevenly; they now sit side by side at one width with a gap and wrap when the column is narrow.
  • Fixed an issue where the Azure backup storage script could reset the passwords of another application that already had access to the storage account.
  • Fixed an issue where a job could be recorded under a different user's name than the person signed in to the console.
  • Fixed an issue where a Master data export whose database script had been changed could still be imported; such an export is now refused, and an export from an earlier release imports with a note that its script could not be checked.
  • Fixed an issue where, after a server install, the configuration apply that waited for the install was reported as interrupted and failed, and the server update finished notice was sent twice.
  • Fixed an issue where Image cleanup tried the same leftover Odoo base images every night and left them on disk; a chain of leftover images now goes in one run, and a base image that an image in use is built on is no longer tried.
  • Fixed an issue where the Custom modules health check warned about modules that are behind their git remote but not installed in any database.
  • Fixed an issue where a server update that moved both the GeoIP and the Fail2Ban services restarted Fail2Ban twice.
  • Fixed an issue where the server update log named the version a service was coming from as the one it was updated to, and skipped a number in its step count.
  • Fixed an issue where the Backups health check called a backup of last night a backup of today.
  • Fixed an issue where the support bundle's bans carried no country and a rate-limit ban named no instance, and an expired ban showed a negative time remaining.
  • Fixed an issue where the breadcrumb of a page opened from another section started with that section; it now shows where the page belongs, for example Instances / Instance / Database.
  • Fixed an issue where the period tabs on Query Insights and on a database's Performance tab sat higher than the other filters beside them.
  • Fixed an issue where the Docker image card showed the Odoo build of a pre-built image on a floating tag such as 19.0 as unknown, and the Odoo build health check called that same image current.
  • Fixed an issue where the Workload card and the Tuning health check counted the websocket worker as a full worker, so small instances were reported as over-committed, and where the health check wrote GB for figures the card shows in GiB.
  • Fixed an issue where Portainer and Metabase published under /portainer and /metabase on port 443 did not load their pages; while Metabase is published there, the analytics service's Open button opens it at that address.
  • Fixed an issue where a request's path or a name a client reported could still carry a separator, tab or escape sequence into the log; every such character is now written as a visible escape.

Known Issues​

  • A server that used Console on port 443 no longer serves the console there after the update, and the console says so to Administrators: add a rule that governs OHM console /admin on Security > Firewall > Rules > Published (443) to publish it again at https://your-host/admin.
  • A machine on the server's local network that reached the console or the API only because the private networks used to skip the rules is refused after the update until a Console or API rule admits it; the API's shipped rules still admit 10.0.0.0/8 and 192.168.0.0/16.
  • An instance with more custom modules installed than the license allows has its git modules frozen at once after the update, not pulled or updated until the license allows them, while every installed module keeps running and nothing is uninstalled.

0.21.1​

Released 3 November 2026.

Bugfixes​

  • Fixed an issue where an API key issued under Security > API keys could read an Odoo user's current two-factor code, and a read-only one could download exports, dumps and backups that contain credentials.
  • Fixed an issue where a server update switched Fail2Ban jails back on that had been switched off, ignored the stored mail relay and did not give the GeoIP service the stored MaxMind credential.

0.21.0​

Released 3 November 2026.

Improvements​

  • Added a Log switch to every rule on an instance's Firewall > Rules, so a busy rule's admitted requests can be left out of the firewall log; refused requests are always logged.
  • Added a Custom range on Query Insights, beside Last hour, Last 24 hours and Since reset.
  • Added a click on a Query Insights chart bar, which shows the statements of that slot.
  • Added show and hide to the Query Insights chart's legend, one switch per kind of bar.
  • Changed Query Insights so that charting Statements over the threshold also lists only the statements over the threshold.
  • Added a Notifications card to the Fail2Ban tab of Threat protection, which switches ban notices on or off and holds their sender and their To, Cc and Bcc recipients.
  • Added mail for lifted bans, switched on in Fail2Ban Notifications.
  • Added a daily summary of the bans with a world map of where they came from, switched on in Fail2Ban Notifications.
  • Added the country of each ban and a map of where the bans come from to Bans & actions on the Fail2Ban tab.
  • Added request details to the firewall log: the info button on a Decisions row shows the method, status, protocol, response size, response time, user agent and referrer of the request.
  • Added a Request bodies setting on an instance's Firewall > Rules, off by default, that keeps bodies up to 4 KB (never uploads) in the firewall log, with Mask sensitive data on by default.
  • Added the request details and the request body to the firewall log export.

Bugfixes​

  • Fixed an issue where Safari and iPhone visitors were banned by Fail2Ban for the icons their browser asks every site for.
  • Fixed the wording of the message for a refused APT package on the Docker image card.
  • Fixed an issue where building an instance image from the command line did not say that the new image still has to be activated.
  • Fixed an issue where switching include expired on the Fail2Ban bans did not reload the list.

Known Issues​

  • This release changes the master database, so update with sudo ohm install on the server; the Updates page cannot do it.

0.20.0​

Released 2 November 2026.

Improvements​

  • Added a Diagnose tab on the instance page, where Diagnose instance asks Claude what is wrong and shows the likely cause, the log lines that prove it, the steps to fix it and exactly what was sent.
  • Added the AI assistant card under Configuration > Network, where an administrator turns Diagnose on, sets the server's Anthropic API key and model, and chooses who may use that key.
  • Added May use the server AI key to each account on Users, and an own Anthropic API key and model on My Account, which Diagnose uses instead of the server's key.

0.19.0​

Released 2 November 2026.

Improvements​

  • Added a read-only connection for AI assistants such as Claude Desktop, so an assistant can look at a server's instances, health, logs, jobs, backups, uptime, usage, slow queries, alerts and bans with an API key you issue for it.

Bugfixes​

  • Fixed an issue where an API key issued under Security > API keys could act and be recorded in the audit trail as another user.
  • Fixed an issue where Move an instance here failed on every installed server.
  • Fixed an issue where a restore or an upgrade from an instance on another server refused a good copy as not an instance backup.
  • Fixed an issue where an API key could read the stored keys of the registered environments.
  • Fixed an issue where an API key could read the license key from the License page's status, or take the one-time reveal of a password another caller was waiting for.
  • Fixed an issue where the command line's quiet mode hid why a command failed and still printed its startup lines.
  • Fixed an issue where importing a Master data export from the command line reported failure after the import succeeded.
  • Fixed an issue where a refused import showed internal error details on the command line.
  • Fixed an issue where the command line's server overview showed a placeholder as the mail password.

Known Issues​

  • A script that sends a user name with a key issued under Security > API keys is now recorded as that key and is held by the key's own scope only, so give such a key no more scope than the script needs.

0.18.0​

Released 2 November 2026.

Breaking​

  • Changed instance removal from the command line to delete the instance's stored configuration by default, like the console.

Improvements​

  • Changed the license agreement to say exactly what an activation and a check-in send, and that a trial or perpetual license keeps working for 14 days after its check-in grace period ends; you are asked to accept it once.
  • Added APT packages and Python packages to the Docker image card, so an instance's image can carry extra packages.
  • Added commands to issue, list and revoke API keys from the command line.
  • Added Roll back on the Updates page, which returns the server to the release it ran before the last update when no schema update is involved.
  • Added the encryption keys to the Master data export, sealed under a passphrase, so a server restored from it can read its stored credentials and its encrypted backups.
  • Added commands to export and import the master database from the command line.
  • Added a way to import a Master data export from an older release, which Import now explains and which brings the file forward on a copy first.
  • Changed Import on the Master data page to restart the console and the API itself when it finishes.
  • Removed the Version row from the New instance wizard on a restore or a clone, where the backup or the source instance decides the version.
  • Added Override fields to Auto tuning, so a calculated value can be replaced while the rest stay automatic.

Bugfixes​

  • Fixed an issue where the Support page suggested attaching a support bundle on the public community forum; a bundle is now only ever sent privately when Antelao asks for one.
  • Fixed an issue where restoring or installing an instance failed at the end on a server whose Fail2Ban service was missing or restarting.
  • Fixed an issue where Limit real time defaulted to 120 seconds instead of 1200, and made the web server's timeouts follow it.
  • Fixed an issue where Limit real time accepted 0, which stopped an instance from serving requests.
  • Fixed an issue where a server without a license described what it switched off as a license it had lost.
  • Fixed an issue where a server without a license stopped admitting the addresses given at install, and the console that provisioned it, about a minute after the install.
  • Fixed an issue where containers could reach Portainer's tunnel port.
  • Fixed an issue where the console could not reach the management API on a server whose management address was set to one address.
  • Fixed an issue where ohm dev pull showed the account's name instead of the sign-in to use.
  • Fixed an issue where Move an instance here told you to enter git and DNS tokens again, although they travel with the instance.
  • Fixed an issue where the Upgrade page advised opening ports on a server that sends its traffic through a proxy, which does not help.
  • Fixed an issue where the Upgrade page offered an in-place upgrade on a license that cannot roll it back.
  • Fixed an issue where the log buttons in Rehearsal history showed an error on a production run.
  • Fixed an issue where an upgrade stopped production before finding that the instance had changed since its rehearsal.
  • Fixed an issue where Take the copy from was offered on an upgrade from another server, where it had no effect, and the disk was not checked for that copy.
  • Fixed an issue where Re-run my modules stayed disabled after a rehearsal that failed on the modules.
  • Fixed an issue where a finished upgrade stayed open on the Upgrade page, so the next upgrade could not be prepared there.

Known Issues​

  • Instances on Auto tuning move to 1200 seconds at their next tuning save, and an instance's web server timeouts follow at its next apply.
  • Scripts that relied on ohm instance remove keeping the configuration must add --keep-config.
  • This release changes the master database, so update with sudo ohm install on the server; the Updates page cannot do it.

0.17.0​

Released 1 November 2026.

Improvements​

  • Added Upgrade to the instance page: prepare an instance at a newer Odoo version, rehearse the upgrade of a production copy as often as needed, then upgrade production by promoting the prepared instance or in place.
  • Added Enterprise and Community database upgrades to the edition comparison on the License page, with Community databases limited to 1 GB each below Professional.
  • Added a warning in the instance settings when the Odoo major version changes while the instance holds databases.

Bugfixes​

  • Fixed an issue where the installer added Docker's repository on a system that already offers Docker.
  • Fixed an issue where another workload on the console's network could pass a firewall rule by naming an admitted address.
  • Fixed an issue where the product description and the installation guide listed Ubuntu 22.04, for which no package suite is published; a server runs on Debian 12 or 13, or Ubuntu 24.04.

Known Issues​

  • Enterprise upgrades need outbound access to Odoo's upgrade servers on port 443 and ports 32768 to 60999, which an HTTP proxy cannot carry.
  • Upgrades stay refused until the license carries the new upgrade features, which arrive with the next license check-in after they are added to its plan.

0.16.3​

Released 1 November 2026.

Bugfixes​

  • Fixed an issue where the discard changes option of the module install command, run remotely, was dropped without saying so; the command now refuses and says to run it on the server. Its help names the workstation and development instances it works on.
  • Fixed an issue where Backup storage called the retention of a Cloudflare R2 bucket Object Lock, which R2 does not have; it now reads Bucket lock rule.

0.16.2​

Released 31 October 2026.

Nothing in this release changes what you see or do: it changed only the product's internals.

0.16.1​

Released 30 October 2026.

Bugfixes​

  • Fixed an issue where a visitor stayed on the sign-in page with no way on when the bot check could not run.
  • Fixed an issue where the demo console showed an outbound proxy set by host name to visitors.
  • Fixed an issue where the Health tab reported a Let's Encrypt instance as fine while it served a certificate from this server instead.
  • Fixed an issue where two Let's Encrypt certificates requested for the first time by DNS at the same moment could make one of them fail.
  • Fixed an issue where the API, the console and the host agent stopped with a crash code instead of a clean error when they could not start.

0.16.0​

Released 30 October 2026.

Improvements​

  • Improved the third-party notices on the License page: each component's license is now the link to its text, in place of a separate License text column.

Bugfixes​

  • Fixed an issue where an upgrade from the console waited two minutes for the management API and warned that it did not answer, although it did.
  • Fixed an issue where the robot check on the sign-in page sat closer to the password field than the fields sit to each other.
  • Fixed an issue where the License page showed Loading for several seconds when it was opened.
  • Fixed an issue where the demo console showed the server's proxy and public addresses and other infrastructure addresses to visitors.
  • Fixed an issue where a failed certificate renewal replaced a valid Let's Encrypt certificate with a self-signed one and did not try again.
  • Fixed an issue where a failed Let's Encrypt request on an instance looked like a success on its Certificate tab and on the command line.

0.15.0​

Released 30 October 2026.

Improvements​

  • Added a one-time sign-in code that a machine made from a ready-made image shows on its own screen when nobody gave it an SSH key or a password; "Sign in with a one-time code" on the sign-in page takes it once and leads straight to "Choose your password".

Bugfixes​

  • Fixed an issue where the login message of a machine made from an image pointed to a console page that does not exist.
  • Fixed an issue where a machine made from a ready-made image without an SSH key or password did not install itself.

Known Issues​

  • This update changes the server's database, so Update on the console refuses it: run sudo apt-get install --only-upgrade antelao-ohm and then sudo ohm install on the server.

0.14.0​

Released 29 October 2026.

Improvements​

  • Changed the demo console's session band to say what the demo leaves out and to link to the installation guide.

Bugfixes​

  • Fixed an issue where an upgrade asked for the GeoIP and Fail2Ban versions of the release it was leaving, and raised signature alerts when those were no longer published.
  • Fixed an issue where the Name, FQDN and Description columns on Instances shrank to nothing in a narrow window with the menu open.
  • Fixed an issue where the robot check on the sign-in page touched the password field and stood out past it.

Known Issues​

  • An upgrade from 0.12 can show "signature refused" notices and alerts for GeoIP and Fail2Ban 1.4.4; they are expected, and both services end on the release's own versions.

0.13.0​

Released 29 October 2026.

Improvements​

  • Changed the Jobs list to hide the Completed column at first, so every heading fits; the column picker shows it again.
  • Changed an upgrade from the console to also move GeoIP, Fail2Ban and the other pinned services to the new release in the same task.
  • Changed the License page to show the third-party notices as a readable document with tables and collapsible license texts.
  • Changed Fail2Ban ban notices to go to the server's notification recipients when no ban recipients are set, with a health check that warns when neither is set.
  • Changed a low-disk alert to come once per filesystem, naming the directories on it.

Bugfixes​

  • Fixed an issue where the console's top bar broke the Trace button onto two lines and cut off the account name in a narrow window.
  • Fixed an issue where the Version, Edition and Description headings on Instances, and several headings on Jobs, were cut off.
  • Fixed an issue where sorting Core services by Uptime put the longest uptime first.
  • Fixed an issue where an upgrade from the console left the release version as a pending server change.
  • Fixed an issue where an upgrade from the console reported failure although the management API was up.
  • Fixed an issue where the upgrade log named the old image as the newer one.
  • Fixed an issue where an upgrade logged a false error that the Odoo instances could not be listed.
  • Fixed an issue where a new console certificate was reported as in service while the management API was still restarting.
  • Fixed an issue where an instance's Odoo build stayed unknown after an install or a restart of the management API until the next daily update check.
  • Fixed an issue where the demo page could not show the console's version.
  • Fixed an issue where a removed instance's stopped editor kept its image on disk for up to a week.
  • Fixed an issue where the image cleanup removed the current release's editor and SSH gateway images every night.
  • Fixed an issue where the image cleanup tried every night to remove images that other kept images are built on.
  • Fixed an issue where the management API's start-up apply and the firewall log gave up when the database restarted.
  • Fixed an issue where the agent warned that it reissued the console certificate when it only kept it.
  • Fixed an issue where OHM's own firewall self-check was logged as a refused visitor.
  • Fixed an issue where the agent did not keep a copy of its own log when it stopped.
  • Fixed an issue where the Tuning health check described the container's memory ceiling as what the cron thread needs.
  • Fixed an issue where a save refused as invalid input was not logged with its reason.
  • Fixed an issue where the PostgreSQL standby showed another image name than the primary.

Known Issues​

  • An upgrade from 0.12 on the Updates page ends as failed although every service moved to this release; the upgrade after this one reports correctly.

0.12.0​

Released 29 October 2026.

Improvements​

  • Improved demo visitor access: the console can be opened again with a new sign-in link until the visitor's access ends.
  • Improved the demo visitor sign-in page: it continues by itself once the bot check passes.
  • Added a health check that lists stored credentials this server cannot read and where to re-enter each one.
  • Added the X25519 and post-quantum key exchanges to the web server, so browsers connect faster and with current protection.
  • Changed a new instance's default Odoo version to the newest offered, in the New instance wizard and on the command line.
  • Changed Odoo 17.0 to show as no longer supported by Odoo.
  • Removed the note under Role on the New instance wizard's Basics tab.
  • Moved the buttons of the New instance wizard to the top of every tab and renamed its Back button to Previous.
  • Removed the Contact e-mail field for Let's Encrypt certificates; Let's Encrypt no longer sends expiry e-mails, and the Certificate expiring alert keeps warning you.

Bugfixes​

  • Fixed an issue where a MaxMind account stayed under Pending changes after an apply when the GeoLite2 download failed.
  • Fixed an issue where Configuration > History and an instance's Revisions page showed a signed-in session error after about half a minute.
  • Fixed an issue where past times read as future ones, such as Up since in 2 hours or Measured in 21 minutes.
  • Fixed an issue where the Under the hood expander on the Release notes page showed a missing-character box.
  • Fixed an issue where the Console button on Core services covered the version and the Restarts heading was cut off.
  • Fixed an issue where an instance's Configuration page warned about reverse proxies when none was set.
  • Fixed an issue where an update could fail installing the web server when pending changes were applied at the same time.
  • Fixed an issue where the first start after an update logged a warning to run a server install that had just run.
  • Fixed an issue where the logs filled with misleading network errors while the server was being updated.
  • Fixed an issue where alerts raised while the database restarted, for example during an update, were missing from the alert history.
  • Fixed an issue where a support bundle did not say which hours of the API and console logs it could not include.
  • Fixed an issue where a support bundle lost the host agent's log from before the agent's last restart.
  • Fixed an issue where a support bundle showed some containers without their image name and with a version that was not theirs.
  • Fixed an issue where the audit log named the console instead of the server's administrator for an update run on the server, and the export left out when a command ended.
  • Fixed an issue where an update reported that no MaxMind credential was set, and that every location rule allowed the request, on servers that have one.
  • Fixed an issue where a page Odoo itself refused was answered with the firewall's refusal, and the instance's reachability was not measured.
  • Fixed an issue where an instance's scripts, style sheets, images and maintenance page were served without the security headers of the rest of the site.
  • Fixed an issue where the Scheduled actions health check reported a stuck scheduler while scheduled actions were running.
  • Fixed an issue where opening a server's console from the Odoo Management Plane skipped the bot check.
  • Fixed an issue where the management API could hang at start during an update, leaving the console offline.
  • Fixed an issue where list column headings were cut off in a narrow window, such as Version, Uptime and Restarts on Core services; the handle for moving a column now shows at the left of a heading when you point at it, and never covers its sort arrow.

Known Issues​

  • ohm instance create no longer accepts --email; remove it from your scripts.

0.11.0​

Released 28 October 2026.

Improvements​

  • Added a one-time sign-in link for demo visitors on a demonstration server, so a visitor opens the console from the demo's page with Turnstile still checked and without typing a password.

0.10.2​

Released 27 October 2026.

Bugfixes​

  • Fixed an issue where the logs of the management API and the console filled with a line for every internal request, which pushed older errors and warnings out of support bundles.
  • Fixed an issue where every ban by the sign-in protection logged a failed mail action on servers with ban mail recipients.
  • Fixed an issue where Security > Users kept showing Loading for a long time when another environment was slow to answer.
  • Fixed an issue where a refused save showed only Job failed - HTTP 400, was counted as a failed job and could save part of an instance's Configuration tab.
  • Fixed an issue where the host agent's page refused every other address when no management address was set at install.

Known Issues​

  • The next update opens the host agent's page to every address on servers installed without a management address; to keep it closed, run sudo ANTELAO_INSTALL_AGENT_ALLOW=<addresses> ohm install.

0.10.1​

Released 27 October 2026.

Bugfixes​

  • Fixed an issue where a removed module stayed on the Pending changes page as modules to install after the changes were applied.
  • Fixed an issue where the Dashboard's Backup card never named a failing backup for a Viewer or an Operator, and each Dashboard refresh recorded a refused request in the audit trail.
  • Fixed an issue where opening an instance's Firewall tab as a Viewer or an Operator recorded a refused request in the audit trail.
  • Fixed an issue where changing an instance's role did not record the module commits it fetched.
  • Fixed an issue where creating a support bundle could use so much memory that the server became unresponsive.

0.10.0​

Released 27 October 2026.

Improvements​

  • Improved the update: the host agent's move to its secure defaults is no longer announced during installation.

Bugfixes​

  • Fixed an issue where CrowdSec never acted against addresses on private networks, so attacks through a proxy that is not trusted or from the local network went unpunished.
  • Fixed an issue where Fail2Ban could ban the server's own addresses on its container networks, because Never ban this host did not cover them.

Known Issues​

  • If a load balancer or proxy on your own network forwards visitors to this server, add it under Configuration > Network > Trusted proxies before updating, or CrowdSec can block it and everyone behind it. Run sudo ohm install or Install again on the CrowdSec tab to apply the new whitelist.

0.9.0​

Released 26 October 2026.

Improvements​

  • Added a notice for Administrators, and an Untrusted proxy alert, when a proxy that is not trusted forwards requests to the console or the API so every person behind it looks like the proxy.
  • Changed Configuration > Network > Trusted proxies to also apply to a proxy in front of the console's and the API's own ports, and to a program on the server itself that reaches port 443.
  • Added the instance sites to the untrusted proxy notice and alert, on an instance's Configuration tab and on the Fail2Ban and CrowdSec tabs, so a proxy that makes Odoo, the access rules and the bans see every visitor as the proxy is pointed out.
  • Added Trust this proxy to the untrusted proxy notice, which adds the proxy to Configuration > Network > Trusted proxies for the whole server.
  • Added a host rule that closes the management ports of the agent, the API, the console and Portainer to the server's own containers.
  • Changed the management API's default firewall rules on a new server to admit loopback and the 10.0.0.0/8 and 192.168.0.0/16 networks only, no longer the range the server's containers use.

Bugfixes​

  • Fixed an issue where, with the console on port 443, a proxy in front of the server that is not a trusted proxy let everybody behind it past the console's firewall rules.

Known Issues​

  • To receive the daily Untrusted proxy reminder on an existing server, use Add the recommended rules on the Alert rules page again.
  • The console's port 443 site recognises an untrusted proxy once sudo ohm install has run on the server, or the server has been updated.
  • The instance sites recognise an untrusted proxy once the server has been updated or sudo ohm install has run on it, which rewrites their access log format.
  • A server installed earlier keeps 172.16.0.0/12 in its management API firewall rules; remove it under Security > Firewall if nothing manages the server from that range, and on a new server add it there if something does.
  • A firewall tool that reloads the host's rules, such as ufw reload, takes the management port rule away until the agent restarts; sudo systemctl restart ohm-agent puts it back.

0.8.0​

Released 26 October 2026.

Improvements​

  • Added a signature check of every Antelao image a server runs, so an image whose signature does not hold is refused, the container keeps the image it runs, and an Image signature refused alert is raised.
  • Changed a server to stay on the release it was installed or updated to instead of following the newest images of its channel, so a restart or a reboot never moves it and the Updates page offers the next release.

Bugfixes​

  • Fixed an issue where an Odoo instance or a code editor on the server could reach the console and the management API without being judged by their firewall rules.

Known Issues​

  • Run sudo apt-get install --only-upgrade antelao-ohm and then sudo ohm install on each server to start checking its images; until then it keeps following its channel and raises the Image signing not set up alert at every start of the host agent.
  • A host agent whose image does not verify is not started; journalctl -u ohm-agent gives the reason, and sudo ohm install verifies and pins the agent's image again.

0.7.0​

Released 26 October 2026.

Improvements​

  • Added a signature beside each installer script and beside the checksum list of the virtual machine images, so a download can be checked against the Antelao public key before it is used.

0.6.2​

Released 26 October 2026.

Bugfixes​

  • Fixed an issue where the installer printed the host agent's operator key and a generated administrator password into output that was being kept, such as a log file or an automated job.

Known Issues​

  • Where the output of an earlier install or repair was written to a file or a job's log, that output holds the agent's operator key, so remove it and rotate the key with sudo ohm server agentkey rotate.
  • When the installer's output is not a terminal, read the operator key with sudo ohm server agentkey show, or pass --show-secrets to ohm install to print it.

0.6.1​

Released 26 October 2026.

Breaking​

  • Changed the host agent on servers installed by an earlier release to answer plain HTTP on the server itself only, as new servers already do.
  • Changed the host agent on servers that still admitted every address to admit only the server itself and its management addresses.

Improvements​

  • Changed the Revoke button on API keys to its own icon.
  • Added a Delete action for revoked and expired API keys on Security > API keys and on the API keys tab of Security > GeoIP.
  • Changed the firewall log so the server's own components calling the management API on the server itself are no longer recorded.
  • Improved the instance health check's job results and alerts, which now say what each warning found, including the mail server's last answer for Outgoing mail.
  • Added the latest instance health reports to the support bundle.
  • Improved the audit trail: a command that fails on the server records why it failed.
  • Changed imported and copied instances to receive their own Odoo master password instead of the source's.
  • Added the choice to delete a backup policy's recovery points when you remove the policy, on the Backup tab and on a backup container's policies.
  • Added an Orphaned backup sets list to a backup container's policies, with a Delete action for the backup data no policy writes any more.
  • Added removing a backup policy, with or without its recovery points, from the command line.
  • Improved support bundles: they keep the logs of the management and service containers that an update replaced during the window.
  • Improved support bundles: they carry the logs of every service container and list the ones they could not collect.
  • Improved support bundles: they show the exact build of every container image and the free disk space.

Bugfixes​

  • Fixed an issue where Pending changes listed the picture and file burst on every instance after an update, although nothing had changed.
  • Fixed an issue where every update or repair of the server unlocked the admin account and recorded an unlock in the audit log, even when it was not locked.
  • Fixed an issue where the Internet speed test ran every time the management API started, saturating the connection after each update.
  • Fixed an issue where an Internet speed test job reported success before the test had run, even when it then failed.
  • Fixed an issue where the server install started by the installer said the console and API containers were not updated although the installer had just updated them.
  • Fixed an issue where jobs the installer started on the server were attributed to the console instead of the server's administrator.
  • Fixed an issue where a console tab without a valid session kept asking for the license and filled the audit log with refusals.
  • Fixed an issue where visitors the firewall had let in were shown the instance's refusal instead of the maintenance page while Odoo was restarting, down or in maintenance.
  • Fixed an issue where the firewall log blamed the access check for requests that Odoo itself could not answer.
  • Fixed an issue where instances with firewall rules or pre-authentication refused every visitor for about a minute and a half while an update upgraded the master database.
  • Fixed an issue where showing or applying an instance's drift on the server itself always failed.
  • Fixed an issue where signing in with a passkey skipped the Turnstile check on the console sign-in.
  • Fixed an issue where exporting instance configurations from the command line against a server reported success but wrote the files where nobody could reach them.
  • Fixed an issue where exported instance configurations, configuration downloads and backups carried the instance's Odoo master password in plain text.
  • Fixed an issue where the image cleanup kept one older image per instance on top of the number of versions to keep.
  • Fixed an issue where a code editor left behind by a removed instance kept that instance's image on the disk.
  • Fixed an issue where the image cleanup left untagged base images on the disk after removing the images built on them.
  • Fixed an issue where the nightly image cleanup removed the images the health check and the backups download again the same day.
  • Fixed an issue where a support bundle carried email addresses and the names of people and accounts; they are now replaced by stand-ins that stay the same within one bundle.
  • Fixed an issue where a support bundle's audit trail was not in time order.
  • Fixed an issue where a support bundle's container log could pass its size limit by the line that says it was cut.

Known Issues​

  • A repair or update no longer unlocks a locked or disabled admin account; run sudo ohm user unlock admin on the server when you need to.
  • If you saved the Internet speed test's schedule before this update with "and once at startup" switched on, it keeps that setting; switch it off on the Maintenance page if you do not want a test after each restart.
  • After this update the host agent's page is reached over HTTPS on port 5202 only; if it now refuses you, run sudo ohm install again with ANTELAO_INSTALL_AGENT_ALLOW set to your addresses, or to 0.0.0.0/0,::/0 to admit every address as before.
  • Configuration files and backups written by earlier releases still contain the instance's Odoo master password; delete them or keep them as secrets, and treat files from ohm server manifest export and ohm server config export the same way, since they carry every credential by design.
  • A script that exports instance configurations on the server through the management API must now name a directory inside the server's backup, archive or temporary directory; any other path is refused.

0.6.0​

Released 25 October 2026.

Improvements​

  • Improved support bundles: they cover their whole time window and include the PostgreSQL log.
  • Added a Configuration page to the agent console with a card that renames the server and requests a certificate for the new name.
  • Added a command to rename the server from the command line.
  • Changed renaming the server so it requests a certificate for the new name in the configured mode.
  • Added a provisioning domain under Configuration > Network: instances created without a host name are named under it instead of under localhost.
  • Added the provisioning domain to the bootstrap document and to the installer.
  • Added commands to show, set and clear the provisioning domain from the command line.
  • Added the administrator's password and two-factor seed to the bootstrap document, so a provisioned server starts with known credentials and two-factor required.
  • Added options to the installer to set the administrator's password and two-factor seed from files readable by root only.
  • Changed the installer to overwrite the bootstrap document before it removes it.
  • Added the Code tab to every instance in every edition for administrators and read-only administrators, showing the instance's code read-only wherever editing is not available.
  • Added a sentence above the read-only code that says what editing needs, with the edition badge and Compare the editions when the edition is what is missing.
  • Added Allow editing in the browser editor to an instance's Configuration tab, on by default for development instances and off for every other, with a warning when it is switched on for an instance that is not a development instance.
  • Changed the browser editor so it opens writable only for an administrator with a developer workspace profile, on an edition that includes it, where the instance allows editing.
  • Added the Enterprise add-ons to the read-only code of an Enterprise instance.
  • Added the opening and closing of the read-only code to the Jobs page, with who opened it.
  • Added clearing of git lock files left behind by an interrupted update, once they are more than 30 minutes old.
  • Added options to trust a server's own certificate authority or certificate fingerprint when adding a command line connection, checked on every call the connection makes.
  • Improved the command line's message when it does not trust a server's certificate: it names the certificate's fingerprint and the two ways to trust the server.
  • Added the command line connection to the instructions in a certificate authority's trust kit.
  • Changed the New instance wizard to tabs with Review + create, a certificate choice and a database created and activated by default, blank or restored from an uploaded backup.
  • Added an admin login and password to creating a database.
  • Changed the New instance wizard so nothing is created before Create, and every tab is reachable at any time with Back, Next, Review + create and Cancel.
  • Changed the New instance wizard so a new instance starts on Production on a server and on Development on a developer workstation, with Let's Encrypt for Production and Self-signed otherwise.
  • Moved custom modules / add-ons to the New instance wizard's Advanced tab, unticked by default and added with Create before the instance is installed.
  • Added a DNS check of the new instance's names to the New instance wizard's Certificate and Review tabs, with Create anyway when a name does not resolve to this server.
  • Added a country to the New instance wizard's database, detected from the browser's time zone or language and changeable.
  • Added copy buttons to every value on the New instance wizard's Review tab, and a Copy all.
  • Added a one-time Show the password to a database's page for the administrator password generated when the database was created.
  • Moved Restore from backup on the Instances page into the New instance wizard, which fills its tabs in from the chosen archive and can keep the archive's databases.
  • Moved an instance's Duplicate into the New instance wizard as Clone an existing instance.
  • Added a command to create an instance from the command line, with its certificate and a database with its administrator, country and demo data.
  • Added Staged upload cleanup to the Maintenance page, which removes uploaded archives older than a day that no restore used.
  • Changed the environment preset so that Test and Staging switch on automatic git updates of an installed instance only after you confirm it.
  • Changed restoring, cloning and importing an instance with the Test or Staging preset so it starts with automatic git updates off, unless you switch them on in the New instance wizard or on Import configuration.
  • Added command line options to answer whether a Test or Staging preset switches on automatic git updates, and to switch them on when importing an instance.
  • Changed the console's icon and the edition icons from teal to Antelao's violet.
  • Improved the readability of links in the console's dark theme.

Bugfixes​

  • Fixed an issue where an instance could be switched from the connection pooler to a direct database connection by an unrelated save.
  • Fixed an issue where saving an instance's settings could restart the instance when its configuration file on the server had changed, although the saved change needed no restart.
  • Fixed an issue where switching on encryption for new instances' backups left a change on the Pending changes page that nothing would apply.
  • Fixed an issue where Pending changes said an apply had failed to clear a change that was saved after the last apply.
  • Fixed an issue where every update reported that the connection pooler could not be installed although it was running.
  • Fixed an issue where a starting PostgreSQL replica was reported as promoted during an install.
  • Fixed an issue where a certificate authority created by an earlier version was missing from the Root CA list.
  • Fixed an issue where a slow backup to one storage provider made the next provider skip its daily backup the following night.
  • Fixed an issue where a slow backup of one instance could make the next instance skip its daily backup the following night.
  • Fixed an issue where the default rate limit refused pictures in Odoo list and kanban views.
  • Fixed an issue where the management address rules were not enforced while the console or the management API was starting without its stored rules.
  • Fixed an issue where a Viewer, an Operator, a read-only administrator or a demo account could read the current two-factor code of an Odoo user; only an Administrator can now, and every read is recorded in the audit trail.
  • Fixed an issue where a demo account could see other people's e-mail addresses, IP addresses and key names on the Jobs page and elsewhere in the console and the API.
  • Fixed an issue where the notification bell of a Viewer or Operator showed jobs and alerts of instances outside their assignment.
  • Fixed an issue where a module update blocked by a leftover lock file was reported as a problem with the access token.
  • Fixed an issue where an automatic git update that could not fetch a module still recorded the new commit for it.
  • Fixed an issue where applying changed module commits cleared Pending changes before the modules were installed.
  • Fixed an issue where the PostgreSQL log in a support bundle was mostly health checks and did not cover the whole time window.
  • Fixed an issue where a support bundle showed the API and agent versions without their prerelease part.
  • Fixed an issue where a support bundle requested with an API key did not say who requested it.
  • Fixed an issue where a job note started the configuration file's name with a capital letter.
  • Fixed an issue where an install could report the cloud metadata block as not in force although the addresses were blocked.
  • Fixed an issue where the console wrote an access rules line to its log every 30 seconds although nothing had changed.
  • Fixed an issue where listing instances, databases or database users on the server itself ended with an error code although the list was shown.
  • Fixed an issue where a certificate authority listed removed instances as using it and refused to be deleted.
  • Fixed an issue where private keys written by earlier versions stayed readable by every account on the server.
  • Fixed an issue where the console kept a self-signed certificate from before the server's certificate authority existed.
  • Fixed an issue where a new instance with a malformed FQDN, or one another instance already uses, was accepted and only failed afterwards.
  • Fixed an issue where changes made with an API key did not say which key made them in the audit log and on the pages that show who created or changed something.
  • Fixed an issue where the commands to set an instance's environment preset, export and import instance configurations, rebuild an instance's configuration and check its DNS records could not be run from the command line.

Known Issues​

  • An instance that was moved off the connection pooler this way goes back to it with ohm instance drift --instance <name> --apply --force, which rewrites its configuration file and restarts it.
  • An existing instance gets the larger burst for pictures the next time its configuration is applied.
  • Renaming the server from the agent console's Configuration page needs the host's package updated and sudo ohm install run once on the host, which enables the units that carry it; until then the card says so, and sudo ohm server rename <name> renames the server on the host.
  • A bootstrap document with an administrator section must be readable by root only; run chmod 600 /etc/antelao/bootstrap.json before the installer, or it refuses the file.
  • An installer older than this release refuses a bootstrap document that carries an administrator section, so a provisioner must not send one to it.
  • A license issued before this release includes browsing the code read-only from its next reissue or renewal; until then the Code tab shows the license notice wherever editing is not available, while a server without a license browses at once.
  • A module whose automatic update failed before this version may still show the new commit; run ohm instance modules install --instance <name> --modules "*" for that instance once.
  • On a server installed before this version, run sudo ohm install once after the update, so existing private keys are made readable by root only.
  • On a server installed before its certificate authority existed, the console certificate is reissued under the authority at the next update or sudo ohm install; a browser that accepted the old certificate warns once, which installing the trust kit avoids.
  • A command line connection that pins the console's old certificate stops working when it is reissued; add it again with the new fingerprint or with the trust kit's CA file.
  • The management API and the host agent must be on the same build. Update both.
  • A database's generated administrator password is shown once, to the person who created the database, within an hour of its creation; after that, reset it on the database's Users tab.
  • A typed administrator password and git tokens of a New instance are held in memory until their step runs: if the management API restarts before then, that step fails and asks for them again.
  • Scripts that set the Test or Staging preset through the API on an installed instance must now say whether automatic git updates should be switched on, with enableGitAutoUpdate true or false, or --yes or --no-git-auto-update on ohm instance config preset.
  • Scripts that restore, clone or import an instance with the Test or Staging preset and expect automatic git updates on must now send enableGitAutoUpdate true, or pass --git-auto-update.

0.5.0​

Released 24 October 2026.

Improvements​

  • Added a way to prepare the browser editor of an instance ahead of time (ohm instance code-editor prepare), so its first opening does not wait for the install; a staged machine image carries the editor too.

0.4.1​

Released 23 October 2026.

Nothing in this release changes what you see or do: it changed only the product's internals.

0.4.0​

Released 23 October 2026.

Improvements​

  • Added an upload of a Custom certificate for the console from the command line and the management API, checked against the console's name like an instance's upload.
  • Added a Cloud metadata setting under Configuration > Network that keeps the Odoo instances from reaching the cloud's instance metadata address, on by default.

Bugfixes​

  • Fixed an issue where a database's page started a size calculation for a read-only account, which failed with an error.
  • Fixed an issue where a PostgreSQL server could show Extension missing right after its statement statistics were switched on and checked.
  • Fixed an issue where a demonstration server's shared demo account or demo visitor given the Administrator role could open an instance's live console or the browser editor.

0.3.0​

Released 23 October 2026.

Improvements​

  • Changed an instance's manual quota to refuse a CPU limit above the server's CPUs when it is saved.
  • Removed the currency rates: prices are shown in the provider's own currency.
  • Added a choice of Odoo build to the Pre-built image source, next to the image version.
  • Improved the Odoo build age warning: it also flags a newer Docker Hub image.
  • Moved the Outbound proxy card from Configuration > General to Configuration > Network and shortened its texts.
  • Added --confirm to ohm instance remove, so an instance can be removed from a script.
  • Moved the Turnstile settings to Security > Threat protection and renamed the bot check to Turnstile.

Bugfixes​

  • Fixed an issue where an instance would not start on a server with fewer CPUs than its CPU limit, such as an instance restored from a larger server; the limit is now lowered to the server's CPUs.
  • Fixed an issue where error messages had no space after "Error:".
  • Fixed an issue where an instance's Overview started a size calculation for a read-only account, which failed with an error.
  • Fixed an issue where read-only accounts could click controls that change something, which then failed or asked to leave without saving.

Known Issues​

  • The Currency rates tab and the currency choice under My account > Interface are gone; prices show in the provider's currency.
  • Installing a chosen Odoo build into a pre-built image makes its build several minutes longer and the image larger.

0.2.0​

Released 23 October 2026.

Improvements​

  • Added a Public name on the agent's Certificates page, the fully qualified name the console is reached by, which Let's Encrypt is asked for when the host name is a machine name.
  • Added the changes made on the agent's Certificates page to Security > Audit, under the agent source.
  • Changed the defaults of a management surface's firewall rules on a new server: allowed callers are logged and refused callers' connections are closed.
  • Changed the bootstrap agent on a new server to admit only this server and the management addresses given at install, instead of every address.
  • Added a warning on the bootstrap agent's Dashboard when it admits every address.
  • Changed pgAdmin to answer on the server itself only, no longer on every network address.
  • Changed a new server to switch on the intrusion prevention jails that ban addresses producing many 4xx and 429 answers.
  • Added the last backup's failure to an instance's Backup tab and to the Dashboard's Backup card, where it stays until a backup of the instance succeeds, so a failing backup is seen without mail.
  • Changed the Backups health check to report an error when an instance backed up on a schedule has had no successful backup for longer than its schedule plus a day.
  • Added a notice under the bell when a notification could not be delivered to one of the alert channels, a mail that could not be sent included.
  • Removed the currency rates: prices are shown in the provider's own currency.
  • Added a choice of Odoo build to the Pre-built image source, next to the image version.
  • Improved the Odoo build age warning: it also flags a newer Docker Hub image.
  • Moved the Outbound proxy card from Configuration > General to Configuration > Network and shortened its texts.
  • Added --confirm to ohm instance remove, so an instance can be removed from a script.

Bugfixes​

  • Fixed an issue where the console certificate could not be obtained from Let's Encrypt on a server whose host name is a machine name; set the console's public name on the Certificates page.
  • Fixed an issue where a refused Let's Encrypt request named the challenge although the order itself had been refused.
  • Fixed an issue where the server configuration kept describing the old certificate options after they were changed on the agent's Certificates page.
  • Fixed an issue where passkeys were not available on installed servers: a console with a public or fully qualified name and a trusted certificate now offers them without extra configuration.
  • Fixed an issue where My account > Passkeys named an internal setting when passkeys were not available.
  • Fixed an issue where the firewall log's map stayed empty and showed no countries when the GeoIP database was not loaded; the log now says why and fills in the countries once it is loaded.
  • Fixed an issue where checking the saved MaxMind account on Security > GeoIP never updated its "never validated" badge.
  • Fixed an issue where a management surface saved with Close the connection answered refused callers with the not-found page.
  • Fixed an issue where a signed-out console kept filling the audit log with refused license checks.
  • Fixed an issue where an instance imported with backup encryption on a server without a backup key was never backed up, without any warning: it now arrives with encryption switched off and says so on the import's result, on its Backup tab and under the bell.
  • Fixed an issue where repairing or updating a server recreated the database while the instances were still running.
  • Fixed an issue where removing an instance left its image on the server.
  • Fixed an issue where an instance's git validation and provider test results were forgotten after the management plane restarted.

Known Issues​

  • Servers installed with a machine name as host name need the console's public name set before requesting a Let's Encrypt certificate.
  • Passkeys stay unavailable on a console served over its self-signed certificate; they need a Let's Encrypt or uploaded certificate for the console's name.
  • A server without a MaxMind account records no countries in its firewall log; set the account under Security > GeoIP.
  • A server installed before keeps its bootstrap agent's address list, and one that admits every address says so on the agent's Dashboard and in the update's output; narrow it with ANTELAO_INSTALL_AGENT_ALLOW set to your own addresses.
  • pgAdmin is no longer reachable from the network; reach it through an SSH tunnel to port 8081.
  • The Currency rates tab and the currency choice under My account > Interface are gone; prices show in the provider's currency.
  • Installing a chosen Odoo build into a pre-built image makes its build several minutes longer and the image larger.

0.1.13​

Released 22 October 2026.

Improvements​

  • Added an optional outbound proxy on Configuration > General, through which the server sends its Internet traffic, with a Test button that fetches the package server through it.
  • Added the outbound proxy to the command line and to the installer's bootstrap document.
  • Improved the Internet access card on the Dashboard: behind an outbound proxy it measures through the proxy and says that the public address shown is the proxy's.

Bugfixes​

  • Fixed an issue where an instance's Configuration tab stayed on Loading for about two minutes on a server without Internet access.

Known Issues​

  • Image pulls use a newly set outbound proxy after the next restart of Docker, unless Docker runs with live-restore; restart it when the instances may stop, with sudo systemctl restart docker.
  • Outgoing mail and FTP backup targets cannot go through the outbound proxy and need their own route out of the network.
  • A server that needs the outbound proxy to be installed at all needs apt and Docker set up with the proxy before the installer runs.

0.1.12​

Released 22 October 2026.

Improvements​

  • Added an optional Cloudflare Turnstile bot check to the console's sign-in and multi-factor enrollment, switched on by entering a site key and a secret key on Security > Firewall > Bot check.
  • Added Count failed bot checks as failed sign-ins beside the Sign-in limit on Security > Firewall > Rate limits, on by default.
  • Added a banner for Administrators while the sign-in bot check is turned off by its emergency bypass.

Bugfixes​

  • Fixed an issue where saving several instances at the same time could occasionally fail.
  • Fixed an issue where a change made to a new instance in its first seconds could be lost.

Known Issues​

  • If the sign-in bot check ever keeps everyone out, run sudo ohm server turnstile disable on the server to turn it off until it is fixed, and sudo ohm server turnstile enable afterwards.
  • With the sign-in bot check on, the server must reach challenges.cloudflare.com and the console must be opened by a host name the Turnstile widget lists.

0.1.11​

Released 22 October 2026.

Bugfixes​

  • Fixed an issue where importing an instance definition that left out some of its settings made the instance list fail to load.
  • Fixed an issue where jobs started with an API key that has a long description ran without appearing on the Jobs page.

0.1.10​

Released 22 October 2026.

Improvements​

  • Added a demo data choice to creating a database from the command line.

0.1.9​

Released 22 October 2026.

Nothing in this release changes what you see or do: it changed only the product's internals.

0.1.8​

Released 22 October 2026.

Improvements​

  • Added a Console on port 443 switch to Configuration > General that also serves the console at the server's host name on the standard HTTPS port.
  • Added a command that shows and changes an instance database's Turnstile settings, including an emergency bypass for the portal sign-in, without signing in to Odoo.
  • Added a Sign-in protection card to a database's Overview tab that shows and switches reCAPTCHA and Turnstile, including the portal bypass.
  • Added answers to the reCAPTCHA command's restart question on its command line, so it can run unattended.

Bugfixes​

  • Fixed an issue where creating a database with demo data failed on Odoo 15, 16, 17 and 18.
  • Fixed an issue where Pending changes reported a license reporting change on every instance after the upgrade, and Discard would have cleared that setting.
  • Fixed an issue where the reCAPTCHA command offered to restart the instance but did not restart it.

Known Issues​

  • When an Odoo portal's bot check keeps everyone out, run sudo ohm --local instance database turnstile -i <instance> -d <database> --bypass on --restart on the server.

0.1.7​

Released 22 October 2026.

Improvements​

  • Added moving a license to this server from the License page and the command line when it is active on another machine, confirmed by e-mail.
  • Changed how long a subscription keeps running without reaching the license server: at most the license's offline days, 14 by default, instead of until the end of its term.
  • Changed the license agreement: a subscription that cannot reach the license server keeps running for at most the offline days its license states, 14 by default, and a license may be moved to another of your own servers.

Bugfixes​

  • Fixed an issue where the Dashboard's Certificate card reported the certificate as fine after the machine's hostname was changed.

Known Issues​

  • The license agreement keeps version 1.0 with its check-in article changed, so every user accepts it once more at their next sign-in and ohm asks for it again on the next install.

0.1.6​

Released 21 October 2026.

Improvements​

  • Changed the spelling to license, in American English, everywhere in the console, the ohm command, the messages, the license agreement and the manual.
  • Added a badge beside the names on every certificate card that says whether the certificate covers the server's hostname or the instance's FQDNs.

Bugfixes​

  • Fixed an issue where the Account field in an instance's Managed storage card touched the table of containers above it.
  • Fixed an issue where the bootstrap agent's Certificates page reported the certificate as fine after the machine's hostname was changed.
  • Fixed an issue where Force on a Certificate tab looked like a saved option and was off again after Save; it now sits beside Request certificate and applies to that request only.

Known Issues​

  • The license agreement keeps version 1.0 with the same terms spelled the American way, so every user accepts it once more at their next sign-in and ohm asks for it again on the next install.
  • The update renames one stored restore setting in the application database (schema 2), which ohm install does on its own with the rest of the update.

0.1.5​

Released 21 October 2026.

Bugfixes​

  • Fixed an issue where every backup to a Cloudflare R2 bucket failed.
  • Fixed an issue where one failed backup to a Cloudflare R2 bucket with a retention lock blocked every later backup to it until the retention ran out.

0.1.4​

Released 20 October 2026.

Bugfixes​

  • Fixed an issue where a server on a trial or subscription license offered its license to the GeoIP and Fail2Ban services only at the next daily check-in after an install, and warned about a missing check-in receipt on every install.

0.1.3​

Released 19 October 2026.

Improvements​

  • Added backup policies and an on/off switch for a bound container on Backup storage > Containers.
  • Added Cloudflare R2 to Backup storage: buckets per instance with their own keys, retention by bucket lock, and usage with cost.

Bugfixes​

  • Fixed an issue where backups, listings and restores failed on an S3 target with a Cloudflare R2 endpoint.
  • Fixed an issue where restoring or importing an instance logged an error about a missing access-check credential that the server issues by itself moments later.
  • Fixed an issue where a license check-in refused by the license server's firewall was reported as a possible ban, without saying why or where to look, and was not tried again.

0.1.2​

Released 19 October 2026.

Improvements​

  • Added a warning on the bootstrap agent's Certificates page when the selected mode has no certificate of its own and the console runs on the fallback.
  • Improved the repair plan: renaming the server now shows the old and new hostname and says the management certificate is replaced.
  • Improved instance image builds: a chosen Odoo build is pulled from Docker Hub when Odoo publishes it, instead of being installed on the server.
  • Changed the Pre-built image source: it only offers the Odoo builds Docker Hub publishes; installing another build requires the Built image source.
  • Improved the role change out of development: only the changed part of the instance's image is rebuilt.
  • Improved the image build's job log: every step says what it does, shows its progress while it runs, and the build ends with a summary.
  • Changed the certificate options: a development instance can use Let's Encrypt and an uploaded certificate like any other instance.
  • Changed the role conversion: an instance keeps its certificate when it is converted into or out of development.
  • Improved the Latest backups list of a backup provider: the row actions are icons, and the encrypted download has a lock icon of its own.
  • Improved the Code tab: a loader shows while the editor opens and draws, instead of an empty area.
  • Added the instance's certificate to its backups: a restore or a move to another server serves the same certificate without requesting a new one.

Bugfixes​

  • Fixed an issue where several configuration applies for the same instance waited for each other and never started.
  • Fixed an issue where a new or renewed license only took effect in the bootstrap agent after it was restarted.
  • Fixed an issue where Request certificate only switched the console to Let's Encrypt when Force was on.
  • Fixed an issue where a Let's Encrypt request that fell back to the existing certificate was reported as a success on the bootstrap agent's Certificates page.
  • Fixed an issue where earlier images of an instance stayed on disk after its image was rebuilt.
  • Fixed an issue where an instance's Odoo pages kept the environment ribbon and banner of its previous role after the role was changed.
  • Fixed an issue where custom modules could not be updated from git on a development instance.
  • Fixed an issue where the notification bell sometimes did not open.
  • Fixed an issue where the Backup tab of an instance with a managed backup target could not be saved.
  • Fixed an issue where restoring or importing an instance took over the source instance's managed backup storage.
  • Fixed an issue where a managed backup target left behind by such a restore could not be removed.
  • Fixed an issue where an uploaded certificate was replaced by a self-signed one when an instance was restored on another server.

Known Issues​

  • An instance on the Pre-built image source pinned to an Odoo build that Docker Hub does not publish moves to the next published build of the same version at its next image build, and the build's job log says so; when Docker Hub has no later build, the build is refused until Image default or the Built image source is chosen.
  • An instance backup made by this release can only be restored on a server that runs this release or a newer one: update every server before moving backups between them.

0.1.1​

Released 17 October 2026.

Improvements​

  • Added an Update Odoo add-ons button, with a Fetch the newest commit switch, to an instance's Modules tab.
  • Changed what happens when the license cannot be read or verified: nothing is switched off, the server keeps running on its last valid license for 14 days, and a critical alert, the banner and the License page say to install a newly issued license.

Bugfixes​

  • Fixed an issue where repairing the server while an instance's pre-authentication had just been switched off took every instance's website offline.
  • Fixed an issue where switching an instance to the Enterprise edition and applying it did not install the Enterprise add-ons and asked for an image rebuild instead.
  • Fixed an issue where an instance switched back to its previous edition was reported as already applied while it still ran with the other edition's settings.
  • Fixed an issue where installing or repairing the server printed a warning for every stored credential although nothing was wrong.
  • Fixed an issue where a license file the server could no longer read switched off Odoo Enterprise, backups, mail, alert channels, firewall rules, accounts and other licensed features as if the license had been removed.
  • Fixed an issue where the "back on the license, yours to re-do" notice stayed on an instance's Configuration tab after the edition was switched back to Enterprise and applied.
  • Fixed an issue where installing or updating the server failed when downloading a new host agent took longer than a minute and a half.
  • Fixed an issue where listing what the license switched off from the command line always asked for a server connection, even when one was given.

0.1.0​

Released 17 October 2026.

Improvements​

  • Added the first official release.