commit 7938fd10fb6b3ae4b96520023a83e8672a08cab3
parent 975d76381ebe821672163e5c823626e8e6e62a61
Author: alex wennerberg <alex@alexwennerberg.com>
Date: Sat, 8 Apr 2023 11:57:39 -0400
some changes
Diffstat:
13 files changed, 215 insertions(+), 43 deletions(-)
diff --git a/.gitignore b/.gitignore
@@ -1 +1,2 @@
_site
+deploys.sh
diff --git a/TODO b/TODO
@@ -0,0 +1 @@
+External Link CSS jbauer
diff --git a/build.sh b/build.sh
@@ -1,3 +1,5 @@
+#!/bin/bash
+
outdir=_site
mkdir -p $outdir
diff --git a/deploy.sh b/deploy.sh
@@ -1 +1 @@
-scp _site/* alex@alexwennerberg.com:/www/sale/
+rsync -rd _site/ root@pi:/var/www/alexw.nyc
diff --git a/src/about.md b/src/about.md
@@ -1,5 +1,39 @@
# About
-My name is alex, and this is my [digital garden](https://www.technologyreview.com/2020/09/03/1007716/digital-gardens-let-you-cultivate-your-own-little-bit-of-the-internet/).
+Hello, I am Alex (he/him). I write and have written poetry, nonfiction and
+prose, and my current primary interests are exploring alternatives to
+mainstream software and computing (details below) and their ability to build
+creative, cooperative, non-commercial relationships and communities.
-More info
+
+
+I studied Physics and English at Truman State University in Kirksville,
+Missouri graduating in 2016, lived in Chicago for four years, then San
+Francisco for two. I currently live in Brooklyn, NYC. I published the poetry
+book Harm (2016) through Bottlecap Press, and have self-published and locally
+distributed three chapbooks since then. Reach out if you'd like a physical
+copy. My poetry has appeared in Prelude, Tenderness Lit and Peach Mag, among
+elsewhere.
+
+I believe strongly in non-commercial, collaboratively-produced free and open
+source software. I believe computers, predominately, have become primarily
+instruments of increasing bureaucratization, domination and control, and this
+ideology pervades even "alternative" tech. I believe that a more radical
+re-evaluation of computing and its role in our world is necessary. I do not
+take a pessimistic outlook here: I believe these technologies exist and can be
+built.
+
+Some of my current technical interests, currently, are:
+* [Dusk OS](https://git.sr.ht/~vdupras/duskos)
+* [uxn](https://100r.co/site/uxn.html)
+* [permacomputing](https://permacomputing.net/)
+* [nanomail](https://github.com/alexwennerberg/nanomail)
+
+Some of my "finished" projects:
+* [flounder.online](https://flounder.online)
+* [crabmail mailing list archive](https://github.com/alexwennerberg/crabmail)
+* [poetry](https://alex.flounder.online/poetry/)
+
+I'm also deeply interested in philosophy, literature, political organizing, and art.
+
+I recently moved to NYC and am interested in meeting people and communities with similar interests and am happy to get in touch. Contact information is in the site footer.
diff --git a/src/index.md b/src/index.md
@@ -1,3 +1,7 @@
-#
+# Alex Wennerberg's Digital Home
-Foo
+Welcome to my webpage. It is currently a work in progress. You may find more of
+what you're looking for on [alexwennerberg.com](https://alexwennerberg.com) while I set
+things up here.
+
+:)
diff --git a/src/infrastructure.md b/src/infrastructure.md
@@ -1,31 +1,30 @@
-# river
+# hello world
-alexw.nyc is provided to you by river, a small server that I am a caretaker of,
+alexw.nyc is sent to you by a small computer that I am a caretaker of and
which resides in my home.
-here is a technical overview:
+Here is a technical overview:
-* hardware: raspberry pi 3B
-* disk: 256GB sandisk SD card
+* Hardware: Raspberry Pi 3B
+* Disk: 256GB Sandisk SD card
* ISP: Verizon FIOS
* OS: Alpine Linux, diskless install
* Web server: lighttpd
-(insert picture here)
+(TODO insert picture here)
## prerequisites
-bringing my digital infrastructure home required a few prerequisites:
-* a stable, relatively fast home internet connection
-* an ISP that will not stop me from doing this (this remains to be seen)
-* linux sysadmin resources
+Bringing my digital infrastructure home required a few prerequisites:
+* A stable, relatively fast home internet connection
+* An ISP that will not stop me from doing this (this remains to be seen)
+* Relatively good sysadmin and networking skills
## counter cloud strategies
I was inspired by christina cochior's talk on [counter cloud strategies](https://www.youtube.com/watch?v=fx3XcKy7LJY&t=1200s) and the related work [a traversal network of feminist servers](https://varia.zone/atnofs-publication.html)
-the web today is becoming highly centralized, and most of us are completely
-removed from the digital infrastrucure we depend upon. the web of the cloud is
-not a community, it is a corporate-controlled ad-ridden monoculture. I believe in building spaces that are independent of this world, spaces of creativity, play, understanding and community. I view the current world of cloud infrastructure as antithetical to this, and mainstream computing as completely failing to deliver on its promise of [bicycles for the mind](https://www.youtube.com/watch?v=KmuP8gsgWb8)
-
-we can do the difficult work of creating independent digital spaces and infrastructure.
-
-If you're interested in setting up your own digital infrastructure, see my somewhat idiosycnratic [guide](counter-cloud.html)
+The web today is becoming highly centralized, and most of us are completely
+removed from the digital infrastrucure we depend upon. The web of the cloud is
+not a community, it is a corporate-controlled ad-ridden monoculture. I believe
+in building spaces that are independent of this world, spaces of creativity,
+play, community and understanding. I view the current world of cloud
+infrastructure as antithetical to this.
diff --git a/src/logo.png b/src/logo.png
Binary files differ.
diff --git a/src/server-guide.md b/src/server-guide.md
@@ -0,0 +1,123 @@
+# Alex's Guide to running a home server (WIP, DRAFT)
+
+This is a living guide to hosting digital infrastructure. I'm writing this out
+of a dissatisfaction with a lot of existing approaches to running a home server. It
+seems to me that a lot of self-hosting guides mirror the approaches and
+infrastructure of big tech.
+
+This is a living document, and I will update it as I learn more. If you have
+suggestions or corrections, please contact me.
+
+## Principles
+### Keep it simple
+Your system should be as simple as possible. Use lightweight tools: this often
+means that you will be using things that are not mainstream, as mainstream
+tools are often designed primarily with large, modern, distributed,
+high-traffic services in mind: not what we are doing here. You may find
+yourself using Linux tools that are quite old, from an era were simpler and
+more straightforward infrastructure was more common.
+
+### No cloud services
+Some self-hosting guides will say, set up your home server then use a cloud
+proxy server, or put things behind Cloudflare. In my view, this defeats the
+purpose: if you want true digital self-sufficiency, you should control as much
+of your infrastructure as possible.
+
+### Accept limitations
+There are things that you won't be able to do on self-hosted infrastructure.
+Rather than compromise another principle to attempt them, accept and work
+within these limitations. For example: you will probably not achieve 100%
+uptime with your service. Accept this and communicate it to your site visitors
+
+## Operating System
+I choose **Linux** as my operating system. Alternatives to consider, in order of
+feasibility, are OpenBSD and Plan9. This guide is focused on Linux because it
+is the operating system I am most familiar with, and it is so ubiquitous that
+it is easy to find resources, software and guides for configuring Linux.
+
+In terms of distros, I choose **Alpine Linux**. Alpine Linux is a very minimal
+distro. I am both familiar with it and philosophically aligned with it. Alpine
+Linux uses musl rather than glibc, which may cause software incompatibilities,
+but this is less of a concern for the kind of thing you'll be hosting in the
+cloud. Unlike something like Raspberry Pi OS, there won't be a step by step
+"how-to" guide for running Alpine on the Raspberry Pi. You'll need to develop a
+bit of understanding about your operating system. You are welcome to use
+another Linux distro if you'd prefer.
+
+## TLDs
+Unfortunately, a lot of TLDs are operated by [Identity
+Digital](https://en.wikipedia.org/wiki/Identity_Digital) or a similar
+for-profit company. These companies are rent-seekers: they seek to profit on
+the natural abundance of digital infrastructure by creating walled gardens to
+exploit. Companies like this exist all throughout the infrastructure of the
+internet, and it is difficult to avoid them, but it is something to consider
+when choosing a TLD. Preferring TLDs operated as nonprofits (e.g. .org) or at
+least as public-private partnerships is a good idea.
+
+I chose .nyc as my TLD, which is a public-private partnership between the City
+of NY and Verisign.
+
+TODO -- update this section. This may be misinformation or incomplete
+
+Some TLDs may have difficulty sending email.
+
+## ISP
+Your ISP may or may not "officially" let you self-host a web server or other
+traffic on your network. Whether this is actually enforced depends on your
+location and ISP. Do whatever research you can on your ISP, and consider a
+local ISP if available.
+
+A better connection is preferable, but you can still self-host with relatively
+low upload speeds so long as you lean harder into the third principle (accept
+limitations).
+
+Your ISP may or may not have a static IP adress, in which case you may need to
+set up DDNS to handle DNS records.
+
+## Hardware
+In terms of hardware, you should be fine with any hardware that can run Linux.
+Personally, I use a Raspberry Pi 3B, because I already have one lying around.
+This setup is so light that you can probably get away with something as
+lightweight as the Raspberry Pi Zero.
+
+### Comments on the Raspberry Pi
+Installing Alpine Linux on the Raspberry Pi is a bit of a challenge, by which I
+mean, you will not find any guide that will tell you exactly everything you
+need to do. Instead, you should develop an understanding of your specific needs
+and how different installation methods may or may not meet them.
+
+Raspberry Pis boot from an SD card, and SD card wear is a problem: SD cards an
+unreliable storage medium, and may fail for any reason. I have not found
+reliable information about SD card wear and how to avoid it, so I tried the SD
+card as inherently unstable and make sure to have regular backups.
+
+## Router
+I use *OpenWRT* as my router software. I much prefer this to using proprietary,
+commercial software, whose security I cannot vouch for.
+
+OpenWRT does not auto-update. You'll need to keep on top of security updates
+and patch your router regularly.
+
+### Configuration
+I put my publicly-facing infrastructure on a separate VLAN so it should not be
+able to access anything else if it is compromised
+
+## Security
+Opening up your network to the public internet means that you'll have to take
+security seriously. A misconfiguration can mean compromising your server, and
+potentially anything else on your network that the server may have access to.
+
+I do not have any IOT devices, such as a "smart" TV, thermostat, etc. The only
+devices on my network are my home laptop, work laptop, and cell phone. I
+recommend this as a general principle, not just if you're operating a home server.
+
+
+## Software
+Learn Linux a bit. Be able to navigate around your filesystem and understand
+how things are laid out.
+
+### Firewall
+
+### Web Server
+TBD
+
diff --git a/src/style.css b/src/style.css
@@ -1,20 +1,21 @@
-
*:focus { outline: none}
::selection { background: #eee; opacity:1.0; color:#000; padding:10px; /* Safari */ }
body { background:#fff; color:#000; overflow-x: hidden; font-family: sans-serif; padding:0; margin:0; }
-header { padding: 45px; border-bottom: 1px solid #222; }
+header { padding: 25px; border-bottom: 1px solid black; }
header a img {}
+td { vertical-align: bottom; }
+
nav { padding: 45px; float: left; }
nav details summary { margin-bottom: 30px }
nav .site-nav section { line-height: 22px; margin-bottom: 40px;}
nav .site-nav section h2 { margin: 20px 0 20px 0; }
nav .site-nav section ul { margin: 0px; padding: 0px; }
-main { padding: 45px; float:left; max-width:700px; }
-main img { width:100%; max-width: 700px; margin-bottom: 15px;}
+main { padding: 25px; float:left; max-width:700px; }
+main img { max-width: 700px; margin-bottom: 15px;}
main > * { max-width: 600px; margin-bottom: 30px }
main > h1 { font-size:45px; text-transform: capitalize; display: none}
main > h2 { font-size:30px; text-transform: capitalize}
@@ -88,12 +89,12 @@ main > table img { max-width: 100%; display: block; margin:20px 0;}
main > table tr th { text-align: left; font-weight: bold }
main > table tr > * { padding:5px 15px; vertical-align: top;}
-footer { line-height: 30px; clear:both; padding:45px; }
+footer { line-height: 30px; clear:both; padding:45px; border-top: 1px solid black; }
footer hr { margin-bottom: 15px }
/* Modular */
-a { color: black }
+a { color: blue }
ul { margin:0px 0px 30px 0px; }
@@ -105,9 +106,8 @@ ul.nobull li {list-style-type: none}
/* Theme */
@media (prefers-color-scheme: dark) {
- body {background: #000; color: white}
- body header a img { filter: invert(1)}
- body a { color: white;}
+ body {background: #1b222c; color: white}
+ body a { color: #21e6c1;}
main > pre { background: white; color:#000}
main > code { background:white; color:#000}
body select { color: black; background-color: white;}
@@ -144,3 +144,7 @@ ul.nobull li {list-style-type: none}
nav .site-nav section { width: 100%; }
}
+/* bonus */
+main a[href^="http"]:where(:not([href*="paritybit.ca/"]))::after{ content: "︎↗" }
+figure a::after{ content: "" !important }
+
diff --git a/templates/footer.html b/templates/footer.html
@@ -1,7 +1,8 @@
</main>
<footer>
-<hr>
-alex was here
+<a href="infrastructure.html">live</a> from beautiful Brooklyn, NY
+<a href="mailto:alex@alexwennerberg.com">email</a>
+<a href="https://merveilles.town/@aw">aw@merveilles.town</a>
</footer>
</body>
</html>
diff --git a/templates/header.html b/templates/header.html
@@ -4,14 +4,8 @@
<meta name="viewport" content="width=device-width">
<link rel="stylesheet" type="text/css" href="./style.css">
</head>
- <header><a href='index.html'><img src='icon.png' alt='logo' height='50'></a><h1>alexw.nyc</h1></header>
+ <header>
+ <table><tr><td><a href="/"><img src="icon.png" width=80 /></a></td>
+ <td><h1>alexw.nyc</h1></td></tr></table>
+ </header>
<body>
- <nav>
- <section class="site-nav">
- <ul>
- <li><a href="about.html">About</a></li>
- <li><a href="infrastructure.html">Infrastructure</a></li>
- </ul>
- </section>
- </nav>
-<main>
diff --git a/templates/nav.html b/templates/nav.html
@@ -0,0 +1,9 @@
+<nav>
+<section class="site-nav">
+ <ul>
+ <li><a href="about.html">About</a></li>
+ <li><a href="infrastructure.html">Infrastructure</a></li>
+ </ul>
+</section>
+</nav>
+<main>