Skip to content

project.yml — IaC Manifest

The single source of truth for each Odoo project. Located at the root of every project directory.

Full Example

project:
  name: client1
  author: My Agency
  project_hash: a1b2c3d4e5f6g7h8i9j0...  # auto-generated (64-char SHA-256)
  master_password: "supersecret"           # optional

environments:
  main:
    env_hash: abc123def456789              # auto-generated (15-char)
    server:
      image: odoo
      version: 18.0
      env_type: dev                        # "dev" or "prod"
      users: 5
      ram: auto                            # "auto" or integer GB
      domain: client1.com                  # required for production
      port: 8069                           # dev only
      websecure: true                      # production: Let's Encrypt
      traefik_name: client1-dev            # optional: override Traefik router name
    repositories:                          # optional
      - url: https://github.com/user/custom_addons.git
        branch: 18.0
        token: ghp_xxxx                    # optional
    preinstall:                            # optional shell commands
      - "npm install -g less"
    postinstall:                           # optional shell commands
      - "pip install odoo-addon-l10n_ar"
    command: -- --dev=reload               # optional custom Odoo command

Project Fields

Field Required Description
name Yes Project name (directory name)
author Yes Person or agency owning the project
project_hash Auto Unique 64-char SHA-256 identifier
master_password No Odoo admin password (auto-generated if absent)

Environment Fields

Field Required Description
env_hash Auto Unique 15-char identifier
server.image Yes Docker image (e.g. odoo, custom-build)
server.version Yes Odoo version
server.env_type Yes dev or prod
server.users Yes Estimated concurrent users (affects workers)
server.ram Yes RAM in GB or auto
server.domain Prod Domain name
server.port Dev Host port for Odoo
server.websecure Prod Enable Let's Encrypt
server.proxy_mode No Enable proxy_mode = True in odoo.conf
server.traefik_name No Override Traefik router name
repositories No List of Git repos to clone into addons/
preinstall No Shell commands before pip install
postinstall No Shell commands after pip install
command No Custom Odoo CLI command