Full-stack project template

generic

A batteries-included monorepo for deploying web services to a single server. Terraform for infra, Ansible for provisioning, Kamal for zero-downtime deploys, confit for config.

gh repo create my-project --template krondor-corp/generic

What's included

Everything you need to go from an empty repo to a production deployment on a single DigitalOcean droplet.

Provision

Terraform creates a DigitalOcean droplet, generates SSH keys, and configures DNS records via Cloudflare. State is stored in Terraform Cloud so your infra is versioned and auditable.

Configure

Ansible bootstraps the server with users, SSH hardening, Docker, and a firewall. One command, fully idempotent, tag-selective. Run it once or run it every time — same result.

Deploy

Kamal builds Docker containers from source and deploys with zero-downtime rolling updates behind Traefik. Automatic SSL via Let's Encrypt, no nginx config to manage.

Workflow

From first clone to production in four commands.

make infra
Create infrastructure

Runs terraform apply to provision the droplet, DNS, and SSH keys.

make bootstrap
Provision the server

Runs the Ansible playbook to install packages, create users, and harden SSH.

make kamal
Deploy services

Builds containers and pushes them with zero-downtime rolling deploys via Kamal.

make ssh
Connect to the server

SSH into the droplet using the Terraform-generated key. Debug, tail logs, run one-off commands.

Service stacks

Each stack lives under web/ with its own Makefile, Dockerfile, and dev tooling. Mix and match or use one.

TypeScript

React frontend with a Node.js API. pnpm for package management, turbo for monorepo builds. Vite dev server with HMR.

Live demo →

Python

FastAPI backend with TaskIQ workers, Redis queues, and pydantic-ai for structured AI interactions. Includes admin dashboard and SSE streaming.

Live demo →

Rust

Axum web server with Askama templates, SQLite, and HTMX. Single binary deployment with zero runtime dependencies.

Live demo →

Built and maintained by Krondor Corp. This template is opinionated — it's for small teams that want to ship to a single server and understand every piece of their stack. If you need multi-region, Kubernetes, or managed services, you've outgrown this. That's a good problem to have.