skip to content
wihan.dev

software engineer

Wihan Uys

I build Terraform providers for Dokploy and Clerk, and I run the servers this site lives on. Payments infrastructure at work; the rest of the time it is a NixOS machine, a Dokploy box, and a Factorio server, all declared in code from DNS to deploy.

github.com/vanillauys ↗wihan@wihan.devllms.txt

Projects

all projects →
  • terraform-provider-dokploy

    Terraform provider for the Dokploy PaaS: projects, environments, services with Docker Swarm settings, databases, domains, backups, servers, git providers, notifications, users, and API keys.

    Gov1.9.1maintained

  • terraform-provider-clerk

    Terraform provider for Clerk. JWT templates, restrictions, API keys, machines, domains, webhooks, organizations, SSO.

    Gov0.7.0maintained

  • factorio-server

    Headless Factorio behind Factorio Server Manager, deployed as a Dokploy compose stack from Terraform.

    Dockeractive

  • weather-app

    An animated weather station. SvelteKit 2, Svelte 5 runes, GSAP; the server keeps the OpenWeather key private.

    Svelteactive

On the registry

provider docs →

Writing

all posts →

Runs on

site
Astro on Bun, server rendered, in one container
deploy
Dokploy on a VPS; the project, domains, and DNS are Terraform
edge
Cloudflare: DNS, TLS, and a one-day page cache purged on deploy
machine
NixOS flake ("ripple"), zsh + starship, JetBrains and nvim
secrets
1Password service accounts through devenv; no .env files

The docs section renders both provider references. The configs and games pages serve the live dotfiles and server files as plain text. Every project, post, and docs page has a markdown twin: append .md to its URL.