This is an old revision of the document!
Table of Contents
folk.zone Wiki
A public knowledge base for self-hosting, terminal computing, and life on the small web, built around the folk.zone homelab.
Atomic pages. One topic per page. Everything interlinked.
About This Wiki
This is the public documentation and knowledge base for folk.zone, a self-hosted homelab running on a ThinkPad X270 (casa) in Calgary, Alberta, accessible via direct HTTPS with Let's Encrypt.
It serves three overlapping purposes:
- Operations reference: how the homelab is configured, why each service exists, and how to fix things when they break. Every service has a page. Every bug that required more than five minutes to resolve has a page named after its root cause.
- Terminal and tools reference: dotfiles, shell configuration, CLI tools, SSH setup, editors. The kind of thing that takes an afternoon to reconstruct from memory after a fresh install.
- Web philosophy: notes on the IndieWeb, the small web, alternative protocols (Gopher, Gemini, Finger), tilde communities, and the broader question of what the internet is for and who it belongs to. These pages are part reference, part essay.
The wiki lives at wiki.folk.zone and is itself a service on the homelab, a DokuWiki instance running in Docker, proxied through Caddy.
What's Here
The folkzone section documents the physical server, Docker Compose stack, every deployed service, and a full troubleshooting log. If a service is running at *.folk.zone, it has a page here. Several services (Mastodon, Lemmy, Forgejo, Pixelfed, BookWyrm) are on hiatus: stopped, with data preserved and configs in server/dormant/.
The hosting section is a step-by-step guide to self-hosting web infrastructure: hardware selection, networking and port forwarding, domain setup, Docker, and the Caddy reverse proxy.
The terminal section covers shell configuration (bash, dotfiles, profile.d), text editors (Micro, Vim, Nano), and CLI tools, both the classic ones (git, rsync, SSH) and modern Rust-era replacements (eza, bat, fzf, ripgrep, starship). Also covers tmux/byobu for persistent SSH sessions.
The protocols section covers the small web beyond HTTP, including Gopher (port 70), Gemini (port 1965), and Finger (port 79). Also includes the philosophy of the small web: solarpunk, browser monoculture, old hardware preservation.
The IndieWeb section is the largest. It covers IndieWeb principles and terminology, the broader Good Web framing, community spaces (Dreamwidth, omg.lol, tilde servers), blogging workflow, syndication, digital gentrification, trust online, and the social and political context for why any of this matters.
The tilde section covers the tildeverse: the network of public-access unix servers, its history back to 1960s timesharing, how to join, and per-server references for tilde.town, tilde.pink, tilde.club, SDF, cosmic.voyage, envs.net, tilde.green, and rw.rs.
The guides section contains reusable how-to references that aren't tied to a specific homelab instance, including licensing (copyleft, Creative Commons) and the workflow for adding a new service.
The troubleshooting section holds cross-service incident writeups: database permissions, federation failures, environment variable bugs, each named by root cause.
Namespaces
| Namespace | Pages | Words | Description |
|---|---|---|---|
| :root: | 3 pages | ~1,272 words | Wiki home, sidebar, navigation |
| :folkzone: | 6 pages | ~1,583 words | Server infrastructure, stack overview, Docker Compose |
| :folkzone:history: | 1 pages | ~190 words | Homelab history |
| :folkzone:infrastructure: | 1 pages | ~39 words | Infrastructure overview |
| :folkzone:networking: | 5 pages | ~1,613 words | CDN, DDoS, bot traffic, Deflect |
| :folkzone:services: | 23 pages | ~2,997 words | One page per deployed service |
| :folkzone:services:irc: | 4 pages | ~932 words | IRC setup and management |
| :folkzone:services:irc:troubleshooting: | 9 pages | ~948 words | IRC incident writeups |
| :folkzone:troubleshooting: | 19 pages | ~3,089 words | Bugs and resolutions, named by root cause |
| :guides: | 4 pages | ~1,496 words | Reusable how-to guides |
| :hosting: | 2 pages | ~436 words | Self-hosting guide index |
| :hosting:caddy: | 5 pages | ~1,129 words | Caddy reverse proxy |
| :hosting:docker: | 9 pages | ~3,353 words | Docker and compose |
| :hosting:domain: | 7 pages | ~1,792 words | Registrars, DNS, DDNS |
| :hosting:hardware: | 6 pages | ~2,034 words | Hardware selection |
| :hosting:networking: | 8 pages | ~2,448 words | Port forwarding, static IP, CG-NAT |
| :indieweb: | 46 pages | ~16,824 words | IndieWeb principles, community, tools, philosophy |
| :indieweb:webmentions: | 4 pages | ~658 words | Webmention service notes |
| :meta: | 5 pages | ~1,846 words | Wiki maintenance and community guidelines |
| :playground: | 1 pages | ~112 words | Test space |
| :protocols: | 1 pages | ~136 words | Alternative internet protocols |
| :protocols:finger: | 2 pages | ~401 words | Finger protocol |
| :protocols:gemini: | 2 pages | ~530 words | Gemini protocol and gemtext |
| :protocols:gopher: | 1 pages | ~408 words | Gopher protocol |
| :protocols:smallweb: | 7 pages | ~1,313 words | Solarpunk, browser monoculture, old hardware |
| :terminal: | 1 pages | ~110 words | Shell, editors, CLI tools |
| :terminal:editors: | 4 pages | ~673 words | Micro, Vim, Nano |
| :terminal:shell: | 9 pages | ~2,012 words | Bash config, dotfiles, profile.d |
| :terminal:tools: | 17 pages | ~3,291 words | git, rsync, SSH, tmux, bin/ scripts |
| :tilde: | 18 pages | ~7,229 words | Tildeverse, pubnix history, per-server references |
| :troubleshooting: | 17 pages | ~3,799 words | Cross-service incident writeups |
| :wiki: | 4 pages | ~4,029 words | DokuWiki-specific documentation |
Total: 251 pages · ~68,722 words
Quick Links
folkzone
Troubleshooting
Hosting Guide
Terminal
Protocols & Small Web
IndieWeb
Tilde
Guides
Principles
- Atomic: one topic per page
- Evergreen titles: named as facts, not questions
- Bidirectional links: all children link back to parent; run
python3 wiki_linkcheck.py –fixto enforce - Source of truth: wiki supersedes scattered
.mdfiles in the repo
