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

product variant erp odoo imotif

ธุรกิจมีสินค้าหลายขนาด หลายสี หลายรส จัดการอย่างไร เมื่อ SKU เริ่มเยอะจน Excel เอาไม่อยู่?

Product Variant ERP คือแนวทางจัดการสินค้าหลายขนาด หลายสี หลายรส และหลาย SKU ด้วย Odoo ERP ช่วยเชื่อม Stock, Sales, Pricing, eCommerce และข้อมูลสำหรับ AI ในระบบเดียว

Read More
ai for erp business use case

AI กับ ERP: เมื่อระบบหลังบ้านเริ่มคิด วิเคราะห์ และช่วยตัดสินใจ

AI ไม่ได้เข้ามาแทนระบบ ERP แต่กำลังเปลี่ยน ERP จากระบบบันทึกข้อมูลให้กลายเป็นระบบที่ค้นหา วิเคราะห์ และช่วยตัดสินใจได้ บทความนี้สรุป Use Case ที่ธุรกิจไทยสามารถนำไปใช้ได้จริง พร้อมข้อควรระวังก่อนเริ่มโครงการ AI

Read More