59 คะแนน โดย GN⁺ 16 일 전 | 19 ความคิดเห็น | แชร์ทาง WhatsApp
  • สรุปตัวอย่างการสร้างโฮมแล็บที่ผสานฮาร์ดแวร์ขนาดเล็กกับบริการ cloud tunneling ฟรี เพื่อรันบริการหลากหลายด้วยตนเอง เช่น มีเดีย·AI·รูปภาพ·มอนิเตอร์ริง
  • เริ่มจาก OrangePI 5 แล้วอัปเกรดเป็น GMKTec NUC (RAM 32GB, NVMe 1TB) พร้อมใช้งานร่วมกับเครื่องเสมือนของ Hetzner ในโครงสร้างแบบไฮบริด
  • ทุกบริการรันใน Docker container และใช้ IaC แบบอิง Ansible role ร่วมกับการเข้ารหัสด้วย SOPS เพื่อให้ได้ทั้งความสามารถในการทำซ้ำและความปลอดภัย
  • ใช้ Cloudflare Tunnel เพื่อเปิดให้เข้าถึงจากภายนอกโดยไม่ต้องเปิด inbound port และใช้ Traefik + Authentik จัดการ reverse proxy กับการยืนยันตัวตนแบบ SSO
  • ด้วยค่าใช้จ่ายราว 7 ยูโรต่อเดือน ก็ยังคงความเป็นเจ้าของข้อมูลได้โดยไม่ผูกติดกับ vendor และให้คุณค่ากับการเรียนรู้และความสนุกมากกว่าความสมบูรณ์แบบ

การจัดวางฮาร์ดแวร์

  • ตอนแรกใช้ OrangePI 5 แต่ภายหลังย้ายมาใช้ GMKTec NUC เพราะมีปัญหาเรื่องการจัดการพลังงานและสตอเรจที่เชื่อมต่อผ่าน USB
    • ใช้ CPU AMD Ryzen 7 5700U, RAM 32GB, สตอเรจ NVMe M2 1TB
    • มีสล็อต M2 2 ช่อง จึงขยายได้ทั้ง RAM และดิสก์
    • ทำงานได้เสถียรกว่ามากเมื่อใช้งานระยะยาวตลอดปี
  • บริการที่ต้องทำงาน 24/7 จะรันแยกบนเครื่องเสมือนของ Hetzner
  • ยังไม่ได้ทำ NAS และใช้ Syncthing สำหรับซิงก์ข้อมูลสำคัญ
    • สนใจ Ugreen NAS, Ubiquiti ฯลฯ อยู่ แต่ตอนนี้ยังอยู่ในช่วงที่สนุกกับการลงมือทำเองมากกว่า

หลักการดำเนินงาน

  • Infrastructure-as-Code: ทำทุกการตั้งค่าที่เป็นไปได้ให้เป็นอัตโนมัติด้วยสคริปต์หรือแพลตฟอร์มจัดการอย่าง Ansible และเก็บไว้ในรูปแบบโค้ด
  • Reproducibility: เมื่อเกิดปัญหาหรือเปลี่ยนเครื่อง ต้องสามารถ redeploy และ reconfigure โครงสร้างพื้นฐานได้อย่างรวดเร็ว และเมื่อถอดบริการทดลองออกก็ไม่ควรเหลือสิ่งตกค้าง
  • ความสะดวกในการใช้งาน: เพราะเป็นโปรเจ็กต์งานอดิเรก จึงชอบแนวทางที่เป็นมาตรฐานและคุ้นเคย

ระบบปฏิบัติการ

  • ติดตั้งดิสโทร Debian ลงบน bare metal โดยตรง
  • เคยพิจารณา NixOS (บิลด์แบบทำซ้ำได้) และ Talos (k8s cluster) แต่พักไว้ก่อนเพราะภาระในการดูแล k8s workload บนเครื่องเดียวสูงเกินไปและมีเวลาไม่พอ
  • มองว่า hypervisor อย่าง ProxMox ก็ไม่จำเป็น จึงไม่ได้ใช้

