<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Few Servers</title>
    <description>The latest articles on DEV Community by Few Servers (fewservers).</description>
    <link>https://dev.to/fewservers</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F15020%2F6664460c-3ce5-4865-85e3-e26f511c4400.png</url>
      <title>DEV Community: Few Servers</title>
      <link>https://dev.to/fewservers</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/fewservers"/>
    <language>en</language>
    <item>
      <title>Deploy Coolify on a $6 VPS in 15 minutes, timed step by step</title>
      <dc:creator>Mortise Apps</dc:creator>
      <pubDate>Sun, 04 Oct 2026 05:00:00 +0000</pubDate>
      <link>https://dev.to/fewservers/deploy-coolify-on-a-6-vps-in-15-minutes-timed-step-by-step-33m5</link>
      <guid>https://dev.to/fewservers/deploy-coolify-on-a-6-vps-in-15-minutes-timed-step-by-step-33m5</guid>
      <description>&lt;p&gt;Coolify is the self-hosted alternative to Heroku, Vercel and Netlify: one server, a web UI, push-to-deploy for anything that runs in Docker. The project's own docs say you need 2 CPUs and 2 GB of RAM. We wanted to know whether the &lt;strong&gt;$6 DigitalOcean droplet&lt;/strong&gt; (1 vCPU, 1 GB RAM, 25 GB SSD) is enough for a small team's side projects, so we installed it, timed every step and left it running.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Short answer:&lt;/strong&gt; Yes, Coolify runs on DigitalOcean's $6 droplet (1 vCPU, 1 GB RAM) if you add a 2 GB swap file first. Measured on 1 Oct 2026: install script 172 s, first app deployed and answering in 210 s, build peak 720 MB RAM + 669 MB swap, idle footprint about 250 MB for Coolify itself. For more than two small apps, take the $12 plan.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Short version: it works, with one trick (a 2 GB swap file). The install script took &lt;strong&gt;172 seconds&lt;/strong&gt;, the first app was answering HTTP requests &lt;strong&gt;210 seconds&lt;/strong&gt; after clicking Deploy, and the measured steps from an empty account to a running app add up to just under 10 minutes (our wall clock said 23, because of a wrong base directory described below and a coffee). Memory after boot sat at &lt;strong&gt;618 MB used&lt;/strong&gt; with four containers healthy; the build peaked at 720 MB plus 669 MB of swap, which is why the swap file is not optional.&lt;/p&gt;

&lt;h2&gt;
  
  
  Watch it instead
&lt;/h2&gt;

&lt;p&gt;The same steps as a 5-minute video, with the numbers on screen: &lt;a href="https://youtu.be/zyjQs_WvBkc" rel="noopener noreferrer"&gt;Deploy Coolify on a $6 VPS in 15 minutes (YouTube)&lt;/a&gt;. Two 30-second versions: &lt;a href="https://youtube.com/shorts/bnzzMjjuBqo" rel="noopener noreferrer"&gt;the one number that decides 1 GB&lt;/a&gt; and &lt;a href="https://youtube.com/shorts/lihj0TNT9ds" rel="noopener noreferrer"&gt;the deploy that said Success while restarting&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you need
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;a href="https://www.digitalocean.com/" rel="noopener noreferrer"&gt;DigitalOcean account&lt;/a&gt;. New accounts need a payment method before the first droplet; the droplet is billed hourly ($0.009/h), so a one-hour test costs a cent.&lt;/li&gt;
&lt;li&gt;An SSH key on your machine. If you do not have one: &lt;code&gt;ssh-keygen -t ed25519 -f ~/.ssh/coolify&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;About 15 minutes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Step 1: create the droplet (1 minute)
&lt;/h2&gt;

