envshare.dev เป็นโครงการโอเพ่นซอร์สที่ช่วยให้นักพัฒนาสามารถแบ่งปันตัวแปรสภาพแวดล้อมได้อย่างปลอดภัยกับทุกคน คุณสามารถอัปโหลด .env ของคุณ ไฟล์หรือพิมพ์ตัวแปรสภาพแวดล้อมของคุณ แล้วตัวแปรเหล่านั้นจะถูกเข้ารหัสก่อนที่จะจัดเก็บไว้ในฐานข้อมูล จากนั้นคุณสามารถแชร์ลิงก์กับใครก็ได้ และพวกเขาจะสามารถถอดรหัสตัวแปรสภาพแวดล้อมได้
EnvShare ใช้งานได้ฟรีและเป็นโอเพ่นซอร์ส คุณสามารถดูโค้ดนี้ได้บน GitHub
คุณสมบัติ
- ลิงก์ที่แชร์ได้: แบ่งปันตัวแปรสภาพแวดล้อมของคุณอย่างปลอดภัยโดยการส่งลิงก์
- การเข้ารหัสจากต้นทางถึงปลายทาง: การเข้ารหัส AES ใช้เพื่อเข้ารหัสข้อมูลของคุณก่อนจัดเก็บ
- จำกัดจำนวนการอ่าน: จำกัดจำนวนครั้งที่สามารถอ่านและเข้ารหัสลิงก์ได้
- หมดอายุอัตโนมัติ: ลิงก์หมดอายุโดยอัตโนมัติและลบข้อมูลหลังจากช่วงระยะเวลาหนึ่ง
มันทำงานอย่างไร
ทุกครั้งที่คุณต้องการแชร์ตัวแปรสภาพแวดล้อมของคุณ คีย์เข้ารหัสแบบสุ่มใหม่จะถูกสร้างขึ้นในเบราว์เซอร์ ข้อมูลที่ละเอียดอ่อนของคุณจะถูกเข้ารหัสโดยใช้ AES จากนั้นจัดเก็บไว้ใน Redis
หลังจากนั้น รหัสเอกสารที่ไม่ซ้ำกันจะถูกรวมเข้ากับคีย์เข้ารหัสเพื่อสร้างลิงก์ที่แชร์ได้ ซึ่งคุณสามารถใช้ในการเข้าถึงและถอดรหัสข้อมูลของคุณได้

ข้อมูล
EnvShare ใช้ Redis เพื่อจัดเก็บตัวแปรสภาพแวดล้อมที่เข้ารหัส Redis ใช้งานได้ดีเนื่องจากสามารถใช้เป็นที่เก็บคีย์-ค่าที่รวดเร็วได้ แต่ยังมีโครงสร้างข้อมูลที่ซับซ้อนมากขึ้น เช่น รายการ ชุด และแฮช นอกจากนี้ยังจะลบคีย์ที่หมดอายุออกโดยอัตโนมัติ ซึ่งเหมาะสำหรับกรณีการใช้งานของเรา
ข้อมูลจะถูกจัดเก็บไว้ในแฮช Redis โดยมีโครงสร้างดังต่อไปนี้:
{
"remainingReads": 20, // Optional, the number of times the link can be read
"encrypted": "...", // The encrypted environment variables
"iv": "..." // The initialization vector for AES-CBC
}
การใช้แฮชช่วยให้เราสามารถจัดเก็บข้อมูลเมตาบางส่วนพร้อมกับข้อมูลที่เข้ารหัส และยังช่วยลดการอ่านที่เหลือแบบอะตอมด้วย HINCRBY .Redis มีความยืดหยุ่นอย่างเหลือเชื่อและช่วยให้สามารถทำซ้ำและนำแนวคิดใหม่ๆ ไปใช้ได้อย่างรวดเร็ว ตัวอย่างเช่น ในอนาคต เราอาจต้องการเพิ่มบางอย่าง เช่น บันทึกการเข้าถึง ชุดที่จัดเรียงจะเหมาะสมอย่างยิ่งสำหรับสิ่งนี้
ปัญหาเดียวก็คือ Redis มักจะใช้งานได้ผ่าน TCP เท่านั้น ซึ่งใช้ไม่ได้กับฟังก์ชัน Edge ของเรา โชคดีที่ Upstash มี Redis API ที่สามารถใช้เพื่อเข้าถึง Redis ผ่าน HTTP นี่คือสิ่งที่เราต้องการสำหรับ EnvShare Upstash เสนอฐานข้อมูล Redis ฟรีพร้อมคำขอ 10,000 คำขอต่อวัน นี่ก็เกินพอสำหรับเรา และหากคุณต้องการโฮสต์ EnvShare ด้วยตัวเอง คุณสามารถรับบัญชีฟรีได้ที่นี่ ตรวจสอบคู่มือการโฮสต์ด้วยตนเองที่นี่
การตั้งค่า Redis ในฟังก์ชัน Edge ของเราเป็นเรื่องง่าย เราเพียงแค่ต้องสร้างฐานข้อมูลและติดตั้ง @upstash/redis .
ในฟังก์ชัน edge ของเรา เราสามารถจัดเก็บข้อมูลได้:
/api/share.tsimport { Redis } from "@upstash/redis";
const redis = new Redis({
url: "..." // UPSTASH_REDIS_REST_URL
token: "..." // UPSTASH_REDIS_REST_TOKEN
});
await redis.hset(key, {
remainingReads: 20,
encrypted: "...",
iv: "...",
}); สรุป
ขอบคุณสำหรับการอ่าน! EnvShare เป็นโปรเจ็กต์สนุกๆ ที่ฉันสร้างขึ้นเพื่อแสดงให้เห็นว่าการเริ่มต้นใช้งาน Next.js และ Upstash Redis นั้นง่ายดายเพียงใด ฉันหวังว่าคุณจะชอบมันและพบว่ามันมีประโยชน์ หากคุณมีคำถามหรือข้อเสนอแนะ โปรดติดต่อฉันทาง Twitter
ลิงก์ที่เกี่ยวข้อง:
- EnvShare
- GitHub
- คู่มือการปรับใช้