Files
dokku/docs/getting-started/installation.md
Dokku Bot 8f1b142949 Release 0.25.0
# History

## 0.25.0

Install/update via the bootstrap script:

```shell
wget https://raw.githubusercontent.com/dokku/dokku/v0.25.0/bootstrap.sh
sudo DOKKU_TAG=v0.25.0 bash bootstrap.sh
```

See the [0.25.0 migration guide](/docs/appendices/0.25.0-migration-guide.md) for more information on migrating to 0.25.0.

### Bug Fixes

- #4733: @josegonzalez Force grep to run in quiet mode in domains:add call
- #4732: @josegonzalez Ensure image cleanup does not impact the stack image and refactor container/image cleanup
- #4731: @josegonzalez Respect debconf selections where possible
- #4729: @josegonzalez Correct count check for user-auth trigger
- #4721: @josegonzalez Recursively sync submodules
- #4717: @josegonzalez Silence stderr when checking for ufw on debian systems
- #4716: @josegonzalez Suppress dos2unix stderr output during Dockerfile builds
- #4686: @josegonzalez Ensure repository is bare when calling git:sync
- #4684: @josegonzalez Install gpg-agent in bootstrap script
- #4683: @josegonzalez Strip published port flags when triggering deploy tasks
- #4651: @josegonzalez Do not attempt to retire when there was no pre-existing container
- #4639: @josegonzalez Correct path for azure-vm releases

### New Features

- #4730: @josegonzalez Execute motd at the end of the install
- #4719: @josegonzalez Add support for routing an app to a specified host:port
- #4715: @josegonzalez Switch from xip.io to sslip.io
- #4460: @josegonzalez Implement registry plugin
- #4711: @josegonzalez Enable installing on RPM systems where bind-utils is bindutils
- #4687: @josegonzalez Output message explaining how to remove a deploy lock when a lock is encountered
- #4682: @josegonzalez Properly space report output
- #4502: @josegonzalez Add monorepo support
- #4509: @josegonzalez Add ability to specify initial network
- #4641: @dbazile Add initial support for installing onto Fedora

### Refactors

- #4508: @josegonzalez Add support for the formation key in app.json
- #4507: @josegonzalez Drop support for Ubuntu 16.04

### Documentation

- #4723: @josegonzalez Clarify buildkit instructions
- #4718: @josegonzalez Update link to azure installation on homepage
- #4714: @josegonzalez Swap from freenode to libera.chat
- #4712: @josegonzalez Clarify the shape of the command that should be entered in app.json for a cron task
- #4709: @josegonzalez Add migration note for deprecation of ubuntu 16.04
- #4697: @josegonzalez Specify that run containers use the same image
- #4688: @josegonzalez Add a note on recovering networks
- #4689: @josegonzalez Add a note about wildcards in the installation doc page
- #4680: @josegonzalez Cleanup markdown lint errors
- #4679: @josegonzalez Cleanup markdown lint errors
- #4678: @josegonzalez Cleanup markdown lint errors
- #4677: @josegonzalez Cleanup markdown lint errors
- #4672: @bjab Fix typo in pack builder docs
- #4668: @RealOrangeOne Make example gitlab-ci script a list
- #4673: @eltociear Fix comment typo in dokku binary
- #4661: @dy3l Fix case style
- #4647: @AngCosmin Fixed unable to find version `v1` for official Github Action

### Tests

- #4693: @josegonzalez Add package.lock for test app
- #4685: @josegonzalez Remove ci skip note in PULL_REQUEST_TEMPLATE.md
- #4681: @josegonzalez Ignore duplication warnings in codacy
- #4644: @josegonzalez Update unit test publisher to latest

### Other

- #4726: @josegonzalez Drop web installer in favor of setup via cli
- #4713: @josegonzalez Make heroku-20/focal the default stack for herokuish builds
- #4707: @dependabot[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 195 to 196 in /tests/apps/php
- #4701: @josegonzalez Revamp dokku run command
- #4671: @dependabot[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 193 to 195 in /tests/apps/php
- #4674: @dependabot[bot] chore(deps): bump jetty-servlet from 11.0.5 to 11.0.6 in /tests/apps/java
- #4652: @dependabot[bot] chore(deps): bump jetty-servlet from 11.0.4 to 11.0.5 in /tests/apps/java
- #4653: @dependabot[bot] chore(deps): bump maven-dependency-plugin from 3.1.2 to 3.2.0 in /tests/apps/java
- #4648: @dependabot[bot] chore(deps): bump django from 3.1.9 to 3.1.12 in /tests/apps/dockerfile-release
- #4645: @dependabot[bot] chore(deps): bump jetty-servlet from 11.0.3 to 11.0.4 in /tests/apps/java
- #4642: @dependabot[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 192 to 193 in /tests/apps/php
2021-08-10 17:02:39 +00:00

4.4 KiB

Getting Started with Dokku

What is Dokku?

Dokku is an extensible, open source Platform as a Service that runs on a single server of your choice.

To start using Dokku, you'll need a system that meets the following minimum requirements:

Dokku is designed for usage on a fresh VM installation, and should install all necessary dependencies if installing via the bootstrap method.

Installing the latest stable version

1. Install Dokku

To install the latest stable version of Dokku, you can run the following shell commands:

# for debian systems, installs Dokku via apt-get
wget https://raw.githubusercontent.com/dokku/dokku/v0.25.0/bootstrap.sh;
sudo DOKKU_TAG=v0.25.0 bash bootstrap.sh

The installation process takes about 5-10 minutes, depending upon internet connection speed.

If you're using Debian 9+ or Ubuntu 18.04, make sure your package manager is configured to install a sufficiently recent version of nginx[3], otherwise, the installation may fail due to unmet dependencies relating nginx.

2. Optionally connect a domain to your server

Dokku optionally supports one or more domain names. If you do not own a domain name, you may either purchase one or skip this step.

When connecting a domain, either a single domain or a wildcard may be associated to the server's IP. A wildcard domain will allow access to apps via $APP.domain.tld, whereas associating only a single domain name will result in apps being access via domain.tld:$RANDOM_PORT. Please see the dns documentation and domains documentation for more details.

3. Setup SSH key and Virtualhost Settings

Once the installation is complete, you should configure an ssh key and set your global domain:from-archive

# usually your key is already available under the current user's `~/.ssh/authorized_keys` file
cat ~/.ssh/authorized_keys | dokku ssh-keys:add admin

# you can use any domain you already have access to
dokku domains:set-global dokku.me

See the user management and domains documentation for more information.

Alternatively, instructions for an unattended installation are available in the advanced install guide.

4. Deploy your first application

At this point, you should be able to run or deploy to the Dokku installation.

Installing via other methods

For various reasons, certain hosting providers may have other steps that should be preferred to the above. If hosted on any of the following popular hosts, please follow the linked to instructions:

As well, you may wish to customize your installation in some other fashion. or experiment with Vagrant. The guides below should get you started:


  • [1]: To check whether your system has an fqdn set, run sudo hostname -f
  • [2]: If your system has less than 1GB of memory, you can use this workaround.
  • [3]: nginx >= 1.8.0 can be installed via the nginx repositories, or by adding this PPA if you're using Ubuntu. nginx >= 1.11.5 is necessary for HTTP/2 support