Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

🌳 The Seed — บ้านสวน

แอปบันทึกและดูแลสวนสำหรับคนปลูกต้นไม้ที่บ้าน — จดว่ารดน้ำ/ใส่ปุ๋ย/เก็บเกี่ยวไปเมื่อไหร่ วางแผนผังสวนได้จริง แชร์ให้คนในบ้านช่วยกันดูแล และแจ้งเตือนเมื่อถึงเวลาต้องรดน้ำ

Self-hosted ทั้งหมด — ข้อมูลสวนอยู่ใน PostgreSQL ของคุณเอง

ฟีเจอร์

บันทึกการดูแล

  • จัดการต้นไม้ (เพิ่ม/แก้/ลบ) พร้อมรูปถ่ายและอายุต้นไม้แบบ ปี/เดือน/วัน
  • log การรดน้ำ ใส่ปุ๋ย และเก็บเกี่ยว + สถิติย้อนหลัง กรองตามเดือน/โซน

แผนผังสวน

  • วางผังแบบลากวาง — โซน ของตกแต่ง พื้น กำแพง รั้ว ประตู
  • แต่ละโซนเลือกได้ว่าจะจัดต้นไม้แบบ grid หรือวางอิสระ (x,y%)
  • "พื้นที่อิสระ" สำหรับต้นไม้ที่ยังไม่ได้อยู่โซนไหน

หลายคน หลายสวน

  • หนึ่งบัญชีดูแลได้หลายสวน
  • เชิญคนอื่นเข้าสวนผ่านลิงก์ พร้อมสิทธิ์ owner / editor / viewer
  • แชร์สวนแบบ public read-only ผ่าน /g/<slug>

แจ้งเตือน

  • Telegram bot + cron รายวัน แจ้งว่าต้นไหนถึงเวลารดน้ำ/ใส่ปุ๋ย
  • Web Push (VAPID) บนมือถือ — ติดตั้งเป็น PWA ได้
  • แจ้งเตือนจากสภาพอากาศ (ฝน/ร้อน/ลม) ผ่าน Open-Meteo — ไม่ต้องใช้ API key

IoT (ออปชัน)

  • รับค่าเซ็นเซอร์จาก ESP32 ผ่าน MQTT หรือ HTTP telemetry endpoint
  • ดูค่าเซ็นเซอร์แบบ real-time (SSE) + เก็บประวัติย้อนหลัง
  • ตั้งกฎอัตโนมัติ เช่น ความชื้นต่ำกว่า X แล้วสั่งรีเลย์เปิดน้ำ

Stack

Frontend SvelteKit 2 + Svelte 5 (runes)
Backend SvelteKit server routes (adapter-node)
Database PostgreSQL
Auth JWT + bcrypt
Realtime Server-Sent Events
IoT MQTT

เริ่มใช้งาน

ต้องมี Node.js 22+ และ PostgreSQL

git clone https://github.com/wowBALL/the_seed.git
cd the_seed/My-Garden-SvelteKit
npm install

สร้างฐานข้อมูล:

createdb gardendb

ตั้งค่า environment — คัดลอกไฟล์ตัวอย่างแล้วแก้ค่าให้ตรงกับเครื่องคุณ:

cp .env.example .env

อย่างน้อยต้องตั้ง PG_PASSWORD (หรือ DATABASE_URL) และ JWT_SECRET โดย generate JWT_SECRET ด้วย:

node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"

ตารางในฐานข้อมูลถูกสร้างอัตโนมัติตอนรันครั้งแรก จากนั้น:

npm run dev

เปิด http://localhost:3001 แล้วสมัครบัญชีแรก

Environment variables

ดูรายการทั้งหมดพร้อมคำอธิบายใน .env.example

จำเป็นตอน production (แอปจะ throw ถ้าไม่ได้ตั้ง):

ตัวแปร ใช้ทำอะไร
JWT_SECRET เซ็น session token
PG_PASSWORD หรือ DATABASE_URL เชื่อมต่อฐานข้อมูล

ออปชัน — ไม่ตั้งก็ใช้งานได้ ฟีเจอร์นั้นจะปิดไปเฉยๆ:

ตัวแปร เปิดฟีเจอร์
TELEGRAM_BOT_TOKEN แจ้งเตือนผ่าน Telegram
VAPID_PUBLIC_KEY / VAPID_PRIVATE_KEY Web Push (generate: npx web-push generate-vapid-keys)
MQTT_URL รับค่าเซ็นเซอร์จากอุปกรณ์ IoT
BREVO_API_KEY อีเมล "ลืมรหัสผ่าน"
UPLOAD_DIR โฟลเดอร์เก็บรูปอัปโหลด — ตั้งให้ชี้ persistent volume บน cloud

Deploy

มี config พร้อมสำหรับ Docker, Railway และ Render

docker build -t the-seed My-Garden-SvelteKit
docker run -p 3000:3000 --env-file My-Garden-SvelteKit/.env the-seed

ตอน deploy อย่าลืมตั้ง BASE_URL เป็น URL จริง (https://…) เพื่อให้ cookie เป็น secure และลิงก์คำเชิญชี้ถูกที่ และตั้ง UPLOAD_DIR ไปที่ persistent volume ไม่งั้นรูปจะหายตอน redeploy

License

MIT

About

The Seed — self-hosted garden care tracker: care logs, drag-and-drop layout planner, sharing, notifications and IoT sensors. SvelteKit + PostgreSQL.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages