Kamal Config — Deploy OSS-alternatives with Kamal #
Motivation #
There is a sadly rising problem in the developer community of picking vendor lock-in solutions. Either because they are easy to use, have a lot of features, or are just the most popular solution due to marketing.
You see it either in the form of Cloud Providers, Databases, CI/CD solutions, or even in the form of libraries and frameworks. This is a problem because it limits the flexibility and scalability of the infrastructure and your wallet.
You might have heard of the following stories:
- We Burnt $72K testing Firebase + Cloud Run and almost went Bankrupt
- Our renewal bill for Datadog came to ~$83,000/year
Kamal is a tool from 37Signals which provides a solution to this problem reducing the vendor to just someone who provides a computer with an ip adresss where you can run your code.
By running a few commands you can deploy your code to your servers and manage it with ease. (No PhD in Kubernetes required)
The goal of this site is sharing kamal configurations for popular technolgies and OSS-alternatives that typical companies use in their infrastructure such as:
- Frontends (React, Vue, Angular, Next.js, etc.)
- Databases (Postgres, MySQL, Redis, etc.)
- CI/CD (Jenkins, GitLab CI, etc.)
- Monitoring (Prometheus, Grafana, etc.)
- Logging (Elasticsearch, Fluentd, etc.)
- Authentication (Keycloak, OAuth2, etc.)
And many more…
Where to start with Kamal #
Before you start, make sure you have a decent understanding of the following:
- DNS configuration (A, CNAME, etc.)
- Basic networking (IP, subnet, HTTP, Reverse Proxy, etc.)
- SSL/TLS certificates
- Docker
- Git
- Basic Linux commands (ls, cd, mkdir, etc.)
Can recommend reading through the following resources to get started:
If you are a book person, I can recommend the following book:
This is knowledge that you will reuse throughout your career, so it’s worth investing time in it.
“If You Know The Way Broadly, You Will See It In Everything” - Miyamoto Musashi
Feedback #
Feedback is always welcome! If you have any questions, feedback, or just want to say hi, feel free to reach out to me on Twitter