ติดตั้ง Ubuntu Server 26.04 LTS สำหรับงาน AI และ Automation

ติดตั้ง Ubuntu Server 26.04 LTS สำหรับงาน AI และ Automation

อยากทำ AI Server เอง เริ่มจาก OS ต้องนิ่งก่อน

หลายคนเริ่มสนใจทำ AI Server ใช้เองในบ้านหรือในแล็บ เช่น ใช้รัน Local LLM, Ollama, Open WebUI, Node-RED, n8n, MQTT หรือระบบ Automation ต่าง ๆ แต่ปัญหาที่เจอบ่อยคือ “ติดตั้งเครื่องเสร็จแล้วไม่รู้ต้องเตรียมอะไรต่อ” สุดท้ายเครื่องกลายเป็น Linux Server ที่ลงของกระจัดกระจาย ดูแลยาก และอัปเดตลำบาก

บทความนี้แนะนำโดยเริ่มจากศูนย์ตั้งแต่: ติดตั้ง Ubuntu Server 26.04 LTS แล้วเตรียมระบบให้พร้อมเป็นฐานสำหรับงาน AI และ Automation โดยใช้แนวทางที่เหมาะกับ Home Lab, ห้องเรียน, Server ขนาดเล็ก และเครื่องทดลองของผู้ดูแลระบบ

Ubuntu 26.04 LTS มีรหัสรุ่นว่า Resolute Raccoon ออกอย่างเป็นทางการวันที่ 23 เมษายน 2026 และเป็นรุ่น LTS ที่ได้รับการดูแลมาตรฐาน 5 ปีถึงเดือนเมษายน 2031 พร้อมทางเลือกขยายระยะดูแลผ่าน Ubuntu Pro/ESM สำหรับงานระยะยาว


บทความนี้จะได้อะไร

ในบทความนี้เราจะติดตั้งและเตรียม Ubuntu Server 26.04 LTS ให้เหมาะกับ 4 งานหลัก

1. AI Server

สำหรับรันเครื่องมืออย่าง Ollama, Open WebUI, Python Environment และ Container สำหรับ AI workload

2. Automation Server

สำหรับรัน Node-RED, n8n, MQTT, API automation, LINE Bot หรือระบบ workflow automation

3. Docker Host

ใช้ Docker Compose จัดการ service หลายตัวอย่างเป็นระบบ แยก volume และดูแลให้ง่าย

4. Remote Admin Server

ตั้งค่า SSH, Firewall, Update, Timezone และโครงสร้าง directory ให้พร้อมดูแลระยะยาว

⚠️ Disclaimer: คำสั่งในบทความนี้เหมาะสำหรับเครื่องใหม่หรือเครื่องทดสอบ หากใช้งานบนเครื่อง Production ควรสำรองข้อมูล ตรวจสอบ IP, disk, firewall rule และ remote access ก่อนทุกครั้ง


พื้นฐานที่จำเป็นก่อนเริ่ม

Hardware ที่แนะนำ

สำหรับ Ubuntu Server อย่างเดียว เอกสาร Ubuntu Server ระบุขั้นต่ำแนะนำที่ RAM 2 GB และพื้นที่ดิสก์ 5 GB ขึ้นไป แต่สำหรับงาน AI และ Automation ควรเผื่อสเปกมากกว่านั้นอย่างชัดเจน

สเปกสำหรับเริ่มต้นแบบ Home Lab

  • CPU: 4 cores ขึ้นไป

  • RAM: 16 GB ขึ้นไป

  • Storage: SSD 120 GB ขึ้นไป

  • Network: LAN 1 Gbps

  • GPU: ไม่จำเป็น แต่ถ้าจะรัน LLM จริงจังควรใช้ NVIDIA GPU ที่มี VRAM 8–12 GB ขึ้นไป

สเปกสำหรับ AI + Automation แบบจริงจัง

  • CPU: 8 cores ขึ้นไป

  • RAM: 32–64 GB

  • Storage: NVMe SSD 500 GB ขึ้นไป

  • GPU: NVIDIA GPU พร้อม driver ที่รองรับ

  • UPS: แนะนำสำหรับเครื่องที่ต้องทำงานต่อเนื่อง

Software ที่ใช้ในบทความ

  • OS: Ubuntu Server 26.04 LTS

  • Container Runtime: Docker Engine

  • Compose: Docker Compose Plugin

  • AI Runtime: Ollama

  • AI UI: Open WebUI

  • Automation: Node-RED และ n8n

