# Dokku

[![Build Status](https://github.com/dokku/dokku/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/dokku/dokku/actions?query=branch%3Amaster)
[![Ubuntu Package](https://img.shields.io/badge/package-ubuntu-brightgreen.svg?style=flat-square "Ubuntu Package")](https://packagecloud.io/dokku/dokku)
[![Arch Package](https://img.shields.io/badge/package-arch-brightgreen.svg?style=flat-square "Arch Package")](https://aur.archlinux.org/packages/dokku/)
[![Slack Group](https://img.shields.io/badge/irc-slack-blue.svg?style=flat-square "Slack Group")](https://slack.dokku.com/)
[![Documentation](https://img.shields.io/badge/docs-site-blue.svg?style=flat-square "Site")](https://dokku.com/docs/getting-started/installation/)
[![OpenCollective](https://opencollective.com/dokku/sponsors/badge.svg?style=flat-square)](#sponsors)
[![OpenCollective](https://opencollective.com/dokku/backers/badge.svg?style=flat-square)](#backers)
[![Patreon](https://img.shields.io/badge/patreon-donate-green.svg?style=flat-square)](https://www.patreon.com/dokku/)

Docker powered mini-Heroku. The smallest PaaS implementation you've ever seen.

## Sponsors

Become a sponsor and get your logo on our README on GitHub with a link to your site. [[Become a sponsor](https://opencollective.com/dokku#sponsor)]

[![OpenCollective Sponsor 0](https://opencollective.com/dokku/sponsor/0/avatar.svg)](https://opencollective.com/dokku/sponsor/0/website)
[![OpenCollective Sponsor 1](https://opencollective.com/dokku/sponsor/1/avatar.svg)](https://opencollective.com/dokku/sponsor/1/website)
[![OpenCollective Sponsor 2](https://opencollective.com/dokku/sponsor/2/avatar.svg)](https://opencollective.com/dokku/sponsor/2/website)
[![OpenCollective Sponsor 3](https://opencollective.com/dokku/sponsor/3/avatar.svg)](https://opencollective.com/dokku/sponsor/3/website)
[![OpenCollective Sponsor 4](https://opencollective.com/dokku/sponsor/4/avatar.svg)](https://opencollective.com/dokku/sponsor/4/website)
[![OpenCollective Sponsor 5](https://opencollective.com/dokku/sponsor/5/avatar.svg)](https://opencollective.com/dokku/sponsor/5/website)
[![OpenCollective Sponsor 6](https://opencollective.com/dokku/sponsor/6/avatar.svg)](https://opencollective.com/dokku/sponsor/6/website)
[![OpenCollective Sponsor 7](https://opencollective.com/dokku/sponsor/7/avatar.svg)](https://opencollective.com/dokku/sponsor/7/website)
[![OpenCollective Sponsor 8](https://opencollective.com/dokku/sponsor/8/avatar.svg)](https://opencollective.com/dokku/sponsor/8/website)
[![OpenCollective Sponsor 9](https://opencollective.com/dokku/sponsor/9/avatar.svg)](https://opencollective.com/dokku/sponsor/9/website)
[![OpenCollective Sponsor 10](https://opencollective.com/dokku/sponsor/10/avatar.svg)](https://opencollective.com/dokku/sponsor/10/website)
[![OpenCollective Sponsor 11](https://opencollective.com/dokku/sponsor/11/avatar.svg)](https://opencollective.com/dokku/sponsor/11/website)
[![OpenCollective Sponsor 12](https://opencollective.com/dokku/sponsor/12/avatar.svg)](https://opencollective.com/dokku/sponsor/12/website)
[![OpenCollective Sponsor 13](https://opencollective.com/dokku/sponsor/13/avatar.svg)](https://opencollective.com/dokku/sponsor/13/website)
[![OpenCollective Sponsor 14](https://opencollective.com/dokku/sponsor/14/avatar.svg)](https://opencollective.com/dokku/sponsor/14/website)
[![OpenCollective Sponsor 15](https://opencollective.com/dokku/sponsor/15/avatar.svg)](https://opencollective.com/dokku/sponsor/5/website)
[![OpenCollective Sponsor 6](https://opencollective.com/dokku/sponsor/16/avatar.svg)](https://opencollective.com/dokku/sponsor/16/website)
[![OpenCollective Sponsor 17](https://opencollective.com/dokku/sponsor/17/avatar.svg)](https://opencollective.com/dokku/sponsor/17/website)
[![OpenCollective Sponsor 18](https://opencollective.com/dokku/sponsor/18/avatar.svg)](https://opencollective.com/dokku/sponsor/18/website)

## Backers

Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/dokku#backer)]

[![OpenCollective Backer 0](https://opencollective.com/dokku/backer/0/avatar.svg)](https://opencollective.com/dokku/backer/0/website)
[![OpenCollective Backer 1](https://opencollective.com/dokku/backer/1/avatar.svg)](https://opencollective.com/dokku/backer/1/website)
[![OpenCollective Backer 2](https://opencollective.com/dokku/backer/2/avatar.svg)](https://opencollective.com/dokku/backer/2/website)
[![OpenCollective Backer 3](https://opencollective.com/dokku/backer/3/avatar.svg)](https://opencollective.com/dokku/backer/3/website)
[![OpenCollective Backer 4](https://opencollective.com/dokku/backer/4/avatar.svg)](https://opencollective.com/dokku/backer/4/website)
[![OpenCollective Backer 5](https://opencollective.com/dokku/backer/5/avatar.svg)](https://opencollective.com/dokku/backer/5/website)
[![OpenCollective Backer 6](https://opencollective.com/dokku/backer/6/avatar.svg)](https://opencollective.com/dokku/backer/6/website)
[![OpenCollective Backer 7](https://opencollective.com/dokku/backer/7/avatar.svg)](https://opencollective.com/dokku/backer/7/website)
[![OpenCollective Backer 8](https://opencollective.com/dokku/backer/8/avatar.svg)](https://opencollective.com/dokku/backer/8/website)
[![OpenCollective Backer 9](https://opencollective.com/dokku/backer/9/avatar.svg)](https://opencollective.com/dokku/backer/9/website)
[![OpenCollective Backer 10](https://opencollective.com/dokku/backer/10/avatar.svg)](https://opencollective.com/dokku/backer/10/website)
[![OpenCollective Backer 11](https://opencollective.com/dokku/backer/11/avatar.svg)](https://opencollective.com/dokku/backer/11/website)
[![OpenCollective Backer 12](https://opencollective.com/dokku/backer/12/avatar.svg)](https://opencollective.com/dokku/backer/12/website)
[![OpenCollective Backer 13](https://opencollective.com/dokku/backer/13/avatar.svg)](https://opencollective.com/dokku/backer/13/website)
[![OpenCollective Backer 14](https://opencollective.com/dokku/backer/14/avatar.svg)](https://opencollective.com/dokku/backer/14/website)
[![OpenCollective Backer 15](https://opencollective.com/dokku/backer/15/avatar.svg)](https://opencollective.com/dokku/backer/15/website)
[![OpenCollective Backer 16](https://opencollective.com/dokku/backer/16/avatar.svg)](https://opencollective.com/dokku/backer/16/website)
[![OpenCollective Backer 17](https://opencollective.com/dokku/backer/17/avatar.svg)](https://opencollective.com/dokku/backer/17/website)
[![OpenCollective Backer 18](https://opencollective.com/dokku/backer/18/avatar.svg)](https://opencollective.com/dokku/backer/18/website)
[![OpenCollective Backer 19](https://opencollective.com/dokku/backer/19/avatar.svg)](https://opencollective.com/dokku/backer/19/website)
[![OpenCollective Backer 20](https://opencollective.com/dokku/backer/20/avatar.svg)](https://opencollective.com/dokku/backer/20/website)
[![OpenCollective Backer 21](https://opencollective.com/dokku/backer/21/avatar.svg)](https://opencollective.com/dokku/backer/21/website)
[![OpenCollective Backer 22](https://opencollective.com/dokku/backer/22/avatar.svg)](https://opencollective.com/dokku/backer/22/website)
[![OpenCollective Backer 23](https://opencollective.com/dokku/backer/23/avatar.svg)](https://opencollective.com/dokku/backer/23/website)
[![OpenCollective Backer 24](https://opencollective.com/dokku/backer/24/avatar.svg)](https://opencollective.com/dokku/backer/24/website)
[![OpenCollective Backer 25](https://opencollective.com/dokku/backer/25/avatar.svg)](https://opencollective.com/dokku/backer/25/website)
[![OpenCollective Backer 26](https://opencollective.com/dokku/backer/26/avatar.svg)](https://opencollective.com/dokku/backer/26/website)
[![OpenCollective Backer 27](https://opencollective.com/dokku/backer/27/avatar.svg)](https://opencollective.com/dokku/backer/27/website)
[![OpenCollective Backer 28](https://opencollective.com/dokku/backer/28/avatar.svg)](https://opencollective.com/dokku/backer/28/website)
[![OpenCollective Backer 29](https://opencollective.com/dokku/backer/29/avatar.svg)](https://opencollective.com/dokku/backer/29/website)

## Requirements

A fresh VM running any of the following operating systems:

- Ubuntu 20.04 / 22.04 / 24.04 (amd64/arm64) - Any currently supported release
- Debian 11+ (amd64/arm64)

An SSH keypair that can be used for application deployment. If this exists before installation, it will be automatically imported into dokku.
Otherwise, you will need to import the keypair manually after installation using `dokku ssh-keys:add`.

## Installation

To install the latest stable release, run the following commands as a user who has access to `sudo`:

```shell
wget -NP . https://dokku.com/install/v0.35.19/bootstrap.sh
sudo DOKKU_TAG=v0.35.19 bash bootstrap.sh
```

You can then proceed to configure your server domain (via `dokku domains:set-global`) and user access (via `dokku ssh-keys:add`) to complete the installation.

If you wish for a more unattended installation method, see [these](https://dokku.com/docs/getting-started/install/debian/#unattended-installation) docs.

### Upgrade

[View the docs](https://dokku.com/docs/getting-started/upgrading/) for upgrading from an older version of Dokku.

## Documentation

Full documentation - including advanced installation docs - are available online at <https://dokku.com/docs/getting-started/installation/>.

## Support

You can use [GitHub Issues](https://github.com/dokku/dokku/issues), check [Troubleshooting](https://dokku.com/docs/getting-started/troubleshooting/) in the documentation, or join us on [Gliderlabs Slack in the #dokku channel](https://slack.dokku.com/).

## Contribution

After checking [GitHub Issues](https://github.com/dokku/dokku/issues), the [Troubleshooting Guide](https://dokku.com/docs/getting-started/troubleshooting/) or having a chat with us on [Gliderlabs Slack in the #dokku channel](https://slack.dokku.com/), feel free to fork and create a Pull Request.

While we may not merge your PR as is, they serve to start conversations and improve the general Dokku experience for all users.

## License

[MIT License](https://github.com/dokku/dokku/blob/master/LICENSE) © Jeff Lindsay
