# The Role of a Server I just installed PHP on the Park City server. This increases the number of options we have for things we can do to... let's just say an astronomical level. PHP in particular is nice because I can script things without having to drag out an entire web framework. I can just type a little command and loop through a file or whatever. It's nice. Too nice. There's features I want to add, but I want to be absolutely certain that things are lightweight and integrated. This is a $5/mo DigitalOcean droplet, and I'd like to keep it that way. I personally am also growing pretty fond of the fediverse and distributed stuff, so if possible I'd like to see whatever we set up here be ActivityPub or at least RSS compatible. (The very first version of this, before it was even called "park city", was going to be an experiment in Plan 9-esque highly distributed services, storage sharing, etc.) Also, I hate passwords, so I want to use SSH keys or HTTPS client certs wherever possible. So, let's start with a list of things our community needs: - A way to login and edit stuff from a browser - A more edit-friendly Park City Library (raw HTML *works*, but it's a drag) - A group blog, ala somnolescent.net (my biggest inspiration for this) - Git hosting (something lighter than GitTea or GitLab, preferably) And other things that might be nice to have: - A wiki (this might *be* the Library) - A much friendlier user setup process - Something to replace Discord? Maybe? (hah hah good luck) - Something Mastodon-compatible, but much lighter-weight - Gemini hosting (as an alternative to Gopher) - Some sort of place to make server announcements and have others receive them - Automate the server setup process in case I need to migrate - Also, backups. Those would be nice. - An OpenRCT2 server (something I tried, but couldn't get running because I didn't have the libraries I needed on this CentOS 7 machine) - For teh lulz, CDE via X11 forwarding. - Some version of external email - A maybe-public forum ala https://jul.rustedlogic.net/ So that's fairly interesting. Lots of features, but only so much server budget for unique pieces of software to run. In general, we have a few categories: - Content authoring (Wiki, Library, group blog, my own site) - Social media (Mastodon, forum, email, chat) - Git hosting - "Create account" page? What I *want* to do is share as much infrastructure as possible between everything. The group blog should be something you can follow on Mastodon. The library should be a wiki, along with anything else we want to add. The server announcements should be on the forum, which might be done via Usenet, or a friendly interface to that. The Usenet or whatever should be tied into the ActivityPub/Mastodon stuff. Somehow. The wiki too. ...okay, I really should drop the ActivityPub goal. Too lofty. The point is, I don't want to install a bunch of dedicated services. I want something more like PHP, where I can just dump a bunch of files in a folder and AUTOMATICALLY have a bunch of these features. I don't want to make the entire site a wiki, but I like that sort of train of thought. Being able to go to *any* page, click the "edit" button, and do whatever *in the browser*. With restrictions. Permissions, the forum or whatever, etc. And then automatically generate Gopher and Gemini versions of everything. The "iup_server" that runs my own site, invisibleup.com, is *somewhat* close to what I want, but it's incredibly rudimentary and doesn't scale super well. I really need to sit down and thing about how I want to architect this moving forwards. I can (and I'm really close to) throwing up a MediaWiki server and calling it a day. And that *would* work, for now. Once I figure out how to deal with logins. I might script something up tonight to generate SSL client certs for everyone. As much as those are a pain to deal with.. they are what I want. Well, I'd prefer to just reuse the SSH keys, but that's beside the point. Anything's possible, but not everything. I need to do this in a way that's not going to screw me over in a year. gemini://park-city.club:1965/~invis/phlog/016-the-role-of-a-server.txt

-- Leo's gemini proxy

-- Connecting to park-city.club:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/plain

-- Response ended

-- Page fetched on Thu Apr 25 14:30:57 2024