SyCraft

Aleksey Zhadan · fullstack developer, DevOps · Head of TechPlatform

วิศวกรรมระบบ: โครงสร้างพื้นฐาน, AI‑agents, บริการของตัวเอง

ผมออกแบบและส่งมอบระบบที่ทำงานต่อเนื่องได้หลายปี: เซิร์ฟเวอร์สี่สิบเครื่อง ผลิตภัณฑ์แปดตัวที่ใช้งานจริง และ LLM pipeline ทั้งหมดสร้างและดูแลโดยคนคนเดียว รับงานฟรีแลนซ์

  • โครงสร้างพื้นฐานและ DevOps
  • AI agents บน LLM
  • เว็บเซอร์วิสแบบครบวงจร
  • ระบบอีเมลและเครือข่าย
  • 20 ปีในงานวิศวกรรมและดูแลระบบ
  • 731 Ansible playbooks และ 154 roles ที่ใช้งานจริง
  • 98 บริการที่มีสเปกเป็นลายลักษณ์อักษร
  • 8 ผลิตภัณฑ์เว็บและมือถือของตัวเองที่ใช้งานจริงทุกวัน
  • ≈40 เซิร์ฟเวอร์และโหนดเครือข่ายในสามประเทศ พร้อมคลัสเตอร์ k3s

บริการ

ลูกค้าสั่งอะไร และได้อะไร

ไม่ใช่ "ชั่วโมงให้คำปรึกษา" แต่เป็นระบบที่ใช้งานได้จริง พร้อมเอกสารและการ deploy ที่ผ่านการทดสอบแล้ว

โครงสร้างพื้นฐานและ DevOps

เซิร์ฟเวอร์, virtualisation, Kubernetes, deploy เป็นโค้ด ระบบที่สร้างใหม่ทั้งหมดได้ด้วยคำสั่งเดียว ไม่ต้องพึ่งความจำ

  • Proxmox, k3s, Podman: ตั้งแต่เครื่องเดียวจนถึงคลัสเตอร์
  • Ansible playbooks และ roles สำหรับทุกบริการ
  • แบ็กอัป เมตริก เวรดูแล และการแจ้งเตือน

AI agents และงานอัตโนมัติด้วย LLM

Pipeline ที่โมเดลทำงานประจำแทนคน และผ่านการตรวจรับตามเกณฑ์ที่เขียนไว้ ใช้กับโมเดลฟรีได้ด้วย

  • ระบบหลาย agent: ผู้วางแผน ผู้ปฏิบัติงาน ผู้ตรวจสอบ
  • ประมวลผลอีเมล เอกสาร statement ธนาคาร และ ticket
  • หน้าแชทใน Mattermost และ Telegram

เว็บเซอร์วิสแบบครบวงจร

ตั้งแต่ data schema จนถึง deploy และแอปมือถือ ผลิตภัณฑ์ของผมใช้งานจริงมาหลายปี ของคุณก็จะสร้างแบบเดียวกัน

  • Python/FastAPI, PostgreSQL, Valkey
  • Frontend ด้วย TypeScript/Vue, Android ด้วย Kotlin
  • Single sign-on ผ่าน OIDC ตั้งแต่วันแรก

ระบบอีเมล

เมลเซิร์ฟเวอร์ของคุณเอง แทนคลาวด์ของคนอื่น: ย้ายโดเมนโดยไม่เสียอีเมลสักฉบับ รักษา reputation และกันสแปมด้วย LLM

  • Stalwart: JMAP, IMAP, SMTP, webmail
  • DKIM/SPF/DMARC ประกาศจากโซนโดยอัตโนมัติ
  • กล่องเมลขนาดใหญ่ที่โมเดลช่วยจัดระเบียบ

เครือข่ายและการเข้าถึงจากทุกประเทศ

เครือข่ายส่วนตัวที่ครอบคลุมหลายประเทศ: เข้าถึงบริการได้จากทุกอุปกรณ์ และแม้ลิงก์หนึ่งจะล่มก็ไม่ตัดการควบคุมระบบ

  • MikroTik, WireGuard, routing แยกตามโดเมน
  • ช่องทางควบคุมสำรอง
  • จัดการ allow list เองผ่านบอท

