alexw.nyc

Unnamed repository; edit this file 'description' to name the repository.
git clone git://git.alexwennerberg.com/alexw.nyc
Log | Files | Refs | README

commit d790e6b782295dd8e683a08982ba47283f749425
parent 7938fd10fb6b3ae4b96520023a83e8672a08cab3
Author: alex wennerberg <alex@alexwennerberg.com>
Date:   Sat,  8 Apr 2023 13:45:41 -0400

converted to devine-mode

Diffstat:
MREADME.md | 3+--
MTODO | 2++
Mbuild.sh | 20++++++++++++++++++--
Dsrc/404.md | 5-----
Asrc/about.html | 37+++++++++++++++++++++++++++++++++++++
Dsrc/about.md | 39---------------------------------------
Dsrc/compting.md | 3---
Asrc/index.html | 5+++++
Dsrc/index.md | 7-------
Asrc/infrastructure.html | 28++++++++++++++++++++++++++++
Dsrc/infrastructure.md | 30------------------------------
Asrc/server-guide.html | 103+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Dsrc/server-guide.md | 123-------------------------------------------------------------------------------
13 files changed, 194 insertions(+), 211 deletions(-)

diff --git a/README.md b/README.md @@ -7,5 +7,4 @@ for your purposes. Mostly shell scripts -Dependencies: -[smu](https://github.com/Gottox/smu) +ls | entry ./build.sh for autobuild diff --git a/TODO b/TODO @@ -1 +1,3 @@ External Link CSS jbauer +favicon +svg version of my avi diff --git a/build.sh b/build.sh @@ -4,13 +4,29 @@ outdir=_site mkdir -p $outdir +# build nav + +function nav () { + echo "<nav><ul><section class='site-nav'>" + for file in ./src/*.html; do + fn=`basename ${file%.*}` + echo "<li><a href='`basename $file`'>$fn</a></li>" + done + echo "</section></ul></nav><main>" +} + +navstr=`nav` + +# copy over files for i in ./src/*; do - if [[ $i == *.md ]] + if [[ $i == *.html ]] then a=`basename ${i%.*}` + # sed title fn=$outdir/$a.html cat templates/header.html > $fn - smu $i >> $fn + echo $navstr >> $fn + cat $i >> $fn cat templates/footer.html >> $fn else b=`basename $i` diff --git a/src/404.md b/src/404.md @@ -1,5 +0,0 @@ -# 404 Not Found - -The page you were looking for was not found on this server. This resulted in -the server instead showing you this page, and returning the [HTTP Response -Code](https://developer.mozilla.org/en-US/docs/Web/HTTP/Status) 404 Not Found. It may have at some point been deleted, or you may have been misdirected. We hope you can find your way. diff --git a/src/about.html b/src/about.html @@ -0,0 +1,37 @@ +<h1>About</h1> +<p>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. </p> +<p><img src="me.jpg" alt="" /></p> +<p>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.</p> +<p>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.</p> +<p>Some of my current technical interests, currently, are: +<ul> +<li><a href="https://git.sr.ht/~vdupras/duskos">Dusk OS</a></li> +<li><a href="https://100r.co/site/uxn.html">uxn</a></li> +<li><a href="https://permacomputing.net/">permacomputing</a></li> +<li><a href="https://github.com/alexwennerberg/nanomail">nanomail</a></li> +</ul> +</p> +<p>Some of my "finished" projects: +<ul> +<li><a href="https://flounder.online">flounder.online</a></li> +<li><a href="https://github.com/alexwennerberg/crabmail">crabmail mailing list archive</a></li> +<li><a href="https://alex.flounder.online/poetry/">poetry</a></li> +</ul> +</p> +<p>I'm also deeply interested in philosophy, literature, political organizing, and art.</p> +<p>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.</p> diff --git a/src/about.md b/src/about.md @@ -1,39 +0,0 @@ -# About - -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. - -![](me.jpg) - -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/compting.md b/src/compting.md @@ -1,3 +0,0 @@ -# Computing - -Hi Foo diff --git a/src/index.html b/src/index.html @@ -0,0 +1,5 @@ +<h1>Alex Wennerberg's Digital Home</h1> +<p>Welcome to my webpage. It is currently a work in progress. You may find more of +what you're looking for on <a href="https://alexwennerberg.com">alexwennerberg.com</a> while I set +things up here.</p> +<p>:)</p> diff --git a/src/index.md b/src/index.md @@ -1,7 +0,0 @@ -# Alex Wennerberg's Digital Home - -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.html b/src/infrastructure.html @@ -0,0 +1,28 @@ +<h1>hello world</h1> +<p>alexw.nyc is sent to you by a small computer that I am a caretaker of and +which resides in my home.</p> +<p>Here is a technical overview:</p> +<ul> +<li>Hardware: Raspberry Pi 3B</li> +<li>Disk: 256GB Sandisk SD card</li> +<li>ISP: Verizon FIOS</li> +<li>OS: Alpine Linux, diskless install</li> +<li>Web server: lighttpd</li> +</ul> +<p>(TODO insert picture here)</p> +<h2>prerequisites</h2> +<p>Bringing my digital infrastructure home required a few prerequisites: +<ul> +<li>A stable, relatively fast home internet connection</li> +<li>An ISP that will not stop me from doing this (this remains to be seen)</li> +<li>Relatively good sysadmin and networking skills</li> +</ul> +</p> +<h2>counter cloud strategies</h2> +<p>I was inspired by christina cochior's talk on <a href="https://www.youtube.com/watch?v=fx3XcKy7LJY&amp;t=1200s">counter cloud strategies</a> and the related work <a href="https://varia.zone/atnofs-publication.html">a traversal network of feminist servers</a></p> +<p>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.</p> diff --git a/src/infrastructure.md b/src/infrastructure.md @@ -1,30 +0,0 @@ -# hello world - -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: - -* Hardware: Raspberry Pi 3B -* Disk: 256GB Sandisk SD card -* ISP: Verizon FIOS -* OS: Alpine Linux, diskless install -* Web server: lighttpd - -(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) -* 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, community and understanding. I view the current world of cloud -infrastructure as antithetical to this. diff --git a/src/server-guide.html b/src/server-guide.html @@ -0,0 +1,103 @@ +<h1>Alex's Guide to running a home server (WIP, DRAFT)</h1> +<p>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.</p> +<p>This is a living document, and I will update it as I learn more. If you have +suggestions or corrections, please contact me.</p> +<h2>Principles</h2> +<h3>Keep it simple</h3> +<p>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.</p> +<h3>No cloud services</h3> +<p>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.</p> +<h3>Accept limitations</h3> +<p>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</p> +<h2>Operating System</h2> +<p>I choose <strong>Linux</strong> 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.</p> +<p>In terms of distros, I choose <strong>Alpine Linux</strong>. 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.</p> +<h2>TLDs</h2> +<p>Unfortunately, a lot of TLDs are operated by <a href="https://en.wikipedia.org/wiki/Identity_Digital">Identity +Digital</a> 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.</p> +<p>I chose .nyc as my TLD, which is a public-private partnership between the City +of NY and Verisign.</p> +<p>TODO -- update this section. This may be misinformation or incomplete</p> +<p>Some TLDs may have difficulty sending email.</p> +<h2>ISP</h2> +<p>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.</p> +<p>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).</p> +<p>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.</p> +<h2>Hardware</h2> +<p>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. </p> +<h3>Comments on the Raspberry Pi</h3> +<p>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. </p> +<p>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.</p> +<h2>Router</h2> +<p>I use <em>OpenWRT</em> as my router software. I much prefer this to using proprietary, +commercial software, whose security I cannot vouch for. </p> +<p>OpenWRT does not auto-update. You'll need to keep on top of security updates +and patch your router regularly. </p> +<h3>Configuration</h3> +<p>I put my publicly-facing infrastructure on a separate VLAN so it should not be +able to access anything else if it is compromised.</p> +<h2>Security</h2> +<p>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.</p> +<p>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.</p> +<p>Move carefully and make sure you understand things thoroughly before you make +your server accessible to the public</p> +<h2>Software</h2> +<p>Learn Linux a bit. Be able to navigate around your filesystem and understand +how things are laid out. </p> +<h3>Firewall</h3> +<p>I use ufw as my firewall, and block all in and out ports by default. I then allowlist the needed ports. A good place to start is: DNS, NTP, HTTP, HTTPS</p> +<h3>Web Server</h3> +<p>I use lihgttpd as my </p> +<h3>Monitoring</h3> +<p>I use rrdtool for monitoring, which is an older and much lighter-weight alternative to something like Prometheus</p> +<h2>Other helpful resources</h2> +<p>For anyone interested in setting up their own home infrastructure, I am happy to help, please send me an email at <a href="mailto:alex@alexwennerberg.com">alex@alexwennerberg.com</a></p> diff --git a/src/server-guide.md b/src/server-guide.md @@ -1,123 +0,0 @@ -# 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 -