Odoo on Hetzner with Cloudflare
Deploy Odoo on Hetzner with Cloudflare DNS
Summary
Categories |
Server Templates
|
Tags |
Odoo
Docker
Cloudflare
Hetzner
|
Authors |
Cetmix OU
|
License | AGPL-3 |
Version | 1.0.5 |
Call sign | cx_server_template_odoo_on_hetzner |
Website | https://cetmix.com/contactus |
This Server Template is used for deploying an Odoo instance on Hetzner infrastructure using the Cetmix Tower platform. It provides all required parameters to automate Odoo provisioning, including hosting configuration, container orchestration, and optional DNS integration.
Video tutorial
🏗️ Architecture Components
1. Infrastructure Layer
Cloud Provider: Hetzner Cloud (via API)
Server Locations: fsn1 (Falkenstein), nbg1 (Nuremberg), hel1 (Helsinki), ash (Ashburn), hil (Hillsboro), sin (Singapore)
Server Types: CX22–CX52, CPX11–CPX51, dedicated AX lines
Operating System: Ubuntu 22.04 or 24.04 LTS
SSH Access: Public key authentication via provided ssh_key_id
2. Container Orchestration
Platform: Docker-based deployment
Image Strategy:
Uses cetmix-odoo-docker base image (tower-odoo-core)
Final image built with addons using Docker multi-stage build
Add-ons Sources:
GitHub, GitLab, Bitbucket (supports tokens and custom branches)
Local addons folders
Restart Policies: Configurable; ensures auto-restart on failure
Custom Options:
Dynamic ports for gevent / longpolling
Optional extra options for odoo.conf
3. Database Layer
Database: PostgreSQL (shared container model)
Version Support: 9.6 – 16 (inherits from shared DB container)
Connection Settings: Injected into Odoo config
Security: Password and host are secret-managed
4. Web Layer
Reverse Proxy: Shared Nginx container (external to this file)
SSL Termination: Handled externally (e.g. via certbot container)
Port Exposure: Container-specific ports for HTTP, longpolling, etc.
WS Support: Fully supports real-time via gevent
5. DNS Management
DNS Provider: Cloudflare (optional)
Automation: A-record can be automatically added if configured
Variables: cloudflare_token, cloudflare_zone, domain_name
This package is distributed under the GNU Affero General Public License v3.0 (AGPL-3) or later license.