วันจันทร์ที่ 9 พฤศจิกายน พ.ศ. 2569

Ubuntu - Odoo18

 

คู่มือการติดตั้ง Odoo 18 Community

Ubuntu Server 24.04 LTS บน VMware / Proxmox

ประเภทเอกสาร: Installation & Production Setup Guide
Odoo Edition: Community
Odoo Version: 18.0
Operating System: Ubuntu Server 24.04 LTS
Database: PostgreSQL
Web Server: Nginx (สำหรับ Production)
Virtualization: VMware / Proxmox


1. วัตถุประสงค์

เอกสารนี้จัดทำขึ้นเพื่ออธิบายขั้นตอนการติดตั้ง Odoo 18 Community บน Ubuntu Server 24.04 LTS ที่ทำงานอยู่บน VMware หรือ Proxmox โดยเน้นการติดตั้งสำหรับใช้งานจริงในองค์กร (Production Environment)

ครอบคลุมหัวข้อ:

  • เตรียม Ubuntu Server
  • ติดตั้ง PostgreSQL
  • ติดตั้ง Odoo 18 Community
  • ตั้งค่า Odoo Service
  • ตั้งค่า Firewall
  • ตั้งค่า Nginx Reverse Proxy
  • ตั้งค่าความปลอดภัย
  • สำรองและกู้คืนฐานข้อมูล
  • ตรวจสอบระบบหลังติดตั้ง

2. Hardware Requirements

รายการขั้นต่ำแนะนำ
CPU2 vCPU4 vCPU
RAM4 GB8–16 GB
Disk40 GB100 GB SSD
OSUbuntu 24.04Ubuntu 24.04 LTS
Network1 Gbps1 Gbps

หมายเหตุ: สเปกจริงขึ้นอยู่กับจำนวนผู้ใช้งานและปริมาณข้อมูล

3. เตรียม Ubuntu Server

อัปเดตระบบ:

sudo apt update
sudo apt upgrade -y
sudo reboot

ติดตั้งเครื่องมือพื้นฐาน:

sudo apt install -y wget curl git gnupg \
  build-essential python3 python3-pip \
  python3-venv python3-dev \
  libpq-dev postgresql-client

4. ติดตั้ง PostgreSQL

sudo apt install -y postgresql postgresql-client

เปิดใช้งาน PostgreSQL:

sudo systemctl enable postgresql
sudo systemctl start postgresql

ตรวจสอบสถานะ:

sudo systemctl status postgresql

5. เพิ่ม Repository Odoo 18

ใช้ Repository ทางการของ Odoo:

wget -q -O - https://nightly.odoo.com/odoo.key | \
sudo gpg --dearmor --yes \
-o /usr/share/keyrings/odoo-archive-keyring.gpg

เพิ่ม Repository:

echo 'deb [signed-by=/usr/share/keyrings/odoo-archive-keyring.gpg] https://nightly.odoo.com/18.0/nightly/deb/ ./' | \
sudo tee /etc/apt/sources.list.d/odoo.list

อัปเดต Package:

sudo apt update

หมายเหตุ: Repository นี้เป็น Nightly Package ของ Branch 18.0 ไม่ใช่แพ็กเกจที่ตรึง Build ไว้ ควรควบคุมการอัปเดตใน Production

6. ติดตั้ง Odoo 18 Community

sudo apt install -y odoo

ตรวจสอบเวอร์ชัน:

sudo -u odoo /usr/bin/odoo --version

เปิด Service:

sudo systemctl enable odoo
sudo systemctl start odoo

ตรวจสอบ:

sudo systemctl status odoo

7. ตั้งค่า Odoo Configuration

ไฟล์ Configuration:

sudo vi /etc/odoo/odoo.conf

ตรวจสอบและกำหนดค่าหลักให้เหมาะสม:

[options]
admin_passwd = CHANGE_TO_A_STRONG_MASTER_PASSWORD (admin)

db_host = False
db_port = False
db_user = odoo
db_password = False

addons_path = /usr/lib/python3/dist-packages/odoo/addons

http_port = 8069
proxy_mode = True