สถาปัตยกรรมเครือข่าย

  • เลือก Cloudflare Tunnel เป็นวิธีเปิดบริการออกภายนอก
    • เซิร์ฟเวอร์จะสร้าง การเชื่อมต่อขาออกเท่านั้น ไปยังเครือข่าย Cloudflare จึงไม่จำเป็นต้องเปิด inbound port ที่ไฟร์วอลล์
    • เมื่อตั้งค่า tunnel แล้ว ทราฟฟิกทั้งสองทิศทางจะวิ่งผ่าน tunnel
    • เมื่อนำโดเมนไปผูกกับ Cloudflare DNS ก็สามารถแมปตาม subdomain ไปยังพอร์ตหรือโปรโตคอลเฉพาะของเครื่องได้ (เช่น HTTP/HTTPS/TCP)
    • ให้ใช้งานแบบ ฟรีทั้งหมด และถูกมองว่าเป็นทางเลือกที่ดีกว่า ngrok
  • วิธีใช้ fixed IP (White IP) มีทั้งค่าใช้จ่ายและความเสี่ยงด้านความปลอดภัย แม้จะมีทางเลือกอย่าง Tailscale Funnel แต่ก็เลือก Cloudflare Tunnel เพราะง่ายที่สุด
  • Traefik

    • เป็น open-source reverse proxy ที่รู้จัก Docker ได้โดยตรง จึงเหมาะกับงานอัตโนมัติฝั่งเซิร์ฟเวอร์
    • ถ้าติด label ให้ container อย่างเหมาะสม ก็จะ ตรวจจับ routing ได้อัตโนมัติ โดยไม่ต้องแก้ไฟล์คอนฟิกแยก
  • Authentik

    • เป็นแพลตฟอร์ม IdP (Identity Provider) และ SSO
    • สามารถเก็บการตั้งค่าเป็น blueprint (ไฟล์ YAML) ได้ จึงสอดคล้องกับหลัก IaC
    • ใช้ ForwardAuth middleware เพื่อ redirect ไปยังหน้าล็อกอินเมื่อเข้าถึงบริการที่มีความอ่อนไหว

เครื่องมือปฏิบัติการ

  • Ansible

    • เป็นเครื่องมือทำ infrastructure automation แบบ agentless (ต้องใช้แค่ SSH) โดยมีจุดเด่นคือคอนฟิกแบบ YAML และตัวอย่างที่มีอยู่มากมาย
    • นิยามแต่ละบริการเป็นหน่วย role: ประกอบด้วย tasks, defaults, handlers, templates, files
      • tasks: นิยามงานที่จะรัน
      • defaults: ค่าเริ่มต้น เช่น image tag, พอร์ต, ชื่อ container
      • handlers: รีสตาร์ต container เมื่อมีการเปลี่ยนคอนฟิก
      • templates: render ไฟล์ .env และ config.yaml ด้วย Jinja2
      • files: คอนฟิกแบบคงที่, สคริปต์
    • ลำดับทั่วไปในการ deploy บริการคือ:
      • สร้างทรัพยากรร่วม (network, volume) → สร้าง schema และผู้ใช้ใน PostgreSQL → render template คอนฟิก → pull Docker image → รัน container (รวมถึง environment variable และการตั้งค่า logging) → provision การตั้งค่ายืนยันตัวตนลงใน Authentik blueprint → ตั้งค่า Cloudflare Tunnel หากจำเป็น
    • ข้อเสียคือมี เอกสารจำนวนมหาศาล, โครงสร้าง DSL ที่ซ้ำไปซ้ำมา และ boilerplate เยอะ แต่ยังใช้อยู่เพราะคุ้นมือ
    • รัน playbook แบบ แมนนวลโดยไม่ผนวก GitOps ซึ่งตอนนี้ก็เพียงพอ
  • SOPS (Secrets OPerationS)

    • เข้ารหัสเฉพาะ ค่าใน YAML/JSON โดยคงโครงสร้างคีย์ไว้ จึงยังใช้ Git diff ได้อย่างมีประโยชน์
    • ใช้ backend การเข้ารหัสแบบ age — เครื่องมือที่ “ทำให้การเข้ารหัสง่ายขึ้นโดยไม่ต้องใช้ PGP”
    • แยกเก็บไฟล์คอนฟิกทั่วไป (homelab.yaml) กับไฟล์เข้ารหัส (homelab.sops.yaml) ตามแต่ละโฮสต์
    • เวิร์กโฟลว์:
      • สร้างคีย์ด้วย age-keygen → แก้ไขไฟล์เข้ารหัสด้วยคำสั่ง sops (ถอดรหัสในเอดิเตอร์ และเข้ารหัสกลับอัตโนมัติเมื่อบันทึก) → เมื่อรัน Ansible จะมีการ ถอดรหัสอัตโนมัติ
      • Ansible รองรับ SOPS โดยตรง จึงไม่ต้องใช้โมดูลหรือแฟล็กเพิ่มเติม
    • ข้อดีเมื่อเทียบกับ Ansible Vault: เป็นการเข้ารหัส ระดับค่า แทนทั้งไฟล์ จึงใช้ diff ได้
    • ข้อจำกัด: ต้องแชร์ private key ของ age ให้กับสมาชิกทีมอย่างปลอดภัย และหากคีย์หายจะไม่สามารถกู้ secret ได้
      • สำหรับโฮมแล็บที่ดูแลคนเดียว ถือว่าเป็นระดับความซับซ้อนที่เหมาะสม