Docker รองรับ Ubuntu Resolute 26.04 LTS ในรายการ OS requirements ของ Docker Engine บน Ubuntu และแนะนำให้ติดตั้งผ่าน Docker apt repository สำหรับเครื่องที่ต้องดูแลอัปเดตระยะยาว


ขั้นตอนที่ 1: ดาวน์โหลดและติดตั้ง Ubuntu Server 26.04 LTS

ให้ดาวน์โหลดไฟล์ ISO ของ Ubuntu Server 26.04 LTS จากหน้า Download ของ Ubuntu จากนั้นทำ USB Boot ด้วยเครื่องมืออย่าง Rufus, Balena Etcher หรือ Ventoy

เมื่อ boot เข้าหน้า installer ให้ตั้งค่าตามแนวทางนี้

ค่าที่แนะนำระหว่างติดตั้ง

  • Language: English

  • Keyboard: English (US)

  • Network: ใช้ DHCP ก่อน แล้วค่อยตั้ง Static IP หลังติดตั้ง

  • Storage: ใช้ทั้ง disk หากเป็นเครื่องใหม่

  • Profile: สร้าง user admin แยกจาก root

  • SSH: เปิดติดตั้ง OpenSSH Server

  • Snap packages: ยังไม่ต้องเลือกเพิ่มในขั้นตอนนี้

แนะนำ Screenshot: ถ่ายภาพหน้าจอช่วงเลือก disk, สร้าง user และเปิด OpenSSH Server เพื่อใช้ประกอบบทความ

หลังติดตั้งเสร็จ ให้ login ผ่าน console หรือ SSH

ssh youruser@SERVER_IP

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

lsb_release -a

ผลลัพธ์ควรเห็นว่าเป็น Ubuntu 26.04 LTS


ขั้นตอนที่ 2: อัปเดตระบบหลังติดตั้ง

หลังติดตั้งใหม่ ควรอัปเดต package ทั้งหมดก่อนเริ่มลง service อื่น

sudo apt update
sudo apt upgrade -y
sudo apt autoremove -y

ติดตั้งเครื่องมือพื้นฐานที่ SysAdmin ใช้บ่อย

sudo apt install -y \
  curl \
  wget \
  git \
  vim \
  nano \
  htop \
  net-tools \
  unzip \
  ca-certificates \
  gnupg \
  lsb-release \
  software-properties-common

คำอธิบายสั้น ๆ:

  • curl, wget ใช้ดาวน์โหลดไฟล์หรือเรียก API

  • git ใช้ clone project และ compose file

  • htop ใช้ดู resource แบบ interactive

  • ca-certificates, gnupg ใช้สำหรับ repository ที่มี signed key

ตั้ง Timezone เป็นประเทศไทย

sudo timedatectl set-timezone Asia/Bangkok
timedatectl

ตรวจสอบ hostname

hostnamectl

ตั้ง hostname ใหม่ เช่น ai-auto-01

sudo hostnamectl set-hostname ai-auto-01

ขั้นตอนที่ 3: ตั้งค่า Static IP ด้วย Netplan

งาน Server ควรใช้ Static IP เพื่อให้เข้าถึงบริการอย่าง Open WebUI, Node-RED และ n8n ได้คงที่ Ubuntu Server ใช้ Netplan สำหรับจัดการ network configuration โดยไฟล์ config อยู่ใน /etc/netplan

ดูชื่อ interface ก่อน

ip a

ตัวอย่าง interface อาจเป็น enp0s3, ens18, eno1 หรือชื่ออื่นตาม hardware

ดูไฟล์ netplan

ls /etc/netplan/

เปิดไฟล์ config

sudo nano /etc/netplan/00-installer-config.yaml

ตัวอย่าง Static IP

network:
  version: 2
  ethernets:
    enp0s3:
      dhcp4: false
      addresses:
        - 192.168.1.50/24
      routes:
        - to: default
          via: 192.168.1.1
      nameservers:
        addresses:
          - 1.1.1.1
          - 8.8.8.8

เปลี่ยน enp0s3, IP address, gateway และ DNS ให้ตรงกับระบบเครือข่ายจริง

ทดสอบ config ก่อน apply

sudo netplan try

ถ้าใช้งานได้ ให้กด Enter เพื่อยืนยัน จากนั้นตรวจสอบ IP

ip a
ping -c 4 8.8.8.8

⚠️ หากทำผ่าน SSH ระยะไกล ควรเปิด console สำรองหรือมีสิทธิ์เข้าหน้า VM Console เพราะ YAML ผิดเพียงบรรทัดเดียวอาจทำให้หลุดจากเครื่องได้


