Files
encoach_frontend_new_v3/INSTALL-ODOO-SUMMARY.md
Yamen Ahmad 3e83d8d7d5 feat: add complete EnCoach backend — Odoo 19 + all addons
Includes:
- Odoo 19 framework (odoo/)
- 27 custom EnCoach addons (new_project/custom_addons/)
  - encoach_core, encoach_api, encoach_lms_api, encoach_adaptive_api
  - encoach_exam, encoach_taxonomy, encoach_adaptive, encoach_assignment
  - encoach_ai, encoach_ai_grading, encoach_ai_generation, encoach_ai_media
  - encoach_courseware, encoach_communication, encoach_subscription
  - encoach_notification, encoach_approval, encoach_branding
  - encoach_classroom, encoach_registration, encoach_stats
  - encoach_faq, encoach_ticket, encoach_training, encoach_resources
  - encoach_adaptive_ai, encoach_sis
- 21 OpenEduCat Enterprise modules (new_project/enterprise-19/)
- 14 OpenEduCat Community modules (new_project/openeducat_erp-19.0/)
- Configuration: odoo.conf, requirements.txt, scripts
- 200+ REST API endpoints with JWT authentication
- SRS and test documentation

Made-with: Cursor
2026-04-01 17:10:04 +04:00

5.2 KiB
Raw Blame History

Summary: Install Odoo (18 or 19) without Docker on Mac

Use this in another folder to install Odoo 18 (or 19) from scratch. All steps assume a new project directory (e.g. odoo18).


1. Prerequisites (no sudo)

  • Miniconda Python + conda without system install.
  • PostgreSQL Installed via conda (no Homebrew needed).
  • Odoo source Downloaded as ZIP or git clone.

2. One-time setup in the new folder

Replace odoo18 (or your folder name) and 18.0 (or 19.0) as needed.

2.1 Download Miniconda (if not reusing existing)

cd /path/to/your/odoo18
curl -sL "https://repo.anaconda.com/miniconda/Miniconda3-latest-MacOSX-arm64.sh" -o /tmp/miniconda.sh
# For Intel Mac use: Miniconda3-latest-MacOSX-x86_64.sh
bash /tmp/miniconda.sh -b -p ./miniconda3

2.2 Create conda env with Python 3.12 and PostgreSQL

export PATH="$(pwd)/miniconda3/bin:$PATH"
conda create -y -p ./.conda-envs/odoo python=3.12
conda install -y -p ./.conda-envs/odoo postgresql

2.3 Get Odoo source

Option A ZIP (no git):

curl -sL "https://github.com/odoo/odoo/archive/refs/heads/18.0.zip" -o odoo.zip
unzip -q odoo.zip && mv odoo-18.0 odoo && rm odoo.zip
chmod +x odoo/odoo-bin

Option B Git:

git clone https://github.com/odoo/odoo.git --branch 18.0 --depth 1 odoo
chmod +x odoo/odoo-bin

2.4 Install Python dependencies (use binary for psycopg2 if no pg_config)

# Replace psycopg2 with psycopg2-binary in requirements (no PostgreSQL dev headers needed)
sed 's/^psycopg2==/psycopg2-binary==/' odoo/requirements.txt > odoo/requirements-binary.txt
# For Python 3.12 the line is like: psycopg2==2.9.9 ; python_version >= "3.12" ...
# So: sed -i '' 's/psycopg2==2.9.9/psycopg2-binary==2.9.9/' odoo/requirements.txt  OR use a copy
./.conda-envs/odoo/bin/pip install --upgrade pip wheel setuptools
./.conda-envs/odoo/bin/pip install -r odoo/requirements-binary.txt

(If the exact psycopg2 line differs for 18.0, adjust the sed or edit the file to use psycopg2-binary for your Python version.)

2.5 Create addons folders and config

mkdir -p addons_extra addons_enterprise

odoo.conf (in project root; paths relative to odoo/ when running):

[options]
db_user = YOUR_MAC_USERNAME
db_password =
db_host = localhost
db_port = 5432
http_interface = 127.0.0.1
http_port = 8069
addons_path = ../addons_extra,../addons_enterprise,addons

Replace YOUR_MAC_USERNAME with whoami output.

2.6 Initialize and start PostgreSQL (conda)

mkdir -p pgdata
.conda-envs/odoo/bin/initdb -D pgdata -U $(whoami)
.conda-envs/odoo/bin/pg_ctl -D pgdata -l pgdata/logfile start

2.7 Run script (run.sh)

Use a script that runs Odoo with the conda Python and config path. Example:

#!/usr/bin/env bash
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$SCRIPT_DIR"
CONFIG="$SCRIPT_DIR/odoo.conf"
PYTHON="$SCRIPT_DIR/.conda-envs/odoo/bin/python"
cd odoo && exec "$PYTHON" odoo-bin -c "$CONFIG" "$@"

Save as run.sh, then: chmod +x run.sh

2.8 Start script (start.sh)

  • Start PostgreSQL if not running (check pgdata/postmaster.pid; if missing, run initdb then pg_ctl start).
  • Run ./run.sh.

2.9 Stop script (stop.sh)

  • pkill -f odoo-bin
  • pg_ctl -D pgdata stop

3. Daily use

Action Command
Start Odoo + DB ./start.sh
Stop ./stop.sh
Only run Odoo ./run.sh (PostgreSQL must be running)
Open app http://localhost:8069
Create DB In browser: Create database (name, master password, email).

4. Connect to PostgreSQL (like pgAdmin on Windows)

  • Tool: DBeaver Community (or pgAdmin): https://dbeaver.io/download/
  • Connection: Host localhost, Port 5432, User YOUR_MAC_USERNAME, Password empty.
  • Databases: Default postgres has no Odoo tables. Use the database you created in Odoo (e.g. test, myodoo) → Schemas → public → Tables.
  • pgAgent error: Safe to ignore; click OK. Odoo does not use pgAgent.

5. Differences for Odoo 18 vs 19

Item Odoo 18 Odoo 19
Branch/zip 18.0 19.0
requirements.txt Slightly different pins Use repos file
Config option Pre-19 may use xmlrpc_port Use http_port

Same steps; only change branch/version in clone or ZIP URL and use that versions requirements.txt (with psycopg2-binary if needed).


6. Folder layout (target)

odoo18/                    (or odoo19)
├── miniconda3/
├── .conda-envs/odoo/
├── pgdata/
├── odoo/                  (source: addons + odoo-bin)
├── addons_extra/          (custom / third-party modules)
├── addons_enterprise/     (enterprise repo contents if needed)
├── odoo.conf
├── run.sh
├── start.sh
├── stop.sh
└── test_odoo.sh           (optional: curl http://127.0.0.1:8069)

7. .gitignore (suggested)

venv/
odoo/
odoo.conf
pgdata/
miniconda3/
.conda-envs/
.conda-pkgs/
*.pyc
__pycache__/

You can copy this file into the new folder (e.g. odoo18) and follow it step by step, changing only the version (18.0/19.0) and paths as needed.