BotKit
บทความ › n8n และระบบอัตโนมัติ

Postiz self-host: โพสต์หลายโซเชียลจากที่เดียว และ 3 ปัญหาที่เจอตอนติดตั้งจริง

Postiz เป็นเครื่องมือตั้งเวลาโพสต์โซเชียลแบบ open source คล้าย Buffer หรือ Hootsuite เขียนโพสต์ครั้งเดียว เลือกช่องทาง แล้วให้ระบบโพสต์ตามเวลา และยังเอามารันบนเครื่องตัวเองได้ (self-host) ผมติดตั้งไว้ใช้ร่วมกับ n8n บทความนี้รวมสิ่งที่เข้าใจผิดตอนวางแผน และปัญหาที่เจอตอนติดตั้งจริง

ความเข้าใจผิดที่ใหญ่ที่สุด: self-host ไม่ได้ข้ามขั้นสมัคร API ให้

ตอนวางแผน ผมคิดว่าใช้ Postiz แล้วจะได้โพสต์ TikTok, Facebook, Instagram ได้เลย โดยไม่ต้องยื่นขออนุมัติแอปกับแต่ละแพลตฟอร์มเอง ซึ่งไม่จริงสำหรับแบบ self-host

เอกสารของ Postiz ระบุว่า แพลตฟอร์มส่วนใหญ่ต้องมีแอปนักพัฒนาที่เราสมัครเองในพอร์ทัลของแต่ละเจ้า แล้วเอา key มาใส่เป็นตัวแปรสภาพแวดล้อมของเครื่องเรา เช่น FACEBOOK_APP_ID และ FACEBOOK_APP_SECRET (Instagram แบบบัญชีธุรกิจใช้แอปเดียวกับ Facebook Page) มีไม่กี่แพลตฟอร์มที่ผู้ใช้กรอกข้อมูลเองได้โดยไม่ต้องตั้งค่า เช่น Bluesky หรือ WordPress

ใช้ Postiz แบบเรื่องแอปของแพลตฟอร์ม
บริการคลาวด์ของ Postiz (เสียเงิน)ใช้แอปที่ Postiz สมัครและผ่านการอนุมัติไว้แล้ว
self-host บนเครื่องเราต้องสมัครแอปเอง และถ้าแพลตฟอร์มต้องผ่าน App Review ก็ต้องยื่นเอง
⚠️ ถ้าวางแผนจะใช้ self-host เพื่อหลบขั้นตอนอนุมัติของ TikTok หรือ Meta ให้คิดใหม่ สิ่งที่ Postiz self-host ช่วยคือรวมหน้าจัดการโพสต์ไว้ที่เดียว ไม่ใช่การข้ามสิทธิ์ API

อีกเรื่องที่ควรรู้: ปุ่มเพิ่มช่องทางจะแสดงทุกแพลตฟอร์ม แม้ยังไม่ได้ใส่ key กดแล้วจะเชื่อมต่อไม่สำเร็จโดยไม่บอกเหตุผลชัดเจน ถ้าเชื่อมไม่ได้ ให้เช็คว่าใส่ key ของแพลตฟอร์มนั้นหรือยังก่อน

สิ่งที่ต้องมีก่อนติดตั้ง

  • Docker (Windows ใช้ Docker Desktop) และไฟล์ docker compose ตามตัวอย่างในเอกสาร Postiz
  • PostgreSQL และ Redis (ไฟล์ compose ตัวอย่างมีให้ในชุด)
  • โดเมนที่เข้าถึงได้จากข้างนอก เพราะการเชื่อมบัญชีโซเชียลใช้ OAuth ซึ่งต้อง redirect กลับมาที่ URL จริง ถ้ารันที่บ้านใช้ Cloudflare Tunnel ได้

ตัวแปรที่ต้องตั้ง ไม่อย่างนั้น Postiz ไม่ยอมเริ่ม

ตัวแปรความหมาย
DATABASE_URLที่อยู่ PostgreSQL
REDIS_URLที่อยู่ Redis
JWT_SECRETข้อความสุ่มยาวๆ ใช้เซ็น session (เปลี่ยนแล้วทุกคนหลุดล็อกอิน)
FRONTEND_URLURL ที่เบราว์เซอร์ใช้เข้าหน้าเว็บ — ใช้เป็นฐานของ OAuth redirect ต้องเป็นโดเมนจริง
NEXT_PUBLIC_BACKEND_URLURL ที่เบราว์เซอร์ใช้เรียก backend
BACKEND_INTERNAL_URLURL ที่ frontend ใช้เรียก backend ภายในเครื่อง