ขั้นตอนที่ 4: ตั้งค่า SSH ให้ปลอดภัยขึ้น

ก่อนแก้ SSH config ให้เปิด session SSH อีกหน้าค้างไว้เสมอ เผื่อ config ผิดแล้วยังมีช่องทางแก้ไข

สำรองไฟล์ config

sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak

เปิดไฟล์

sudo nano /etc/ssh/sshd_config

ค่าที่แนะนำ

PermitRootLogin no
PasswordAuthentication yes
PubkeyAuthentication yes

ในช่วงแรกยังให้ PasswordAuthentication yes ไว้ก่อน เพื่อป้องกันผู้เริ่มต้น lock ตัวเองออกจากระบบ หลังจากตั้ง SSH key สำเร็จแล้วค่อยเปลี่ยนเป็น no

Restart SSH

sudo systemctl restart ssh

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

sudo systemctl status ssh

สร้าง SSH key จากเครื่อง Client

ssh-keygen -t ed25519 -C "ai-auto-server"

ส่ง key ไปยัง Server

ssh-copy-id youruser@192.168.1.50

ทดสอบ login ด้วย key

ssh youruser@192.168.1.50

เมื่อมั่นใจว่า SSH key ใช้งานได้ ค่อยเปลี่ยน

PasswordAuthentication no

แล้ว restart SSH อีกครั้ง

sudo systemctl restart ssh

ขั้นตอนที่ 5: เปิด Firewall ด้วย UFW

Ubuntu ใช้ ufw เป็นเครื่องมือ firewall ที่ช่วยจัดการ host-based firewall ได้ง่ายกว่าเขียน iptables ตรง ๆ โดยค่าเริ่มต้น UFW ยังไม่ได้เปิดใช้งาน

อนุญาต SSH ก่อนเปิด firewall

sudo ufw allow OpenSSH

เปิด port สำหรับบริการที่เราจะใช้

# Open WebUI
sudo ufw allow 3000/tcp

# Node-RED
sudo ufw allow 1880/tcp

# n8n
sudo ufw allow 5678/tcp

เปิดใช้งาน UFW

sudo ufw enable

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

sudo ufw status verbose

⚠️ ห้ามเปิด port กว้างเกินจำเป็น หากใช้งานจริงควรวาง Reverse Proxy + HTTPS หน้า service และจำกัด IP ที่เข้าถึงระบบหลังบ้าน


ขั้นตอนที่ 6: ติดตั้ง Docker Engine บน Ubuntu 26.04 LTS

ก่อนติดตั้ง Docker จาก official repository ให้ลบ package ที่อาจชนกันก่อน ตามแนวทางของ Docker Docs

for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do
  sudo apt remove -y $pkg
done

เพิ่ม Docker GPG key และ repository

sudo apt update
sudo apt install -y ca-certificates curl

# สร้าง directory สำหรับ keyring
sudo install -m 0755 -d /etc/apt/keyrings

# ดาวน์โหลด Docker official GPG key
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
  -o /etc/apt/keyrings/docker.asc

sudo chmod a+r /etc/apt/keyrings/docker.asc

เพิ่ม Docker repository แบบ .sources

sudo tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

ติดตั้ง Docker Engine และ Docker Compose Plugin

sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

ตรวจสอบ Docker

sudo systemctl status docker
sudo docker run hello-world

เพิ่ม user ปัจจุบันเข้า group docker

sudo usermod -aG docker $USER

ออกจากระบบแล้ว login ใหม่ จากนั้นทดสอบ

docker version
docker compose version

หมายเหตุด้านความปลอดภัย: ผู้ใช้ที่อยู่ใน group docker มีสิทธิ์สูงมากกับเครื่อง Server ควรให้เฉพาะ user ที่จำเป็นเท่านั้น


ขั้นตอนที่ 7: เตรียมโครงสร้าง Directory สำหรับ AI และ Automation

สร้าง directory หลักไว้ใต้ /opt

sudo mkdir -p /opt/ai-automation
sudo chown -R $USER:$USER /opt/ai-automation
cd /opt/ai-automation

สร้าง directory สำหรับ config เพิ่มเติม

mkdir -p compose backups scripts logs

โครงสร้างที่ได้

/opt/ai-automation/
├── compose/
├── backups/
├── scripts/
└── logs/