บริการที่กำลังรันอยู่

  • การจัดการมีเดีย: สแต็ก *arr

    • Prowlarr: ตัวจัดการ indexer ที่ส่งผลการค้นหาไปยังบริการ *arr อื่น ๆ
    • Radarr: ตัวจัดการคอลเลกชันภาพยนตร์ — ระบุหนังที่ต้องการแล้วระบบจะค้นหา ดาวน์โหลด และจัดระเบียบให้อัตโนมัติ
    • Lidarr: ความสามารถแบบเดียวกันสำหรับเพลง และเชื่อมต่อกับ Navidrome
    • Bazarr: ดาวน์โหลดคำบรรยายอัตโนมัติ
    • Tidarr: บริการที่ช่วยเก็บเพลงจาก Tidal ไว้ในเครื่อง
    • Transmission: ไคลเอนต์ BitTorrent (พอร์ต 9091) ที่รับคำขอดาวน์โหลดทั้งหมดจากบริการ *arr
    • ทุกบริการอยู่หลัง Authentik authentication
    • ใช้ไดเรกทอรีดาวน์โหลดร่วม (/mnt/data/docker/transmission/downloads) และ PUID/PGID 1000 เพื่อประหยัดพื้นที่ดิสก์ด้วย hardlink
    • ตัวอย่างเวิร์กโฟลว์: เพิ่มหนังใน Radarr → ค้นหาผ่าน Prowlarr → Transmission ดาวน์โหลด → Radarr ย้ายเข้า media library → ดูได้ใน Jellyfin
  • การบริโภคมีเดีย

    • Jellyfin: media server แบบโอเพนซอร์สที่ต่างจาก Plex ตรงไม่ต้องล็อกอินผ่านคลาวด์ ใช้ระบบยืนยันตัวตนของตัวเอง และรองรับหลายอุปกรณ์รวมถึงแอป Android TV
    • Navidrome: music streaming server ที่รองรับ Subsonic API ใช้งานร่วมกับแอปมือถือ (เช่น DSub2000) ได้ โดย Lidarr จะเติมเพลงเข้ามาในโฟลเดอร์ library
    • Calibre Web: ตัวจัดการและผู้อ่านไลบรารี e-book
      • ซิงก์ฐานข้อมูล metadata ที่จัดการจากแอป Calibre บนเดสก์ท็อปของแล็ปท็อปมายังเซิร์ฟเวอร์ด้วย Syncthing
      • เข้าถึงหนังสือจากหลายรีดเดอร์ได้ผ่าน OPDS API
  • AI และแชต

    • LibreChat: อินเทอร์เฟซ AI chat แบบเซลฟ์โฮสต์ ที่เชื่อมต่อกับผู้ให้บริการ LLM ได้หลายเจ้า (OpenAI, Anthropic, Ollama แบบ local)
      • รองรับ RAG (Retrieval Augmented Generation)
      • ต้องใช้ MongoDB (ประวัติแชต), PostgreSQL + pgvector (embedding), MeiliSearch (full-text search) จึงเป็นชุดที่ค่อนข้างหนัก
      • เนื่องจาก Claude Code เข้าถึงง่ายกว่า จึงใช้งานไม่บ่อยและกำลังพิจารณาจะถอดออก
  • รูปภาพและไฟล์

    • Immich: บริการ ทางเลือกแทน Google Photos แบบเซลฟ์โฮสต์
      • สำรองรูปจากโทรศัพท์อัตโนมัติ, รู้จำใบหน้า, จัดอัลบั้ม, ดึง EXIF metadata
      • ใช้ PostgreSQL ของตัวเอง (รวม pgvector) และ machine learning container (จัดหมวดหมู่ภาพ) โดยตอนนี้เก็บรูปอยู่หลายพันภาพ
    • Syncthing: ซิงก์โฟลเดอร์ระหว่างแล็ปท็อป โทรศัพท์ และเซิร์ฟเวอร์ โดยเป็น การซิงก์ตรงแบบ P2P ไม่ผ่านตัวกลางคลาวด์
      • ใช้ซิงก์ Obsidian Vault, เอกสาร และข้อมูลอื่น ๆ ข้ามหลายอุปกรณ์รวมถึง Android
    • MinIO: object storage ที่เข้ากันได้กับ S3 ใช้สำหรับการทดสอบหรือแอปพลิเคชันที่ต้องการ S3 API
  • การอ่านและข้อมูล

    • Miniflux: ตัวอ่าน RSS feed แบบมินิมอล สมัครติดตามบล็อกและแหล่งข่าวราว 50 แห่ง
      • รองรับคีย์ลัด และให้ ฟีดเรียงตามเวลา โดยไม่มีการจัดอันดับด้วยอัลกอริทึม
  • โครงสร้างพื้นฐานและการยืนยันตัวตน

    • Traefik: reverse proxy ที่ route ทราฟฟิกไปยัง Docker container ตาม hostname และตรวจจับอัตโนมัติเมื่อ container เริ่มทำงานหากติด label ถูกต้อง
    • Authentik: ผู้ให้บริการ SSO และ ID ใช้ ForwardAuth middleware เพื่อป้องกันบริการ และเก็บ blueprint ไว้ใน Git เพื่อจัดการการตั้งค่ายืนยันตัวตนทั้งหมด
    • PostgreSQL: เซิร์ฟเวอร์ฐานข้อมูลส่วนกลางที่ Authentik, Miniflux, Immich, LibreChat ฯลฯ ใช้ instance เดียวร่วมกัน แทนการแยก DB คนละตัว เพื่อประหยัดทรัพยากรและสำรองข้อมูลง่ายขึ้น
    • Redis: แคชและที่เก็บ session ส่วนกลาง ใช้หลัก ๆ กับการจัดการ session และ work queue ของ Authentik เป็นต้น
  • ซอฟต์แวร์คัสตอม

    • Highlight Exporter: บริการที่เขียนด้วย Go สำหรับดึงไฮไลต์หนังสือจาก KOReader, Readwise, Apple Books แล้วแปลงเป็น Markdown ที่เข้ากันได้กับ Obsidian
    • Telegram Assistant: บอต Telegram ที่ให้ทั้งงานอัตโนมัติหลายแบบและการเข้าถึง AI ในแชตกลุ่ม เป็นโปรเจ็กต์ที่ ถูกเขียนใหม่บ่อยที่สุด เพื่อทดลองเทคโนโลยีใหม่
    • Chess-blunder trainer: เว็บแอปที่นำเกมจาก chess.com หรือ lichess.com มาวิเคราะห์ด้วย Stockfish แล้ว คัดเฉพาะตาเดินที่พลาดมาฝึก โดยมีแผนจะเปิดโอเพนซอร์สเร็ว ๆ นี้

