Static demo A self-hosted Portuguese learning platform running on a two-node k3s cluster at home. This page is a snapshot; the live version reads pod status from the Kubernetes API and node metrics from Prometheus. · Write-ups · Repo

Laboratório
Brasil

k3s · two nodes · qwen2.5 7b local

--:--
Miami
--:--
Rio
Palavra do dia — carioca slang · click for another mermão Contração de "meu irmão". Tratamento entre amigos, muito carioca. Fala, mermão! Cê vai na praia hoje?
Aprender — learning tools
01

Tutor

Open WebUI + Ollama

Conversation practice against a local 7B model

planned
02

Coach

Python CLI

Writing correction with typed error kinds

planned
03

Fichas

Anki export

Decks generated from the corpus, with audio

planned
04

Gíria

CloudNativePG

Carioca slang database, fed by coach output

planned
Mídia — media libraries
05

Música

Navidrome

Samba, MPB, choro

planned
06

Livros

Audiobookshelf

Podcasts and audiobooks

planned
07

Vídeo

Jellyfin

Films, with transcript breakdown tooling

planned
Infra — platform
08

Grafana

kube-prometheus-stack

Node and pod metrics, k3s-adjusted scrape config

planned
09

Ollama

qwen2.5 7b q4_K_M

CPU inference, 20Gi limit, measured 4.6 tok/s

building
9
dias seguidos · study streak
Nós — cluster nodes
control-plane
16 GB · workload=light
memory7.1 / 16 GB
cpu18%
worker
32 GB · workload=heavy
memory7.4 / 31 GB
cpu62%
Stack

Platform

  • k3stwo nodes, bare metal, flannel VXLAN
  • FluxGitOps, whole cluster from one repo
  • Traefikingress, hostname per service
  • Sealed Secretscredentials committed safely

Observability

  • Prometheusk3s-specific scrape config
  • Grafananode and namespace dashboards
  • node-exporterDaemonSet, picks up new nodes

Built here

  • coachPython CLI, typed corrections via Pydantic
  • fsi-scrapercorpus pipeline, 26 stages, ruff + pytest
  • This portalConfigMap-served, hash-triggered rollouts

Next

  • Terraform + AKSportal to cloud, then torn down
  • CloudNativePGbackup and a tested restore
  • Shared storagelocal-path pins pods to disks
Write-ups
devops

The M2 Air as a homelab node

A homelab built from what was lying around. Which meant getting a real Linux onto Apple hardware, and finding out that the hard part is not the install. It is convincing the machine to let you.

sysadmin

Stratis pools, filesystems, and snapshots

The last ticket in the queue. A proof of concept for Stratis as a modern alternative to LVM plus XFS: build a pool, a filesystem, take a snapshot, and see how it differs from the LVM workflow.

sysadmin

Containers that survive reboot: systemd units and pods

Yesterday's containers vanished after a reboot. Wrap them as systemd user units so they auto-start even when nobody is logged in, and build a three-container pod for the API stack.

sysadmin

Rootless containers with podman: volumes, ports, and SELinux

The dev team's stack is moving to containers. Stand up rootless nginx and redis under an unprivileged user, with a bind-mount, a persistent volume, and SELinux staying enforcing.

devops

Walkthrough: Proving Ephemeral vs Persistent Storage with Postgres

The hands-on version. Deploy the same database twice, delete a pod each time, and watch it vanish once and survive once, with the output you should see at every step.

devops

Ephemeral vs Persistent Storage in Kubernetes

What each one is, how you ask for it, when to reach for which, and why the difference decides whether your data is still there after a pod restarts.