แนวคิดคือให้ทุก service ที่เกี่ยวข้องกับ AI และ Automation อยู่ในโครงสร้างเดียวกัน เวลา backup, migrate หรือสอนนักศึกษาในห้องแล็บจะจัดการง่ายกว่า


ขั้นตอนที่ 8: สร้าง Docker Compose สำหรับ AI + Automation Stack

เราจะสร้าง stack เบื้องต้น 4 ตัว

  • Ollama: รัน Local LLM

  • Open WebUI: หน้าเว็บสำหรับคุยกับโมเดล

  • Node-RED: สร้าง flow automation

  • n8n: สร้าง workflow automation และ integration

Ollama มี official Docker image สำหรับรันโมเดลผ่าน container และ Open WebUI รองรับการเชื่อมต่อกับ Ollama ผ่าน Docker โดยต้อง mount volume เพื่อเก็บข้อมูลไม่ให้หายเมื่อ container ถูกลบ

ไปที่ directory compose

cd /opt/ai-automation/compose
nano docker-compose.yml

ใส่ไฟล์นี้

services:
  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    restart: unless-stopped
    ports:
      - "127.0.0.1:11434:11434"
    volumes:
      - ollama_data:/root/.ollama

  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    restart: unless-stopped
    depends_on:
      - ollama
    ports:
      - "3000:8080"
    environment:
      - OLLAMA_BASE_URL=http://ollama:11434
      - TZ=Asia/Bangkok
    volumes:
      - openwebui_data:/app/backend/data

  nodered:
    image: nodered/node-red:latest
    container_name: nodered
    restart: unless-stopped
    ports:
      - "1880:1880"
    environment:
      - TZ=Asia/Bangkok
    volumes:
      - nodered_data:/data

  n8n:
    image: n8nio/n8n:latest
    container_name: n8n
    restart: unless-stopped
    ports:
      - "5678:5678"
    environment:
      - TZ=Asia/Bangkok
      - GENERIC_TIMEZONE=Asia/Bangkok
      - N8N_ENFORCE_SETTINGS_FILE_PERMISSIONS=true
    volumes:
      - n8n_data:/home/node/.n8n

volumes:
  ollama_data:
  openwebui_data:
  nodered_data:
  n8n_data:

Node-RED ระบุ image เป็น nodered/node-red และใช้ volume /data เพื่อเก็บ flow ให้คงอยู่หลัง restart container ซึ่งเป็นแนวทางตามเอกสาร Docker ของ Node-RED ส่วน n8n มีคู่มือ official สำหรับติดตั้งผ่าน Docker และ Docker Compose บน Linux Server

เริ่มระบบ

docker compose up -d

ดูสถานะ container

docker compose ps

ดู log

docker compose logs -f

ขั้นตอนที่ 9: ดาวน์โหลดโมเดลแรกใน Ollama

หลัง container ทำงานแล้ว ให้ลองดึงโมเดลขนาดเล็กก่อน เพื่อทดสอบระบบ

docker exec -it ollama ollama pull llama3.2

รันทดสอบ

docker exec -it ollama ollama run llama3.2

ทดลองถามสั้น ๆ เช่น

Explain what Docker Compose is in simple terms.

เข้า Open WebUI จาก Browser

http://SERVER_IP:3000

เข้า Node-RED

http://SERVER_IP:1880

เข้า n8n

http://SERVER_IP:5678

แนะนำ Screenshot: ถ่ายหน้า docker compose ps, หน้า Open WebUI, หน้า Node-RED และหน้า n8n เพื่อใช้ประกอบบทความ


ขั้นตอนที่ 10: กรณีใช้ NVIDIA GPU

หากเครื่องมี NVIDIA GPU ให้ติดตั้ง driver ก่อน

sudo apt update
sudo ubuntu-drivers devices
sudo ubuntu-drivers install
sudo reboot

หลัง reboot ตรวจสอบ

nvidia-smi

ติดตั้ง NVIDIA Container Toolkit เพื่อให้ Docker container เรียกใช้ GPU ได้ NVIDIA ระบุให้ติดตั้ง NVIDIA GPU driver ก่อน แล้วจึงติดตั้ง NVIDIA Container Toolkit ผ่าน package manager ของระบบ

sudo apt-get update
sudo apt-get install -y --no-install-recommends ca-certificates curl gnupg

เพิ่ม repository ของ NVIDIA Container Toolkit

curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | \
  sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg

curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | \
  sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \
  sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list

ติดตั้ง toolkit

sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit

ตั้งค่า Docker runtime

sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker

แก้ docker-compose.yml ใน service ollama โดยเพิ่ม

    gpus: all

