blog.auc.fi

Devlog - 2025

About this Devlog

This devlog tracks infrastructure improvements and automation projects for auc.fi services. The infrastructure runs on NixOS with Docker Compose orchestration, serving multiple services through Envoy proxy with automated SSL certificate management.

You can subscribe to this page via RSS.

This page lists entries for the current year, for past entries consult the devlog archive.

December 20, 2025

Zine Static Site Generator Integration

Successfully integrated Zine v0.11.2 as the static site generator for the blog infrastructure.

Key Achievements:

Technical Stack:

Architecture:

Git Push → Gitea → Container Polls (5min) → Zine Build → rsync → nginx → Envoy → HTTPS
December 19, 2025

Blog Build System Debugging Marathon

Resolved multiple issues with the Zig build system for the blog infrastructure. This was a comprehensive debugging session that uncovered several Docker and Zig-specific challenges.

Problems Solved:

Lessons Learned:

Architecture Decisions:

December 07, 2025

N8N Workflow Automation Setup

Added n8n workflow automation service to the infrastructure stack.

Configuration:

Use Cases:

Integration:

December 07, 2025

Automated SSL Certificate Management

Implemented automated SSL certificate renewal system using Let’s Encrypt and Certbot.

Features:

Architecture:

Technical Implementation:

# SAN certificate for all domains
certbot certonly --webroot -w /var/www/certbot \
  -d auc.fi -d blog.auc.fi -d countly.auc.fi \
  -d gitea.auc.fi -d hsc.auc.fi -d n8n.auc.fi
December 07, 2025

Headscale VPN Setup

Deployed Headscale as a self-hosted Tailscale coordination server.

Services:

Configuration:

Purpose:

December 19, 2025

Blog Repository Initialization

Created the foundational build configuration for the blog infrastructure.

Repository Structure:

blog/
├── content/          # Markdown content files
│   ├── blog/        # Blog posts
│   └── devlog/      # Development log entries
├── layouts/         # Zine template files
├── assets/          # Static assets (CSS, JS, images)
├── zine.ziggy       # Zine configuration
├── build.zig        # Zig build script
└── blog-watch.sh    # Git polling and build automation

Components:

Automation Flow:

  1. Developer pushes to blog repository
  2. Container polls git every 300 seconds
  3. Detects changes via git fetch + hash comparison
  4. Pulls latest changes
  5. Runs zine release to build static site
  6. Rsyncs output to nginx document root
  7. Site immediately available via HTTPS
December 01, 2025

Infrastructure Overview

Current auc.fi infrastructure stack running on NixOS with Docker Compose:

Core Services:

Domains:

Network Architecture: