Directus on Kubernetes: Ship Your CMS Without the Ops Work
Kubernetes gives you horizontal scaling and cloud-native infrastructure. It also gives you PostgreSQL tuning, Redis cache management, S3 bucket configuration, and 3 AM alerts when pods crash. This guide covers the real cost of self-hosting Directus on Kubernetes, and why most teams choose managed hosting instead.
Kubernetes is powerful. It's also complex.
Directus itself is simple: point it at a database, give it S3 credentials, and it runs. But Kubernetes adds layers: container orchestration, networking policies, persistent volume claims, resource requests, horizontal pod autoscaling, and the eternal question of whether your app is actually ready to handle traffic.
The official Directus Kubernetes documentation shows this isn't a 30-minute setup. It's a multi-component architecture where each piece must be stateless, externally backed, and carefully tuned. A single misconfigured secret breaks everything. A crashed Redis instance silences your session cache.
The good news: thousands of teams have done this work. The better news: most of them concluded managed hosting was worth the money.
Why managed Directus hosting wins on Kubernetes
Deploy in minutes. Forget about infrastructure.
No infrastructure to manage
PostgreSQL, Redis, S3 storage, SSL certificates, backups: all included. No Helm chart tuning, no persistent volume disputes, no 2 AM database failover calls. Directus runs. That's it.
Predictable, transparent costs
Kubernetes self-hosting hides costs: managed VMs ($50-200/mo), managed PostgreSQL ($50-150/mo), Redis cluster ($20-100/mo), S3 storage, data transfer, monitoring tools. Managed Directus: fixed monthly fee. No billing surprises.
Automatic everything
Security patches applied within hours. Database backups run daily. SSL renews automatically. Scaling happens without you writing a HorizontalPodAutoscaler. You deploy your app; we handle the rest.
Built for teams who need reliability
What Kubernetes deployment actually requires
Directus on Kubernetes demands stateless architecture. Unlike traditional servers, pods are ephemeral: they crash, restart, and lose all local data. This means:
External Database (required) — PostgreSQL, MySQL, MariaDB, or MS SQL. SQLite does not work across multiple replicas. Managed PostgreSQL costs $50-150/mo depending on storage and backups.
Object Storage (required) — S3, GCS, or Azure Blob. All file uploads and media must live in the cloud. Configure CORS, IAM roles, and lifecycle policies. Budget $10-50/mo for typical usage.
Redis Cache (required for HA) — Running 2+ replicas without Redis causes session loss on pod restart. A small Redis cluster adds $20-100/mo and another operational surface to monitor.
High Availability baseline — Production deployments need 3+ replicas for fault tolerance. This means 3 Directus pods running simultaneously, each consuming CPU and memory. Your total infrastructure cost balloons accordingly.
Helm Chart configuration — The official Directus Labs Helm chart requires customizing values for environment variables, database credentials, S3 endpoints, Redis connection strings, and security contexts. Small errors break deployment.
The self-hosted Kubernetes path
If you proceed with Kubernetes, here is what you will do:
Choose Your App
Select an app to get started.
Set up managed PostgreSQL
Provision a managed database (AWS RDS, Google Cloud SQL, Azure Database). Create a directus user and database. Download credentials. Cost: $50-150/mo.
Configure cloud object storage
Create an S3 bucket (or equivalent), configure IAM policies, enable versioning for backups. Set environment variables for Directus to connect: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, S3_BUCKET, S3_REGION.
Deploy Redis cache cluster
Provision a managed Redis instance (or self-host in K8s with StatefulSets). Configure Directus to use Redis for session storage and cache. Test failover.
Install Directus via Helm chart
Add Helm repository, customize values.yaml with database, S3, Redis, and security settings. Deploy: helm install my-directus directus/directus. Monitor logs for startup errors.
Kubernetes self-hosted vs. managed Directus
Costs are estimates for US-region infrastructure. Self-hosted Kubernetes requires active monitoring and on-call rotation.
Managed Directus hosting: transparent pricing
Start small, scale as you grow. All plans include PostgreSQL, object storage, Redis cache, automated backups, and 99.9% uptime SLA.
Loading pricing...
Built for production
Enterprise-grade compliance and security without the infrastructure headache.
GDPR Compliant
Data residency controls. Run your Directus instance in any region to keep EU data in Europe.
SOC 2 Type II Certified
Independent security audit. Access controls, encryption, and audit logging meet enterprise standards.
99.9% Uptime SLA
High-availability infrastructure with automated failover. Your CMS stays live.
Automated backups
Daily encrypted backups with point-in-time restore. Never lose data.
Global CDN
Static assets cached globally. Content serves from the edge, not your origin.
Frequently Asked Questions
Kubernetes makes sense if you already run a Kubernetes cluster (e.g., EKS, GKE, AKS) for other workloads. It allows you to co-schedule Directus alongside your other applications and share infrastructure. However, if your only goal is to run Directus, managed hosting is cheaper and simpler: Elestio starts at $11/mo, Stackhero offers hourly billing, and you avoid months of DevOps work.
Stop managing Kubernetes. Start shipping content.
Set up managed Directus in 2 minutes. Let us handle PostgreSQL, Redis, backups, and scaling. You focus on your content, not ops.