การมอนิเตอร์ริง

  • Beszel

    • โซลูชัน มอนิเตอร์ริงน้ำหนักเบา ที่ตั้งค่าง่าย ดูแลง่าย และมีค่าเริ่มต้นที่ดี
    • มองว่า Grafana stack นั้นเกินความจำเป็นและซับซ้อนเกินไปสำหรับการดูสถิติ OS พื้นฐานของเครื่อง 2 เครื่อง
    • โปรเจ็กต์คล้ายกันอย่าง Glances ก็รู้สึกว่าต้องจูนมากเกินไป
    • Beszel ครอบคลุมสิ่งที่ต้องการได้ 120% และติดตั้งง่าย
  • Statsping

    • เครื่องมือ ping service แบบ มินิมอล สำหรับมอนิเตอร์ทรัพยากรเฉพาะจุดอย่างละเอียด
    • ส่ง ping ไปยัง endpoint ที่กำหนด รายงาน latency และความพร้อมใช้งาน พร้อมแจ้งเตือนได้หลายรูปแบบเมื่อบริการล่ม
    • โฮสต์อยู่บน เครื่องคลาวด์ เพื่อให้ยังทำงานได้แม้โฮมแล็บล่ม และไม่เพิ่มภาระดูแลรักษา

สิ่งที่ยังขาดอยู่ในตอนนี้

  • การสำรองข้อมูล

    • แม้จะรู้ว่าการสำรองข้อมูลสำคัญ แต่ตอนนี้ ยังไม่ได้ทำเลยแม้แต่น้อย
    • เมื่อเทียบกับไฟล์หนัง เพลง หรือรูปภาพแล้ว สิ่งที่จำเป็นกว่าคือ การสำรองฐานข้อมูล ของแต่ละบริการ แต่ยังตัดสินใจไม่ได้ทั้งเรื่องโซลูชันที่เหมาะสม (เช่น restic) และฮาร์ดแวร์
  • การตั้งค่า RAID

    • ข้อมูลมีเดียและระบบยัง อยู่ร่วมกันบนไดรฟ์ M2 NVMe ลูกเดียว
    • มีพื้นที่ทางกายภาพไม่พอสำหรับเซิร์ฟเวอร์ NAS หรือเครื่องสำรองแยก
  • ความเป็นอิสระจากคลาวด์

    • ความพร้อมใช้งานของทรัพยากร พึ่งพาโครงสร้างพื้นฐาน Cloudflare Tunnel อย่างมาก
    • หาก Cloudflare มีปัญหา การเข้าถึงโครงสร้างพื้นฐานก็จะหยุดไปด้วย และมีแผนจะลงทุนกับทางเลือกอื่นในอนาคต
  • IaC และอัตโนมัติแบบสมบูรณ์

    • ยัง รัน Ansible playbook แบบแมนนวล โดยไม่มี CI pipeline หรือการ provision อัตโนมัติ
    • ตอนนี้ยังไม่รู้สึกว่าการย้ายไป GitOps จะให้ประโยชน์มากนัก

