เอกสาร / สรุปงาน · 2026-10-27 · /opt/data/docs/2026-10-27-openwebui.md
| อย่าง | ค่า |
|---|---|
| URL | https://chat.thisaan.com (TLS อัตโนมัติผ่าน Caddy on-demand) |
| image | ghcr.io/open-webui/open-webui:main |
| container | openwebui · restart=unless-stopped · port 127.0.0.1:3010 → 8080 |
| ข้อมูล | /opt/openwebui/data (bind mount) |
| env | /opt/openwebui/openwebui.env (600) |
| compose | /opt/openwebui/docker-compose.yml |
| โมเดล | hermes-agent → ผ่าน https://hermes.thisaan.com/agent-api/v1 (bridge) |
Open WebUI พูดภาษา OpenAI แต่ Hermes ไม่มี endpoint แบบนั้นในตัว → ใช้ bridge
(/opt/data/apps/hermes-bridge/bridge.py) ที่ห่อ hermes -z / hermes --resume
ทำให้ทุกบทสนทนาลง state.db เดียวกับ dashboard และ /ui/ → คุยต่อกันได้
```bash
ssh thisaan 'docker exec openwebui sh -lc "python - <<PY
import os,urllib.request
u=os.environ[\"OPENAI_API_BASE_URL\"]+\"/models\"
r=urllib.request.Request(u, headers={\"Authorization\":\"Bearer \"+os.environ[\"OPENAI_API_KEY\"]})
print(urllib.request.urlopen(r, timeout=15).read().decode()[:200])
PY"'
```
ผลที่วัดได้: status 200 · {"data":[{"id":"hermes-agent",...}]}
08:44 เปิด signup → 08:48 มีบัญชี scan-…@blockaid-scan.invalid (role admin) เข้ามาสมัครเอง
ตรวจแล้ว chats: 0 · messages: 0 (บอทไม่ได้ใช้ agent) แล้วลบทิ้ง + ปิด signup
กฎ: ห้ามเปิด ENABLE_SIGNUP=true ค้างไว้บนอินเทอร์เน็ตสาธารณะ
ถ้าต้องสร้างบัญชี ให้เปิดเป็นหน้าต่างสั้น ๆ แล้วปิดทันที หรือจำกัด IP ที่ระดับ Caddy
ENABLE_SIGNUP=true + docker compose up -d (recreate ~40 วิ)me@local ก็ใช้ได้ — ไม่มีการยืนยัน)ENABLE_SIGNUP=false + docker compose up -d ทันทีที่สมัครเสร็จ```bash
cd /opt/openwebui
docker compose ps
docker compose logs --tail 50 openwebui
docker compose restart openwebui # env เปลี่ยน → docker compose up -d (recreate)
```
all-MiniLM-L6-v2) จาก HuggingFace ตอนบูตครั้งแรก→ startup ครั้งแรก ~90 วิ และต้องมีเน็ตออก
(cd /opt/data/apps/hermes-bridge && nohup python3 bridge.py >> bridge.log 2>&1 &)
ผู้ใช้ต้องการแค่หน้าแชท ไม่เอาที่มีสมัคร/อีเมล → เปลี่ยนเป็น:
| ชั้น | ตั้งค่า |
|---|---|
| Open WebUI | WEBUI_AUTH=false (ไม่มีหน้าล็อกอิน ไม่มีผู้ใช้ ไม่มีอีเมล) · ENABLE_SIGNUP=false |
| Caddy | basic_auth ที่ chat.thisaan.com (user thisaan) — รหัสอยู่ใน /opt/openwebui/LOGIN.txt (600) |
| ฟอนต์ไทย | self-host: /opt/openwebui/static/fonts/ → Caddy เสิร์ฟ /fonts/* |
ผลวัดจริง:
```
ไม่มีรหัส → 401 · ใส่รหัส → 200 (ไม่ต้องล็อกอินซ้ำในแอป)
/api/config → auth: False · signup: False
document.fonts / หน้าจอ → ไทยแสดงผลถูก (ไม่มี ▯)
```
/static/fonts/* ของ Open WebUI คืน 404** — แอปไม่เสิร์ฟไฟล์ที่เราเมาท์ไว้ใต้ build/static → ต้องให้ Caddy เสิร์ฟเองที่ path /fonts/* (root /opt/openwebui/static)
sed -i = container ยังเห็นไฟล์เก่า (sed สร้าง inode ใหม่) → ใช้ python เขียนทับ (inode เดิม) หรือ docker compose restart
custom.css ของ Open WebUI เป็น directory ไม่ใช่ไฟล์ → เมาท์ทับไม่ได้