Youca Setup for Odoo
Youca Setup for Odoo is a command-line tool that creates, configures and
manages Odoo development environments. Backed by Docker and PostgreSQL, it
turns a blank machine into a working Odoo project in one command — and keeps
the day-to-day workflow (start, status, logs, shell, backup,
export, …) in a single, consistent interface.
It is a thin orchestration layer over proven tools: you keep full control of your toolchain, while the repetitive setup is fully automated.
- Scaffold a complete project:
docker-compose.yml,odoo.conf,.env, addons directories, git repository, validatedyouca-setup.yamlconfig. - Manage the lifecycle with Docker Compose:
start,stop,restart,status,logs. - Develop: scaffold Odoo modules (
module create), open interactive shells (shell), diagnose the environment (doctor). - Protect data: timestamps backups and restores of database + filestore +
configuration (
backup/restore). - Move around: portable environment snapshots (
export/import) and multi-project management (projects,info,remove).
Features
youca-setup init— full project scaffold with sensible defaults; pick the Odoo and PostgreSQL majors (--odoo-version,--postgres-version), the PostgreSQL backend (dockerorsystem), extra addons directories (--addons), a custom Jinja2 template directory (--template) and git initialisation (on by default,--no-git). Interactive and fully scriptable (--no-interactive) modes.youca-setup start/stop/restart— environment lifecycle via Docker Compose, with automatic handling of an occupied HTTP port.youca-setup status— running state, ports and health at a glance (--verbosefor details).youca-setup logs— container logs without touching Docker directly.youca-setup shell— interactive shell (/bin/bash) or database console (psqlwith credentials from.env) inside a container.youca-setup doctor— diagnose Python, Docker, PostgreSQL, ports and configuration;--fixapplies corrections (destructive ones confirm).youca-setup module create— scaffold Odoo addon modules, optionally with a full model skeleton (--model).youca-setup backup/restore— database + filestore + configuration archives, restored with mandatory confirmation (--yesto force).youca-setup export/import— portable environment snapshots (config +.env+ addons), sharing secrets with your team.youca-setup info/projects/remove— inspect, list or unregister known projects.
Requirements
- Python 3.10+
- Docker Engine with Docker
Compose v2 (for the
dockerPostgreSQL backend) - PostgreSQL 14+ (only for the
systemPostgreSQL backend)
Installation
pip install youca-setup
or with uv:
uv tool install youca-setup
Quick start
# Create a project (Odoo 18, PostgreSQL 16, a custom addons directory)
youca-setup init school --odoo-version 18 --postgres-version 16 --postgres docker --addons custom-addons
# Run the environment
cd school
youca-setup start # → http://localhost:8069
# Scaffold a module with a base model
youca-setup module create school_management --model student
# Check that everything is healthy
youca-setup doctor
The generated project looks like this:
school/
├── youca-setup.yaml # validated project configuration
├── .env # local secrets (gitignored by default)
├── .gitignore
├── README.md
├── docker-compose.yml # Odoo + PostgreSQL services
├── config/odoo.conf # server configuration
├── addons/ # default addons mount
├── custom-addons/ # one directory per `--addons` entry
├── data/ # scratch data
└── backups/ # backup archives
Commands
| Command | Purpose |
|---|---|
youca-setup init |
Create a new Odoo project (interactive or scripted) |
youca-setup start |
Start the environment via Docker Compose |
youca-setup stop |
Stop the environment |
youca-setup restart |
Restart the environment |
youca-setup status |
Show service state and host ports |
youca-setup logs |
Show service logs |
youca-setup info |
Show details of the current project |
youca-setup projects |
List all known projects |
youca-setup remove |
Unregister (and optionally delete) a project |
youca-setup doctor |
Diagnose and (optionally) fix the environment |
youca-setup module create |
Scaffold an Odoo addon module |
youca-setup backup |
Create a database + filestore + config archive |
youca-setup restore |
Restore from a backup archive |
youca-setup shell |
Open an interactive shell in a container |
youca-setup export |
Export the environment to a portable .tar.gz |
youca-setup import |
Import an environment archive into a new project |
Documentation
Development
pip install -e ".[dev]"
pre-commit install
ruff check .
mypy src/youca_setup
pytest
The test suite is split into fast unit tests (mocked Docker and psycopg, no
network) and integration tests (marked integration, require a running Docker
daemon):
pytest -m "not integration" # unit tests only
pytest -m integration # real Docker
License
Distributed under the MIT License.
Release files for youca-setup 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| youca_setup-0.1.1.tar.gz | 65.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| youca_setup-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 125.7 kB
Release files / youca_setup-0.1.1.tar.gz
| Download URL | youca_setup-0.1.1.tar.gz |
|---|---|
| Size | 65.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c8604239d0fd287a7fab5b2fc23c6b15469f99d8872c4acc0509474cffc7de1e
|
|
BLAKE2b-256 checksum How to use checksums |
c6d6ee980c22c38c26a09d5a290bee6900d8faa0696b258910d60af41491bc58
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.
Transparency logRelease files / youca_setup-0.1.1-py3-none-any.whl
| Download URL | youca_setup-0.1.1-py3-none-any.whl |
|---|---|
| Size | 60.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
1bb0c42800c242312ec2bb876bef36d20e35f4921e4d3b8744d9c78ce4bbeba0
|
|
BLAKE2b-256 checksum How to use checksums |
7aa92d3cb07726e1037ea608a501d02c9d0affa2b22c0777d616e2b504fdff08
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.
Transparency log