Dear Linux über-users, I harbor no hopes that this blog post isn't utter bollocks. This project is an absolute cob job and I only hope that you will take kindly to my intentions. Please, if you see any major problems point them out. At worst this can become a lesson in what a n00b should NOT do.
BackgroundA couple months ago, I installed PirateBox on a Raspberry Pi Zero W and stocked it with some liberating (and liberated) media hoping to whet people's appetites for Anarchist thought.
I had several problems with that. Mainly my own lack of faith in the possibility that anything ever gets accomplished simply by plopping data down in front of someone. I totally understand that PirateBox isn't intended to function as a curated collection of PDFs and MP3s. Never the less, that's what I tried.
Then I gave up. It just wasn't working the way I wanted it to. Instead, to accomplish my goals, I shifted to distributing physical media in my community via my "Lil Red Library" and "Northern Worker" zine. So I set my Raspberry Pi aside while the ideas bubbled in my head.
In the interim, I started thinking about the low bandwidth web that is the only web available in much of the world and about BBSs which I cut my teeth on in the '80s at a ripping 1200bps. It was then that I discovered the tildeverse. A neat idea half way between an SSH BBS and a Linux cloud computer. It's called a "tilde" community because *nix convention results in users each having a ~username personal directory on a shared computer.
My FrankensteinGiven all of this, here's what I grabbed off the buffet..
- I liked the anonymity.
- I liked being offline.
- I liked the ability to host user's files.
From the Tilde Community
- I liked having delayed access.
- I liked exposing new users to a Linux system.
- I liked that it's a community.
- I liked the potential that a blank ~user directory represents.
What distilled from all of this could be called a TildeBox I suppose - though that's the first and only time I'll do that. Minus a debatably catchy name, here's what I wound up with...
- A Pi Zero W running Raspian Lite with a static IP.
- The Pi is connected via wlan0 to a dedicated wireless router.
- Unique users with SSH access and restricted directory access.
- Minimal additional packages installed to start.
- No internet connection.
- And I called it... wait for it...
Tilde Cows Come HomeI know. Brilliant yeah? Anyway there are concessions. Here are some of the things I'll need to cope with.
Malicious Intent and the possibility of someone intentionally damaging the members' creations or the server as a whole should not be discounted.
The Steep Learning Curve is both a blessing and a curse. On the one hand, the ability for n00bs to learn some new things is an integral part of the installation. Education and mental growth are an important aspect of the community. But on the other hand, this same fact will likely put some folks off and mean that they won't invest time in the project.
The Demand For Physical Signage to interpret the install for the newcomer is something one doesn't encounter much in the world of electronic communities. I haven't (yet) figured out how to divert all requests to the Apache2 default landing page so at the moment I'll minimally need a sign telling folks to enter the static ip into their browser after connecting to the router. (The landing page has the what, how, and why of the server, info on the SSH guest login, and how to go about getting account privileges.)
ScreenshotsHere are a couple of screenshots of the server running. First is the default landing page of the Apache2 web server at the static IP. The second is the remote SSH login screen.
I finished off the bare-bones install with a handful of small text and HTML files. n00bs.html is an assortment of helpful hints that appears as the default homepage in the LYNX web browser. conduct is a flat text file featuring a code of conduct for the community. index.html is the previously mentioned default landing page for the web server. Outside of that, it's basically a tabula rasa.
Final ThoughtsUsers aren't given much to go on. The n00bs.html file tell how to look up users, browse their directories, send system mail, message online users. That's about it. They're purposefully left to learn anything else for themselves. Perhaps at some point I might decide to create some simple how-tos on key topics but I really hope that users will chart their own direction and create their own curriculum.
If this first install works, I'd like to pitch the idea to my local library as something that wee little hacker-babies could use as a first experience of a Pi and of a Linux system. That's the dream, anyway.
 Unique users/home directories were created using
$ adduser --home /restricted/directory restricted_user
I want to thank Gwenfar's Garden for her assistance on dealing with images in Plume when I was stuck. She has a great blog post on the subject too.