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

FEFO Inventory in Odoo Warehouse

FEFO คืออะไร? ลดสินค้าอาหารหมดอายุในคลัง ด้วย Odoo Inventory

ระบบ FEFO ช่วยธุรกิจอาหารลดปัญหาสินค้าหมดอายุในคลัง ด้วย Odoo Inventory ที่รองรับการติดตามเลขล็อต จัดสรรสินค้าที่ใกล้หมดอายุก่อน และแจ้งเตือนล่วงหน้า เพื่อวางแผนระบายสต็อก ลดของเสีย และเพิ่มประสิทธิภาพการจัดการคลังสินค้า

Read More
AI Business Transformation การเชื่อมต่อ AI, Odoo ERP และ Automation เพื่อปรับปรุง Business Flow ขององค์กร

ทีมงานใช้ AI เป็นแล้ว ทำไมองค์กรยังต้องทำ AI Business Transformation?

ทีมงานใช้ AI เป็นแล้ว แต่ทำไมธุรกิจยังต้องทำ AI Business Transformation? เพราะการใช้ AI ให้ทำงานเร็วขึ้นอาจไม่เพียงพอ เรียนรู้วิธีออกแบบ Business Flow ใหม่ด้วย ERP, AI Workflow และ Automation เพื่อเชื่อมโยงข้อมูล คน และกระบวนการทำงานให้เกิดประสิทธิภาพและสร้างคุณค่าทางธุรกิจอย่างแท้จริง

Read More