ความคุ้มค่าและบทสรุป

  • จ่ายให้เครื่องเสมือน Hetzner ราว 7 ยูโรต่อเดือน ส่วนค่าไฟของโฮมเซิร์ฟเวอร์คาดว่าน้อยมาก
  • การเพิ่มบริการใหม่หรือแก้คอนฟิกราว 20~30 นาที โดยมอบหมายงานจำนวนมากให้ Claude Code แล้วรีวิวสั้น ๆ ก่อน deploy
  • ประเมินว่าใช้เวลากับทั้งโปรเจ็กต์ตลอดหลายปีมาประมาณ 100~150 ชั่วโมง
  • ได้ครอบครองข้อมูลของตนเองโดยมี vendor lock-in ต่ำมาก และลดความเสี่ยงจากการเปลี่ยนเงื่อนไขบริการแบบฉับพลัน, ฟีดแบบอัลกอริทึม, หรือการควบรวมกิจการที่ทำให้ข้อมูลสูญหาย
  • เป้าหมายไม่ใช่ระบบที่สมบูรณ์แบบ แต่คือ ความเข้าใจโครงสร้างพื้นฐานและความสนุก ไม่ว่าจะเป็นบริการที่ deploy, Ansible role ที่เขียน, หรือ secret ที่เข้ารหัส แต่ละอย่างล้วนมีคุณค่าในเชิงการเรียนรู้
  • หากอยากเริ่มทำโฮมแล็บ สิ่งสำคัญคือเริ่มจากเล็ก ๆ และอย่าคิดมากเกินไป

19 ความคิดเห็น

 
dongho42 15 일 전

ผมเคยใช้ Tailscale แล้วตอนนี้มาใช้ Cloudflare Tunnel ซึ่งดีมากจริงๆ แม้ว่าการใช้งานจะต่างกันอยู่บ้าง แต่ในกรณีของผม Tailscale ใช้งานยากเพราะชนกับ Adguard

 
minhoryang 14 일 전

ถ้ากำหนด parent DNS ของ Tailscale เป็น AdGuard ก็ได้ไม่ใช่เหรอ?

 
click 14 일 전

ไม่ใช่ adguard desktop แต่ adguard mobile ทำงานเป็น local VPN เลยไม่สามารถใช้ร่วมกันได้

 
dongho42 14 일 전

ดูเหมือนว่าจะเกิดการชนกันในส่วนของ VPN ไม่ใช่ DNS

 
kw9101 15 일 전

ช่วงนี้ผมลองโน่นลองนี่เพื่อให้ Google Nest เปิดฟังวิทยุ MBC ได้
สุดท้ายก็ใช้ Cloudflare tunnel ครับ เป็นบริการที่ดีจนทำให้อยากถามเลยว่าทำไมถึงให้ใช้ฟรี

 
hulryung 15 일 전

น่าสนุกดีนะ เล่าให้ฟังหน่อยสิ

 
toida 14 일 전

ผมใช้งาน Oracle Cloud free tier อยู่ครับ ได้ 4 vCPU, RAM 24GB, 200GB และเพราะเป็นพื้นฐาน ARM เลยมีบางอย่างที่ใช้งานร่วมกันไม่ได้เป็นครั้งคราว นอกนั้นถือว่าเหมาะเอามาเป็นของเล่นมากครับ

 
click 15 일 전

ผู้ให้บริการอินเทอร์เน็ตรายใหม่ที่เพิ่งสมัครบล็อกพอร์ต 80 กับ 443 ไว้ เลยกำลังอ้อมไปใช้ผ่าน Cloudflare Tunnel อยู่
ถ้าไม่มีนี่คงต้องยอมเสียค่าปรับแล้วย้ายค่ายไปแล้ว

 
recast7838 14 일 전

คุณใช้ผู้ให้บริการอินเทอร์เน็ตรายไหนอยู่ เขาปิดพอร์ตไว้หรือเปล่าครับ?

 
click 14 일 전

พูดให้แม่นกว่านั้นคือไม่ใช่ว่าผมบล็อกเอง แต่เป็นเราเตอร์ของผู้ให้บริการอินเทอร์เน็ตที่ปิดไม่ให้ทำ port forwarding บนพอร์ต 80, 443 มากกว่า
พอจะทำ port forwarding เลยใช้เราเตอร์นอกค่าย แต่ดันโดนแอบลดความเร็วแพ็กเกจที่สมัครแบบ 1G ลงมาเหลือ 100Mbps ซะงั้น
พอหาทางเลือกไปเรื่อย ๆ ก็พบว่าการไปผูกกับ cf tunnel นี่แหละเรียบร้อยที่สุด

 
keepworking 14 일 전