ปัญหาที่เจอจริง 1: Docker Desktop ปิดตัวเองตอนเปิดเครื่อง

ติดตั้งเสร็จ ใช้ได้ วันรุ่งขึ้นเปิดเครื่องมา เว็บ Postiz เข้าไม่ได้ ตัว tunnel ยังทำงาน แต่ Docker Desktop ไม่ได้รัน ปัญหานี้ทำให้งานค้างไปหลายวันเพราะคิดว่าเป็นที่ Postiz

สาเหตุในเครื่องผมคือฟีเจอร์ AI ของ Docker Desktop สร้าง socket ไม่สำเร็จตอนบูต แล้วทำให้ทั้งโปรแกรมปิดตัว แก้โดยปิดฟีเจอร์นั้น (ในเครื่องผมคือตั้ง EnableDockerAI เป็น false ในไฟล์ตั้งค่าของ Docker Desktop หรือปิดจากหน้า Settings) สาเหตุในเครื่องอื่นอาจต่างกัน วิธีหาที่ใช้ได้ทุกเครื่องคือดู log ของ Docker Desktop ตอนที่มันปิดตัว แทนที่จะเดาจากฝั่งแอป

ปัญหาที่เจอจริง 2: ใครก็สมัครสมาชิกได้

ค่าเริ่มต้นเปิดหน้าสมัครสมาชิกไว้ ถ้าเว็บออนไลน์ผ่านโดเมนจริง คนแปลกหน้าก็สมัครเข้ามาได้ ตั้ง DISABLE_REGISTRATION=true เพื่อให้สมัครได้แค่บัญชีแรก แล้วปิดหน้าสมัคร (ตามเอกสาร ตัวเลือกนี้ปิดการล็อกอินแบบ OIDC/OAuth ไปด้วย)

ลำดับที่แนะนำคือ ตั้งค่านี้ไว้ก่อนเปิดเว็บออกอินเทอร์เน็ต แล้วสมัครบัญชีแอดมินทันทีที่ระบบขึ้น

ปัญหาที่เจอจริง 3: เครื่องดับ = ไม่มีโพสต์

โพสต์ที่ตั้งเวลาไว้ทำงานได้ก็ต่อเมื่อเครื่องเปิดอยู่ ถ้าตั้งโพสต์ตอนเช้าแต่ไฟดับตอนตี 5 โพสต์นั้นจะไม่ออก ใช้ self-host ที่บ้านกับงานส่วนตัวหรือทดลอง ถ้าเป็นงานลูกค้าที่ต้องโพสต์ตรงเวลา ให้ย้ายไปเซิร์ฟเวอร์ที่เปิดตลอด หรือใช้บริการคลาวด์

ใช้ร่วมกับ n8n

Postiz มี API ให้สร้างโพสต์จากระบบอื่น จึงต่อกับ n8n ได้ เช่น ให้ AI ร่างแคปชั่น ส่งให้คนอนุมัติใน LINE แล้วค่อยส่งเข้า Postiz เพื่อโพสต์หลายช่องทาง ดู workflow ส่วนอนุมัติได้ที่ n8n: ให้ AI ร่างแคปชั่น แล้วกดอนุมัติใน LINE

สรุป

  • Postiz self-host ฟรีและใช้ได้จริง แต่ต้องสมัครแอปนักพัฒนาของแต่ละแพลตฟอร์มเอง
  • ต้องมีโดเมนจริงเพราะ OAuth
  • ปิดการสมัครสมาชิกก่อนเปิดเว็บออกข้างนอก
  • เว็บล่มเมื่อไหร่ ไล่จากล่างขึ้นบน: เครื่อง → Docker → container → tunnel
เกี่ยวกับผู้เขียน — Jark นักพัฒนา LINE Bot และระบบ AI อัตโนมัติ อยู่เชียงใหม่ ทำระบบตอบแชทและจองคิวให้ร้านค้าจริง บทความในเว็บนี้มาจากงานที่ลงมือทำเอง อ่านเพิ่ม