about kore

kore a simple gemini-titan, spartan, gopher and http server implementation for esp8266

well, let's expand this!

esp8266

wemos d1 mini

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 or without sd card. take a look at wemos/lolin d1 mini with a sd card shield.

the server

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 you.

see kore source on github

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...

how low can you go?

besides adding magnificent features to 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.

is it secure?

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 your 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 is no operating system, there are no users, no shell, no compiler. if it crashes, it will be back in seconds.

that being said, i expect the server to be quite ready for fair use, like one can expect in the gemini community.

why lowercase?

to emphasize its diminutive nature.

the kore jovian moon

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]").

see more

kore on github

esp8266 microcontroller

ESP8266GeminiServer

zeropi