Skip to content

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 init main --init-db
of env init main --init-db -m base,sale --language es_AR

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 update main odoo -m sale,stock,account

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