The portfolio is
part of the work.
A running system, from identity and private conversations to infrastructure and mail.
Next.js · consultation approvals · private chat · transactional outbox
One platform.
Connected by design.
Containerized Next.js on a single Azure VM, orchestrated with K3s and deployed through Helm. Envoy Gateway routes encrypted traffic; cert-manager manages Let’s Encrypt certificates through Azure DNS.
GitHub Actions tests and publishes the app and worker to Docker Hub. Fresh deployments use Terraform for Azure and Ansible for K3s; existing deployments update only the application through Helm and kubectl.
- Portfolio · HTTPS
- ataimo.com
- Identity · HTTPS
- keycloak.ataimo.com
- Dashboards · HTTPS
- grafana.ataimo.com
- Console · HTTPS
- redpanda.ataimo.com
- Webmail · HTTPS through Envoy
- webmail.ataimo.com
- Mail · SMTP / IMAP directly
- mail.ataimo.com
Mailu adds webmail.ataimo.com and mailbox access through mail.ataimo.com. Outbound email travels through SMTP2GO over TLS on port 587 because Azure restricts outbound SMTP on port 25. Port 22 is SSH, not SMTP.
A window into the running system.
Public infrastructure measurements, collected from Prometheus.
Fetching measurements…
Cluster · overall node resources
- CPU utilization
- Unavailable
- Memory utilization
- Unavailable
- Running pods
- Unavailable
- Node uptime
- Unavailable
Node usage · 5-minute average
Used / total node memory
Across the Kubernetes cluster
Time since the last node boot
Refreshes every 30 seconds; readings expire after two minutes. Infrastructure resource measurements only. Single node, no high availability.
Every pod, in view.
CPU is a 5-minute average; memory is the container working set. 1,000 mCPU = one CPU core.
Fetching pod measurements…
Identity, without friction.
Keycloak powers branded registration and sign-in with native accounts, Google, GitHub, LinkedIn and Microsoft. PostgreSQL holds dedicated databases and roles for each database-backed service.
From a request to a conversation.
Clients request consultations for owner approval, track engagements and exchange private messages. A transactional outbox and background worker publish events to Redpanda for notification processing. The broker stays private.
Observe the system.
Prometheus measures the cluster; Grafana presents operational dashboards. This public view reads validated aggregate snapshots from the worker. It exposes neither a Prometheus query endpoint nor customer data.
View workload readinessMail with a dedicated route.
Mailu provides SMTP, IMAP and Roundcube webmail. Incoming mail reaches port 25; clients use IMAP 993 and authenticated submission 465 or 587. SMTP2GO handles outbound delivery, with a verified sender domain and TLS. Mailbox accounts are separate from portfolio SSO.