Files
rs_website/content/posts/site-is-live.md
2026-03-27 07:57:13 -05:00

26 lines
1.6 KiB
Markdown

---
title: "ridgwaysystems.org is live"
date: 2026-03-11
tags: [meta, go, freebsd]
slug: site-is-live
description: "The site is up. A single Go binary on FreeBSD, serving blog posts, a status page, a hire page, and an admin panel — no database, no Docker, no external dependencies."
draft: false
---
It's up.
ridgwaysystems.org is now running on a Vultr VPS — FreeBSD, nginx for TLS termination, a single Go binary handling everything behind it. No database. No Docker. No framework. Flat Markdown files on disk, templates compiled into the binary at startup, HMAC-signed sessions, and a background goroutine that checks service health every few minutes.
The stack:
- **Go** — stdlib `net/http` with 1.22 pattern routing. One binary, one deploy, done.
- **FreeBSD** — nginx as the reverse proxy, certbot for TLS certs, rc.d for service management.
- **Flat files** — posts are `.md` files in `content/posts/`. The status page reads from `data/status.json`. Newsletter subscribers live in `data/subscribers.json`.
- **No build step** — CSS is hand-written, no preprocessor. JS is a single file for the admin editor.
Features that made it in before launch: blog with next/prev navigation, a status page with live HTTP health checks, a hire page with a contact form (rate-limited, honeypot, CSRF), a newsletter subscribe widget, admin panel with post editor, image uploads, and subscriber management, syntax-highlighted code blocks via Chroma, and an RSS feed.
The source is at [git.ridgwaysystems.org](https://git.ridgwaysystems.org).
More build posts to follow — the nginx config alone is worth documenting.