Setup Odoo 18 ใน Docker Compose ง่ายๆ ภายในไม่กี่ขั้นตอน

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

5. รัน Odoo ด้วยคำสั่งเดียว

หลังจากที่เตรียมไฟล์ docker-compose.yml, โฟลเดอร์ addons/, และไฟล์ odoo.conf เรียบร้อยแล้ว
เราสามารถ เริ่มต้นระบบ Odoo ทั้งหมด ได้ด้วยคำสั่งเดียว:

docker compose up -d

5. เมื่อ Container ทำงานแล้ว เปิด Browser ไปที่ http://localhost:8069

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

Share the Post:

Related Posts