- วิธีโฮสต์ที่ทำให้ที่อยู่นั้นกลายเป็นเว็บไซต์ที่สมบูรณ์ในตัวเอง โดย บีบอัดไฟล์ทั้งหมดของเว็บไซต์เป็น ZIP แล้วเข้ารหัสเป็น Base64 จากนั้นนำไปต่อท้ายโดเมน
- โครงสร้างที่สามารถส่งต่อเว็บไซต์ได้ด้วย การแชร์ที่อยู่เท่านั้น โดยไม่ต้องอัปโหลดไฟล์แยกหรือจัดเก็บบนเซิร์ฟเวอร์
- จัดการการบีบอัด ZIP, การเข้ารหัส Base64 และการสร้าง URL ได้ด้วยคำสั่ง command line เพียงบรรทัดเดียว และยังรองรับวิธี ลากไฟล์ ZIP หากไม่มี command line
- เซิร์ฟเวอร์จะ เก็บคอนเทนต์ไว้ใน RAM เพียง 15 นาที แล้วทิ้งไป หลังจากนั้นจะประมวลผลใหม่เฉพาะเมื่อเปิดลิงก์เดิมอีกครั้ง
- เป็น โอเพนซอร์ส ในฐานะส่วนหนึ่งของโปรเจกต์เว็บเซิร์ฟเวอร์ Lwan และสามารถพิมพ์ลงกระดาษผ่าน QR code แล้วสแกนได้ด้วย
แนวคิดของ smolsite
- เว็บไซต์ทั้งเว็บถูก รวมอยู่ใน URL เมื่อแชร์ที่อยู่ก็เท่ากับส่งต่อเว็บไซต์ไปพร้อมกัน
- เช่นตัวอย่างที่ประกอบด้วยไฟล์สองไฟล์ (index.html, mylogo.png) สามารถรวมหลายไฟล์แล้วแปลงเป็นที่อยู่เดียวได้
วิธีสร้าง smolsite
- บีบอัดไฟล์ทั้งหมดเป็น ไฟล์ ZIP แล้ว เข้ารหัสเป็น Base64 จากนั้นนำไปต่อท้าย
https://smolsite.zip/- ตัวอย่างคำสั่ง:
$ echo "https://smolsite.zip/\zip -DXjq9 - index.html mylogo.png | base64 --wrap 0`"`
- ตัวอย่างคำสั่ง:
FAQ
-
กรณีไม่มี command line
- สามารถแชร์ได้โดย ลากไฟล์ ZIP ไปวางบนแถบสีม่วงด้านล่าง
-
สามารถโฮสต์บนกระดาษได้หรือไม่
- ทำได้ โดย คลิก QR code เพื่อดูเวอร์ชันที่พิมพ์และสแกนได้
-
เป็นโอเพนซอร์สหรือไม่
-
วิธีประมวลผล ZIP บนเซิร์ฟเวอร์
- คอนเทนต์จะถูกประมวลผลบนเซิร์ฟเวอร์และ เก็บไว้ใน RAM เป็นเวลา 15 นาที จากนั้นจะถูกลบ
- อย่างไรก็ตาม หากมีคนเปิดลิงก์เดียวกันอีกครั้ง ก็จะถูกประมวลผลใหม่
-
การรับมือ ZIP bomb
- ข้อมูลที่ถูก deflate จะถูก ส่งต่อไปยังเบราว์เซอร์ตามเดิมโดยไม่แก้ไข และไม่มีการแตกไฟล์แบบ recursive จึงป้องกันได้ในระดับหนึ่ง
-
สามารถดาวน์โหลดหรือลบคอนเทนต์ได้หรือไม่
- จะพยายามอย่างเต็มที่ในการ บล็อกการแชร์ URL ที่แน่นอนผ่าน smolsite แต่เนื่องจากคอนเทนต์อยู่ภายใน URL จึงไม่สามารถลบได้อย่างสมบูรณ์
- ผู้ที่มีลิงก์สามารถดึงเนื้อหาออกมาได้แม้ไม่ใช้ smolsite
- จะพยายามอย่างเต็มที่ในการ บล็อกการแชร์ URL ที่แน่นอนผ่าน smolsite แต่เนื่องจากคอนเทนต์อยู่ภายใน URL จึงไม่สามารถลบได้อย่างสมบูรณ์
1 ความคิดเห็น
ความคิดเห็นบน Hacker News
https://smolsite.zip/UEsDBBQAAgAIAFtLJ1daaE7RlwIAAN4EAAAKAAA...
https://tinyurl.com/dmk9e4m2
data:text/html,My%20small%20websiteLook,%20it's%20real!ถ้าต้องการ ก็ใช้ตัวสร้าง data URI เพื่อเข้ารหัสเป็น base64 ได้ ข้อดีของ smolsite คือถ้าเป็น zip จะใส่ข้อมูลได้มากกว่า data URI เล็กน้อย และ JavaScript API บางตัวทำงานบน URL ของ smolsite แต่ไม่ทำงานบน data URI
data:text/html,เอาไว้บนแถบ bookmarks แล้วใช้
[1] https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_...
https://wgx.github.io/anypage/?eyJoMSI6IkhlbGxvIEhOISIsImgyI...
[0] https://nopaste.boris.sh/
อย่างไรก็ตาม เนื่องจากส่วน anchor จะไม่ถูกส่งไปยังเซิร์ฟเวอร์ ต่อให้เซิร์ฟเวอร์ต้องการ ก็จะไม่สามารถตรวจสอบเนื้อหาอันตรายที่ถูกส่งผ่านช่องทางนี้ได้
โพสต์ Show HN ที่เคยเห็นมาทั้งหมดน่าสนใจ และทำให้ผมมีแรงจูงใจที่จะเริ่มโปรเจกต์ของตัวเองแล้วขัดเกลาให้เอามาโชว์ที่นี่ได้ เวลาใครสักคนส่งงานของผมขึ้นมาให้ แล้วผมได้คุยเรื่องนั้นที่นั่น มันรู้สึกดีมากจริง ๆ
แน่นอนว่าสุดท้ายก็คงติดข้อจำกัดความยาว URL แต่ก็อาจเพิ่มเลเยอร์ที่ให้ curator ประกอบชุด URL เพื่อสร้างข้อความที่ใหญ่ขึ้นได้ อาจใส่เวทมนตร์ LLM เข้าไปนิดหน่อยให้สร้างชุดเหล่านั้นได้ด้วย แบบนั้นมันก็จะกลายเป็นห้องสมุดที่มีไม่ใช่แค่หนังสือทุกเล่มที่เคยเขียนแล้ว แต่รวมถึงหนังสือทุกเล่มที่สามารถถูกเขียนได้ด้วย
แน่นอนว่าพูดเล่น ผมรู้ว่ามันก็คล้ายกับการบอกว่าใน Notepad ก็มีหนังสือทุกเล่มที่มีอยู่แล้วเหมือนกัน แค่ต้องพิมพ์เข้าไปเองเท่านั้น
https://mkaandorp.github.io/hdd-of-babel/
https://news.ycombinator.com/item?id=34312546
https://news.ycombinator.com/item?id=2464213
เพื่อเลี่ยงไม่ต้องจ่ายค่าโมดูลปฏิทินอีเวนต์ราคาแพงให้เวนเดอร์เว็บไซต์ ผมโค้ดหน้าสาธารณะที่สร้างปฏิทินโดยใส่สคีมาอีเวนต์ JSON แบบง่ายที่เข้ารหัส base64 ไว้ในแอตทริบิวต์
data-eventsพนักงานจะใช้หน้าส่วนตัวไปดึงข้อมูลอีเวนต์เดิมจากหน้าสาธารณะมาเติมไว้ล่วงหน้าใน calendar builder แล้วแก้ไข จากนั้นดึงชิ้นโค้ดใหม่ไปแปะในหน้าสาธารณะโดยพื้นฐานแล้วมันทำงานได้ดี แต่สุดท้ายเหมือนว่าเราก็จ่ายค่า calendar add-on ไปอยู่ดี
https://sonnet.io/projects#:~:text=Laconic!%20(a%20Twitter%2...