docker.recipes

Odoo ERP System

intermediate

Comprehensive open-source ERP and business management suite.

Overview

Odoo is a comprehensive open-source business management suite that combines enterprise resource planning (ERP), customer relationship management (CRM), and numerous business applications into a single unified platform. Originally released in 2005 as OpenERP, Odoo has evolved into one of the most popular business management solutions, offering modules for accounting, inventory, sales, project management, manufacturing, and human resources. This modular approach allows businesses to start with core functionality and expand their system as needs grow. PostgreSQL serves as Odoo's primary database backend, providing the robust data integrity and performance characteristics essential for business-critical operations. PostgreSQL's ACID compliance ensures transaction reliability for financial data, while its advanced indexing and query optimization capabilities handle complex business logic across multiple modules. The database's support for both relational and JSON data types perfectly complements Odoo's flexible architecture, allowing for structured business data alongside customizable fields and configurations. This stack combination delivers a production-grade business management platform suitable for organizations ranging from small businesses to large enterprises. The pairing leverages PostgreSQL's proven reliability in handling concurrent users and complex business transactions while supporting Odoo's multi-tenancy capabilities for hosting multiple company databases within a single instance.

Key Features

  • Complete ERP suite with integrated CRM, accounting, inventory, sales, and project management modules
  • Multi-company support allowing management of multiple business entities within single Odoo instance
  • Modular architecture enabling selective installation of business applications based on specific needs
  • Advanced PostgreSQL backend with JSONB support for flexible custom fields and configurations
  • Built-in reporting engine with dynamic dashboards and customizable business intelligence views
  • Workflow automation and business process management with approval chains and notifications
  • Multi-currency and multi-language support for international business operations
  • REST API and XML-RPC interfaces for third-party integrations and custom applications

Common Use Cases

  • 1Small to medium businesses implementing comprehensive business management system
  • 2Growing companies transitioning from spreadsheets to integrated ERP solution
  • 3Multi-location businesses requiring centralized inventory and accounting management
  • 4Service companies needing project management with time tracking and invoicing integration
  • 5Retail businesses managing e-commerce integration with inventory and accounting
  • 6Manufacturing companies requiring production planning and supply chain management
  • 7Non-profits managing donors, grants, and program tracking in unified system

Prerequisites

  • Minimum 4GB RAM recommended for production deployment with multiple concurrent users
  • Port 8069 available for Odoo web interface access
  • Basic understanding of ERP concepts and business process management
  • PostgreSQL administration knowledge for database maintenance and optimization
  • Understanding of Odoo's module system for customization and app installation
  • SSL certificate and reverse proxy setup recommended for production environments

For development & testing. Review security settings, change default credentials, and test thoroughly before production use. See Terms

docker-compose.yml

docker-compose.yml
1services:
2 odoo:
3 image: odoo:17
4 container_name: odoo
5 environment:
6 - HOST=db
7 - USER=odoo
8 - PASSWORD=${DB_PASSWORD}
9 volumes:
10 - odoo-web:/var/lib/odoo
11 - odoo-addons:/mnt/extra-addons
12 - ./odoo.conf:/etc/odoo/odoo.conf:ro
13 ports:
14 - "8069:8069"
15 depends_on:
16 - db
17 networks:
18 - odoo-network
19 restart: unless-stopped
20
21 db:
22 image: postgres:15-alpine
23 container_name: odoo-db
24 environment:
25 - POSTGRES_USER=odoo
26 - POSTGRES_PASSWORD=${DB_PASSWORD}
27 - POSTGRES_DB=postgres
28 volumes:
29 - postgres-data:/var/lib/postgresql/data
30 networks:
31 - odoo-network
32 restart: unless-stopped
33
34volumes:
35 odoo-web:
36 odoo-addons:
37 postgres-data:
38
39networks:
40 odoo-network:
41 driver: bridge

.env Template

.env
1# Odoo ERP
2DB_PASSWORD=secure_odoo_password

Usage Notes

  1. 1Web UI at http://localhost:8069
  2. 2Create database on first visit
  3. 3Set master password for database management
  4. 4Install apps from marketplace
  5. 5Community edition is free

Individual Services(2 services)

Copy individual services to mix and match with your existing compose files.

odoo
odoo:
  image: odoo:17
  container_name: odoo
  environment:
    - HOST=db
    - USER=odoo
    - PASSWORD=${DB_PASSWORD}
  volumes:
    - odoo-web:/var/lib/odoo
    - odoo-addons:/mnt/extra-addons
    - ./odoo.conf:/etc/odoo/odoo.conf:ro
  ports:
    - "8069:8069"
  depends_on:
    - db
  networks:
    - odoo-network
  restart: unless-stopped
db
db:
  image: postgres:15-alpine
  container_name: odoo-db
  environment:
    - POSTGRES_USER=odoo
    - POSTGRES_PASSWORD=${DB_PASSWORD}
    - POSTGRES_DB=postgres
  volumes:
    - postgres-data:/var/lib/postgresql/data
  networks:
    - odoo-network
  restart: unless-stopped

Quick Start

terminal
1# 1. Create the compose file
2cat > docker-compose.yml << 'EOF'
3services:
4 odoo:
5 image: odoo:17
6 container_name: odoo
7 environment:
8 - HOST=db
9 - USER=odoo
10 - PASSWORD=${DB_PASSWORD}
11 volumes:
12 - odoo-web:/var/lib/odoo
13 - odoo-addons:/mnt/extra-addons
14 - ./odoo.conf:/etc/odoo/odoo.conf:ro
15 ports:
16 - "8069:8069"
17 depends_on:
18 - db
19 networks:
20 - odoo-network
21 restart: unless-stopped
22
23 db:
24 image: postgres:15-alpine
25 container_name: odoo-db
26 environment:
27 - POSTGRES_USER=odoo
28 - POSTGRES_PASSWORD=${DB_PASSWORD}
29 - POSTGRES_DB=postgres
30 volumes:
31 - postgres-data:/var/lib/postgresql/data
32 networks:
33 - odoo-network
34 restart: unless-stopped
35
36volumes:
37 odoo-web:
38 odoo-addons:
39 postgres-data:
40
41networks:
42 odoo-network:
43 driver: bridge
44EOF
45
46# 2. Create the .env file
47cat > .env << 'EOF'
48# Odoo ERP
49DB_PASSWORD=secure_odoo_password
50EOF
51
52# 3. Start the services
53docker compose up -d
54
55# 4. View logs
56docker compose logs -f

One-Liner

Run this command to download and set up the recipe in one step:

terminal
1curl -fsSL https://docker.recipes/api/recipes/odoo-erp/run | bash

Troubleshooting

  • Database connection error 'could not connect to server': Verify PostgreSQL container is running and DB_PASSWORD environment variable matches between services
  • Odoo fails to start with 'database does not exist': Access web interface to create initial database through setup wizard on first run
  • Performance issues with slow page loads: Increase PostgreSQL shared_buffers and effective_cache_size, consider adding pgbouncer for connection pooling
  • Module installation fails with permission errors: Ensure odoo-addons volume has proper write permissions for custom module installation
  • Memory errors during large data imports: Increase container memory limits and PostgreSQL work_mem configuration for bulk operations
  • Login issues after container restart: Clear browser cache and verify master password hasn't changed in database management settings

Community Notes

Loading...
Loading notes...

Download Recipe Kit

Get all files in a ready-to-deploy package

Includes docker-compose.yml, .env template, README, and license

Ad Space