The portfolio is
part of the work.

A running system, from identity and private conversations to infrastructure and mail.

Ataimo platform infrastructureGitHub source feeds Actions, Docker Hub images and Terraform, Ansible and Helm delivery. Greenfield provisions infrastructure; existing stacks receive app-only updates. Traffic progresses from external clients to Envoy Gateway, then a row of portfolio, Grafana, Keycloak, Redpanda Console and Mailu services, then PostgreSQL, Redpanda broker and Prometheus. These internal components run on one Azure VM with K3s. SMTP2GO is outside the VM, an external outbound port 25 workaround using TLS 587. SMTP and IMAP bypass HTTP ingress. Moving signals illustrate direction and are not live packet traces.ONE AZURE VMK3s · Helm · Docker containersINGRESSAPPLICATION SERVICESDATA · EVENTS · METRICSSMTP / IMAP · direct mail accessGitHub repositoryGitHub ActionsDocker HubTerraformAnsibleHelm + kubectlClientEnvoy GatewayPortfolio + workerGrafanaKeycloakRedpanda ConsoleMailu + webmailPostgreSQLRedpanda brokerPrometheusSMTP2GOEXTERNAL WORKAROUNDTLS 587 · outbound port 25 blockedNot hosted on the Azure VMcert-manager + Let’s Encrypt · Azure DNS · single node, no high availabilityGitHub → Actions → Docker Hub · fresh: Terraform + Ansible · existing: app-only Helm rolloutArrows show request, database, event and metrics-query direction. Prometheus scrapes the cluster independently.
Client → ingress → services → data · signals illustrate flow, not live traffic
Portfolio + workerapp

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.

Explore the source on GitHub

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

Node usage · 5-minute average

Memory utilization
Unavailable

Used / total node memory

Running pods
Unavailable

Across the Kubernetes cluster

Node uptime
Unavailable

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 readiness

Mail 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.