What's installed on your Dokku server?
- Dokku v0.38.34 from the official bootstrap script, MIT licensed
- Docker for your app containers and Nginx for routing
- dokku-letsencrypt plugin for free HTTPS certificates on each app
- An sslip.io global domain, so apps open at appname.IP-with-dashes.sslip.io
- The SSH key from your order, if you gave one, already added to Dokku
- 2 GB of swap, and a firewall with ports 22, 80 and 443 open
What size do you need for Dokku?
Dokku officially needs 1 GB of memory, and suggests swap if you have less. This install adds 2 GB of swap. In our real-server tests at 1 GB and 1 core, a small Next.js example built and went live with git push in about 7 minutes. Builds run on the server, so Node.js projects fill memory fast, and as a rule of thumb you should look at 2 to 4 GB for build-heavy projects. Each app and database is its own container, so add up what they use. If it isn't enough, grow RAM, CPU and disk separately from your panel.
| Use | Size | Price | Choose |
|---|---|---|---|
| New site | 1 GB RAM · 1 vCore · 25 GB NVMe | $2.58/mo | |
| Growing site | 2 GB RAM · 1 vCore · 40 GB NVMe | $4.01/mo | |
| Busy site | 4 GB RAM · 2 vCore · 60 GB NVMe | $6.89/mo |
Who is it for?
- Developers who prefer the command line and don't need a web panel
- Side projects, APIs and bots that should run for a fixed monthly price
- Anyone who wants git push deployment with buildpacks or a Dockerfile on a small server
- People comfortable with SSH who like to keep everything in their own hands
What happens after you order?
- Set the size and complete your payment. Your server starts and Dokku installs itself. This took about 10 minutes in our real-server tests.
- In your panel, open your server from My servers and copy the IP address from the Connection address row on the Overview tab.
- If you didn't give an SSH key when ordering, connect over SSH and run: echo 'ssh-ed25519 AAAA...' | dokku ssh-keys:add mine
- On the server, create the app: dokku apps:create myapp
- In your project folder, run: git remote add dokku dokku@IP:myapp, then git push dokku main
- For HTTPS, run on the server: dokku letsencrypt:set myapp email [email protected], then dokku letsencrypt:enable myapp
With every server
- Daily backups included in the price
- Unlimited traffic
- Full root access
- Scale RAM and CPU up or down later, and grow the disk
- Location: Istanbul · IST-1.
Good to know
- Dokku is run with commands and has no web interface. If you'd rather work in a browser, look at the server with Dokploy installed.
- The certificate renewal job is switched on during setup (dokku letsencrypt:cron-job --add). If you remove it, certificates stop renewing by themselves.
- No database plugin is installed. For PostgreSQL, first run dokku plugin:install https://github.com/dokku/dokku-postgres.git
- If a build runs out of memory on a small size, scale the server up from your panel.
- Updating Dokku, its plugins and your apps is your responsibility.
Dokku questions and answers
How much RAM does Dokku need?
Dokku officially needs 1 GB of memory, which is enough for a small app. Builds run on the server, so as a rule of thumb look at 2 to 4 GB for Node.js or Next.js projects. You can scale up from your panel later.
How do I deploy an app with Dokku?
Create the app on the server with dokku apps:create, add the server to your project with git remote add dokku dokku@IP:myapp, then run git push dokku main. Dokku builds and starts the app, then prints its address when the deploy finishes.
What kinds of projects can Dokku build?
Dokku detects your project by itself and builds it with buildpacks or your own Dockerfile. If you don't want automatic detection, set the builder per app with the builder:set command.
How do I connect my own domain to Dokku?
Point your domain's A record at the server's IP, then run dokku domains:set myapp example.com on the server. After that, run dokku letsencrypt:enable myapp to get a certificate for the new address.
How do I add a database to Dokku?
Dokku gets its databases from plugins. Install the official PostgreSQL plugin, run dokku postgres:create mydb to create one, and dokku postgres:link mydb myapp to connect it. Your app receives the address as DATABASE_URL.
Does Dokku have a web panel?
No. Dokku is managed over SSH with commands, and root access is yours. If you'd like to deploy from a browser, choose the server with Dokploy installed.