Skip to main content

Youca Setup for Odoo

CI PyPI version Python versions License: MIT

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, validated youca-setup.yaml config.
  • 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 (docker or system), 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 (--verbose for details).
  • youca-setup logs — container logs without touching Docker directly.
  • youca-setup shell — interactive shell (/bin/bash) or database console (psql with credentials from .env) inside a container.
  • youca-setup doctor — diagnose Python, Docker, PostgreSQL, ports and configuration; --fix applies 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 (--yes to 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 docker PostgreSQL backend)
  • PostgreSQL 14+ (only for the system PostgreSQL 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)

Source distribution for youca-setup 0.1.1
File Size Uploaded
youca_setup-0.1.1.tar.gz 65.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for youca-setup 0.1.1
File Interpreter ABI Platform
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 log

Release 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

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page