&lt;p&gt;In the DigitalOcean console choose &lt;strong&gt;Create → Droplets&lt;/strong&gt;. Pick the region closest to you, then &lt;strong&gt;Ubuntu 24.04 (LTS)&lt;/strong&gt; as the image.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz06q8sjefsogsovkx2wd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz06q8sjefsogsovkx2wd.jpg" alt="DigitalOcean create droplet: region and Ubuntu 24.04 image selected" width="799" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Under &lt;strong&gt;Choose a Droplet Plan&lt;/strong&gt; stay on &lt;em&gt;Basic → Regular&lt;/em&gt; and pick the &lt;strong&gt;$6.00/mo&lt;/strong&gt; plan: 1 vCPU, 1 GB RAM, 25 GB SSD, 1000 GB transfer. Skip the $4 plan: 512 MB is not enough for Coolify's four containers even with swap.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbhgvwfq8mgps0aygec18.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbhgvwfq8mgps0aygec18.jpg" alt="The $6 Basic plan: 1 vCPU, 1 GB RAM, 25 GB SSD" width="799" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Under &lt;strong&gt;Authentication&lt;/strong&gt; choose &lt;em&gt;SSH Keys&lt;/em&gt; and add your public key. Do not use a root password; Coolify itself will later use SSH keys to talk to the server, and password logins are the first thing bots try.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fszwwigqaybn94li0arqh.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fszwwigqaybn94li0arqh.jpg" alt="SSH key selected for authentication" width="799" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tick &lt;strong&gt;Improved Metrics and monitoring&lt;/strong&gt; (free), give the droplet a name, and click &lt;strong&gt;Create Droplet&lt;/strong&gt;. Ours showed a public IP after about 60 seconds.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fek0sjzvnci5dgrixj4ur.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fek0sjzvnci5dgrixj4ur.jpg" alt="Droplet active with public IPv4 and the $6/month cost shown" width="799" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 2: add swap (30 seconds)
&lt;/h2&gt;

&lt;p&gt;This is the part that makes the 1 GB plan work. Log in and create a 2 GB swap file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ssh root@YOUR_DROPLET_IP
fallocate &lt;span class="nt"&gt;-l&lt;/span&gt; 2G /swapfile
&lt;span class="nb"&gt;chmod &lt;/span&gt;600 /swapfile
mkswap /swapfile
swapon /swapfile
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s1"&gt;'/swapfile none swap sw 0 0'&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&amp;gt;&lt;/span&gt; /etc/fstab
free &lt;span class="nt"&gt;-m&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Without swap the install still completes, but the first &lt;code&gt;docker build&lt;/code&gt; of a real app pushes demand past 1 GB and the kernel kills a container. With swap the build gets slow instead of dying; we measured the peak below (669 MB of swap in use during the build).&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 3: run the Coolify installer (172 seconds)
&lt;/h2&gt;

&lt;p&gt;One command, from the official docs:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;curl &lt;span class="nt"&gt;-fsSL&lt;/span&gt; https://cdn.coollabs.io/coolify/install.sh | bash
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;We timed it with &lt;code&gt;date&lt;/code&gt; before and after. On the $6 droplet in Frankfurt:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Step&lt;/th&gt;
&lt;th&gt;What it does&lt;/th&gt;
&lt;th&gt;Time&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;1-2&lt;/td&gt;
&lt;td&gt;OS check, apt packages (curl, wget, git, jq, openssl), SSH config&lt;/td&gt;
&lt;td&gt;6 s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;3-4&lt;/td&gt;
&lt;td&gt;Installs Docker 29 and configures the network pool&lt;/td&gt;
&lt;td&gt;57 s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;5-8&lt;/td&gt;
&lt;td&gt;Downloads compose files, writes &lt;code&gt;.env&lt;/code&gt;, creates the localhost SSH key&lt;/td&gt;
&lt;td&gt;under 1 s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;9&lt;/td&gt;
&lt;td&gt;Pulls and starts Coolify, Postgres, Redis, the realtime server and the Traefik proxy&lt;/td&gt;
&lt;td&gt;109 s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;172 s&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;When it finishes it prints &lt;code&gt;Your instance is ready to use!&lt;/code&gt; and the URL &lt;code&gt;http://YOUR_DROPLET_IP:8000&lt;/code&gt;. Four containers are running:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;coolify           Up (healthy)
coolify-db        Up (healthy)
coolify-redis     Up (healthy)
coolify-realtime  Up (healthy)
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Memory right after the install: 618 MB used of 961 MB, swap 32 MB. Disk: 7.1 GB used of 24 GB (Docker images are the bulk of it).&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 4: create the root account and finish onboarding
&lt;/h2&gt;