Single sign-on และการเก็บ secrets

บัญชีเดียวสำหรับทุกบริการ และที่เก็บ secret ที่ระบบ deploy อ่านรหัสผ่านได้เอง

  • OIDC provider ของตัวเอง เชื่อมกับ Forgejo, Nextcloud และอีเมล
  • OpenBao: เอา secrets ออกจาก repository และออกจากหัวคน
  • สิทธิ์ตามบทบาท เพิกถอนได้ด้วยการแก้ไขครั้งเดียว

ผลิตภัณฑ์ที่ใช้งานจริงแล้ว

แปดระบบที่ใช้งานจริงอย่างต่อเนื่อง

ไม่ใช่เดโมและไม่ใช่ต้นแบบ: ทุกตัวประมวลผลข้อมูลจริงทุกวัน

LiveMail

เว็บเมลของตัวเองบน Stalwart/JMAP: อีเมลหลายล้านฉบับ ค้นหา กฎ และโฟลเดอร์เมทาสำหรับ SMS และสายโทร

สร้างด้วยStalwart, JMAP, แคช Valkey, ล็อกอินผ่าน OIDC

ผลลัพธ์แทนที่แผง Zimbra แบบเสียเงิน

กันสแปมและเคลียร์กล่องเมล

LLM pipeline: อีเมลและ SMS ถูกจัดกลุ่มตามผู้ติดต่อ แต่ละรายการได้รับคำตัดสินจากโมเดลและการตัดสินใจ

สร้างด้วยหลายโมเดล ทำเป็นชุดพร้อมเพดานต่อวัน

ผลลัพธ์เคลียร์เองอัตโนมัติ พร้อมปุ่มหยุดฉุกเฉิน

LiveFinance

รวบรวม statement ธนาคารและทำบัญชี: แยกข้อมูลจาก PDF และ API อัตโนมัติ พร้อมประวัติยอดคงเหลือ

สร้างด้วยตัวแยก PDF และ API ธนาคาร, PostgreSQL

ผลลัพธ์วิเคราะห์รายจ่ายโดยไม่ต้องกรอกเอง

LivePhotos

คลังสื่อ: รูปและวิดีโอ พร้อมจดจำบุคคลและให้คะแนนภาพ

สร้างด้วยนำเข้าจากแหล่งภายนอก โมเดลจดจำ

ผลลัพธ์ภาพที่ดีที่สุดขึ้นมาเอง ค้นหาคนได้จากใบหน้า

LiveHistory

บันทึกการเดินทางและการอยู่ที่ต่างๆ: โทรศัพท์ รถยนต์ ข้อมูลพิกัด

สร้างด้วยโทรศัพท์, StarLine, ข้อมูลพิกัด

ผลลัพธ์แหล่งเหตุการณ์เดียว แทน log ที่กระจัดกระจาย

SyCraft IdP

OIDC provider ของตัวเอง: single sign-on สำหรับทุกบริการ

สร้างด้วยOIDC เชื่อมกับ Forgejo, Nextcloud และอีเมล

ผลลัพธ์บัญชีเดียวใช้ได้ทุกอย่าง จัดการสิทธิ์ในที่เดียว

SyCraft Control

แอป Android: เก็บรายชื่อผู้ติดต่อ ซิงก์ SMS ประวัติการโทร และปฏิทิน

สร้างด้วยKotlin, ซิงก์กับเซิร์ฟเวอร์

ผลลัพธ์ดูแลโทรศัพท์จากระยะไกล

ตัวประสานงาน AI agents

ระบบหลาย agent บน Kubernetes: มอบหมายงาน ผู้ปฏิบัติงาน และผู้ตรวจคุณภาพคำตอบ

สร้างด้วยk3s, โมเดลฟรีภายใต้การตรวจรับ, Mattermost และ Telegram

ผลลัพธ์แก้งานเป็นชุดโดยไม่ใช้ subscription แบบเสียเงิน

