Odoo เป็น ERP/CRM แบบ Open Source ที่ครบเครื่อง ทั้งระบบขาย จัดซื้อ คลังสินค้า บัญชี และอื่นๆ
ในเวอร์ชันล่าสุด Odoo 18 มีฟีเจอร์ใหม่และปรับปรุงหลายอย่าง และเราสามารถติดตั้งให้พร้อมใช้งานได้ง่ายมากผ่าน Docker Compose โดยไม่ต้องลง Python, PostgreSQL หรือ Dependencies ให้ยุ่งยาก
ในบทความนี้ ผมจะแชร์วิธีการ Setup Odoo 18 บนเครื่องของคุณภายในไม่กี่นาทีอย่างแรกที่ต้องมี
1. 📂 สร้างโฟลเดอร์โปรเจกต์

โฟลเดอร์ addons/ คือที่เอาไว้เก็บ โมดูลที่เราสร้างเองหรือโมดูลจากภายนอก ที่ไม่ได้อยู่ในตัว Odoo มาตรฐาน
2. สร้างไฟล์ docker-compose.yml
services:
db:
image: postgres:17
user: root
environment:
- POSTGRES_USER=odoo
- POSTGRES_PASSWORD=odoo
- POSTGRES_DB=postgres
restart: always
volumes:
- db-data:/var/lib/postgresql/data
odoo:
image: odoo:18
container_name: odoo
user: root
depends_on:
- db
ports:
- '8069:8069'
tty: true
environment:
- HOST=db
- USER=odoo
- PASSWORD=odoo
- PIP_BREAK_SYSTEM_PACKAGES=1
volumes:
- odoo-data:/var/lib/odoo
- odoo-addons:/mnt/extra-addons
- ./addons:/mnt/addons
volumes:
odoo-data:
odoo-addons:
db-data:
อธิบายส่วนสำคัญในไฟล์
- web >> คือ Container ของ Odoo 18
- db >> คือ Container ของ PostgreSQL ที่ Odoo ใช้เป็นฐานข้อมูล
- volumes >> ใช้เก็บข้อมูลถาวร แม้ปิด Container ก็ไม่หาย
- Port
8069>> คือ Default Port ของ Odoo ที่เราจะใช้เปิดใน Browser
3. สร้างไฟล์ odoo.conf
[options]
addons_path = /mnt/addons,
/mnt/extra-addons
admin_passwd = odoo
data_dir = /var/lib/odoo
log_level = debug
4. สร้างโฟลเดอร์ addons เพื่อจะ custom addons
addons_path >> บอก Odoo ว่าให้ไปโหลดโมดูล (Modules) จาก path ไหนบ้าง
- /mnt/addons >> เป็น path ของ core modules ที่มาพร้อมกับ Odoo
- /mnt/extra-addons >> ส่วนนี้มักใช้เก็บ custom modules ที่เราเพิ่มเอง
ถ้า dev คนไหนมีโมดูลที่โหลดจาก Git หรือเขียนเอง ก็ควรโยนไว้ใน extra-addons แล้วใส่ path นี้ลงไปด้วยใน config
admin_passwd >> เป็นรหัสผ่าน master password ที่ใช้เวลา
- สร้าง/ลบ Database ผ่านหน้าเว็บ Odoo
- เข้า Dev Mode
อย่าลืมเปลี่ยนรหัสนี้ก่อนขึ้น Production นะครับ ถ้าใช้ odoo เหมือนตัวอย่างนี่คือเปิดประตูให้ใครก็ได้เข้ามาจัดการระบบเลย
data_dir ตำแหน่งที่ Odoo จะใช้เก็บไฟล์ต่างๆ ที่ไม่ใช่ข้อมูลใน DB
- ไฟล์แนบ (attachments)
- Binary data
- Filestore
ถ้าเราย้าย Server แล้ว copy โฟลเดอร์นี้ไปด้วย ก็สามารถ backup ข้อมูลบางส่วนที่ไม่อยู่ใน DB ได้เช่นกัน
log_level ระดับของ log ที่ Odoo จะเขียนออกมาที่ console หรือไฟล์ log
- info >> ปกติ (ค่า default)
- debug >> เหมาะสำหรับ dev/debugging (แสดง log เยอะขึ้น)
warn,error,critical>> ใช้ตอนต้องการลด noise
5. รัน Odoo ด้วยคำสั่งเดียว
หลังจากที่เตรียมไฟล์ docker-compose.yml, โฟลเดอร์ addons/, และไฟล์ odoo.conf เรียบร้อยแล้ว
เราสามารถ เริ่มต้นระบบ Odoo ทั้งหมด ได้ด้วยคำสั่งเดียว:
docker compose up -d5. เมื่อ Container ทำงานแล้ว เปิด Browser ไปที่ http://localhost:8069

พอทุกอย่างเซ็ตครบแล้ว เราก็สามารถสร้าง database ใหม่ หรือจะ restore อันเก่าก็ได้ แล้วก็เริ่มใช้งานหรือจะ custom โมดูลต่างๆ ได้ทันที