&lt;p&gt;Open &lt;code&gt;http://YOUR_DROPLET_IP:8000&lt;/code&gt; in a browser. The first screen creates the root user; do this straight away, because until you do, anyone who finds the port can.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fv3aqczdvmc0zymrygrdv.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fv3aqczdvmc0zymrygrdv.jpg" alt="Coolify first-run screen: create the root account" width="799" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;After the account, a three-step onboarding wizard asks where to deploy. Pick &lt;strong&gt;This machine&lt;/strong&gt; (the droplet itself); Coolify connects to it over its own localhost SSH key, checks that Docker is running and creates "My first project" with a production environment. The wizard offers to provision new servers on Hetzner, Vultr or DigitalOcean from inside Coolify, which is how you add a second box later.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9yulpdjgo3wmn254t6ao.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F9yulpdjgo3wmn254t6ao.jpg" alt="Coolify onboarding: choose This machine as the first server" width="799" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The whole wizard is four clicks and took us under a minute; it ends on a "Setup complete" screen with the server, the project and the Docker engine all green, and a &lt;strong&gt;Deploy Your First Resource&lt;/strong&gt; button.&lt;/p&gt;

&lt;h2&gt;
  
  
  Step 5: deploy your first app
&lt;/h2&gt;

&lt;p&gt;The resource picker lists a few hundred one-click services (Sonarr, Plausible, n8n, Uptime Kuma and so on) plus the generic sources: public Git repository, private repository, GitHub app, Dockerfile, Docker Compose, Docker image. We chose &lt;strong&gt;Public Git Repository&lt;/strong&gt; and pointed it at Coolify's own examples repo, &lt;code&gt;https://github.com/coollabsio/coolify-examples&lt;/code&gt;, with the base directory &lt;code&gt;/javascript/runtimes/nodejs&lt;/code&gt; (a tiny Fastify server on port 3000). Coolify inspects the repo, proposes &lt;strong&gt;Railpack&lt;/strong&gt; as the build pack and shows the branch, port and base directory for review.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2pvw8e4f56ez8qs7cdxd.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2pvw8e4f56ez8qs7cdxd.jpg" alt="Public repository build configuration: Railpack, port 3000, base directory" width="799" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Click &lt;strong&gt;Continue&lt;/strong&gt;, then &lt;strong&gt;Actions → Deploy&lt;/strong&gt;. The deployment log streams live:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fddsdttvpvrr53x6kuu7m.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fddsdttvpvrr53x6kuu7m.jpg" alt="Deployment log: BuildKit detected, helper image pulled, Railpack build plan generated" width="799" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We timed it from the Deploy click to the first HTTP 200 from the public URL: &lt;strong&gt;210 seconds&lt;/strong&gt;. That breaks down into about 100 s of pulling the Railpack builder and Node base images (first deploy only; later deploys reuse them), 60 s of &lt;code&gt;npm install&lt;/code&gt; on a 1 vCPU, and 20 s to start the container and for Traefik to pick up the route. The second deploy of the same app took 1 min 52 s.&lt;/p&gt;

&lt;p&gt;Coolify gives every app a working URL immediately, on the free &lt;a href="https://www.fewservers.com/posts/sslip-io-vs-nip-io/" rel="noopener noreferrer"&gt;&lt;code&gt;sslip.io&lt;/code&gt; wildcard DNS&lt;/a&gt;: &lt;code&gt;http://&amp;lt;app-id&amp;gt;.64.226.72.55.sslip.io&lt;/code&gt;. Ours answered &lt;code&gt;{"hello":"from nodejs #2"}&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2miaqyl6qy8bklagsdoe.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F2miaqyl6qy8bklagsdoe.jpg" alt="Deployment history: two successful deployments" width="799" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;One honest mistake worth recording: on our first attempt we typed the base directory as &lt;code&gt;/nodejs&lt;/code&gt; (the folder had moved in the repo). Railpack happily built an image from an empty directory, the deployment reported &lt;strong&gt;Success&lt;/strong&gt;, and the container then restarted every few seconds because it had nothing to run. Check the runtime logs after your first deploy, not just the green badge.&lt;/p&gt;