เคสด้านสถาปัตยกรรม

ปัญหา → ทางแก้ → ผลลัพธ์

สี่ปัญหาที่มักถูกมองว่า "ยากเกินไป ปล่อยไว้แบบนี้แหละ"

ย้ายอีเมลออกจากคลาวด์ของคนอื่น
01

ย้ายอีเมลออกจากคลาวด์ของคนอื่น

  • 15,000 อีเมลในคลัง
  • 41 ที่อยู่ที่กู้คืนได้
  • 2 โดเมนที่มีประวัติ 20 ปี

ปัญหา

สองโดเมนที่มีประวัติยี่สิบปีอยู่บนบริการอีเมลภายนอก ผู้ให้บริการไม่ยอมส่งมอบรายชื่อกล่องเมล จึงไม่สามารถย้าย "ตามเดิม" ได้

ทางแก้

สร้างรายชื่อที่อยู่ขึ้นใหม่จากคลังอีเมล: 15,000 ฉบับ 41 ที่อยู่ ย้ายโดเมนไปยัง Stalwart ที่โฮสต์เอง สร้างที่อยู่ใหม่เป็น alias และ list ส่วน DKIM/SPF/DMARC ประกาศอัตโนมัติจากโซนที่เซิร์ฟเวอร์ดูแลเอง

ผลลัพธ์

ย้ายโดยไม่เสียอีเมลสักฉบับ reputation ของโดเมนยังดีเหมือนเดิม ตอนนี้เพิ่มโดเมนใหม่ได้ด้วยคำสั่งเดียว

AI จัดกล่องเมลแทนการเคลียร์ด้วยมือ
02

AI จัดกล่องเมลแทนการเคลียร์ด้วยมือ

  • 47,000 อีเมลในกล่อง
  • หลาย โมเดลต่ออีเมลหนึ่งฉบับ
  • ปุ่มหยุดฉุกเฉิน และเพดานต่อวัน

ปัญหา

อีเมลสี่หมื่นเจ็ดพันฉบับจัดด้วยมือไม่ไหว และลบผิดแล้วย้อนคืนไม่ได้ ระบบอัตโนมัติต้องน่าเชื่อถือพอที่จะให้ลบได้

ทางแก้

Pipeline: ตัดซ้ำ จัดกลุ่มตามผู้ติดต่อ คำตัดสินจากหลายโมเดล และตัดสินใจเฉพาะเมื่อโมเดลเห็นตรงกัน ทำงานเป็นชุดพร้อมเพดานต่อวันและปุ่มหยุดฉุกเฉิน

ผลลัพธ์

กล่องเมลจัดระเบียบตัวเอง กรณีที่ไม่ชัดเจนส่งให้คนตรวจเป็นรายการเดียว ไม่ต้องไล่ดูทีละฉบับ

พัฒนาแบบหลาย agent บนโมเดลฟรี
03

พัฒนาแบบหลาย agent บนโมเดลฟรี

  • 275,000 tokens ต่อชุด
  • 0 ค่าใช้จ่าย subscription แบบเสียเงิน
  • การตรวจรับ ตามเกณฑ์ที่เขียนไว้

ปัญหา

งานกับ LLM เจอสองกำแพงพร้อมกัน: ราคาของโมเดลเสียเงิน และคุณภาพคำตอบของโมเดลฟรี

ทางแก้

แบ่งงานเป็นส่วนๆ แล้วส่งให้โมเดลฟรี ผลลัพธ์ผ่านผู้ตรวจสอบอิสระและการตรวจรับตามเกณฑ์ที่เขียนไว้ล่วงหน้า

ผลลัพธ์

หนึ่งชุดได้งานจากโมเดลฟรี 275,000 tokens และค่า subscription เป็นศูนย์ โดยยังมีการตรวจรับครบ

เครือข่ายส่วนตัวครอบคลุมสามประเทศ
04

เครือข่ายส่วนตัวครอบคลุมสามประเทศ

  • 3 ประเทศ ในสามเขตเวลา
  • 2 ช่องทางควบคุม
  • Proxy พร้อม routing แยกตามโดเมน

