- Ein Hosting-Ansatz, bei dem alle Dateien einer Website als ZIP komprimiert und anschließend Base64-codiert an die Domain angehängt werden, sodass die Adresse selbst zur vollständigen Website wird
- Eine Struktur, mit der sich eine Website allein durch Teilen der Adresse übertragen lässt, ohne separaten Datei-Upload oder Speicherung auf einem Server
- ZIP-Komprimierung, Base64-Codierung und URL-Erzeugung werden mit einer einzigen Kommandozeile erledigt; wenn keine Kommandozeile verfügbar ist, wird auch das Drag-and-drop einer ZIP-Datei unterstützt
- Der Server hält Inhalte nur 15 Minuten im RAM vor und verwirft sie danach; sie werden nur erneut verarbeitet, wenn derselbe Link wieder geöffnet wird
- Als Teil des Lwan-Webserver-Projekts Open Source; auch Papierausdruck und Scannen über QR-Code sind möglich
Konzept von smolsite
- Die gesamte Website ist in der URL enthalten; beim Teilen der Adresse wird die Website selbst mit übertragen
- Wie im Beispiel mit zwei Dateien (index.html, mylogo.png) lassen sich mehrere Dateien bündeln und in eine einzige Adresse umwandeln
So erstellt man ein smolsite
- Alle Dateien als ZIP-Datei komprimieren, Base64-codieren und anschließend an
https://smolsite.zip/anhängen- Beispielbefehl:
$ echo "https://smolsite.zip/\zip -DXjq9 - index.html mylogo.png | base64 --wrap 0`"`
- Beispielbefehl:
FAQ
-
Wenn keine Kommandozeile verfügbar ist
- Eine ZIP-Datei auf die violette Leiste unten ziehen, um sie zu teilen
-
Ob Hosting auf Papier möglich ist
- Ja; durch Klicken auf den QR-Code lässt sich eine druck- und scanbare Version anzeigen
-
Ob es Open Source ist
-
Wie ZIP-Dateien auf dem Server verarbeitet werden
- Inhalte werden auf dem Server verarbeitet und 15 Minuten im RAM vorgehalten, danach werden sie gelöscht
- Öffnet jedoch jemand denselben Link erneut, werden sie erneut verarbeitet
-
Umgang mit ZIP-Bomben
- Deflate-Daten werden unverändert direkt an den Browser übertragen; da keine rekursive Dekompression stattfindet, besteht ein gewisser Schutz
-
Ob Inhalte heruntergeladen oder gelöscht werden können
- Es wird so weit wie möglich versucht, das Teilen der exakten URL über smolsite zu verhindern; da sich die Inhalte jedoch in der URL befinden, ist eine vollständige Löschung nicht möglich
- Wer den Link besitzt, kann die Inhalte auch ohne smolsite extrahieren
- Es wird so weit wie möglich versucht, das Teilen der exakten URL über smolsite zu verhindern; da sich die Inhalte jedoch in der URL befinden, ist eine vollständige Löschung nicht möglich
1 Kommentare
Hacker-News-Kommentare
https://smolsite.zip/UEsDBBQAAgAIAFtLJ1daaE7RlwIAAN4EAAAKAAA...
https://tinyurl.com/dmk9e4m2
data:text/html,My%20small%20websiteLook,%20it's%20real!Wenn man möchte, kann man mit einem data-URI-Generator auch Base64-Codierung verwenden. Der Vorteil von smolsite ist, dass man mit zip etwas mehr unterbringen kann als in einer data URI, und einige JavaScript-APIs funktionieren mit smolsite-URLs, aber nicht mit data URIs
data:text/html,Ich habe ihn in der Lesezeichenleiste liegen und nutze ihn dort
[1] https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_...
https://wgx.github.io/anypage/?eyJoMSI6IkhlbGxvIEhOISIsImgyI...
[0] https://nopaste.boris.sh/
Allerdings wird der Anchor-Teil nicht an den Server übertragen, weshalb der Server schädliche Inhalte, die darüber übertragen werden, selbst dann nicht prüfen kann, wenn er das wollte.
Alle Show HN-Beiträge, die ich bisher gesehen habe, waren interessant und haben mich motiviert, auch mein Projekt zu starten und so weit zu polieren, dass ich es hier zeigen kann. Es fühlt sich wirklich gut an, wenn jemand anderes meine Arbeit einreicht und ich dort darüber sprechen kann.
Natürlich würde man am Ende an die Längenbeschränkung von URLs stoßen, aber man könnte auch eine Ebene darüberlegen, auf der Kuratoren URL-Bündel zu größeren Texten zusammensetzen. Mit ein bisschen LLM-Magie ließen sich solche Bündel auch generieren; dann wäre es eine Bibliothek nicht nur aller Bücher, die bereits geschrieben wurden, sondern aller Bücher, die geschrieben werden könnten.
Natürlich ist das ein Witz. Mir ist klar, dass es ähnlich ist wie zu sagen, dass im Notepad bereits alle existierenden Bücher enthalten sind und man sie nur selbst eintippen muss.
https://mkaandorp.github.io/hdd-of-babel/
https://news.ycombinator.com/item?id=34312546
https://news.ycombinator.com/item?id=2464213
Um nicht die teure Event-Kalender-Komponente des Website-Anbieters bezahlen zu müssen, habe ich eine öffentliche Seite gebaut, die aus einem base64-kodierten einfachen JSON-Event-Schema in einem
data-events-Attribut einen Kalender erzeugte. Die Mitarbeiter holten sich auf einer nicht öffentlichen Seite die bestehenden Event-Daten der öffentlichen Seite, um den Kalender-Builder vorzufüllen, bearbeiteten sie, erzeugten dann ein neues Codeschnipsel und fügten es in die öffentliche Seite ein.Im Grunde funktionierte es gut, aber am Ende haben wir vermutlich doch einfach für das Kalender-Add-on bezahlt.
https://sonnet.io/projects#:~:text=Laconic!%20(a%20Twitter%2...