First post: progress so far, rationale and intent, and the human side of this box

October 14, 2020 — Brynn Lawson

On multiple occasions, Jason Scott, proprietor of textfiles.com (among other projects), has spoken at length on the importance of understanding the human side of tech history. This shows quite clearly in his documentary works, BBS and Get Lamp, which, while being documentaries about the BBS and the text adventure, are more importantly collations of personal and community memory. The technical and implementation details, in his eyes, are secondary to the socio/anthropology of the spaces. I share that passion and carry it to most of my interactions with the digital realm. This box is somewhat more than a domain name and some symlinks in /var/www/whatever: I hope for it to be a reflection of myself and my own digital heritage, in addition to some neat info and services.

(Lord, maybe I should've been an English major.)


I spun up this box on the 9th or 10th of October. A lot of folks I know have had quarantine projects to work on, but this is just as much a "quarantine project" as a hiki restlessness time-burning project. Global events have thrown a wrench in every aspect of my life, from friendships to housing to career development--as much so as anyone. The most helpful thing, I've found so far, is having something to keep busy with, and this is that. It's also a way to clear out a backlog of small projects I've wanted to tackle for some time, which helps me feel like I'm doing something with my life (unironically).

Toward that end, I've already set up most of the services I wanted to, although I know I'll be actively tinkering with things for a while yet.

I2P router and eepsite

I2P was the first anonymizing network I really experienced. I never used it for much of anything, besides feeling like an el33t skiddie, but it's had some mindshare for a good 6-7 years now.

The direct inspiration for running a router, though, was my roommate deciding to run one out of our garage. It's kinda hilarious: it's running on a SPARC T2 blade from 2006 that she found at a local surplusser that's shut down since. It's 8c/32t, barrel-threaded, with in-order execution, clocked at 300MHz; in other words, it's a swarm of 32 very angry Pentium IIs, running a fork of Debian maintained by about three people. But we have gigabit FTTN, and it doesn't do much else, so it just sits with all 8 cores pegged all day, pushing about 50MB/s U/D. We think it's in the top 0.1% or so of I2P routers by shared bandwidth, which rocks!

My ambitions for a router are admittedly lower than that, if only because I'm limited to one shared core on this VPS, and the provider will get salty if I pull more than 10TB/mo. So to that end, I've got my bandwidth caps set to 2400KB/s U/D, with 90% shared, which already puts me (barely) in the highest category of router bandwidth capabilities. It's only been up for a day at this point, so although I'm already pretty well-peered, it's still only pushing c. 500KB/s U/D (and climbing steadily). With participating tunnels limited to 1,024 and floodfill disabled, it idles around 30-40% CPU usage. (I'd have liked to enable floodfill, but it bumps CPU another 20%, which I couldn't accept. Maybe if I ever move to a VPS with one or two dedicated cores?)

My eepsite (longseason.i2p) is just an indirect consequence of having a router on the same box. It's just a reverse proxy through to my Apache server, so I figured I'd might as well. Navidrome seems to work surprisingly well through it... notwithstanding the deanonymization risk that the login page poses. (It makes a client-side call to a clearnet site with HTTPS, to download the background image. I don't know how much information it leaks, but I can't disable it without adding an absolute link to a fixed image on the server, which would also deanonymize you. Shrug.)

Yggdrasil node

I was a big fan of cjdns in 2014/5, and was back on Hyperboria briefly in 2018/9. My primary application for it was as an alternative to running OpenVPN on the very spotty Torontonian VPS I had at the time (using cjdns' tunnel functionality), and to that end I also ran private nodes on my laptop and a couple of Raspberry Pis. (The 1Mbps DSL we had in 2014 didn't like that very much!) I didn't do much else on the network besides hang around HypeIRC, where I was actually pretty active. cjdns is pretty dead these days; a lot of the enthusiasm for active deployment/development has moved to Yggdrasil, which now has more services than cjdns ever did. I haven't become nearly as involved with the actual communities on Ygg as I would like, but I'll be getting on the popular IRC nets soonish, and probably Matrix and Mastodon too.

My Ygg node is nominally "public," but I haven't made a git commit to add it to the official list of public peers on Github. As of now it only connects to 6-7 public peers, plus my laptop. I'll make the commits one of these days, and then hopefully the peers will come.

All my services run great over Ygg, which is no shock, considering that Ygg isn't an anonymizing mesh, just a privacy-enhancing one (likewise with cjdns). Really, everything on Ygg runs at exactly the same speed as anything on clearnet.

Navidrome

Music is still the form of media that most interests me day-to-day. It's also the thing I spend the most time and effort to collect: my archive has been around in some form or another since 2015, been culled a couple times, and as of now sits at around 130GB in various formats (about 35% FLAC, the rest in mp3, though I'm working on improving that when I have more space to play with). Over the last ten months or so I found myself using Spotify a lot more, out of convenience for listening to new music without downloading+copying it or being tied to Youtube on my laptop, but decided a month or so ago that I'd like to untether myself from that, hopefully without losing the convenience factor.

Navidrome is basically a reimplementation of the Subsonic/Airsonic music streaming server in Go (as opposed to Java), with some bonus niceties like an integrated webapp. It was the first thing I got up and running after I started leasing this VPS, and it taught me a lot about Apache in the process. It's pretty much everything I wanted: I can trivially access it and stream from any web browser anywhere, including on mobile, or connect with any Airsonic client (I've been using Music Stash on Android, but might switch to DSub for the ReplayGain functionality).

My primary problem right now is storage. This VPS comes with 20GB of disk by default, which, needless to say, won't handle my collection. Fortunately this provider offers storage leases for $5/TB, and 1TB would be about perfect for everything I want to do. This is a little outside my financial ability right now, but it'll probably be the first thing I do next. I've also been looking at other possibilities, like using rclone to my GDrive, but that would only get me ~120GB, not to mention the extra bandwidth used, and the fact that that free 100GB offer won't last forever. All in all it'll just be best to lease the 1TB when I can.

Other plans

I'm seriously considering putting together an Icecast stream once all my music's on here, something in the vein of realitycheckRADIO, but less ambient.

I might set up a Lychee gallery at some point. I haven't been active in photography in ~2.5 years, but I'm still quite proud of some of my work, and it'd be neat to show it somewhere besides Flickr. (All the photos on the main part of my site are mine, if you didn't realize.)

I may end up self-hosting Mastodon and Matrix on this box, instead of using, say, the Matrix that opal/Volatile runs, or one of the public Mastodon instances.

Tags: technical, server, personal