Managing Services
Start, stop, restart, and manage your Odoo services.
Once a service is created, you can manage its lifecycle directly from the hav.sh dashboard.
#Starting and stopping
#Start a service
If a service is stopped, click the Start button on the service page. The container will boot up and Odoo will become accessible at its URL.
#Stop a service
Click Stop to shut down a running service. This stops the container but preserves all data — the database, files, and configuration remain intact. You can start it again at any time.
#Restart a service
Click Restart to stop and immediately start the service. This is useful when:
- You've installed or updated an addon
- Odoo seems unresponsive
- You've changed configuration that requires a restart
Stopping a service does not delete any data. Your database and files are safely preserved.
#Deleting a service
To permanently remove a service:
- Open the service you want to delete
- Click Delete in the service actions
- Confirm the deletion
Deleting a service permanently removes the container, database, and all associated files. Make sure you have a backup before deleting. This action cannot be undone.
#Neutralizing a service
The Neutralize action strips sensitive data from a service. This is useful when you want to create a safe demo or test copy of a production instance — it anonymizes data so real customer information isn't exposed.
#Updating the base image
Each Odoo service is built on a base image. Pulling the latest base image picks up security patches and Odoo updates without changing your service's configuration.
#Image pull strategy
The Image pull strategy setting on the service controls how the base image is kept up to date:
| Strategy | Behavior |
|---|---|
| Manual | The image is only pulled when you trigger it yourself (default) |
| Weekly | The latest base image is pulled and the service image rebuilt every week |
| Monthly | The latest base image is pulled and the service image rebuilt every month |
| Quarterly | The latest base image is pulled and the service image rebuilt every three months |
Automatic pulls only run for running services and are checked once per day.
#Pulling manually
You can trigger a pull at any time, regardless of the strategy:
- On the service page, open Rerun Steps and click Pull Image
- In the services list, open the row actions menu and click Pull Image
- To pull for several services at once, select them in the services list and use the Queue: Pull Image bulk action
Pulling only downloads the latest base image and rebuilds the service image. The running container keeps using the old image until the next Restart or Redeploy — there is no downtime when pulling.
Every pull is recorded in the service's Actions tab and timeline, and the Last image pull column in the services list shows when each service last pulled its image.
#Configuring Odoo settings
The Extra Configuration section allows you to add custom Odoo configuration settings directly to your service. These settings are injected into the Odoo configuration file (.odoorc) when the service starts.
#Adding configuration
- Open the service you want to configure
- Expand the Extra Configuration section (collapsed by default)
- Add key-value pairs for your settings
- Save the changes
- Restart the service for the new settings to take effect
#Common settings
| Setting | Description | Example |
|---|---|---|
limit_memory_hard |
Hard memory limit per worker (bytes) | 2684354560 |
limit_memory_soft |
Soft memory limit per worker (bytes) | 2147483648 |
limit_time_cpu |
CPU time limit per request (seconds) | 600 |
limit_time_real |
Real time limit per request (seconds) | 1200 |
workers |
Number of worker processes | 4 |
max_cron_threads |
Maximum cron worker threads | 2 |
Changes to configuration settings require a service restart to take effect. Use the Restart button after saving your changes.
Avoid newline characters in configuration values — they are not supported and will cause validation errors.
#Viewing live logs
You can stream the Odoo container logs in real-time directly from the service page. This is useful for debugging issues, monitoring startup behavior, or watching request activity.
#How to view logs
- Open a running service
- Click the View Logs button in the header
- A slide-over panel opens and begins streaming logs in real-time
The log viewer shows both standard output and error output (highlighted in yellow). Logs are streamed live for up to 5 minutes per session. You can close the panel and reopen it at any time to start a new session.
The View Logs button is only available when the service is running.
#Viewing actions
Every operation performed on a service is logged in the Actions tab. Each action shows:
- The operation that was performed
- Whether it succeeded or failed
- When it ran
- Detailed output (for troubleshooting)
This gives you a complete audit trail of everything that has happened to a service.
#Webhooks
Each service has a unique webhook token that allows external systems to send notifications to hav.sh. This is used for:
- Syncing the list of installed modules
- Tracking module upgrades
- Integration with CI/CD pipelines