&lt;h3&gt;
  
  
  What the build did to a 1 GB server
&lt;/h3&gt;

&lt;p&gt;This is where the swap file earns its keep. Our sampler logged memory every five seconds during the build:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Moment&lt;/th&gt;
&lt;th&gt;RAM used&lt;/th&gt;
&lt;th&gt;Swap used&lt;/th&gt;
&lt;th&gt;Load (1 vCPU)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Idle, Coolify only&lt;/td&gt;
&lt;td&gt;618 MB&lt;/td&gt;
&lt;td&gt;32 MB&lt;/td&gt;
&lt;td&gt;0.5&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;code&gt;npm install&lt;/code&gt; running&lt;/td&gt;
&lt;td&gt;765 MB&lt;/td&gt;
&lt;td&gt;498 MB&lt;/td&gt;
&lt;td&gt;4.2&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Image export, peak&lt;/td&gt;
&lt;td&gt;720 MB&lt;/td&gt;
&lt;td&gt;669 MB&lt;/td&gt;
&lt;td&gt;7.0&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;App running, 5 min later&lt;/td&gt;
&lt;td&gt;648 MB&lt;/td&gt;
&lt;td&gt;478 MB&lt;/td&gt;
&lt;td&gt;0.4&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Without the 2 GB swap file, the peak would have been about 1.4 GB of demand on a 961 MB box: the kernel's OOM killer would have taken out either the build or Coolify's own database. With swap, the build was slow (load 7 on one core) but finished. The Fastify app itself uses 31 MB.&lt;/p&gt;

&lt;h2&gt;
  
  
  Is 1 GB enough? The verdict so far
&lt;/h2&gt;

&lt;p&gt;Resident memory per container after the deploy, from &lt;code&gt;docker stats&lt;/code&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Container&lt;/th&gt;
&lt;th&gt;Memory&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;coolify (the app)&lt;/td&gt;
&lt;td&gt;150 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;coolify-proxy (Traefik)&lt;/td&gt;
&lt;td&gt;38 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;coolify-realtime&lt;/td&gt;
&lt;td&gt;25 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;coolify-db (Postgres)&lt;/td&gt;
&lt;td&gt;23 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;coolify-sentinel&lt;/td&gt;
&lt;td&gt;9 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;coolify-redis&lt;/td&gt;
&lt;td&gt;7 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;your app (Fastify)&lt;/td&gt;
&lt;td&gt;31 MB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Total&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;283 MB&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Coolify's own footprint is about 250 MB; the rest of the "used" figure is the kernel, Docker and page cache. Disk after one build: 11 GB of 24 GB (base images and the build cache are the bulk; Coolify's cleanup job reclaims the cache weekly).&lt;/p&gt;

&lt;p&gt;So: for one or two small apps, a static site, or a private tool, the $6 droplet with swap is fine and we are leaving ours running. We will update this section with the 7-day numbers (memory trend, swap, any restarts) once we have them.&lt;/p&gt;

