Environment (of env)¶
Manage Odoo environments — start, stop, configure, and monitor.
of env up [env]¶
Start an environment (default: main).
| Flag | Default | Description |
|---|---|---|
-v, --verbose |
false |
Show live Docker logs |
--json |
false |
JSON output |
of env down [env]¶
Stop an environment.
| Flag | Default | Description |
|---|---|---|
--json |
false |
JSON output |
of env restart [env]¶
Restart an environment.
| Flag | Default | Description |
|---|---|---|
-v, --verbose |
false |
Verbose output |
--json |
false |
JSON output |
of env pull [env]¶
Pre-pull base images (Odoo, PostgreSQL).
| Flag | Default | Description |
|---|---|---|
--json |
false |
JSON output |
of env init [env]¶
Initialize from project.yml — build Dockerfile, clone repos, generate config.
| Flag | Default | Description |
|---|---|---|
--up, -u |
false |
Start after init |
--json |
false |
JSON output |
--db-name |
— | Default database name (also used as the DB to initialize with --init-db) |
--hide-db-list/--no-hide-db-list |
— | Hide DB list from login |
--recreate |
false |
Recreate docker-compose.yml even if it already exists |
--init-db |
false |
Create the database and install modules after setup |
--modules, -m |
base |
Modules to install on init (comma separated) |
--language |
en_US |
Language to load on init |
--admin-user |
admin |
Admin user to configure |
--admin-password |
— | Admin password to set (random if omitted) |
By default, of env init skips regenerating docker-compose.yml and .env when they already exist; use --recreate to force it.
Clones repositories specified in project.yml, resolves ${VAR} tokens from shell or .env, and updates .project.lock with exact commit SHAs and environment metadata.
With --init-db, odoofly creates the database (named after --db-name or the project name) and installs the requested modules, using the DB_USER, DB_PASSWORD and ADMIN_PASSWORD values from the environment .env. It starts the containers first if they are not running, reconciles the postgres role password with the .env, sets the admin user password (random unless --admin-password is given) and prints the access data (URL, admin and DB credentials, master password). It also writes db_name into etc/odoo.conf and restarts the odoo container so opening the URL lands directly on the database login page instead of the database selector.
of env rm [env]¶
Remove an environment folder and optionally containers/volumes. Also removes the environment entry from .project.lock.
| Flag | Default | Description |
|---|---|---|
--all |
false |
Remove both project and environment |
--yes, -y |
false |
Skip confirmation |
--json |
false |
JSON output |
of env new¶
Create a new environment (dev or staging). The environment directory is automatically added to the project's .gitignore. Logs an ### Added entry in the project's CHANGELOG.md.
| Flag | Default | Description |
|---|---|---|
--name, -n |
— | Environment name |
--image, -i |
config default | Docker image |
--version |
config default | Odoo version |
--production, -P |
false |
Production mode |
--staging, -s |
false |
Staging mode (clones main) |
--domain, -d |
— | Domain (production) |
--port |
auto | Dev port |
--users, -u |
5 |
Concurrent users |
--ram, -r |
auto |
RAM in GB |
--websecure, -w |
false |
Let's Encrypt |
--command, -c |
— | Custom Odoo command |
--repos |
— | JSON array of repos |
--preinstall |
— | Pre-build shell commands |
--postinstall |
— | Post-build shell commands |
--yes, -y |
false |
Skip confirmation |
--json |
false |
JSON output |
--db-name |
— | Default database name |
--hide-db-list/--no-hide-db-list |
— | Hide DB list |
of env status [env]¶
Show container status and health.
| Flag | Default | Description |
|---|---|---|
--json |
false |
JSON output |
of env ls¶
List all environments across projects.
| Flag | Default | Description |
|---|---|---|
--json |
false |
JSON output |
of env url [env]¶
Show formatted access URL.
| Flag | Default | Description |
|---|---|---|
--json |
false |
JSON output |
of env logs [env]¶
View Odoo container logs.
| Flag | Default | Description |
|---|---|---|
--tail, -t |
all | Number of lines |
--json |
false |
JSON output (requires --tail) |
of env shell [env] [db]¶
Open interactive odoo shell.
| Argument | Default | Description |
|---|---|---|
env |
main |
Environment name |
db |
odoo |
Database name |
of env stats [env]¶
Live resource monitor (CPU/RAM/IO), refreshes every 0.5s.
| Flag | Default | Description |
|---|---|---|
--json |
false |
Single snapshot as JSON |
of env conf [env]¶
View or modify odoo.conf.
| Flag | Description |
|---|---|
--users, -u |
Set workers based on user count |
--ram |
Set memory limits (GB) |
--auto-ram |
Auto-calculate from server specs |
--admin-passwd |
Change admin password |
--db-user |
PostgreSQL user |
--db-password |
PostgreSQL password |
--proxy-mode |
Enable proxy mode |
--db-name |
Set default database |
--clear-db-name |
Remove default DB (show picker) |
--hide-db-list/--no-hide-db-list |
Toggle DB list |
--set key=value |
Set arbitrary config key |
--unset key |
Remove config key |
--show |
Display current config |
--restart, -r |
Restart after applying |
--json |
JSON output |
of env check [env]¶
Runtime health check — containers, logs, DB connectivity, port, odoo.conf, .env, repos.
Checks for:
- Container status and recent ERROR/FATAL in logs
- Database accessibility
- Port binding
- odoo.conf required keys
- .env required variables
- Repository clone status
- Hardcoded token warnings — alerts when a repository token is a plain string instead of a ${VAR} reference
| Flag | Default | Description |
|---|---|---|
--json |
false |
JSON output |
of env update [env] [db]¶
Update modules + optionally git and server config.
| Flag | Default | Description |
|---|---|---|
--module, -m |
all | Module(s) to update, comma-separated (e.g. -m a,b,c). Installed modules go to -u, known-but-uninstalled to -i, unknown names raise "Module not found" |
--git, -g |
false |
Update all repos from git (updates .project.lock) |
--so |
false |
Update server options |
--stash, -s |
false |
Stash changes before git pull |
--restart, -r |
false |
Restart after update |
-v, --verbose |
false |
Verbose output |
--json |
false |
JSON output |
--db-name |
— | Default database name |
--hide-db-list/--no-hide-db-list |
— | Hide DB list |
Example: update a specific list of modules
of env install [env] [db] [module]¶
Install an Odoo module.
| Flag | Default | Description |
|---|---|---|
-v, --verbose |
false |
Show install logs |
--json |
false |
JSON output |
of env uninstall [env] [db] [module]¶
Uninstall an Odoo module.
| Flag | Default | Description |
|---|---|---|
-v, --verbose |
false |
Show uninstall logs |
--json |
false |
JSON output |
of env modules [env] [db]¶
List all or installed modules.
| Flag | Default | Description |
|---|---|---|
--installed, -i |
false |
Only installed modules |
--json |
false |
JSON output |
of env update-list [env] [db]¶
Refresh the Odoo module/app list in a database (runs ir.module.module.update_list() inside the Odoo container).
| Flag | Default | Description |
|---|---|---|
-v, --verbose |
false |
Show detailed update output |
--json |
false |
JSON output |
of env password [env] [db] [user] [password]¶
Reset any user password via DB injection.
| Flag | Default | Description |
|---|---|---|
--random, -r |
false |
Generate random password |
--json |
false |
JSON output |
of env restore [env] [backup_path]¶
Restore a .zip backup to an environment.
| Flag | Default | Description |
|---|---|---|
--db |
from manifest | Target database name |
--yes, -y |
false |
Skip confirmation |
--json |
false |
JSON output |