ลองตรวจสอบดูว่าเราเตอร์ของผู้ผลิตอื่นมีฟังก์ชันแปลง mac address หรือไม่ แล้วลองแปลงให้เป็นของเราเตอร์จากผู้ให้บริการอินเทอร์เน็ต ดูเหมือนว่าวิธีนั้นก็น่าจะช่วยเลี่ยงได้เหมือนกัน

 
click 13 일 전

พอตั้งค่า cf tunnel แล้ว ก็ไม่มี log ของ fail2ban ที่เคยสะสมบนพอร์ต 80 กับ 443 เลยสักนิด เลยถอดมันออกไปแล้วก็ไม่ต้องคิดเรื่องนี้อีกเลย
ตัวโดเมนก็ซื้อจาก Cloudflare แล้วก็ตั้งค่า SSO ที่ Cloudflare ด้วย ถ้าผ่าน SSO ไม่ได้ก็จะใช้งานบริการไม่ได้ ทำให้ Cloudflare รับการโจมตีทั้งหมดแทนไปเลย
มีแค่บริการที่ผมใช้คนเดียวเท่านั้นที่อยู่ข้างใน ก็เลยรู้สึกว่าคอนฟิกแบบนี้ก็ใช้งานได้ดีพอแล้ว
ถ้า Cloudflare ล่ม ผมก็ตัดสินใจว่าจะยอมรับระดับนั้นครับ

 
antegral 14 일 전

ปกติเห็นว่าบางครั้งเราเตอร์ที่ผู้ให้บริการสื่อสารให้มาจะบล็อกการทำพอร์ตฟอร์เวิร์ดไว้

ถึงจะเปิดได้ถ้าเพิ่มเราเตอร์ของผู้ผลิตอื่นสักตัว... แต่ตามที่คุณบอก cf tunnel ก็มี WAF พื้นฐานมาให้ แถมยังจับไปที่รีเจียน ICN ด้วย เลยแทบไม่มีเหตุผลที่จะไม่ใช้ครับ

 
bus710 15 일 전

ผมรันงานจุกจิกต่าง ๆ อยู่โดยเอา n8n ขึ้นบนโฮมแล็บแล้วเชื่อมกับ Anthropic, Telegram, สตอเรจ ฯลฯ แต่พวกคอนเน็กเตอร์ทำมาดีเลยใช้งานสะดวกครับ

 
ndrgrd 15 일 전

ผมใช้อุปกรณ์พลังงานต่ำซีรีส์ Ryzen 8000 เป็นโฮมเซิร์ฟเวอร์แบบ 24/7 อยู่ครับ
ปกติใช้เป็น NAS และเมื่อรวมคอนเทนเนอร์กับบริการต่าง ๆ แล้วก็ใช้งานอยู่ราว 70 อย่าง แต่การใช้ไฟต่อเดือนออกมาไม่ถึง 10kWh เลยครับ คิดเป็นค่าไฟประมาณ 2,000 วอน

 
kimjoin2 15 일 전

Cloudflare Tunnel
ชอบมากครับ

 
kimjoin2 15 일 전

บางตัวใช้เวลานานกว่าจะตอบกลับ เลยมีพ่น 502 ออกมาบ้างเป็นบางครั้ง
แต่ก็ฟรีนี่นะ~

 
j2sus91 15 일 전

ผมก็ใช้ Cloudflare Tunnel อยู่เหมือนกัน ดีมากจริง ๆ
ปกติถ้าอยู่หลังเราเตอร์ หลายกรณี IP ภายนอกจะอยู่ที่ตัวเราเตอร์

แต่ถ้าใช้ Cloudflare Tunnel แม้จะเป็น IP ภายใน
ก็สามารถเชื่อมต่อจากภายนอกได้ผ่านการจดทะเบียนโดเมน~

