💾 Archived View for eridu.eu.org › about.gmi captured on 2024-05-26 at 14:30:40. Gemini links have been rewritten to link to archived content
-=-=-=-=-=-=-
kore a simple gemini-titan, spartan, gopher and http server implementation for esp8266
well, let's expand this!
esp8266 is a 32-bit microcontroller, single core, with tens of kilobytes of ram and usually 1 to 4 megabytes of flash, running at 80 or 160MHz. the big thing about it is the 802.11 b/g/n wifi connectivity. initially, it was launched as a hayes modem-like interface to internet, but soon evolved to be an ubiquitous programabile device: home automation, weather stations, robots, you name it. and we don't need to mention the price.
for this project you need a esp8266 microcontroller board with sd card. take a look at wemos/lolin d1 mini with a sd card shield.
i wanted a power on and forget gemini server, with very low requirements in energy, just for static content. like a smart socket or switch. i started with zero pi (not pi zero), alpine linux and gemserv, which was fine, but i wanted more (less, actually) and esp8266 came to my mind.
i started with an open-source project (vide infra) and evolved it to include spartan suport, titan for uploading and editing pages, gopher, just because, and http for the rest of the world. then, the project gained support for content on sd card, virtual hosting and dynamic pages in various forms: directory listing, feeds, tinylog, gemlog. sorry, no cgi for now.
at this moment, you can compile and flash the firmware, insert the sd card with tls certificate and key, gemini pages and proper configuration to host one or more gemini capsules with static or dynamic content.
to be continued...
besides adding magnificent features to a such a small project, there is one more direction i would like to try for a truly run and forget server: one small single board, solar powered, with or without battery backup, using littlefs instead of sd card and upnp for automatic port redirections.
absolutely not! it's microcontroller, what do you think, it can be easily overwhelmed by fast clients with lots of consecutive request and i am pretty sure one can overflow the buffers and retrieve the wifi password. maybe corrupt the data stored on sd card, maybe wear out the card by continuously writing on it. but that would be pretty much all, because there are no operating system, no users, no shell, no compiler. if it crashes, will be back in seconds.
that being said, i expect the server is quite ready for fair use, like one can expect in the gemini community.
to emphasize its diminutive nature.
the project name is inspired by a small moon in the jovian system.
Kore /ˈkɔːriː/, also known as Jupiter XLIX, is the outermost natural satellite of Jupiter. Kore is about 2 kilometers in diameter, and orbits Jupiter at an average distance of 23,239,000 km in 723.720 days, at an inclination of 141° to the ecliptic (139° to Jupiter's equator), in a retrograde direction and with an eccentricity of 0.2462. It belongs to the Pasiphae group, which is made up of irregular# retrograde moons orbiting Jupiter at distances ranging between 22.8 and 24.1 Gm, and with inclinations ranging between 144.5° and 158.3°. It was named after Kore, another name for the Greek goddess Persephone (from the Greek κόρη, "daughter [of Demeter]").