Metadata-Version: 2.5
Name: youca-setup
Version: 0.1.0
Summary: Youca Setup for Odoo - CLI tool to create, configure and manage Odoo development environments (Docker + PostgreSQL).
Project-URL: Homepage, https://github.com/Fitiafenohaja/youca-setup
Project-URL: Repository, https://github.com/Fitiafenohaja/youca-setup
Project-URL: Documentation, https://github.com/Fitiafenohaja/youca-setup#readme
Project-URL: Changelog, https://github.com/Fitiafenohaja/youca-setup/blob/main/CHANGELOG.md
Project-URL: Issues, https://github.com/Fitiafenohaja/youca-setup/issues
Author: Youca Setup contributors
License-Expression: MIT
License-File: LICENSE
Keywords: cli,development,docker,environment,odoo,postgresql
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Typing :: Typed
Requires-Python: >=3.10
Requires-Dist: docker>=7.0
Requires-Dist: jinja2>=3.1
Requires-Dist: psutil>=5.9
Requires-Dist: psycopg[binary]>=3.1
Requires-Dist: pydantic>=2.6
Requires-Dist: python-dotenv>=1.0
Requires-Dist: pyyaml>=6.0
Requires-Dist: rich>=13.7
Requires-Dist: typer>=0.12
Provides-Extra: dev
Requires-Dist: mypy>=1.9; extra == 'dev'
Requires-Dist: pre-commit>=3.6; extra == 'dev'
Requires-Dist: pytest-cov>=4.1; extra == 'dev'
Requires-Dist: pytest-mock>=3.12; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff>=0.4; extra == 'dev'
Requires-Dist: testcontainers>=4.0; extra == 'dev'
Requires-Dist: types-pyyaml>=6.0; extra == 'dev'
Description-Content-Type: text/markdown

# Youca Setup for Odoo

[![CI](https://github.com/Fitiafenohaja/youca-setup/actions/workflows/ci.yml/badge.svg)](https://github.com/Fitiafenohaja/youca-setup/actions/workflows/ci.yml)
[![PyPI version](https://img.shields.io/pypi/v/youca-setup.svg)](https://pypi.org/project/youca-setup/)
[![Python versions](https://img.shields.io/pypi/pyversions/youca-setup.svg)](https://pypi.org/project/youca-setup/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/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.

## Features

- `youca-setup init` — scaffold a full Odoo project (Compose file, `odoo.conf`, `.env`, addons directories); `--odoo-version`/`--postgres-version` pick the image majors (defaults: latest supported); `--template` reuses a custom template directory and a git repository is initialised by default
- `youca-setup start` / `stop` / `restart` — environment lifecycle via Docker Compose
- `youca-setup status` — running state, ports and health at a glance
- `youca-setup logs` — container logs without touching Docker directly
- `youca-setup shell` — interactive shell (`/bin/bash` or `psql`) inside a container
- `youca-setup doctor` — diagnose Docker, PostgreSQL, ports and configuration; `--fix` applies corrections
- `youca-setup module create` — scaffold Odoo addon modules with an optional base model
- `youca-setup backup` / `restore` — database + filestore + configuration archives
- `youca-setup export` / `import` — portable environment snapshots (config + `.env` + addons)
- `youca-setup info` / `projects` / `remove` — inspect, list or unregister known projects

## Installation

Requires Python 3.10+ and Docker with Compose v2.

```bash
pip install youca-setup
```

## Quick start

```bash
# 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
```

## 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

Full guides (user and developer) are available in
[docs/](docs/index.md). Release notes are tracked in
[CHANGELOG.md](CHANGELOG.md).

## Development

```bash
pip install -e ".[dev]"
pre-commit install
ruff check .
mypy src/youca_setup
pytest
```

## License

Distributed under the [MIT License](LICENSE).