Adds the first governed Odoo deployment path to GroundControl: Odoo Community 19 + PostgreSQL behind host Caddy, with persistence, generated credentials, health checks, and paired local database/filestore recovery archives.
Product path
This establishes the deterministic primitive required before natural-language deployment is exposed to agents:
validate a typed Ghana business intent
generate reviewed template inputs
require approval for stack/domain/business initialization mutations
verify public reachability, persistence, requested modules, and recovery artifacts
preserve explicit rollback instructions and recovery uncertainty
Changes
add vps-caddy-odoo-community template
add OdooDeploymentIntent and deterministic plan generation
allowlist the first supported Odoo business modules
validate domain, tagged images, loopback host port, and backup policy
add template and planner tests
document the backup/restore maturity boundary
Safety and maturity
Odoo binds only to a loopback host port and is published through validated Caddy HTTPS.
Persistent volumes are never part of the template rollback action.
Local archives are not described as disaster recovery.
Recoverability remains unconfirmed until a disposable restore test succeeds.
Ghana payments, tax, and payroll remain out of scope until their own integration acceptance paths exist.
Verification
Docker image manifest check for odoo:19.0: passed
Rendered Odoo Compose parsed with docker compose config: passed
Focused tests: pnpm vitest run src/lib/odoo-deployment.test.ts src/lib/template-engine.test.ts: passed
Full local tests: pnpm test: 48 files, 366 tests passed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Outcome
Adds the first governed Odoo deployment path to GroundControl: Odoo Community 19 + PostgreSQL behind host Caddy, with persistence, generated credentials, health checks, and paired local database/filestore recovery archives.
Product path
This establishes the deterministic primitive required before natural-language deployment is exposed to agents:
Changes
Safety and maturity
Verification