[{"data":1,"prerenderedAt":116},["ShallowReactive",2],{"seo-verification":3,"blog-deployer-avec-kamal-en":6},{"google":4,"bing":5},"EycwPY2XMyTkVzas3n1ygeNJFGAH513qrMjfDljzsMQ","",{"id":7,"slug":8,"title":9,"excerpt":10,"readTime":11,"views":12,"isPinned":13,"publishedAt":14,"category":15,"categories":20,"featuredImage":22,"bgImage":23,"posterImage":24,"relatedSolution":25,"intro":27,"sections":28,"ctaTitle":71,"ctaBody":72,"ctaButton":73,"ctaUrl":74,"relatedPosts":75},40,"deployer-avec-kamal","Deploy your applications with Kamal on a VPS","Deploy your applications with Kamal on a VPS: zero-downtime, Docker and automatic SSL driven from your machine, without Kubernetes.",8,480,false,"2026-05-11T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":18},3,"Deployment","deploiement","bg-success\u002F10 text-success",[21],{"id":16,"name":17,"slug":18,"color":19,"icon":18},null,"\u002Fblog\u002Fcovers\u002Fbg.svg","\u002Fblog\u002Fcovers\u002Fdeployer-avec-kamal-poster.svg",{"categorySlug":18,"appSlug":26},"kamal","Kamal (formerly MRSK), from the Rails\u002F37signals ecosystem, deploys containerized applications on one or several VPS from your local machine, without a heavy orchestrator. It combines Docker build, push to a registry, zero-downtime deployment and automatic SSL reverse proxy in a single command: `kamal deploy`.",[29,33,43,46,68],{"type":30,"title":31,"body":32},"h2","Why deploy with Kamal on a VPS rather than with Kubernetes?","Kubernetes is oversized for the majority of applications hosted on a single VPS or a small cluster. Kamal targets precisely this ground: it takes your Dockerfile, builds the image, sends it to your servers via SSH and switches traffic without interruption thanks to its built-in proxy (kamal-proxy). The entire configuration fits in a `config\u002Fdeploy.yml` file versioned with your code: no control plane to maintain, no endless YAML. You keep the simplicity of a VPS with a professional deployment workflow.",{"type":34,"title":35,"items":36},"ul","What Kamal brings you",[37,38,39,40,41,42],"Zero-downtime deployments via health checks and progressive traffic switching","Build and push of the Docker image, then deployment on the servers, in a single command","Automatic Let's Encrypt SSL managed by kamal-proxy, without manual configuration","Instant rollback to the previous version with `kamal rollback`","Centralized and encrypted management of secrets and environment variables","Multi-server deployment (web, jobs, accessories such as Postgres or Redis) from a single file",{"type":30,"title":44,"body":45},"Prerequisites","On the VPS side, Kamal only requires key-based SSH access and Docker (which it can even install via `kamal setup` on the first deployment). A VPS with 2 vCPU and 2 to 4 GB of RAM is suitable for a standard web application plus its database. On the local machine side, install Kamal (Ruby gem or Docker image), and prepare a container registry (Docker Hub, GitHub Container Registry, or a private registry) as well as a domain pointing to the VPS.",{"type":47,"title":48,"steps":49},"steps","Deploy an application with Kamal",[50,53,56,59,62,65],{"title":51,"body":52},"Initialize the configuration","In your project, run `kamal init`. This generates `config\u002Fdeploy.yml` and `.kamal\u002Fsecrets`. Fill in the service name, the image (`votreuser\u002Fmonapp`), the list of servers (`servers.web`) with the VPS IP and the registry used.",{"title":54,"body":55},"Define the secrets and variables","Place the sensitive values in `.kamal\u002Fsecrets` (never committed): `KAMAL_REGISTRY_PASSWORD`, `RAILS_MASTER_KEY` or your application keys. Reference them in `deploy.yml` under `env.secret`. Non-sensitive variables go under `env.clear`.",{"title":57,"body":58},"Enable the proxy and SSL","In the `proxy` section of `deploy.yml`, specify your `host` (`app.yourdomain.com`) and enable `ssl: true`. kamal-proxy will automatically obtain the Let's Encrypt certificate and terminate TLS in front of your container. Make sure the DNS already points to the VPS before the deployment.",{"title":60,"body":61},"Provision the server","Run `kamal setup`. Kamal connects via SSH, installs Docker if needed, logs in to the registry, starts kamal-proxy and then deploys the first version. This is the single bootstrap step: subsequent deployments will be faster.",{"title":63,"body":64},"Deploy and check","On each update, run `kamal deploy`. Kamal builds the image, pushes it, starts the new containers, waits for the health checks to pass, then switches the traffic and stops the old ones. Check the status with `kamal app logs -f` and `kamal app details`.",{"title":66,"body":67},"Manage accessories (database, cache)","Declare Postgres or Redis under the `accessories` key of `deploy.yml`, with their image, their port and their volumes. `kamal accessory boot db` starts the service. You thus keep the entire stack described in a single versioned file.",{"type":69,"body":70},"tip","If a deployment introduces a regression, don't touch the code: run `kamal rollback [VERSION]` to instantly return to the previous image, still present on the VPS. Also consider using `kamal app exec` to run one-off tasks (migrations, console) directly in the running container, without opening a manual SSH session.","Drive your Kamal deployments on a ServOrbit Cloud VPS","Provision a Cloud VPS with the Deployment template and key-based SSH access: Kamal installs Docker on it and deploys your application with zero downtime from the very first command.","See the Cloud VPS","\u002Fvps-cloud",[76,90,103],{"id":77,"slug":78,"title":79,"excerpt":80,"readTime":81,"views":82,"isPinned":13,"publishedAt":83,"category":84,"categories":85,"featuredImage":22,"bgImage":23,"posterImage":87,"relatedSolution":88},33,"deployer-avec-caprover","Deploy your applications with CapRover on a VPS","Turn your VPS into a PaaS with CapRover: Git deployments in a single push, automatic SSL and a one-click app catalog.",7,221,"2026-05-18T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":18},[86],{"id":16,"name":17,"slug":18,"color":19,"icon":18},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-caprover-poster.svg",{"categorySlug":18,"appSlug":89},"caprover",{"id":91,"slug":92,"title":93,"excerpt":94,"readTime":81,"views":95,"isPinned":13,"publishedAt":96,"category":97,"categories":98,"featuredImage":22,"bgImage":23,"posterImage":100,"relatedSolution":101},34,"deployer-avec-dokku","Deploy your applications with Dokku on a VPS","Deploy your apps with Dokku, the smallest PaaS on the market: git push, Heroku buildpacks and automatic SSL on a lightweight VPS.",258,"2026-05-17T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":18},[99],{"id":16,"name":17,"slug":18,"color":19,"icon":18},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-dokku-poster.svg",{"categorySlug":18,"appSlug":102},"dokku",{"id":104,"slug":105,"title":106,"excerpt":107,"readTime":81,"views":108,"isPinned":13,"publishedAt":109,"category":110,"categories":111,"featuredImage":22,"bgImage":23,"posterImage":113,"relatedSolution":114},35,"deployer-avec-portainer","Deploy your applications with Portainer on a VPS","Manage Docker visually with Portainer on your VPS: containers, stacks, volumes and networks managed from a clear web interface.",295,"2026-05-16T00:00:00+00:00",{"id":16,"name":17,"slug":18,"color":19,"icon":18},[112],{"id":16,"name":17,"slug":18,"color":19,"icon":18},"\u002Fblog\u002Fcovers\u002Fdeployer-avec-portainer-poster.svg",{"categorySlug":18,"appSlug":115},"portainer",1785628427859]