Skip to content

Mini-Runbot for Odoo 16

Mini-Runbot turns authorized Git revisions and a module list into an isolated, tested, temporary Odoo 16 environment. It is a single-host proof of concept for trusted code.

What it provides

  • Resolves Git refs to immutable commits and creates separate checkouts.
  • Combines up to ten configured repositories with deterministic addon priority.
  • Installs modules, runs their tests, starts Odoo, and checks the HTTP preview.
  • Stores states, timings, revisions, failures, and logs in SQLite.
  • Exposes the same lifecycle through a dashboard, FastAPI API, and Typer CLI.
  • Isolates every build with its own Compose project, network, database, volumes, and port.
  • Installs and operates on both Windows with PowerShell and Linux with Bash.

Main flow

stateDiagram-v2
    direction LR
    [*] --> NEW
    NEW --> CHECKING_OUT
    CHECKING_OUT --> PREPARING
    PREPARING --> INSTALLING
    INSTALLING --> TESTING
    TESTING --> STARTING
    STARTING --> RUNNING
    RUNNING --> EXPIRED: TTL elapsed
    EXPIRED --> DESTROYING
    FAILED --> DESTROYING
    RUNNING --> DESTROYING: manual destruction
    DESTROYING --> DESTROYED
    DESTROYED --> [*]

    NEW --> FAILED: error
    CHECKING_OUT --> FAILED: error
    PREPARING --> FAILED: error
    INSTALLING --> FAILED: error
    TESTING --> FAILED: error
    STARTING --> FAILED: error
    RUNNING --> FAILED: error

A build reaches RUNNING only after its modules are installed, tests report no failures, the server starts, and the healthcheck returns a valid response.

Next step

Install Mini-Runbot Understand the architecture

Security boundary

Docker and input validation reduce accidents, but Mini-Runbot is not a security boundary for hostile code. Only use operator-configured, trusted repositories.