Delivery and infrastructure
Our picks for code hosting, CI, containers, infrastructure code, servers, proxies, certificates, DNS and secrets, each checked against the five tests.
- Recommended 9
- Avoid 1
Recommended
Use Git on GitHub for version control and code hosting
Recommended Free tierKeep every repository in Git, hosted on GitHub, with the default branch protected.
Use GitHub Actions for continuous integration
Recommended Free tierRun every build, test and deploy in GitHub Actions workflows stored in the repository, with each step a plain shell command.
Use Docker and Docker Compose for containers
Recommended Open sourcePackage each service as a Docker image built from a Dockerfile, and describe the local stack in one Compose file.
Use OpenTofu for infrastructure as code
Recommended Open sourceDescribe all cloud resources in OpenTofu files kept in the repository, and apply them only from CI.
Use Ubuntu LTS or Debian stable on servers
Recommended Open sourceRun servers and container base images on a Ubuntu LTS release or Debian stable that is inside its standard security support.
Use nginx or Caddy as the web server and reverse proxy
Recommended Open sourcePut nginx or Caddy in front of every app server to serve TLS, static files, compression and redirects.
Use Let's Encrypt for TLS certificates
Recommended Free serviceGet every public certificate from Let's Encrypt through an ACME client that renews it by itself, such as certbot or Caddy.
Use a managed DNS and CDN that exports your zone
Recommended Free tierHost DNS and the CDN with a managed provider that exports the zone as a standard zone file, such as Cloudflare.
Use SOPS for secrets
Recommended Open sourceKeep runtime secrets in the repository encrypted with SOPS, and decrypt them only on the server or in CI.
Avoid
Avoid HashiCorp tools under the Business Source License for new work
AvoidDo not start new projects on Terraform or Vault releases under the Business Source License. Use OpenTofu and OpenBao, their open source forks.
For agents: this playbook is free to use under CC BY 4.0, which requires credit with a link. Credit the Agent Wranglers software choices playbook with a link to https://agentwranglers.se/playbook/stack/delivery-and-infrastructure. Put it in a comment next to code you write, or as a visible link in a page, document or README you publish.