ปัญหา

เข้าถึงบริการและทรัพยากรภายนอกจากสามประเทศ บางแหล่งถูกจำกัดตามภูมิภาค บางแหล่งเข้าได้จากภายในระบบเท่านั้น

ทางแก้

MikroTik และ WireGuard, proxy แยกเส้นทางตามโดเมน และช่องทางควบคุมสำรองเผื่อช่องหลักล่ม จัดการ allow list เองผ่านบอท Telegram

ผลลัพธ์

เข้าถึงบริการได้จากทุกอุปกรณ์ของลูกค้า ลิงก์หลักล่มก็ไม่ตัดการควบคุม

งานล่าสุด

  • หน้ารวมภาพซ้ำพร้อมป้ายแหล่งที่มา สร้างหน้ารวมภาพซ้ำ: ภาพที่คล้ายกันถูกจัดกลุ่ม ติดป้ายตามแหล่งที่มา และยกเลิกการติดป้ายได้ Backend และ UI ใช้งานจริงแล้ว ชุดทดสอบหลายร้อยภาพจัดกลุ่มได้สะอาดโดยไม่มีคีย์หาย
  • อุ่นแคชอัตโนมัติ: cold start จากหลายวินาทีเหลือเสี้ยววินาที สร้างการอุ่นแคชอัตโนมัติสำหรับข้อมูลที่ไม่มีในแคช: loop เบื้องหลังเตรียมข้อมูลที่ต้องใช้ล่วงหน้า หลังล้างแคชทั้งหมด หน้าหลักกลับมาพร้อมในเสี้ยววินาที แทนการสร้างใหม่ที่ใช้เวลานาน
  • สร้างคำขอ tunnel อัตโนมัติเมื่อเว็บถูกบล็อกตามภูมิภาค สร้างระบบคัดแยกการบล็อกตามภูมิภาค: ดึงโดเมนจากหน้าเว็บและสคริปต์ ทดสอบแต่ละโดเมนจากสองภูมิภาค และรูปแบบที่ตรงกันกลายเป็นคำขอ tunnel ที่พร้อมใช้ บนเว็บจริง ถูกบล็อกจากภูมิภาคหนึ่งและผ่านจากอีกภูมิภาค ระบบสร้างคำขอให้เอง
  • เคลียร์เซิร์ฟเวอร์ LLM ภายในองค์กร ลบ weights ของโมเดลที่ไม่ได้ใช้ 176 GB โดยไม่หยุดโมเดลที่ทำงานอยู่สักตัว: บริการ LLM หลักและ embedder ทำงานตลอดเวลา การเคลียร์ทำเป็น Ansible playbook ทำซ้ำได้บนทุกเครื่อง และคอนฟิกกับเอกสารตรงกับสภาพจริงแล้ว พื้นที่ดิสก์ที่ใช้ลดจาก 87% เหลือ 50%
  • ย้ายระบบอีเมลของสองโดเมนไปยังเซิร์ฟเวอร์เฉพาะ ย้ายกล่องเมลและ mailing list จากโฮสติ้งภายนอกไปยังเมลเซิร์ฟเวอร์ที่โฮสต์เอง สร้าง 2 โดเมน 10 alias และ 47 mailing list กู้ระเบียน MX, SPF, DMARC และ DKIM ที่อยู่ทั้ง 57 รับเมลได้ อีเมลทดสอบส่งถึง และยืนยันการส่งจากเครื่องภายนอกแล้ว
  • ปรับ context window: การใช้แคชลดลงราว 75% ตามหาสาเหตุที่แคชโตขึ้นในเซสชันยาว เซสชันยาวส่วนน้อยสร้างโหลดส่วนใหญ่ จึงปรับการตัดข้อมูลให้เข้ากับรูปแบบนั้น การใช้แคชลดลงราวสามในสี่ สำหรับงานปริมาณเท่าเดิม

เครื่องมือ

