====== folk.zone Wiki ===== A public knowledge base for self-hosting, terminal computing, and life on the small web, built around the [[https://folk.zone|folk.zone]] homelab. > //Atomic pages. One topic per page. Everything interlinked.// ===== About This Wiki ===== This is the public documentation and knowledge base for [[https://folk.zone|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 [[folkzone:services:wiki|DokuWiki]] instance running in Docker, proxied through [[folkzone:services:caddy|Caddy]]. ===== What's Here ===== The **[[folkzone:start|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 [[https://folk.zone/blog/putting-services-on-hiatus/|on hiatus]]: stopped, with data preserved and configs in ''server/dormant/''. The **[[hosting:start|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:start|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:start|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:start|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:start|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:start|tilde.town]], [[tilde:pink|tilde.pink]], [[tilde:club|tilde.club]], [[tilde:sdf|SDF]], [[tilde:cosmic|cosmic.voyage]], [[tilde:envs|envs.net]], [[tilde:green|tilde.green]], and [[tilde:rwrs|rw.rs]]. The **[[guides:start|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:start|troubleshooting]]** section holds cross-service incident writeups: database permissions, federation failures, environment variable bugs, each named by root cause. ===== Namespaces ===== ^ Namespace ^ Pages ^ Description ^ | [[start|:root:]] | 3 | Wiki home, sidebar, navigation | | [[folkzone:start|:folkzone:]] | 8 | Server infrastructure, stack overview, Docker Compose | | [[folkzone:history:start|:folkzone:history:]] | 3 | Homelab history | | [[folkzone:infrastructure:start|:folkzone:infrastructure:]] | 1 | Infrastructure overview | | [[folkzone:machines:start|:folkzone:machines:]] | 3 | The machine fleet | | [[folkzone:networking:start|:folkzone:networking:]] | 5 | CDN, DDoS, bot traffic, Deflect | | [[folkzone:services:start|:folkzone:services:]] | 24 | One page per deployed service | | [[folkzone:services:irc:start|:folkzone:services:irc:]] | 5 | IRC setup and management | | [[folkzone:services:irc:troubleshooting:start|:folkzone:services:irc:troubleshooting:]] | 10 | IRC incident writeups | | [[folkzone:troubleshooting:start|:folkzone:troubleshooting:]] | 19 | Bugs and resolutions, named by root cause | | [[guides:start|:guides:]] | 6 | Reusable how-to guides | | [[hosting:start|:hosting:]] | 2 | Self-hosting guide index | | [[hosting:caddy:start|:hosting:caddy:]] | 6 | Caddy reverse proxy | | [[hosting:docker:start|:hosting:docker:]] | 9 | Docker and compose | | [[hosting:domain:start|:hosting:domain:]] | 7 | Registrars, DNS, DDNS | | [[hosting:hardware:start|:hosting:hardware:]] | 9 | Hardware selection | | [[hosting:networking:start|:hosting:networking:]] | 8 | Port forwarding, static IP, CG-NAT | | [[indieweb:start|:indieweb:]] | 51 | IndieWeb principles, community, tools, philosophy | | [[indieweb:webmentions:start|:indieweb:webmentions:]] | 4 | Webmention service notes | | [[meta:start|:meta:]] | 5 | Wiki maintenance and community guidelines | | [[playground:start|:playground:]] | 2 | Test space | | [[protocols:start|:protocols:]] | 1 | Alternative internet protocols | | [[protocols:finger:start|:protocols:finger:]] | 2 | Finger protocol | | [[protocols:gemini:start|:protocols:gemini:]] | 2 | Gemini protocol and gemtext | | [[protocols:gopher:start|:protocols:gopher:]] | 1 | Gopher protocol | | [[protocols:smallweb:start|:protocols:smallweb:]] | 7 | Solarpunk, browser monoculture, old hardware | | [[terminal:start|:terminal:]] | 1 | Shell, editors, CLI tools | | [[terminal:editors:start|:terminal:editors:]] | 4 | Micro, Vim, Nano | | [[terminal:scripting:start|:terminal:scripting:]] | 15 | sed, awk, grep, jq, regex, bash recipes | | [[terminal:shell:start|:terminal:shell:]] | 10 | Bash config, dotfiles, profile.d | | [[terminal:tools:start|:terminal:tools:]] | 19 | git, rsync, SSH, tmux, bin/ scripts | | [[tilde:start|:tilde:]] | 19 | Tildeverse, pubnix history, per-server references | | [[troubleshooting:start|:troubleshooting:]] | 20 | Cross-service incident writeups | | [[wiki:start|:wiki:]] | 4 | DokuWiki-specific documentation | **Total: 295 pages** ===== Quick Links ===== **[[folkzone:start|folkzone]]** * [[folkzone:services:caddy|Caddy]] · [[folkzone:services:forgejo|Forgejo]] · [[folkzone:services:mastodon|Mastodon]] · [[folkzone:services:wiki|DokuWiki]] · [[folkzone:services:freshrss|FreshRSS]] * [[folkzone:server_specs|Server Specs]] · [[folkzone:infrastructure:start|Infrastructure]] · [[folkzone:networking:start|Networking]] * [[folkzone:networking:cdn_consolidation|CDN Consolidation]] · [[folkzone:networking:deflect|Deflect]] · [[folkzone:networking:bot_traffic|Bot Traffic]] * [[folkzone:machines:start|Machines]] · [[folkzone:policies|Policies]] · [[folkzone:email|Email/SMTP]] · [[folkzone:history:migration|nitro to casa Migration]] **[[folkzone:troubleshooting:start|Troubleshooting]]** * [[folkzone:troubleshooting:caddy_502_bad_gateway|Caddy 502 Bad Gateway]] · [[folkzone:troubleshooting:irc_lounge_ergo_connection|IRC Connection Issues]] · [[folkzone:troubleshooting:writefreely_database_issues|WriteFreely Database Issues]] * [[troubleshooting:telus_wifi_lockout|TELUS Wi-Fi Lockout]] · [[troubleshooting:windows_update_wiped_esp|Wiped ESP]] · [[troubleshooting:prochot_throttling|PROCHOT Throttling]] **[[hosting:start|Hosting Guide]]** * [[hosting:hardware:start|Hardware]] · [[hosting:networking:start|Networking]] · [[hosting:domain:start|Domain]] · [[hosting:docker:start|Docker]] · [[hosting:caddy:start|Caddy]] **[[terminal:start|Terminal]]** * [[terminal:editors:micro|Micro]] · [[terminal:editors:vim|Vim]] · [[terminal:shell:bashrc|bashrc]] · [[terminal:shell:gitconfig|gitconfig]] * [[terminal:tools:bin_scripts|bin/ scripts]] · [[terminal:tools:ssh_homelab|SSH]] · [[terminal:tools:tmux_byobu|tmux / byobu]] * [[terminal:scripting:start|Scripting]]: [[terminal:scripting:sed|sed]] · [[terminal:scripting:awk|awk]] · [[terminal:scripting:grep|grep]] · [[terminal:scripting:jq|jq]] · [[terminal:scripting:bash_recipes|bash recipes]] * [[terminal:tools:wordgrinder|WordGrinder]] · [[terminal:tools:ranger|Ranger]] · [[terminal:shell:fish|fish]] **[[protocols:start|Protocols & Small Web]]** * [[protocols:gopher:start|Gopher]] · [[protocols:gemini:start|Gemini]] · [[protocols:finger:start|Finger]] * [[protocols:smallweb:solarpunk|Solarpunk]] · [[protocols:smallweb:browser_monoculture|Browser Monoculture]] **[[indieweb:start|IndieWeb]]** * [[indieweb:good_web|The Good Web]] · [[indieweb:indieweb_defined|The IndieWeb, Defined]] · [[indieweb:principles|Principles]] * [[indieweb:long_web|The Long Web]] · [[indieweb:internet_as_place|The Internet as a Place]] · [[indieweb:domain_of_ones_own|A Domain of One's Own]] * [[indieweb:interlinking|Interlinking]] · [[indieweb:webmaster|Webmaster]] · [[indieweb:history_of_blogging|History of Blogging]] * [[indieweb:deleting_corporate_social_media|Deleting Corporate Social Media]] · [[indieweb:indie_platforms|Independent Platforms]] * [[indieweb:harm_reduction|Harm Reduction]] · [[indieweb:neighbourhood|Being a Good Neighbour]] · [[indieweb:trust_online|Trust Online]] **[[tilde:start|Tilde]]** * [[tilde:tildeverse|The Tildeverse]] · [[tilde:history|Pubnix History]] · [[tilde:join|Joining a Tilde]] · [[tilde:glossary|Glossary]] * [[tilde:start|tilde.town]] · [[tilde:pink|tilde.pink]] · [[tilde:club|tilde.club]] · [[tilde:sdf|SDF]] * [[tilde:cosmic|cosmic.voyage]] · [[tilde:envs|envs.net]] · [[tilde:green|tilde.green]] · [[tilde:rwrs|rw.rs]] * [[tilde:commands|Commands]] · [[tilde:apps|Apps]] · [[tilde:town_square|Town Square]] · [[tilde:accounts|A Tilde Account]] **[[guides:start|Guides]]** * [[guides:add_new_service|Adding a New Service]] · [[guides:copyleft|Copyleft]] * [[guides:new_machine|New Machine Setup]] · [[guides:writerdeck|Building a WriterDeck]] ===== Principles ===== * **Atomic**: one topic per page * **Evergreen titles**: named as facts, not questions