แถมยังฟรีอีกด้วย,

 
GN⁺ 16 일 전
ความคิดเห็นจาก Hacker News
  • อันนี้เจ๋งมากก็จริง แต่ไม่ควรใช้ Cloudflare Tunnel สำหรับสตรีมมิงมีเดีย
    มันถูกห้ามตามเงื่อนไขการใช้งาน หรืออย่างน้อยก็ไม่ใช่การใช้งานตามที่ตั้งใจไว้ และบริการอาจถูกระงับได้
    แนะนำให้ใช้ Wireguard หรือ Tailscale แทน
    บทความที่เกี่ยวข้อง

    • เพราะแบบนั้นฉันเลยเช่า VPS เดือนละ 5 ดอลลาร์แล้วเชื่อมผ่าน Tailscale เหมือนกัน
      มันดีสำหรับ แก้ CGNAT ด้วย และถ้าอยากได้แบบ GUI ก็แนะนำ Nginx Proxy Manager
    • สงสัยว่า Tailscale Funnel รองรับคัสตอมโดเมนแล้วหรือยัง
      ตอนนี้ฉันกำลังย้ายไปใช้ชุด rathole + traefik อยู่ ทดลองจนถึงเช้ามืดแล้วเผลอไม่นอนไปเลย
    • Cloudflare Tunnel เป็นการ เปิดเผยบริการสู่สาธารณะ แต่ Wireguard/Tailscale เป็น VPN
      Tailscale (แต่ไม่ใช่ Headscale) มีฟังก์ชัน รีเวิร์สพร็อกซี ชื่อ Funnel แต่ใช้โดเมนส่วนตัวไม่ได้
      ถ้าจะหาอะไรแทน CF Tunnel ที่ใกล้เคียงที่สุดก็คือ Pangolin และยังมีวิธี self-host NetBird ร่วมกับฟังก์ชันรีเวิร์สพร็อกซีได้ด้วย
    • ถ้าจำไม่ผิด ข้อกำหนดของ CF ห้าม แคชมีเดีย ไม่ได้ห้ามสตรีมมิงโดยตรง
  • นี่ดูเหมือนเป็นแฟนตาซีของการได้เป็น ผู้ดูแลระบบ มากกว่าแฟนตาซีเรื่อง ‘ความเป็นอิสระ’

    • ฉันชอบมากที่ไม่ต้องกังวลว่าเพลงที่ชอบจะถูกปิดกั้นการเข้าถึงเพราะปัญหาไลเซนส์
    • ความเป็นอิสระย่อมมาพร้อมกับ ความรับผิดชอบ สองอย่างนี้แยกจากกันไม่ได้
    • ตัวอย่างเช่นใน r/homelab จะมีคนเล่าว่าทำ NAS เองเพื่อเก็บรูปของภรรยาแทน Google Photos
      แต่พูดตามตรง ฉันว่าจ่ายให้ Google หรือ Apple เดือนละ 5 ดอลลาร์น่าจะเป็นทางเลือกที่ดีกว่ามาก ยังไม่แน่ใจเลยว่าพวกเขาทำแบ็กอัปแบบ 3-2-1 กันหรือเปล่า
  • ถ้ามีกลุ่ม อาสาสมัคร ตามห้องสมุดท้องถิ่นที่คอยให้บริการแบบนี้ก็คงดี
    เด็ก ๆ จะได้เรียนรู้การดูแลบริการ และคนที่ไม่ถนัดเทคโนโลยีก็จะมีโอกาสใช้โอเพนซอร์สด้วย

    • แต่ปัญหาคือเรื่อง ซัพพอร์ต เสมอ
      ไม่มีใครอยากรับงานบริการลูกค้า เลยทำให้บริการส่วนใหญ่มีโครงสร้างแบบจ่ายเงินเพื่อจะได้พูดว่า “กรุณาไปติดต่อฝ่ายซัพพอร์ตทางนั้น”
  • ฉันใช้ fnox สำหรับจัดการซีเคร็ต
    มันรองรับแบ็กเอนด์ได้มากกว่า sops เยอะ และรู้สึกว่า DX (ประสบการณ์นักพัฒนา) ก็ดีกว่า

    • ฉัน self-host Infisical แล้วใช้งานอยู่
    • ดูน่าสนใจ ตอนนี้ฉันใช้ SOPS อยู่ แต่น่าจะลองพิจารณาเป็นตัวแทนได้
  • มีคำพูดว่าเป็น ‘แฟนตาซีของผู้ชายที่เป็นอิสระและพร้อมรับมือทุกอย่าง’ แต่สุดท้ายก็ยังมี Cloudflare คั่นกลางอยู่ เลยไม่ใช่อิสระแบบสมบูรณ์

  • Cloudflare Tunnel เป็นเครื่องมือที่ยอดเยี่ยมจริง ๆ
    เมื่อก่อนฉันโฮสต์ตรงจาก IP ที่บ้าน แต่ตอนนี้จัดการผ่าน cloudflared ได้สะดวกกว่ามาก
    แถมยังกังวลเรื่องไฟร์วอลล์หรือการบุกรุกเครือข่ายน้อยลงด้วย
    ตอนนี้ homelab ของฉันถูกจัดการด้วย bash script แบบ idempotent ที่ Claude เขียนให้
    ฉันรู้สึกว่าความซับซ้อนของ dependency เกิดจากความอยากของคนที่จะเปลี่ยนคุณสมบัติต่าง ๆ และปฏิสัมพันธ์ระหว่างมันก็ก่อให้เกิดบั๊ก
    เพราะงั้นการอธิบายทุกอย่างด้วย bash script ง่าย ๆ จึงเสถียรกว่า
    ตอนนี้ฉันใช้ systemd + podman container และได้เขียน หน้าบันทึก ไว้สำหรับอ้างอิงเอง

    • ไม่กังวลเรื่อง ความเป็นส่วนตัว ที่ Cloudflare สามารถเห็นข้อมูลทั้งหมดหรือ?
      อยากรู้ว่าคิดว่าความสะดวกในโลกความจริงคุ้มกับข้อเสียนั้นหรือเปล่า
    • อยากรู้ว่าข้อดีของ Cloudflare Tunnel เมื่อเทียบกับการใช้ Wireguard ตรง ๆ คืออะไร
  • ไม่เข้าใจว่าทำไมทุกคนต้องเอาของพวกนี้ขึ้น อินเทอร์เน็ตสาธารณะ ด้วย แค่ใช้ Tailscale ก็พอไม่ใช่เหรอ

    • มันสะดวกตรงที่ติดตั้งแอปแล้วกำหนด URL สาธารณะ ได้เลย ไม่จำเป็นต้องอยู่ใน tailnet เดียวกัน
    • Tailscale เป็น โซลูชันที่เกินความจำเป็น เปิดแค่พอร์ต 80, 443 แล้วทำ authentication ผ่านรีเวิร์สพร็อกซีให้ดีก็ปลอดภัยพอแล้ว ฉันใช้แบบนั้นมาหลายปี
    • แต่ก็มีกรณีที่ผู้ใช้งานภายนอก เช่น สมาร์ตทีวี ซึ่งติดตั้ง Tailscale ไม่ได้ จำเป็นต้องเข้าถึง Jellyfin
  • ดูเหมือนผู้เขียนจะสับสนระหว่าง homelab กับ self-hosting
    self-hosting คือการรันบริการที่ใช้งานจริง ส่วน homelab คือ สภาพแวดล้อมสำหรับทดลองและเรียนรู้
    ฉันไม่เก็บข้อมูลส่วนตัวหรือบริการสำคัญไว้ใน homelab เพราะมันเป็นที่ที่พร้อมจะพังได้เสมอ

  • ฉันเคยเห็นบริษัท SaaS ในยูเครนที่ให้บริการทราฟฟิก production จริงจาก บังเกอร์ใต้ดิน มาแล้ว

  • ฉันช็อกมากที่ค่า subscription สำหรับสตรีมมิงรวมกันแล้วปีละ 1,300 ดอลลาร์
    เลยซื้อ NAS กับฮาร์ดดิสก์ 36TB มาทำ arr stack แล้วก็ยกเลิก subscription ทั้งหมด
    ทั้งครอบครัวก็ทำตามกันหมด ตอนนี้ประหยัดได้ปีละ 5,000–6,000 ดอลลาร์
    NAS ก็น่าจะคืนทุนได้ภายในไม่กี่เดือน และหลังจากนั้นก็เป็นกำไรล้วน
    แถมด้วย Claude Code การตั้งค่าก็เสร็จภายในไม่กี่ชั่วโมง
    ที่สำคัญคือได้ การคัดสรรคอนเทนต์แบบไร้สิ่งรบกวนเหมือน Netflix หรือ Hulu ทำให้ใช้งานสนุกกว่ามาก

    • ข้อดีใหญ่อีกอย่างคือมันรองรับ การสตรีมบิตเรตสูง
      ถ้าริป 4K Blu-ray แล้วสตรีมในบ้าน คุณภาพภาพจะดีกว่าบริการเชิงพาณิชย์มาก
    • ฉันใช้ วิธีแบบไฮบริด ยังเก็บ subscription ราคาถูกไว้ แต่ถ้าจะดูภาพดีที่สุดแบบไม่มีโฆษณา ก็ใช้มีเดียเซิร์ฟเวอร์ของตัวเอง
      รู้สึกว่าเดี๋ยวนี้ ความคุ้มค่าของบริการสตรีมมิงต่ำมาก แม้แต่แพ็กเกจแพง ๆ ก็ยังได้แค่ 1080p ในหลายกรณี
    • สงสัยว่ามันถูกกฎหมายไหม เขาหลีกเลี่ยงการอัปโหลดหรือเปล่า
    • หรือจะไม่เสียทั้งเงินและเวลา แล้วเลิก เสพติดการบริโภคคอนเทนต์ ไปหางานอดิเรกอย่างอื่นแทนก็ได้