Frequently Asked Questions
Answers to common questions about Doku.
What languages and frameworks does Doku support?
Doku supports any application that can run in a container. It has built-in detection for Node.js (Express, Next.js, Fastify), Python (FastAPI, Django, Flask), Go, Ruby (Rails), and Java (Spring Boot). For anything else, use runtime: docker with your own Dockerfile.
Does Doku manage my cloud account?
Doku provisions and manages infrastructure in your own cloud account. Your credentials stay with you. Doku never stores your source code or has persistent access to your infrastructure beyond what's needed for deployment.
What cloud providers are supported?
AWS, GCP, and Azure are fully supported. Doku can also deploy to self-managed Kubernetes clusters. See Cloud Providers for setup details.
How does pricing work?
Doku charges based on the number of deployments and environments. There is a generous free tier for individual developers. You pay for your own cloud infrastructure separately. See the Pricing page for current plans.
Can I use Doku with an existing CI/CD pipeline?
Yes. Doku integrates with any CI system that can run shell commands. Just add doku deploy to your pipeline. See CI/CD Integration for examples with GitHub Actions, GitLab CI, and more.
What happens if a deployment fails?
Doku automatically rolls back to the previous stable version. During canary rollouts, if error rates or latency exceed your configured thresholds, traffic is shifted back to the old version instantly with zero downtime. See Rollbacks & Recovery.
Is my source code sent to Doku's servers?
No. Doku reads repository metadata (file names, framework markers, dependency manifests) to detect your stack, but your source code is built locally or in your CI environment. Container images are pushed to a registry in your own cloud account.
Can I customize the generated infrastructure?
Yes. Doku generates Terraform/Kubernetes manifests based on your doku.yaml. You can override any defaults in the config file, and use doku deploy --dry-run to inspect the plan before it executes.
How do I manage environment variables and secrets?
Use doku env set KEY=VALUE --env production to set environment variables. They are encrypted at rest and injected at container runtime. See Environment Variables.
Can I use a custom domain?
Yes. By default, Doku assigns a *.doku.io subdomain. You can configure a custom domain by adding a CNAME record pointing to your Doku-managed load balancer. TLS certificates are provisioned automatically.