Ghost 5.x ใช้งาน SQLite

Ghost 5.x ใช้งาน SQLite

Ghost 5.x จะทำการ default database เป็น MySQL ซึ่งสมัยก่อนโน้น default database คือ sqlite BREAKING CHANGE: Switch from sqlite3 to MySQL by default by tianon · Pull Request #323 · docker-library/ghost แต่ถ้าเราอยากติดตั้ง ghost 5.x + sqlite ก็สามารถติดตั้งได้เหมือนกัน Configuration - Adapt your publication to suit your needs version: "3.8" services: ghost: image: ghost:latest container_name: ghost restart: always ports: - "2368:2368" environment: url: http://localhost:2368 database__client: sqlite3 database__connection__filename: "content/data/ghost.db" database__useNullAsDefault: true database__debug: false volumes: - ~/ghost:/var/lib/ghost/content docker-compose.yml “~/ghost/content/data/ghost.db” จะเป็น path สำหรับเก็บข้อมูล sqlite กรณีเราอยากย้าย database ก็แค่ copy file ghost.db ...

August 18, 2023 · 1 min · 83 words · Teera
ติดตั้ง Frigate NVR โดยใช้ OpenVINO Detector ผ่านทาง Proxmox LXC

ติดตั้ง Frigate NVR โดยใช้ OpenVINO Detector ผ่านทาง Proxmox LXC

Frigate คือ NVR ที่มีการติดตั้ง AI object detection มาให้พร้อมใช้งาน โดยปกติแล้วการติดตั้ง Frigate เขาจะแนะนำให้ใช้ Google Coral TPU ซึ่งจะมีราคาค่อนข้างแพง และหาซื้อค่อนข้างยาก แต่ถ้าเราไม่มีก็สามารถใช้ CPU Detector ได้นะ ขั้นต่ำประมาณ 3 threads ทำงาน 100% ตลอดเวลา ฟังดูโหดร้ายมาก! แต่สำหรับบทความนี้เราจะใช้ OpenVINO Detector โดยเจ้าตัว OpenVINO จะสามารถใช้งานกับ CPU intel เจนเนอเรชั่น 6 ขึ้นไปเท่านั้น! และติดตั้งผ่านทาง Proxmox LXC วิธีเช็คว่าเครื่องเรารองรับ OpenVINO ให้เข้าไปที่ shell Proxmox จากนั้นใช้คำสั่ง lscpu | grep -e avx2 สามารถใช้คำสั่ง lscpu | grep -o avx หรือ lscpu | grep -o avx2 ถ้าเจอ Flags: avx2 แสดงว่าเครื่องรองรับ OpenVINO ...

July 29, 2023 · 2 min · 385 words · Teera
ย้ายข้อมูล MariaDB 10 ไปใช้งาน MySQL 8

ย้ายข้อมูล MariaDB 10 ไปใช้งาน MySQL 8

บล็อกที่ท่านกำลังอ่านทำงานอยู่บน Ghost CMS ซึ่งก่อนหน้านี้ใช้งาน MariaDB ในการจัดเก็บข้อมูล แต่เนื่องด้วย Ghost 5+ (เวอร์ชั่นใหม่) แนะนำให้ไปใช้งาน MySQL 8 ของเดิมบล็อกรันด้วย docker compose โดยจะมี ghost + mariadb รันคู่กัน version: "2.1" services: ghost: image: ghost:latest container_name: ghost restart: unless-stopped ports: - 8081:2368 environment: - database__client=mysql - database__connection__host=mariadb - database__connection__user=ghost - database__connection__password=ghost - database__connection__database=ghost - url=http://localhost:8081 volumes: - /ghost:/var/lib/ghost/content links: - mariadb mariadb: image: mariadb:latest container_name: mariadb restart: unless-stopped environment: - MYSQL_ROOT_PASSWORD=ghost - MYSQL_DATABASE=ghost - MYSQL_USER=ghost - MYSQL_PASSWORD=ghost volumes: - /mariadb:/var/lib/mysql เราทำการ backup database ของเก่าออกมาเป็นไฟล์ก่อน โดยใช้คำสั่ง ...

June 24, 2023 · 2 min · 328 words · Teera
มาสร้าง RTSP Stream Proxy ใช้งานกันเถอะ

มาสร้าง RTSP Stream Proxy ใช้งานกันเถอะ