ตัวอย่างเฉพาะส่วน Ollama

  ollama:
    image: ollama/ollama:latest
    container_name: ollama
    restart: unless-stopped
    gpus: all
    ports:
      - "127.0.0.1:11434:11434"
    volumes:
      - ollama_data:/root/.ollama

Restart stack

cd /opt/ai-automation/compose
docker compose down
docker compose up -d

ตรวจสอบ log

docker logs ollama

⚠️ ถ้าใช้ VM ต้องตรวจสอบก่อนว่า hypervisor รองรับ GPU Passthrough หรือไม่ เช่น Proxmox, VMware ESXi หรือเครื่อง Bare-metal จะเหมาะกว่า VM ทั่วไป


ขั้นตอนที่ 11: คำสั่งดูแลระบบประจำวันที่ควรรู้

ดู resource เครื่อง

htop

ดู disk usage

df -h

ดูขนาด Docker volume และ image

docker system df

ดู container ทั้งหมด

docker ps -a

Restart service ทั้ง stack

cd /opt/ai-automation/compose
docker compose restart

อัปเดต image

cd /opt/ai-automation/compose

# ดึง image ใหม่
docker compose pull

# recreate container ด้วย image ล่าสุด
docker compose up -d

ลบ image ที่ไม่ใช้

docker image prune -f

⚠️ อย่าใช้ docker system prune -a --volumes บนเครื่องจริงโดยไม่เข้าใจ เพราะอาจลบ image, network และ volume ที่ยังต้องใช้งานได้


ทดสอบและ Verify

ตรวจสอบ OS

lsb_release -a

ตรวจสอบ IP

ip a

ตรวจสอบ Firewall

sudo ufw status verbose

ตรวจสอบ Docker

docker version
docker compose version
docker compose ps

ตรวจสอบ service ports

ss -tulpn

ตรวจสอบว่า Web UI เปิดได้

Open WebUI: http://SERVER_IP:3000
Node-RED:    http://SERVER_IP:1880
n8n:         http://SERVER_IP:5678

ทดสอบ Ollama API จากเครื่อง Server

curl http://127.0.0.1:11434/api/tags

ถ้าระบบตอบ JSON กลับมา แปลว่า Ollama API พร้อมใช้งาน


แนวทาง Hardening เพิ่มเติมก่อนใช้จริง

หากจะเปิดใช้งานในองค์กรหรือเปิดให้เข้าจาก Internet ควรทำเพิ่มอย่างน้อย 5 เรื่องนี้

1. ใช้ Reverse Proxy + HTTPS

ใช้ Nginx หรือ Caddy หน้า Open WebUI, Node-RED และ n8n แล้วออก SSL Certificate ด้วย Let’s Encrypt

2. จำกัด IP ที่เข้าถึงระบบหลังบ้าน

เช่น อนุญาตเฉพาะวง LAN, VPN หรือ Tailscale

3. เปิด Authentication ทุก service

Node-RED และ n8n ควรตั้งรหัสผ่านก่อนใช้งานจริง

4. Backup Docker Volume

ควร backup volume ของ Open WebUI, Node-RED และ n8n เป็นประจำ

5. แยก Environment สำหรับทดลองและ Production

เครื่องที่ใช้สอนหรือทดลองควรแยกจากเครื่องที่ใช้งานจริง เพื่อป้องกัน config ทดลองกระทบระบบหลัก


สรุป

Ubuntu Server 26.04 LTS เป็นฐานที่เหมาะสำหรับสร้าง AI และ Automation Server เพราะเป็น LTS ที่ดูแลระยะยาว รองรับ Docker Engine บน Ubuntu 26.04 โดยตรง และสามารถต่อยอดไปยังเครื่องมือยอดนิยมอย่าง Ollama, Open WebUI, Node-RED และ n8n ได้ไม่ยาก จุดสำคัญคืออย่าเริ่มจากการลงเครื่องมือแบบกระจัดกระจาย แต่ควรวางโครงสร้างตั้งแต่แรก เช่น Static IP, SSH, UFW, Docker Compose, Volume และ Backup

สำหรับผู้เริ่มต้น แนะนำให้เริ่มจาก CPU-only stack ก่อน จากนั้นค่อยเพิ่ม NVIDIA GPU และ NVIDIA Container Toolkit เมื่อเข้าใจ flow ของ Docker แล้ว วิธีนี้จะลดปัญหาและทำให้ดูแลระบบได้มั่นคงกว่าในระยะยาว