logfile = /var/log/odoo/odoo-server.log

ข้อควรระวัง:

  • ใช้ Master Password ที่มีความซับซ้อน
  • สำรองไฟล์ Configuration
  • กำหนดสิทธิ์ไฟล์ให้เหมาะสม
  • ตรวจสอบ addons_path ก่อนใช้งาน
  • หากใช้ Reverse Proxy ต้องตั้ง proxy_mode ให้ถูกต้อง

ตั้งค่าสิทธิ์:

sudo chown root:odoo /etc/odoo/odoo.conf
sudo chmod 640 /etc/odoo/odoo.conf

Restart Service:

sudo systemctl restart odoo

8. ตั้งค่า Firewall

ติดตั้ง UFW:

sudo apt install -y ufw

อนุญาต SSH:

sudo ufw allow 22/tcp

สำหรับการใช้งานภายใน ให้เปิด Port 8069 เฉพาะ IP หรือ Subnet ขององค์กร เช่น:

sudo ufw allow from 192.168.1.0/24 to any port 8069 proto tcp

เปิด Firewall:

sudo ufw enable
sudo ufw status

ไม่ควรเปิด PostgreSQL Port 5432 หรือ Odoo Port 8069 ให้เข้าถึงได้จากอินเทอร์เน็ตโดยตรง

9. เข้าใช้งาน Odoo

เปิด Web Browser:

http://SERVER-IP:8069

ตัวอย่าง:

http://192.168.1.100:8069

กรอกข้อมูล:

  • Master Password
  • Database Name
  • Email
  • Password
  • Language
  • Country

จากนั้นกด Create Database

10. ตั้งค่า Nginx Reverse Proxy

ติดตั้ง Nginx:

sudo apt install -y nginx

สร้างไฟล์:

sudo vi /etc/nginx/sites-available/odoo

ตัวอย่าง Configuration สำหรับเริ่มต้น:

