Proposals answered within 2 business days
All case studies
InfrastructureKubernetesSecurity

Kubernetes platform with GitOps and image signing for 32 applications

Client: Portfolio of client applications maintained by the teamIndustry: Technology18 October 2026
Results
applications on the cluster, all synchronised and healthy
32
restoring a 5 GB volume from backup in a failover test
38 s
security policies passed / failed
51 / 0

Challenge

About 30 client applications ran on a single server with a deployment panel. Deployments were manual, there was no security policy, and recovery after a failure existed only in theory. An inventory showed 49 application resources, 14 of them stopped, plus dead and duplicated services that took up memory and disk.

We wanted every application to be reproducible from the repository, isolated from the others and covered by monitoring, and for backups to be verified, not just taken.

Approach

We chose our own cluster over yet another PaaS. Every change goes through Git: GitHub Actions builds the image and signs it, and ArgoCD deploys only what is in the repository. The cluster rejects images without a valid signature.

We are migrating in waves: cleanup first, then stateless applications, then applications with a database, multi-service systems and WordPress last. For new projects there is a ready deployment path that the team copies instead of configuring from scratch.

Implementation

Security rests on several layers: image signature verification, network traffic between applications blocked by default, encryption of cluster data, audit logs, secrets in a manager with automatic reloading, and SSO login. Admin panels are reachable only on the private network, and public traffic goes exclusively through Cloudflare.

Backups have three layers in external storage: cluster state, application resources and data volumes. Weekly jobs actually restore a backup and check the result. Monitoring calculates SLOs with alerts on the error budget burn rate, and a cluster review report is produced every week.

Results

The cluster runs 32 applications, all synchronised with the repository and healthy, plus 17 databases with no restarts in the last week. Security policy check: 51 passed, 0 failed. A test restore of the databases from the old server gave data matching row for row.

In the failover exercise, restoring an application namespace took 5 s, a 5 GB volume 38 s, and the cluster state under a second. Optimisation lowered CPU reservations from 79% to 61% and cut the number of billable operations on the backup storage by 57%.

How it is built

Cluster
Kubernetes (kubeadm) on Proxmox virtual machines, Cilium networking with Hubble, Longhorn storage, traffic through Traefik, certificates from cert-manager and DNS records via external-dns.
GitOps
ArgoCD with self-healing: cluster state is derived from the repository. Separate projects for the platform and for applications, with an explicit list of namespaces. Image Updater replaces the version after a signed build.
Supply chain
GitHub Actions builds the image and signs it with cosign in keyless mode, by digest. Kyverno in enforce mode rejects unsigned images and generates a default network policy for every application.
Data and backups
Databases run on CloudNativePG with continuous WAL archiving to Cloudflare R2. Backups come in three layers: cluster state (etcd), resources (Velero) and volumes (Longhorn), with an automatic restore test every week.
Observability
Prometheus, Grafana and Loki, SLOs with error budget burn rate alerts (Sloth), notifications to a messaging app and a weekly cluster review report.
Access
Admin panels available only on the private network, SSO login (Authentik), secrets in Infisical with automatic reload, etcd encryption and API audit logs.

Technologies

  • Kubernetes
  • ArgoCD
  • Helm
  • Cilium
  • Longhorn
  • Traefik
  • Kyverno
  • cosign
  • CloudNativePG
  • Infisical
  • Prometheus
  • Grafana
  • Velero
  • Cloudflare
Case studies

More case studies

Real estate

AI sales assistant platform for property developers, powered by live inventory

A chat on the developer’s website answers questions about available flats and prices using live data. In a test of 106 scenarios, the number of answers containing invented facts fell to zero.

View case study
Education and personal development

AI coach on WhatsApp with participant memory and handover to humans

A thirty-day programme run as a WhatsApp conversation, with the author’s knowledge base and a memory of each participant. AI resolved 92% of cases without human involvement, and difficult conversations went to the coaches.

View case study
Real estate

Sales and after-sales system for a developer, with 3D walkthroughs built from floor plans

An offer generator with open tracking, a defects dashboard with the statutory 14-day deadline, complaints with a phone line, and 360° walkthroughs generated automatically from floor plans for 81 of 82 flats.

View case study
Healthcare

Health app taken over, with a new product catalogue and 47 languages

We took over the app from the previous contractor: an audit, security and payment fixes, a new product search and localisation into 47 languages, without stopping sales.

View case study
Real estate

Automated system for statutory reporting of flat prices to dane.gov.pl

An audit of 612 files against the act and the ministry template, a fix to the generator at the source, and automatic upload of 409 overdue resources to a portal that has no write API.

View case study
Construction

Public tender analytics platform with a competitor relationship graph

The application combines data from the Public Procurement Bulletin, KRS, GUS and the VAT White List. It shows who is bidding, at what price and how they are connected, instead of manual searching before every tender.

View case study
Media

AI short-video factory with human approval in a mobile web app

Script, illustrations, voiceover, subtitles and render in a single pipeline. A person approves every episode in a phone app, and publishing runs in scheduled slots.

View case study
Customer service

Voice AI assistant for a helpline, with a custom audio pipeline for Polish

A phone line where the caller talks to an AI. We rebuilt the whole audio path so that conversation in Polish flows, and the system detects the end of an utterance by meaning, not by silence.

View case study
Hospitality

Video menu platform for restaurants with HLS streaming and QR codes

A guest scans a code at the table and sees short videos instead of a list of dishes, with no app to install. Video in three quality levels, data isolation for each restaurant and a database restore verified in practice.

View case study
Pharma

Analytics dashboard for a group of e-prescription online shops, with no patient data

The dashboard collects orders from many shops in real time, while patients' personal data never leaves the shops. Privacy by design from the first version.

View case study