Small Internet Stack
I’ve taken an interest in what’s been dubbed the Smol Internet, “small Internet”, or “the Dork web”. In this context, it refers to simpler protocols, sometimes old ones, in contemporary use. This also has cross over with the “indie web” communities. I’ve deployed my own stack and content for some of these services for fun.
Apps
- Lagrange is a nice cross-platform browser that supports each of these protocols (desktop).
- Amfora cross-platform terminal browser for Gemini.
- Lynx can browse Gopher.
- Elaho is an iOS app for browsing Gemini.
- deedum is a Gemini browser for iOS and Android.
- Gopher Client for iOS.
- Ariane is an Android app for browsing Gemini.
- DiggieDog is a Gopher client for Android.
See the awesome-gemini repo on GitHub for a list of things related to Gemini.
Deployment
I’m using Ansible to deploy these services to a Rocky Linux LXC on my Homelab.
See https://github.com/joshbeard/homelab-service-smolstack for my Ansible playbook for the whole stack.
Gopher
The Gopher protocol predates the web but still has an active community of enthusiasts.
I’m using Gophernicus to serve my Gopher hole.
Gopher: gopher://jbeard.co
Gopher response using Netcat:
echo | ncat jbeard.co 70
Gemini
A newer protocol that was introduced only a few years ago is Gemini. This is somewhere between Gopher and the Web/HTTP - probably closer to the Gopher side.
I am using JetForce for my Gemini service and have also used Agate.
Gemini: gemini://jbeard.co
Gemini response using Netcat:
echo "gemini://jbeard.co/" | ncat -C --ssl jbeard.co 1965
Finger
Another service is Finger.
I am using Finger2020 for my Finger service.
To “finger” me, you can use a simple command, which is common across Linux, macOS, and Windows:
With the finger
command:
finger josh@jbeard.co
Finger response using Netcat:
echo "josh" | nc jbeard.co 79