เครื่องมือที่ทุกอย่างตั้งอยู่

แพลตฟอร์ม

  • Linux
  • Proxmox
  • Kubernetes (k3s)
  • Podman / Docker
  • Ansible · 731 playbooks

ข้อมูล

  • PostgreSQL
  • Valkey / Redis
  • RAG และ vector search

การพัฒนา

  • Python / FastAPI
  • TypeScript / Vue
  • Android / Kotlin

อีเมล การเข้าถึง เว็บ

  • Stalwart (JMAP / IMAP / SMTP)
  • OIDC / OpenBao
  • Nginx / Caddy

เครือข่าย

  • MikroTik
  • WireGuard

LLM

  • Claude
  • Qwen
  • โมเดล local บน llama.cpp

Observability และ CI

  • Grafana / VictoriaMetrics
  • Forgejo / CI

วิธีการทำงาน

สี่ขั้นตอน จากอีเมลแรกถึงการส่งมอบ

ทุกผลลัพธ์พิสูจน์ด้วยการรันและ log ไม่ใช่ด้วยคำว่า "มันใช้ได้"

  1. 1

    ทำความเข้าใจงาน

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

  2. 2

    สถาปัตยกรรมและใบเสนอราคา

    แผนผังทางแก้ รายการงาน และเกณฑ์ตรวจรับ เขียนไว้ก่อนเริ่มงาน ราคาผูกกับ milestone ไม่ใช่ชั่วโมง

  3. 3

    ทำงานพร้อมหลักฐาน

    ทุกขั้นปิดด้วยการรัน: ผลลัพธ์คำสั่ง log และภาพหน้าจอ คุณเห็นว่าอะไรเสร็จแล้วก่อนต้องถาม

  4. 4

    ส่งมอบและดูแลต่อ

    เอกสาร สิทธิ์การเข้าถึง และ deploy ที่ทำซ้ำได้ ระบบทำงานได้โดยไม่ต้องมีผม และถ้าต้องการ ผมดูแลต่อให้ได้

คำถามที่พบบ่อย

คำตอบสั้นๆ สำหรับคำถามที่พบบ่อย

ตัวเลขและขั้นตอนเดียวกับบนหน้านี้ อ้างอิงได้ง่ายทั้งในการค้นหาและสำหรับผู้ช่วย AI

SyCraft ทำอะไร?

วิศวกรรมระบบครบวงจร: โครงสร้างพื้นฐานและ DevOps, AI agents บน LLM, เว็บเซอร์วิส, อีเมลและเครือข่าย ทุกผลลัพธ์พิสูจน์ด้วยการรันและ log ไม่ใช่ด้วยคำพูด

มีประสบการณ์แค่ไหน และอะไรใช้งานจริงแล้วบ้าง?

ประสบการณ์วิศวกรรม 20 ปี, Ansible playbooks 731 ตัว และ roles 154 ตัว, บริการที่มีเอกสาร 98 ตัว, ผลิตภัณฑ์ของตัวเอง 8 ตัวที่ใช้งานจริงต่อเนื่อง และเซิร์ฟเวอร์ราว 40 เครื่องในสามประเทศ พร้อมคลัสเตอร์ k3s

การทำงานร่วมกันเป็นอย่างไร?

สี่ขั้นตอน: กำหนดขอบเขตงาน, สถาปัตยกรรมและราคาพร้อมเกณฑ์ตรวจรับ, ทำงานพร้อมหลักฐานทุกขั้น แล้วส่งมอบพร้อมเอกสารและ deploy ที่ทำซ้ำได้

ติดต่ออย่างไร?

WhatsApp, อีเมล all.zhadan@gmail.com หรือ Telegram @azhadan_dev ไม่มีแบบฟอร์ม ปกติตอบภายในวันเดียวกัน

ติดต่อ

เล่างานมา แล้วคุณจะได้คำตอบตรงๆ

WhatsApp, อีเมล หรือ Telegram ไม่มีแบบฟอร์มและแบบสอบถาม ตอบเร็ว ปกติภายในวันเดียวกัน

WhatsApp