server {
    listen 80;
    server_name _;

    proxy_read_timeout 720s;
    proxy_connect_timeout 720s;
    proxy_send_timeout 720s;

    location / {
        proxy_pass http://127.0.0.1:8069;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

เปิดใช้งาน:

sudo ln -s /etc/nginx/sites-available/odoo /etc/nginx/sites-enabled/odoo
sudo nginx -t
sudo systemctl restart nginx

หมายเหตุ: Configuration นี้เป็นจุดเริ่มต้นสำหรับ HTTP ภายในเครือข่าย Production ที่มีผู้ใช้งานจำนวนมากควรเพิ่ม WebSocket/Longpolling routing และตั้ง HTTPS เมื่อมี Domain

11. ตรวจสอบระบบ

ตรวจสอบ Odoo:

sudo systemctl status odoo

ตรวจสอบ PostgreSQL:

sudo systemctl status postgresql

ตรวจสอบ Nginx:

sudo systemctl status nginx

ตรวจสอบ Port:

sudo ss -lntp

sudo lsof -i -P | grep -i "8069"

ตรวจสอบ Log:

sudo journalctl -u odoo -n 100 --no-pager

12. Backup Database

สร้างโฟลเดอร์ Backup:

sudo mkdir -p /backup/odoo
sudo chown odoo:odoo /backup/odoo

สำรอง Database:

sudo -u postgres pg_dump -Fc DATABASE_NAME \
-o /backup/odoo/database.dump

ข้อควรระวัง: ต้องสำรอง Odoo Filestore ควบคู่กับ Database โดย Filestore ปกติอยู่ที่:


/var/lib/odoo/filestore/

ควรสำรอง Configuration ด้วย:


/etc/odoo/odoo.conf


ควรจัดเก็บ Backup ไว้บน Storage แยกจาก VM และทดสอบ Restore เป็นระยะ

13. Production Security Checklist

  • เปลี่ยน Master Password
  • จำกัดการเข้าถึง Port 8069
  • ไม่เปิด PostgreSQL สู่ Internet
  • ตั้งค่า Nginx Reverse Proxy
  • ติดตั้ง HTTPS เมื่อมี Domain
  • ปิด Database Listing และ Database Manager ตามความเหมาะสม
  • กำหนดสิทธิ์ผู้ใช้งาน
  • สำรอง Database และ Filestore
  • ตั้งค่า Backup อัตโนมัติ
  • ทดสอบการกู้คืนระบบ
  • วางแผนอัปเดต Security Patch
  • Snapshot VM ก่อนการเปลี่ยนแปลงสำคัญ

14. สรุป

ระบบที่ติดตั้งประกอบด้วย:

ComponentVersion
Operating SystemUbuntu Server 24.04 LTS
ERPOdoo 18 Community
DatabasePostgreSQL
Web ServerNginx
VirtualizationVMware / Proxmox
NetworkInternal IP
SSLเตรียมติดตั้งภายหลัง

ข้อแนะนำ: ก่อนเปิดระบบ Production ควรทดสอบการสร้าง Database การทำงานของ Module การสำรองข้อมูล และการกู้คืนระบบให้เรียบร้อย


เอกสารฉบับนี้เป็นคู่มือการติดตั้งเบื้องต้นสำหรับผู้ดูแลระบบ (System Administrator) โดยต้องตรวจสอบ Configuration และ Security ให้เหมาะสมกับสภาพแวดล้อมจริงก่อนเปิดใช้งาน

Ubuntu - tinyLlama

 

คู่มือการติดตั้งและพัฒนา TinyLlama AI ภาษาไทย

Linux • CPU Only • RAM 8 GB • Web Chat Interface

โครงการ: Thai TinyLlama Local AI
โมเดล: TinyLlama 1.1B Chat
ระบบปฏิบัติการ: Linux
ฮาร์ดแวร์: Intel Core i5, RAM 8 GB, ไม่มี GPU


1. วัตถุประสงค์ของโครงการ

สร้างระบบ AI ภาษาไทยที่สามารถทำงานบนเครื่อง Linux ได้ โดยมีความสามารถดังนี้

  1. ใช้งาน TinyLlama แบบ Local
  2. สนทนาภาษาไทยผ่าน Web Browser
  3. ทำงานโดยไม่ต้องมี GPU
  4. เก็บประวัติการสนทนา
  5. เตรียม Dataset สำหรับ Fine-tuning ภาษาไทย
  6. รองรับการนำโมเดลที่ Fine-tune แล้วกลับมาใช้งานในเครื่อง
  7. สามารถใช้งานภายในเครือข่ายหรือแบบ Offline หลังติดตั้งโมเดลและซอฟต์แวร์ครบแล้ว

2. สถาปัตยกรรมระบบ

ระบบประกอบด้วย 4 ส่วน

  • TinyLlama: โมเดล AI
  • Ollama: ระบบจัดการและรันโมเดล
  • Open WebUI: เว็บไซต์สำหรับสนทนากับ AI
  • LoRA/QLoRA: ระบบปรับแต่งโมเดลภาษาไทย

โครงสร้างการทำงาน:

Linux Computer → Ollama → TinyLlama → Open WebUI → Web Browser

สำหรับการ Train ให้ใช้ Google Colab GPU เป็นตัวเลือกหลัก แล้วนำ Adapter กลับมาใช้งานใน Linux

3. เตรียมระบบ Linux

เปิด Terminal และติดตั้งเครื่องมือพื้นฐาน

sudo apt update
sudo apt upgrade -y

sudo apt install -y \
  curl \
  git \
  python3 \
  python3-venv \
  python3-pip

ตรวจสอบ CPU และ RAM

lscpu
free -h

ตรวจสอบพื้นที่ Disk

df -h

แนะนำให้มีพื้นที่ว่างอย่างน้อย 10 GB สำหรับเริ่มต้นทดลอง โดยควรเผื่อพื้นที่เพิ่มเติมสำหรับโมเดลและข้อมูล

4. ติดตั้ง Ollama

เว็บไซต์: https://ollama.com

ติดตั้ง:

curl -fsSL https://ollama.com/install.sh | sh

ตรวจสอบ:

ollama --version

ดาวน์โหลด TinyLlama:

ollama pull tinyllama

รันโมเดล:

ollama run tinyllama

ทดสอบด้วยคำถาม:

สวัสดี คุณสามารถพูดภาษาไทยได้ไหม?

หมายเหตุ: การรันโมเดลเป็น CPU Inference ไม่ใช่การ Train โมเดล

5. ติดตั้ง Chat Web Interface

แนะนำ Open WebUI

เว็บไซต์: https://openwebui.com

ใช้ Docker เพื่อให้ติดตั้งง่ายและดูแลระบบได้สะดวก

ติดตั้ง Docker หากยังไม่มี:


sudo apt install -y docker.io
sudo systemctl enable --now docker

เพิ่มผู้ใช้ปัจจุบันเข้า Docker Group:

sudo usermod -aG docker $USER


ออกจากระบบแล้ว Login ใหม่

จากนั้นติดตั้ง Open WebUI:


docker run -d \ -p 3000:8080 \ --add-host=host.docker.internal:host-gateway \ -e OLLAMA_BASE_URL=http://host.docker.internal:11434 \ -v open-webui:/app/backend/data \ --name open-webui \ --restart always \ ghcr.io/open-webui/open-webui:main


เปิด Browser:

http://localhost:3000


สร้างบัญชีผู้ดูแลระบบและเลือก TinyLlama จากรายการโมเดล

ผลลัพธ์: สามารถสนทนากับ TinyLlama ผ่านเว็บไซต์ได้

6. เตรียม Dataset ภาษาไทย

สร้างโฟลเดอร์:


mkdir -p ~/tinyllama-thai/dataset
cd ~/tinyllama-thai


สร้างไฟล์:

nano dataset/thai_train.jsonl


ตัวอย่างข้อมูล:

json

{"text":"### คำถาม: สวัสดี\n### คำตอบ: สวัสดีครับ ยินดีที่ได้รู้จัก"}
{"text":"### คำถาม: AI คืออะไร\n### คำตอบ: AI คือเทคโนโลยีที่ช่วยให้คอมพิวเตอร์ทำงานที่ต้องอาศัยความฉลาดได้"}
{"text":"### คำถาม: Python คืออะไร\n### คำตอบ: Python เป็นภาษาโปรแกรมที่นิยมใช้ในงาน AI และ Machine Learning"}
{"text":"### คำถาม: Machine Learning คืออะไร\n### คำตอบ: Machine Learning เป็นวิธีที่ทำให้คอมพิวเตอร์เรียนรู้รูปแบบจากข้อมูล"}

ควรตรวจสอบให้ข้อมูลมีคุณภาพ ไม่ซ้ำกัน และมีคำตอบที่ถูกต้อง

เริ่มต้นทดลองด้วย 100–500 ตัวอย่าง และแยกข้อมูลสำหรับ Validation ออกจากข้อมูล Train

7. แนวทาง Fine-tuning ภาษาไทย

เนื่องจากเครื่องมี RAM 8 GB และไม่มี GPU ไม่แนะนำให้ Full Fine-tuning TinyLlama 1.1B บนเครื่องนี้

แนวทางที่แนะนำ:

  1. เตรียม Dataset บน Linux
  2. อัปโหลด Dataset ไปยัง Google Colab
  3. ใช้ GPU บน Colab สำหรับ LoRA Fine-tuning
  4. บันทึก Adapter
  5. นำ Adapter กลับมา Linux
  6. รวม Adapter กับโมเดลฐานหรือแปลงเป็น GGUF
  7. นำโมเดลไปใช้ผ่าน Ollama

ค่าตั้งต้นสำหรับการทดลองบน GPU Cloud:


Parameterค่า
ModelTinyLlama 1.1B Chat
Fine-tuningLoRA
LoRA Rank8
Batch Size1
Epoch1
Max Sequence Length256
Learning Rate0.0001

การเลือกค่าจริงต้องปรับตาม GPU และ Dataset ที่ใช้

เอกสาร: https://huggingface.co/docs/peft


8. นำโมเดลที่ Train แล้วกลับมาใช้งาน

เมื่อได้โมเดลที่รวม Adapter แล้ว สามารถแปลงเป็น GGUF ด้วย llama.cpp

GitHub: https://github.com/ggml-org/llama.cpp

ตัวอย่างการสร้างไฟล์ Modelfile สำหรับ Ollama:


FROM ./tinyllama-thai.gguf


PARAMETER temperature 0.7
PARAMETER num_ctx 2048

SYSTEM คุณคือ AI ผู้ช่วยที่เชี่ยวชาญภาษาไทย
ตอบคำถามด้วยภาษาไทยที่ชัดเจนและสุภาพ

สร้างโมเดล:


ollama create tinyllama-thai -f Modelfile

เรียกใช้งาน:


ollama run tinyllama-thai

ข้อควรระวัง: ต้องตรวจสอบรูปแบบ GGUF และการแปลง Adapter ให้ถูกต้องก่อนนำเข้า Ollama


9. ทดสอบระบบ Chat Web

เปิด:

http://localhost:3000

ทดสอบคำถาม:

  • สวัสดี คุณชื่ออะไร?
  • ช่วยอธิบาย AI เป็นภาษาไทย
  • Python ใช้ทำอะไร?
  • ช่วยสรุปข้อความภาษาไทย
  • ช่วยอธิบาย Machine Learning

เปรียบเทียบผลลัพธ์ก่อนและหลัง Fine-tuning


10. การแก้ไขปัญหา

ปัญหา RAM เต็ม

  • ลดจำนวนโปรแกรมที่เปิดพร้อมกัน
  • ลด Context Length
  • ลดขนาด Batch
  • ตรวจสอบหน่วยความจำด้วย free -h

ปัญหา Ollama ไม่ทำงาน


sudo systemctl status ollama
sudo systemctl restart ollama

ปัญหา Open WebUI เปิดไม่ได้


docker ps
docker logs open-webui

ปัญหาโมเดลตอบภาษาไทยไม่ดี

  • ตรวจสอบคุณภาพ Dataset
  • เพิ่มความหลากหลายของภาษา
  • ตรวจสอบรูปแบบข้อมูลที่ใช้ Train
  • เปรียบเทียบผลกับโมเดลต้นฉบับ


11. แผนการพัฒนา

ระยะงาน
Phase 1ติดตั้ง Linux และ Ollama
Phase 2ติดตั้ง Open WebUI
Phase 3ทดสอบ TinyLlama
Phase 4สร้าง Dataset ภาษาไทย
Phase 5Fine-tuning ผ่าน Colab
Phase 6นำโมเดลกลับมา Linux
Phase 7ทดสอบ Chat Web ภาษาไทย
Phase 8ปรับปรุงคุณภาพโมเดล


12. ผลลัพธ์ที่ต้องการ

เมื่อทำครบทุกขั้นตอน จะได้ระบบ:

  • Local AI Chatbot
  • Web Chat Interface
  • TinyLlama ภาษาไทยที่ผ่านการ Fine-tuning
  • ใช้งานผ่าน Browser
  • รันโมเดลด้วย CPU
  • ไม่จำเป็นต้องเชื่อมต่ออินเทอร์เน็ตขณะใช้งานหลังติดตั้งครบแล้ว

แหล่งข้อมูลและเอกสารอ้างอิง

  1. TinyLlama Model
    https://huggingface.co/TinyLlama/TinyLlama-1.1B-Chat-v1.0
  2. Ollama
    https://ollama.com
  3. Open WebUI
    https://github.com/open-webui/open-webui
  4. Hugging Face PEFT
    https://huggingface.co/docs/peft
  5. llama.cpp
    https://github.com/ggml-org/llama.cpp

หมายเหตุ: คู่มือนี้เป็นแผนติดตั้งและพัฒนา ยังไม่ได้หมายความว่าโมเดลภาษาไทยผ่านการ Train หรือระบบ Web Chat ติดตั้งสำเร็จแล้ว

Ubuntu - Disk extend

 

คู่มือการขยาย Disk Ubuntu บน VMware

กรณีไม่ใช้ LVM: ขยายจาก 100 GB เป็น 200 GB

1. วัตถุประสงค์

คู่มือนี้อธิบายวิธีขยายพื้นที่ Disk ของ Ubuntu Virtual Machine บน VMware จาก 100 GB เป็น 200 GB โดยไม่ต้องติดตั้งระบบปฏิบัติการใหม่ และรักษาข้อมูลเดิมไว้

2. ข้อควรระวังก่อนดำเนินการ

  • Backup ข้อมูลสำคัญก่อนดำเนินการ
  • แนะนำให้สร้าง VMware Snapshot
  • ตรวจสอบว่าไม่มี Snapshot หรือ Linked Clone ที่เป็นข้อจำกัดในการขยาย Disk
  • ตรวจสอบชื่อ Disk และ Partition ให้ถูกต้องก่อนรันคำสั่ง
  • ห้าม Format หรือลบ Partition เดิม

3. ขยาย Virtual Disk บน VMware

  1. Shutdown Ubuntu Virtual Machine
  2. เปิด VMware vSphere หรือ VMware Workstation
  3. เลือก Virtual Machine ที่ต้องการ
  4. เลือก Edit Settings
  5. เลือก Hard Disk 1
  6. เปลี่ยน Capacity จาก 100 GB เป็น 200 GB
  7. กด Save หรือ OK
  8. เปิด Virtual Machine อีกครั้ง

4. ตรวจสอบ Disk บน Ubuntu

SSH เข้า Ubuntu แล้วรันคำสั่ง

lsblk

ตรวจสอบ Filesystem

df -Th

ตรวจสอบ Partition

sudo fdisk -l

ตัวอย่าง Disk หลังขยาย

NAME SIZE TYPE MOUNTPOINTS

sda    200G disk
├─sda1   1G part /boot
└─sda2  99G part /

หมายเหตุ: ตัวอย่างนี้สมมติว่า Root Partition คือ /dev/sda2 เท่านั้น ต้องตรวจสอบเครื่องจริงก่อนใช้คำสั่ง

5. ติดตั้งเครื่องมือ Growpart

sudo apt update
sudo apt install cloud-guest-utils -y

6. ขยาย Partition

กรณี Root Partition คือ /dev/sda2

sudo growpart /dev/sda2

ตรวจสอบผลลัพธ์

lsblk

7. ขยาย Filesystem

ตรวจสอบชนิด Filesystem ก่อน

df -Th /

กรณี Filesystem เป็น EXT4

sudo resize2fs /dev/sda2

กรณี Filesystem เป็น XFS

sudo xfs_growfs /

เลือกใช้เพียงคำสั่งที่ตรงกับ Filesystem ของเครื่อง

8. ตรวจสอบผลลัพธ์

df -hT

ตัวอย่างผลลัพธ์

Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       196G   25G  161G  14% /

หมายเหตุ: พื้นที่ที่แสดงอาจไม่เท่ากับ 200 GB พอดี เนื่องจากพื้นที่ที่ใช้ได้จริงและ Partition อื่น ๆ

9. สรุปขั้นตอนการดำเนินงาน

  1. Backup หรือ Snapshot VM
  2. Shutdown Ubuntu
  3. ขยาย Virtual Disk ใน VMware จาก 100 GB เป็น 200 GB
  4. Start Ubuntu
  5. ตรวจสอบ Disk ด้วย lsblk
  6. ติดตั้ง cloud-guest-utils
  7. ขยาย Partition ด้วย growpart
  8. ขยาย Filesystem ด้วย resize2fs หรือ xfs_growfs
  9. ตรวจสอบพื้นที่ด้วย df -h

10. หมายเหตุ

คำสั่งในคู่มือนี้เป็นตัวอย่างสำหรับ Disk /dev/sda และ Partition /dev/sda2

ก่อนดำเนินการจริง ต้องตรวจสอบผลลัพธ์ lsblk, df -Th และ fdisk -l เพื่อยืนยันชื่อ Disk และ Partition ของระบบ

ผลลัพธ์ที่ต้องการ: Ubuntu สามารถใช้งานพื้นที่ Disk ที่ขยายจาก 100 GB เป็น 200 GB ได้ โดยไม่ต้องติดตั้งระบบปฏิบัติการใหม่