Install
$ agentstack add skill-ahmed-lakosha-odoo-plugins-odoo-docker ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ● Network access Used
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Odoo Docker Infrastructure Skill
1. Overview
Docker infrastructure and deployment expert for multi-version Odoo Enterprise environments. Handles production deployment, nginx configuration, CI/CD pipelines, performance tuning, security hardening, and container troubleshooting.
> v2.1: Nginx config, debugging, and performance tuning are handled via natural language. > For project init, compose generation, deployment, and builds, use /odoo-docker sub-commands.
What This Skill Does
- Production Deployment: docker-compose with nginx, SSL, PostgreSQL tuning, resource limits, warm-up
- CI/CD Pipelines: Build and push multi-version Docker images via GitHub Actions
- Performance Tuning: Data-driven recommendations from real stress tests
- Nginx Configuration: Optimized configs with gzip (90% CSS reduction), WebSocket, asset caching
- Container Debugging: Systematic troubleshooting using known issue patterns
- Project Setup: Auto-detect Odoo version, scan modules, generate all configs + IDE integration
- Compose Generation: Smart compose for dev/staging/production scenarios
- Image Management: Build, tag, push images for Odoo 14-19 (amd64 + arm64)
When to Use This Skill vs odoo-service
| Use odoo-service for... | Use odoo-docker for... | |---|---| | Starting/stopping servers | Deploying to production | | Basic docker up/down/logs | Configuring nginx reverse proxy | | Database backup/restore | CI/CD pipeline setup | | IDE configuration | Performance analysis & tuning | | Environment initialization | Container debugging & troubleshooting | | Module install/update | Building & pushing Docker images |
Natural Language Triggers
- "deploy to production", "production docker setup", "deploy odoo with nginx"
- "configure nginx for odoo", "add reverse proxy", "enable gzip"
- "optimize docker performance", "slow containers", "tune workers"
- "build docker image", "push to docker hub", "ci/cd pipeline"
- "container won't start", "500 errors in docker", "debug container"
- "set up docker for this project", "initialize docker environment"
- "generate docker-compose", "create compose file"
2. User Configuration
Users can customize this plugin by creating ~/.claude/odoo-docker.local.md with YAML frontmatter. See odoo-docker.local.md.example in the plugin root for the full template.
Key settings:
image_prefix: Docker Hub org/image prefix (default:myorg/odoo)default_version: Default Odoo version when not auto-detected (default:17)git_org: GitHub organization for source clone suggestions
When generating configs, check for user overrides in .local.md first. If not found, use template defaults and prompt the user for their image prefix on first use.
3. Architecture
Core Principle: Source Mounted, Not Baked
Docker Hub: {image_prefix}:19.0-enterprise (pre-built base image)
Workspace:
sources/odoo-19/ Many containers. No rebuilding per project.
Key Design Decisions
- Source code is NOT baked into the image — mounted at runtime via Docker volumes (read-only)
- Two deployment models: Standalone workspaces (per-version Dockerfile) and centralized workspace (pre-built images from Docker Hub)
- Container isolation: Each project gets its own Docker network, named volumes, port mappings
Container Directory Structure
/opt/odoo/source/ # Start containers
./scripts/start.sh --dev # Start with auto-reload
./scripts/stop.sh # Stop containers
./scripts/logs.sh # Odoo logs
./scripts/shell.sh 19 # Bash into container
Running Multiple Projects
Assign unique ports per project in .env:
RELIEF_CENTER_HTTP_PORT=8069
SOQYA_HTTP_PORT=8169
TAQAT_HTTP_PORT=8269
13. Database Management in Docker
Create Database via API
curl -s -X POST http://localhost:8069/web/database/create \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","method":"call","params":{"master_pwd":"changeme","name":"my_db","lang":"en_US","password":"admin","login":"admin"}}'
Access from Host
psql -h localhost -p 5433 -U odoo -d my_database
Backup and Restore
docker exec {db_container} pg_dump -U odoo my_database > backup.sql
docker exec -i {db_container} psql -U odoo -d my_database < backup.sql
14. Debugging & Development
Dev Mode
DEV_MODE=1 docker compose up -d
Remote Debugger (debugpy)
- Set
ENABLE_DEBUGGER=1in.env - Expose port
5678:5678in docker-compose - Container waits for IDE attach
- VS Code config:
{
"name": "Attach to Odoo Docker",
"type": "debugpy",
"request": "attach",
"connect": { "host": "localhost", "port": 5678 },
"pathMappings": [
{ "localRoot": "${workspaceFolder}", "remoteRoot": "/opt/odoo/source" }
]
}
Module Management Inside Container
python -m odoo -c /etc/odoo/odoo.conf -d {db} -u {module} --stop-after-init
python -m odoo -c /etc/odoo/odoo.conf -d {db} -i {module} --stop-after-init
15. Troubleshooting
For the full troubleshooting reference with all known issue patterns and diagnostic commands, read ${CLAUDE_PLUGIN_ROOT}/reference/troubleshooting.md.
For performance-related patterns and lessons learned from stress tests, read ${CLAUDE_PLUGIN_ROOT}/reference/docker-patterns.md.
For the production deployment checklist, read ${CLAUDE_PLUGIN_ROOT}/reference/production-checklist.md.
16. Quick Command Reference
# Build local image
docker compose build
# Pull pre-built image
docker pull {image_prefix}:19.0-enterprise
# Start / Stop
docker compose up -d
docker compose down
# Logs / Shell
docker compose logs -f odoo
docker compose exec odoo bash
# Module update inside container
python -m odoo -c /etc/odoo/odoo.conf -d {db} -u {module} --stop-after-init
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: ahmed-lakosha
- Source: ahmed-lakosha/odoo-plugins
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.