&lt;h2&gt;
  
  
  What the $6 plan cannot do
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Build large Node or Rust projects on the server. Builds are the memory peak; for anything heavier than a static site or a small Express/Flask app, build elsewhere (GitHub Actions) and have Coolify pull the image.&lt;/li&gt;
&lt;li&gt;Run a database per app comfortably. One Postgres is fine; three is not.&lt;/li&gt;
&lt;li&gt;Survive a traffic spike without swapping. If an app matters, the &lt;strong&gt;$12 plan (2 GB)&lt;/strong&gt; is the realistic minimum and still far cheaper than one Heroku dyno.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Cost comparison
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Option&lt;/th&gt;
&lt;th&gt;Monthly&lt;/th&gt;
&lt;th&gt;Notes&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;DigitalOcean $6 droplet + Coolify&lt;/td&gt;
&lt;td&gt;$6.00&lt;/td&gt;
&lt;td&gt;Unlimited apps within the box, your own domain, free SSL via Traefik&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;DigitalOcean $12 droplet + Coolify&lt;/td&gt;
&lt;td&gt;$12.00&lt;/td&gt;
&lt;td&gt;The comfortable size for a small team&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Heroku Eco dyno&lt;/td&gt;
&lt;td&gt;$5 per app, sleeps&lt;/td&gt;
&lt;td&gt;One app, sleeps after 30 min idle&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Render starter&lt;/td&gt;
&lt;td&gt;$7 per service&lt;/td&gt;
&lt;td&gt;One service&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Railway hobby&lt;/td&gt;
&lt;td&gt;$5 + usage&lt;/td&gt;
&lt;td&gt;Usage-based&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;For a team running three or four small services, a single Coolify box replaces $20-40 of PaaS fees. The trade: you own the updates and backups.&lt;/p&gt;

&lt;h2&gt;
  
  
  FAQ
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Does Coolify work with 1 GB of RAM?
&lt;/h3&gt;

&lt;p&gt;Yes, with a swap file. Coolify's own containers use about 250 MB; the problem is the build step, which peaked at 720 MB of RAM plus 669 MB of swap in our test. Without swap the kernel kills a container during the first real build. With a 2 GB swap file the build is slow but completes.&lt;/p&gt;

&lt;h3&gt;
  
  
  How long does the Coolify install take?
&lt;/h3&gt;

&lt;p&gt;172 seconds on a $6 DigitalOcean droplet in Frankfurt, measured from running the official install script to the "Your instance is ready" message. Most of that is installing Docker (57 s) and pulling the Coolify images (109 s).&lt;/p&gt;

&lt;h3&gt;
  
  
  How much does it cost to run Coolify on DigitalOcean?
&lt;/h3&gt;

&lt;p&gt;$6.00 a month for the droplet ($0.009 an hour), plus $1.20 a month if you turn on weekly backups. Coolify itself is free and open source. There is no per-app charge, so the cost does not change when you add a second or third small app.&lt;/p&gt;

&lt;h3&gt;
  
  
  Should I use the $4 droplet instead?
&lt;/h3&gt;

&lt;p&gt;No. The $4 plan has 512 MB of RAM and 10 GB of disk; Coolify's images alone used 7 GB in our install and the four core containers need more than 512 MB before any app runs.&lt;/p&gt;

&lt;h3&gt;
  
  
  Which plan for a small team running several apps?
&lt;/h3&gt;

&lt;p&gt;The $12 droplet (2 GB RAM, 50 GB SSD) is the realistic minimum once you run three or more services or any database next to your apps. It is still far cheaper than one dyno or service on a hosted PaaS.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next steps
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Point a domain at the droplet and set it in Coolify's settings; Traefik issues Let's Encrypt certificates automatically.&lt;/li&gt;
&lt;li&gt;Enable DigitalOcean's weekly backups ($1.20/month on this plan) or Coolify's own S3 backups.&lt;/li&gt;
&lt;li&gt;Lock the server down: &lt;a href="https://www.fewservers.com/posts/coolify-ports-firewall-rules/" rel="noopener noreferrer"&gt;which ports Coolify needs and which to close&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Wondering whether 1 GB is really enough? &lt;a href="https://www.fewservers.com/posts/can-coolify-run-on-1gb-ram/" rel="noopener noreferrer"&gt;The docs versus what we measured&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Know what the droplet costs before the invoice arrives: &lt;a href="https://www.fewservers.com/posts/digitalocean-droplet-pricing-explained/" rel="noopener noreferrer"&gt;DigitalOcean droplet pricing explained&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Read our Coolify vs Dokploy comparison once it is published; both ran on this same droplet.&lt;/li&gt;
&lt;/ul&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://www.fewservers.com/posts/deploy-coolify-6-dollar-vps/" rel="noopener noreferrer"&gt;Few Servers&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>selfhosted</category>
      <category>devops</category>
      <category>docker</category>
      <category>tutorial</category>
    </item>
  </channel>
</rss>