ขอเล่าเหตุการณ์ที่มาของ Stream proxy server ก่อนนะ ได้ซื้อกล้อง IP Camera มาใหม่ TP-Link Tapo C200 โดยเจ้าตัวกล้อง support rtsp ซึ่งตรงกับความต้องการ ความคมชัด 1080P ราคาไม่แพงมาก ตัวกล้องจะมี rtps มาให้ 2 stream high: rtsp://IP Address/stream1 low: rtsp:// IP Address/stream2 ซึ่งก็ดูเหมือนจะเพียงพอใช่ไหม แต่ๆปัญหาคือ ถ้าเราจะใช้งาน high stream มากกว่า 1 client ตัวกล้องไม่ยอมให้ใช้งาน ตัวอย่างเช่น client 1: สำหรับ NVR เพื่อบันทึกเหตุการณ์ต่างๆ 24 ชั่วโมง client 2: สำหรับ Home Assistant เพื่อทำระบบ automation แจ้งเตือน พอมองเห็นปัญหาแล้วใช่ไหม? RTSP stream proxy server สามารถแก้ไขเรื่องนี้ได้ ยังไง? เริ่มติดตั้ง RTSP Stream Proxy ทำการสร้างไฟล์ config.yaml streams: ...

June 3, 2022 · 1 min · 116 words · Teera
update docker image ให้ใหม่สดอยู่เสมอ

update docker image ให้ใหม่สดอยู่เสมอ

เมื่อเรามีจำนวน docker container จำนวนเยอะๆ การที่เราต้องมาคอย pull latest image แต่ละ container ค่อนข้างเสียเวลามาก อีกทั้งเราก็ไม่สามารถรู้ล่วงหน้าว่า เมื่อไหร่ image จะมีการ update เป็นเวอร์ชั่นใหม่ แต่ถ้าเราสามารถ automation update docker image ทุกๆ container ของเราชีวิตมันก็คงจะง่ายขึ้นเนอะ ** คำเตือน การตั้ง automation update อาจจะส่งเสียต่อ *container ของท่านได้ กรณีเวอร์ชั่นใหม่มี bug ค่อนข้างเยอะ หรือไม่ support ต่อระบบของท่าน เพราะฉนั้นกรุณาทำระบบ monitoring อย่างแข็งแรง! Watchtower คือ “หอสังเกตการณ์” 555+ อันนั้นก็ตรงตัวไป ถ้าอธิบายง่ายๆก็คือ docker container ตัวนึงที่จะคอยตรวจสอบ docker image ถ้าเจอมีการ update version ก็จะทำการ pull image จากนั้น restart container ให้เราทันที ฟังแล้วชีวิตง่ายขึ้นมาก ( อ่านเพิ่มเติม ) เริ่มติดตั้ง Watchtower สำหรับการติดตั้ง watchtower สามารถทำได้ทั้งแบบ docker run หรือ docker-compose แต่สำหรับวันนี้ผมจะใช้วิธี docker-compose โดยสร้าง stack ผ่านทาง portainer ...

July 2, 2021 · 1 min · 139 words · Teera
แก้ปัญหา docker stats ไม่แสดงผล memory usage

แก้ปัญหา docker stats ไม่แสดงผล memory usage

ตอนนี้ใช้งาน raspberry pi 4 สำหรับ run docker ซึ่งก็มีจำนวน container ทำงานอยู่พอสมควร เพราะคิดว่าซื้อมาแล้ว ต้องใช้งานให้มันคุ้มค่าซิ! แต่เมื่อ container เริ่มเยอะ เครื่องมันก็จะเริ่มช้า! เราก็เลยอยากรู้ว่า container ตัวไหนใช้งาน cpu หรือ memory เยอะผิดปกติ ซึ่งเราสามารถใช้คำสั่ง docker stats docker stats ไม่แสดงผล memory usage อย่างที่เห็นดังรูปข้างบน MEM USAGE / LIMIT และ MEM % จะไม่แสดงผล ก็เลยไปลองหาข้อมูลจนเจอวิธีแก้ปัญหาดังกล่าว เลยคิดว่านำมาแชร์ เพื่อจะเป็นประโยชน์ วิธีแก้ปัญหา ทำการ backup cmdline.txt ไว้ก่อนเลย เผื่อมีอะไรผิดพลาด จากนั้นเข้าไปแก้ไขไฟล์ cmdline.txt ได้เลย sudo cp /boot/cmdline.txt /boot/cmdline.txt.old sudo nano /boot/cmdline.txt เมื่อเข้าไปในไฟล์ cmdline.txt เราจะเจอแบบข้างล่าง console=serial0,115200 console=tty1 root=PARTUUID=eb9dd260-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait ...

May 12, 2021 · 1 min · 102 words · Teera