mcpField
O
odoo-service

odoo-service

github.com/ahmed-lakoshaCloud & DevOps7669 installsUpdated 31w ago
Repository

About odoo-service

An Odoo operations skill for developers managing server environments and application lifecycle tasks. It supports server and database operations, Docker management, module workflows, IDE setup, and production readiness checks.

Key features

  1. 01Manage server lifecycle and environments
  2. 02Back up and manage databases
  3. 03Generate and operate Docker setups
  4. 04Install, update, and scaffold modules
  5. 05Configure VSCode and PyCharm
  6. 06Check production readiness

Use cases

  1. 01Start or restart an Odoo development server
  2. 02Back up or restore an Odoo database
  3. 03Update modules after code changes
  4. 04Prepare an Odoo project for production

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/ahmed-lakosha/odoo-plugins --skill odoo-service

After installing, type/odoo-servicein Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

scripts/
__init__.py
db_manager.py
docker_manager.py
env_initializer.py
ide_configurator.py
server_manager.py
shared.py

Details

From the project README

Odoo Service Skill

Capabilities

This skill manages the complete Odoo server lifecycle:

  • Server: Start, stop, restart, status check (Windows/Linux/macOS)
  • Environment: Auto-detect venv/Docker/bare Python; initialize new environments
  • Database: Backup, restore, create, drop, list, reset admin password
  • Docker: Generate Dockerfiles/compose, manage containers, exec into shells
  • IDE: Generate VSCode and PyCharm configurations with debug support
  • Module: Install, update, scaffold, refresh module list
  • Readiness: Production quality gate (tests, security, translations, manifest)

Environment Detection

Priority order: Docker > venv > bare Python.

SignalEnvironment
docker-compose.yml or Dockerfile presentDocker
.venv/, venv/, or env/ with Python executableLocal venv
None of the aboveBare Python

Override with flags: --docker, --venv, --env bare.

Odoo Version Matrix

VersionPythonLongpolling KeyExtra Deps
143.7 - 3.10longpolling_port-
153.8 - 3.11longpolling_port-
163.9 - 3.12gevent_port-
173.10 - 3.13gevent_port-
183.10 - 3.13gevent_portcbor2
193.10 - 3.13gevent_portcbor2, python-magic

Quick Reference

Server
# Start (dev mode)
python -m odoo -c conf/PROJECT.conf --dev=all

# Start (production)
python -m odoo -c conf/PROJECT.conf --workers=4

# Stop (Windows)
FOR /F "tokens=5" %P IN ('netstat -ano ^| findstr :8069') DO taskkill /PID %P /F

# Stop (Linux/Mac)
lsof -ti:8069 | xargs kill -9
Module Operations
# Install
python -m odoo -c conf/PROJECT.conf -d DB -i MODULE --stop-after-init

# Update (most common after code changes)
python -m odoo -c conf/PROJECT.conf -d DB -u MODULE --stop-after-init

# Refresh module list (before installing NEW modules)
python -m odoo -c conf/PROJECT.conf -d DB --update-list
Database
# Backup (compressed custom format - recommended)
pg_dump -U odoo -h localhost -Fc DBNAME -f backups/DBNAME_YYYYMMDD.dump

# Restore
createdb -U odoo NEWDB && pg_restore -U odoo -d NEWDB backup.dump

# Reset admin password
psql -U odoo -d DBNAME -c "UPDATE res_users SET password='newpass' WHERE login='admin';"
Docker
docker-compose up -d              # Start
docker-compose down               # Stop
docker-compose up -d --build      # Rebuild and start
docker-compose exec odoo bash     # Shell into container

Scripts

Located in odoo-service/scripts/ — all standalone, stdlib-only (optional psutil):

ScriptPurpose
server_manager.pyStart/stop/restart/status, module install/update
env_initializer.pyVenv creation, PostgreSQL check, config generation
db_manager.pyBackup/restore/create/drop, admin password reset
docker_manager.pyDockerfile/compose generation, container lifecycle
ide_configurator.pyVSCode/PyCharm config generation

Config File Format

[options]
addons_path = odoo/addons,projects/PROJECTNAME
admin_passwd = 123
db_host = localhost
db_port = 5432
db_user = odoo
db_password = odoo
dbfilter = PROJECTNAME.*
http_port = 8069
gevent_port = 8072
workers = 0

Naming convention: conf/{PROJECT}{VERSION}.conf (e.g., conf/myproject17.conf).

Comments

Markdown supported