stateless-container-for-one-os-dev

Stateless hot-reload Odoo 20 codespace for 1b-agent/one-os-dev, deployed on the Easypanel project onebspace. Adapted from the proven stateless-container-for-onebspace-development blueprint (battle-tested Sep 2026 on Odoo 19) — same architecture, retargeted:

Item Value
App service one-os-dev-codespace
DB service one-os-dev-codespace-db (postgres:17 + pgWeb + dbGate)
Host port 18070 → container 8069 (18069 stays with the Odoo 19 os-dev codespace)
Bind mount /root/Documents/trae_projects/one_b_os/one-os-dev → /mnt/one-os-dev (rw)
Base image python:3.12-slim (inline Dockerfile, heredoc ENTRYPOINT)
Hot reload --dev=reload,qweb,assets,xml,werkzeug
Filestore named volume one-os-dev-codespace-filestore → /var/lib/odoo

Deploy (one command + two MCP calls)

python3 deploy.py prepare   # regenerates easypanel.schema.json, inline.Dockerfile, init-odoo.sh, .db_password

Then (TRAE / agent with the Easypanel MCP):

  1. createFromSchema with the JSON from easypanel.schema.json
  2. deployAppService {projectName: "onebspace", serviceName: "one-os-dev-codespace"}
  3. First boot ≈ 5 min (pip install /mnt/one-os-dev builds lxml/pillow/python-ldap)
  4. curl -sS -o /dev/null -w '%{http_code}\n' http://127.0.0.1:18070/web/database/manager → 200
  5. DB manager master password: admin (in .db_password is the postgres password)

Before first boot — put the source where the bind mount expects it

git clone https://agents-apps-and-tools-gitea.nxldoy.easypanel.host/1b-agent/one-os-dev.git \
    /root/Documents/trae_projects/one_b_os/one-os-dev -b 20.0

Live workflow: edit any .py/.xml/.js under that tree — changes go live on next request, no restart, no image rebuild (see the upstream blueprint README §5 for details/troubleshooting).

S
Description
Stateless hot-reload Odoo 20 codespace for 1b-agent/one-os-dev on Easypanel project onebspace (port 18070) - adapted from the proven os-dev blueprint
Readme
36 KiB
0 Stars 1 Watchers 0 Forks
Languages
Python 73.8%
Dockerfile 13.6%
Shell 12.6%