Installation¶
Complete installation guide for the Odoo 15 ERP system.
Prerequisites¶
Before installation, ensure you have:
| Requirement | Version | Check Command |
|---|---|---|
| Docker | 20.10+ | docker --version |
| Docker Compose | 2.0+ | docker compose version |
| Git | 2.0+ | git --version |
| Disk Space | 10GB+ free | df -h |
Install Docker (if needed)¶
# Install Docker
sudo yum install -y docker
sudo systemctl start docker
sudo systemctl enable docker
# Add user to docker group
sudo usermod -aG docker $USER
# Install Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
Installation Steps¶
Step 1: Clone Repository¶
Step 2: Configure Environment¶
Key variables:
| Variable | Default | Description |
|---|---|---|
COMPOSE_FILE |
docker-compose.yml:docker-compose.test.yml | Auto-loads both compose files |
DB_NAME |
odoo_test | Database name |
DB_PASSWORD |
odoo_test_2025 | Database password |
ODOO_PORT |
8016 | Odoo web port |
PWA_PORT |
8000 | Field PWA port |
LANDING_PORT |
8001 | Landing page port |
DOCS_PORT |
8002 | Documentation port |
COMPOSE_FILE Variable
The .env file includes COMPOSE_FILE which tells Docker Compose which files to use. No need to specify -f flags in commands.
Step 3: Build Custom Images¶
The Odoo image includes additional Python dependencies required by custom modules:
# Build custom Odoo image (first time only)
docker compose build odoo
# Build docs image
docker compose build docs
Python Dependencies Included
The custom Odoo image (odoo/Dockerfile) includes:
oauthlib,PyJWT,cryptography- for REST API moduleboto3- for S3 signatures and photosxero-python- for Xero integrationgoogle-api-python-client- for Google contacts sync
Step 4: Start Services¶
# Start all services
docker compose up -d
# Wait for services to initialize (~60 seconds)
sleep 60
# Check status
docker compose ps
Expected output:
NAME STATUS PORTS
odoo15-db-1 Up (healthy) 5432/tcp
odoo15-odoo-1 Up (healthy) 0.0.0.0:8016->8069/tcp
odoo15-pwa-1 Up (healthy) 0.0.0.0:8000->8000/tcp
odoo15-landing-1 Up (healthy) 0.0.0.0:8001->8001/tcp
odoo15-docs-1 Up (healthy) 0.0.0.0:8002->8002/tcp
odoo15-nginx-1 Up (healthy) 0.0.0.0:80->80/tcp
Step 5: Initialize Database¶
For first-time installation:
# Initialize Odoo database with JDX core data
docker compose exec odoo odoo -i base,jdx_core_data --stop-after-init -d odoo_test
This takes 2-3 minutes. Wait for completion.
What jdx_core_data Installs
The jdx_core_data module sets up your base configuration:
- MTO Route - Unarchived and active (required for SO → PO workflow)
- Company Settings - Dimension-based pricing enabled
- Item Locations - 15 room names (Living Room, Bedroom, Kitchen, etc.)
- Supply Colors - 14 hardware colors (White, Brown, Black, etc.)
- Product Categories - Window Coverings hierarchy (Blinds, Shades, Shutters)
See JDX Core Data Module for details.
Step 6: Verify Installation¶
Or manually check each service:
| Service | URL | Expected |
|---|---|---|
| Odoo | http://localhost:8016 | Login page |
| PWA | http://localhost:8000 | Login page |
| Landing Page | http://localhost:8001 | Public website |
| Docs | http://localhost:8002 | Documentation |
| Nginx | http://localhost | Landing page (proxied) |
Post-Installation¶
Set Admin Password¶
- Open http://localhost:8016
- Click "Manage Databases"
- Set master password (use value from
ODOO_ADMIN_PASSWORD)
Install Modules¶
# Install custom modules
docker compose exec odoo odoo -i jdx_justcall_sms,jdx_service_signature --stop-after-init -d odoo_test
Create First User¶
- Login as admin (default: admin/admin)
- Go to Settings → Users & Companies → Users
- Create user accounts
Troubleshooting¶
Services Won't Start¶
Database Connection Error¶
# Verify database is running
docker compose exec db pg_isready -U odoo
# Check database exists
docker compose exec db psql -U odoo -l
Port Already in Use¶
Permission Denied¶
Python Dependency Version Conflicts¶
If you modify odoo/requirements.txt and see errors like:
or:
Cause: Incompatible versions of cryptography and pyOpenSSL with Odoo 15's bundled urllib3.
Solution: Pin compatible versions in odoo/requirements.txt:
Then rebuild:
Version Compatibility
Odoo 15 Docker image has old system packages. Newer versions of cryptography (42+) remove APIs that Odoo depends on. Always test after modifying Python dependencies.
Module Missing Python Dependency¶
If installing a module fails with:
Unable to install module "restapi" because an external dependency is not met: Python library not installed: oauthlib
Solution: Add the package to odoo/requirements.txt and rebuild:
# Edit requirements
nano odoo/requirements.txt
# Rebuild image
docker compose build odoo
docker compose up -d odoo
Next Steps¶
- Configuration - Customize settings
- Quick Start - Get productive in 5 minutes