Compare commits
7 Commits
58831e2429
...
617624c179
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
617624c179 | ||
|
|
44262dd496 | ||
|
|
68e8ab1646 | ||
|
|
9612ac6b37 | ||
|
|
bfe2fb7c24 | ||
|
|
a8ab64c3ab | ||
|
|
92d36f98ed |
3
Makefile
3
Makefile
@@ -56,11 +56,12 @@ DEPLOY_DIR ?= /var/www/ridgwaysystems
|
|||||||
|
|
||||||
.PHONY: deploy
|
.PHONY: deploy
|
||||||
deploy: cross
|
deploy: cross
|
||||||
|
ssh $(DEPLOY_HOST) "rcctl stop $(BINARY); pkill $(BINARY); true"
|
||||||
scp $(BINARY)-openbsd-amd64 $(DEPLOY_HOST):/usr/local/bin/$(BINARY)
|
scp $(BINARY)-openbsd-amd64 $(DEPLOY_HOST):/usr/local/bin/$(BINARY)
|
||||||
rsync -av --delete templates/ $(DEPLOY_HOST):$(DEPLOY_DIR)/templates/
|
rsync -av --delete templates/ $(DEPLOY_HOST):$(DEPLOY_DIR)/templates/
|
||||||
rsync -av --delete static/ $(DEPLOY_HOST):$(DEPLOY_DIR)/static/
|
rsync -av --delete static/ $(DEPLOY_HOST):$(DEPLOY_DIR)/static/
|
||||||
rsync -av content/ $(DEPLOY_HOST):$(DEPLOY_DIR)/content/
|
rsync -av content/ $(DEPLOY_HOST):$(DEPLOY_DIR)/content/
|
||||||
ssh $(DEPLOY_HOST) rcctl restart $(BINARY)
|
ssh $(DEPLOY_HOST) rcctl start $(BINARY)
|
||||||
|
|
||||||
.PHONY: help
|
.PHONY: help
|
||||||
help:
|
help:
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: "Setting Up pf with VLANs"
|
title: "Setting Up pf with VLANs"
|
||||||
date: 2025-02-10
|
date: 2026-03-11
|
||||||
tags: [pf, networking, openbsd]
|
tags: [pf, networking, openbsd]
|
||||||
slug: pf-vlans
|
slug: pf-vlans
|
||||||
description: "Configuring OpenBSD pf.conf with VLAN segmentation — separating servers, desktop, IoT, and game traffic with sensible firewall rules."
|
description: "Configuring OpenBSD pf.conf with VLAN segmentation — separating servers, desktop, IoT, and game traffic with sensible firewall rules."
|
||||||
|
|||||||
25
content/posts/site-is-live.md
Normal file
25
content/posts/site-is-live.md
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
---
|
||||||
|
title: "ridgwaysystems.org is live"
|
||||||
|
date: 2026-03-11
|
||||||
|
tags: [meta, go, openbsd]
|
||||||
|
slug: site-is-live
|
||||||
|
description: "The site is up. A single Go binary on OpenBSD, 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 — OpenBSD, relayd 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.
|
||||||
|
- **OpenBSD** — relayd as the reverse proxy, acme-client 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 relayd config alone is worth documenting.
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: "The Hardware: What's in the Rack"
|
title: "The Hardware: What's in the Rack"
|
||||||
date: 2025-01-28
|
date: 2026-03-05
|
||||||
tags: [hardware, homelab]
|
tags: [hardware, homelab]
|
||||||
slug: the-hardware
|
slug: the-hardware
|
||||||
description: "A tour of the physical hardware — SuperMicro 1U firewall, Dell R720 primary server, Dell R710 secondary, and the desktop control node."
|
description: "A tour of the physical hardware — SuperMicro 1U firewall, Dell R720 primary server, Dell R710 secondary, and the desktop control node."
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
title: "Why OpenBSD for a Homelab"
|
title: "Why OpenBSD for a Homelab"
|
||||||
date: 2025-01-15
|
date: 2026-03-01
|
||||||
tags: [openbsd, homelab]
|
tags: [openbsd, homelab]
|
||||||
slug: why-openbsd
|
slug: why-openbsd
|
||||||
description: "The case for running OpenBSD as the foundation of a homelab — security model, pf, clean base system, and the value of good documentation."
|
description: "The case for running OpenBSD as the foundation of a homelab — security model, pf, clean base system, and the value of good documentation."
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"last_checked": "2025-02-10T12:00:00Z",
|
"last_checked": "2026-03-11T21:01:46.808088132Z",
|
||||||
"services": [
|
"services": [
|
||||||
{
|
{
|
||||||
"name": "Web (httpd)",
|
"name": "Web (httpd)",
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
"description": "git.ridgwaysystems.org",
|
"description": "git.ridgwaysystems.org",
|
||||||
"url": "https://git.ridgwaysystems.org",
|
"url": "https://git.ridgwaysystems.org",
|
||||||
"check_url": "https://git.ridgwaysystems.org",
|
"check_url": "https://git.ridgwaysystems.org",
|
||||||
"status": "up"
|
"status": "down"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "DNS (unbound)",
|
"name": "DNS (unbound)",
|
||||||
|
|||||||
1
data/subscribers.json
Normal file
1
data/subscribers.json
Normal file
@@ -0,0 +1 @@
|
|||||||
|
[]
|
||||||
@@ -35,12 +35,12 @@
|
|||||||
<td class="hw-name">srv02</td>
|
<td class="hw-name">srv02</td>
|
||||||
<td>Dell R710<br><span class="hw-spec">Xeon X5560 • 288 GB RAM</span></td>
|
<td>Dell R710<br><span class="hw-spec">Xeon X5560 • 288 GB RAM</span></td>
|
||||||
<td>OpenBSD + Linux VMs</td>
|
<td>OpenBSD + Linux VMs</td>
|
||||||
<td>Backup, game servers<br><span class="hw-spec">nsd • vmm • Jellyfin • secondary DNS</span></td>
|
<td>Backup, game servers<br><span class="hw-spec">nsd • qemu • Jellyfin • secondary DNS</span></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td class="hw-name">ws01</td>
|
<td class="hw-name">ws01</td>
|
||||||
<td>Desktop<br><span class="hw-spec">Intel Core i9-12900K • 64 GB RAM</span></td>
|
<td>Desktop<br><span class="hw-spec">Intel Core i9-12900K • 64 GB RAM</span></td>
|
||||||
<td>Fedora Linux</td>
|
<td>Fedora Linux 43</td>
|
||||||
<td>Daily driver, Ansible control node<br><span class="hw-spec">Development • playbook management</span></td>
|
<td>Daily driver, Ansible control node<br><span class="hw-spec">Development • playbook management</span></td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|||||||
@@ -109,9 +109,12 @@
|
|||||||
<section class="resume-section">
|
<section class="resume-section">
|
||||||
<h2>Certifications</h2>
|
<h2>Certifications</h2>
|
||||||
<ul class="resume-cert-list">
|
<ul class="resume-cert-list">
|
||||||
<li class="resume-cert">CompTIA Network+</li>
|
|
||||||
<li class="resume-cert">FCF Cybersecurity</li>
|
<li class="resume-cert">FCF Cybersecurity</li>
|
||||||
<li class="resume-cert">FCA Cybersecurity</li>
|
<li class="resume-cert">FCA Cybersecurity</li>
|
||||||
|
<li class="resume-cert">CompTIA Network+</li>
|
||||||
|
<li class="resume-cert">CompTIA Security+</li>
|
||||||
|
<li class="resume-cert">Cisco CCNA</li>
|
||||||
|
<li class="resume-cert">RHCA</li>
|
||||||
</ul>
|
</ul>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@@ -137,5 +140,8 @@
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
|
<section class="resume-section">
|
||||||
|
<h2>References</h2>
|
||||||
|
</section>
|
||||||
</div>
|
</div>
|
||||||
{{end}}
|
{{end}}
|
||||||
|
|||||||
Reference in New Issue
Block a user