Skip to content
robinchan.pages.dev
  • Experience
  • Projects
  • Security
  • Skills
  • About
  • Resume
  • Contact

All Projects

Everything, not just what fits on the homepage: sanitized production case studies from Keel Digital alongside side builds. Each links out to a full write-up.

Proxmox Bare-Metal Migration

Live

14 DigitalOcean droplets migrated to a single OVHcloud bare-metal box behind a NAT gateway: ~$1,500 CAD/month saved, no VM left with a public IP.

  • Proxmox VE
  • OVHcloud
  • nftables
  • NAT gateway
Full write-up Case study

Self-Managed OpenSearch SIEM

Live

40+ services, Sigma detection rules, and tiered retention for a HIPAA/FedRAMP-scoped environment. Data residency ruled out a third-party SIEM.

  • OpenSearch
  • Sigma
  • Fluent Bit
  • Logstash
  • CloudTrail
  • AWS
Full write-up Case study

OPKSSH Dev Access

Live

Static SSH keys replaced with OPKSSH-issued, Google Workspace-bound certificates for tiered dev access. Offboarding no longer depends on someone remembering to edit authorized_keys.

  • OPKSSH
  • Google Workspace
  • OIDC
  • SSH certificates
Full write-up Case study

Local RAG Assistant

Live

A fully local, private document Q&A assistant — Ollama, FastAPI, and sqlite-vec in Docker Compose, with zero data leaving the machine. Built like production, not a demo: fail-closed API auth, magic-byte upload validation, and a Trivy-gated CI pipeline.

  • FastAPI
  • Ollama
  • Docker
  • systemd
  • Trivy
  • GitHub Actions
  • Zabbix
  • Prometheus
  • sqlite-vec
  • Kiwix
Full write-up Source

Keycloak Monitoring via Zabbix

Live

A Zabbix template and alert pipeline for Keycloak's Prometheus metrics — identity monitoring without standing up a separate Prometheus/Alertmanager stack. Triggers catch failed-login spikes and service-to-service auth errors, routing to Google Chat.

  • Zabbix
  • Keycloak
  • Prometheus
  • Sigma
  • Google Chat Webhook
  • GitHub Actions
Full write-up Source

Terraform Module: Scheduled Lambda + EventBridge

Live

A Terraform module for the ops-automation shape I kept rebuilding by hand: a Lambda on an EventBridge schedule, with least-privilege IAM and log retention done right instead of copy-pasted. Ships with a working example, tflint checks, and versioned releases.

  • Terraform
  • AWS Lambda
  • EventBridge
  • IAM
  • CloudWatch
  • GitHub Actions
  • tflint
Full write-up Source

Grocery Bot: Meal Planning on GitHub Actions

Live

Weekly meal-planning and grocery-list automation with zero hosting cost — two scheduled GitHub Actions jobs and a Discord channel, where reactions are both the vote and the persistence layer. No always-on bot, no server.

  • Python
  • GitHub Actions
  • Discord REST API
  • requests
  • PyYAML
  • cron
Full write-up Source

URL Shortener on Kubernetes (EKS)

In progress

A Python/FastAPI URL shortener built in phases from an empty AWS account toward a Terraform-provisioned EKS cluster. The build log is the point: the real reasoning and the mistakes as they happen, including a credential exposure that added gitleaks pre-commit scanning.

  • AWS
  • IAM
  • Docker
  • FastAPI
  • gitleaks
  • Kubernetes
  • EKS
  • Helm
  • Terraform
  • GitHub Actions
  • CloudWatch
Full write-up Source & build log go public with the finished project. Early access on request via email.

← Back to robinchan.pages.dev

© 2026 Robin Chan · Plain HTML/CSS, hosted on Cloudflare Pages

Back to top ↑