Compare commits

...

470 Commits

Author SHA1 Message Date
Dokku Bot
74ff44915c Release 0.29.2
# History

## 0.29.2

Install/update via the bootstrap script:

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

### Bug Fixes

- #5537: @jamesremuscat Correctly include `auth` middleware on `api` router.
2022-12-24 21:52:04 +00:00
josegonzalez
9a70d5b75e Merge pull request #5537 from jamesremuscat/fix/traefik-basic-auth
Correctly include `auth` middleware on `api` router.
2022-12-24 16:45:21 -05:00
James Muscat
1c5bf6a52b Correctly include auth middleware on api router.
Resolves #5536.
2022-12-21 22:36:14 +00:00
Dokku Bot
e6b1cbc057 Release 0.29.1
# History

## 0.29.1

Install/update via the bootstrap script:

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

### Bug Fixes

- #5532: @josegonzalez Fix issue where git:from-image deploys may result in extracted files not being respected

### Documentation

- #5531: @josegonzalez Fix indentation on heading in where to get help
- #5521: @AlejandroAkbal Remove reference to `--rm` flag cron task documentation
- #5517: @josegonzalez Fix reference to scheduler name in kubernetes docs
- #5516: @josegonzalez Fix reference to scheduler name in nomad docs

### Tests

- #5533: @josegonzalez Add a test case for nested vector-sink values with plus signs

### Other

- #5534: @dependabot[bot] chore(deps): bump sinatra from 3.0.4 to 3.0.5 in /tests/apps/ruby
- #5514: @dependabot[bot] chore(deps): bump golang from 1.19.3 to 1.19.4 in /tests/apps/go-fail-predeploy
- #5512: @dependabot[bot] chore(deps): bump golang from 1.19.3 to 1.19.4 in /tests/apps/go-fail-postdeploy
- #5513: @dependabot[bot] chore(deps): bump golang from 1.19.3 to 1.19.4 in /tests/apps/zombies-dockerfile-no-tini
- #5511: @dependabot[bot] chore(deps): bump golang from 1.19.3 to 1.19.4 in /tests/apps/zombies-dockerfile-tini
- #5510: @dependabot[bot] chore(deps): bump golang from 1.19.3 to 1.19.4 in /tests/apps/gogrpc
- #5525: @dependabot[bot] chore(deps): bump jetty-servlet from 11.0.12 to 11.0.13 in /tests/apps/java
- #5519: @dependabot[bot] chore(deps): bump python from 3.11.0-buster to 3.11.1-buster in /tests/apps/dockerfile-release
- #5520: @dependabot[bot] chore(deps): bump python from 3.11.0-alpine to 3.11.1-alpine in /docs/_build
2022-12-20 16:50:01 +00:00
josegonzalez
d8ab726e5a Merge pull request #5534 from dokku/dependabot/bundler/tests/apps/ruby/sinatra-3.0.5
chore(deps): bump sinatra from 3.0.4 to 3.0.5 in /tests/apps/ruby
2022-12-20 10:50:57 -05:00
josegonzalez
d2376eaab9 Merge pull request #5514 from dokku/dependabot/docker/tests/apps/go-fail-predeploy/golang-1.19.4
chore(deps): bump golang from 1.19.3 to 1.19.4 in /tests/apps/go-fail-predeploy
2022-12-20 10:50:48 -05:00
josegonzalez
a25f9b4e76 Merge pull request #5512 from dokku/dependabot/docker/tests/apps/go-fail-postdeploy/golang-1.19.4
chore(deps): bump golang from 1.19.3 to 1.19.4 in /tests/apps/go-fail-postdeploy
2022-12-20 10:50:37 -05:00
josegonzalez
315b25c7e6 Merge pull request #5533 from dokku/5502-support-plus-test
Add a test case for nested vector-sink values with plus signs
2022-12-20 10:50:24 -05:00
dependabot[bot]
3b0eea2111 chore(deps): bump sinatra from 3.0.4 to 3.0.5 in /tests/apps/ruby
Bumps [sinatra](https://github.com/sinatra/sinatra) from 3.0.4 to 3.0.5.
- [Release notes](https://github.com/sinatra/sinatra/releases)
- [Changelog](https://github.com/sinatra/sinatra/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sinatra/sinatra/compare/v3.0.4...v3.0.5)

---
updated-dependencies:
- dependency-name: sinatra
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-19 13:01:42 +00:00
dependabot[bot]
e5fff93444 chore(deps): bump golang in /tests/apps/go-fail-predeploy
Bumps golang from 1.19.3 to 1.19.4.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-19 01:32:12 +00:00
dependabot[bot]
e068a9123f chore(deps): bump golang in /tests/apps/go-fail-postdeploy
Bumps golang from 1.19.3 to 1.19.4.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-19 01:31:30 +00:00
josegonzalez
1835b2952a Merge pull request #5532 from dokku/5518-from-image
Fix issue where git:from-image deploys may result in extracted files not being respected
2022-12-18 19:23:07 -05:00
josegonzalez
4f59f5670d Merge pull request #5513 from dokku/dependabot/docker/tests/apps/zombies-dockerfile-no-tini/golang-1.19.4
chore(deps): bump golang from 1.19.3 to 1.19.4 in /tests/apps/zombies-dockerfile-no-tini
2022-12-18 19:22:49 -05:00
josegonzalez
677f48b1ec Merge pull request #5511 from dokku/dependabot/docker/tests/apps/zombies-dockerfile-tini/golang-1.19.4
chore(deps): bump golang from 1.19.3 to 1.19.4 in /tests/apps/zombies-dockerfile-tini
2022-12-18 19:22:36 -05:00
josegonzalez
b2b4c2a9a8 Merge pull request #5510 from dokku/dependabot/docker/tests/apps/gogrpc/golang-1.19.4
chore(deps): bump golang from 1.19.3 to 1.19.4 in /tests/apps/gogrpc
2022-12-18 19:22:29 -05:00
Jose Diaz-Gonzalez
8323015fb7 tests: add a test case for nested vector-sink values with plus signs
Closes #5502
2022-12-18 19:16:14 -05:00
Jose Diaz-Gonzalez
c3c6e2174a fix: keep track of the source image when building an app via git:from-image
This change fixes issues with ps:rebuild not working as expected - essentially ignoring files in the repo - as well as adds tests.

Closes #5518
2022-12-18 17:57:24 -05:00
Jose Diaz-Gonzalez
654939afa7 refactor: do not pull image if it already exists 2022-12-18 17:52:32 -05:00
Jose Diaz-Gonzalez
ca4be83e64 fix: allow nginx-conf-sigil-path to be set globally 2022-12-18 17:49:55 -05:00
Jose Diaz-Gonzalez
1e58b56ac7 feat: add git-get-property trigger 2022-12-18 17:49:47 -05:00
josegonzalez
d202050d30 Merge pull request #5531 from dokku/josegonzalez-patch-1
Fix indentation on heading in where to get help
2022-12-17 15:22:44 -05:00
josegonzalez
5c8cc20db3 docs: fix indentation on heading in where to get help 2022-12-17 15:22:32 -05:00
josegonzalez
579e52e8ae Merge pull request #5525 from dokku/dependabot/maven/tests/apps/java/org.eclipse.jetty-jetty-servlet-11.0.13
chore(deps): bump jetty-servlet from 11.0.12 to 11.0.13 in /tests/apps/java
2022-12-17 14:17:15 -05:00
josegonzalez
b3f3f17dcc Merge pull request #5519 from dokku/dependabot/docker/tests/apps/dockerfile-release/python-3.11.1-buster
chore(deps): bump python from 3.11.0-buster to 3.11.1-buster in /tests/apps/dockerfile-release
2022-12-17 14:15:37 -05:00
josegonzalez
44ccef1cc4 Merge pull request #5520 from dokku/dependabot/docker/docs/_build/python-3.11.1-alpine
chore(deps): bump python from 3.11.0-alpine to 3.11.1-alpine in /docs/_build
2022-12-17 14:15:29 -05:00
josegonzalez
a3c3ee437e Merge pull request #5521 from AlejandroAkbal/patch-1
Scheduled Cron Tasks: remove deprecated used of `--rm` flag in `dokku run`
2022-12-17 14:15:05 -05:00
dependabot[bot]
576c4cd847 chore(deps): bump jetty-servlet in /tests/apps/java
Bumps [jetty-servlet](https://github.com/eclipse/jetty.project) from 11.0.12 to 11.0.13.
- [Release notes](https://github.com/eclipse/jetty.project/releases)
- [Commits](https://github.com/eclipse/jetty.project/compare/jetty-11.0.12...jetty-11.0.13)

---
updated-dependencies:
- dependency-name: org.eclipse.jetty:jetty-servlet
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-12 13:05:07 +00:00
Alejandro Akbal
ceb03d6341 docs(Scheduled Cron Tasks): remove deprecated used of --rm flag in dokku run 2022-12-09 09:33:37 +00:00
dependabot[bot]
01ab0ad8e2 chore(deps): bump python in /docs/_build
Bumps python from 3.11.0-alpine to 3.11.1-alpine.

---
updated-dependencies:
- dependency-name: python
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-08 13:43:21 +00:00
dependabot[bot]
a4c92472ca chore(deps): bump python in /tests/apps/dockerfile-release
Bumps python from 3.11.0-buster to 3.11.1-buster.

---
updated-dependencies:
- dependency-name: python
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-08 13:43:20 +00:00
josegonzalez
cfca0d38a5 Merge pull request #5517 from dokku/josegonzalez-patch-1
Fix reference to scheduler name in kubernetes docs
2022-12-07 23:26:09 -05:00
josegonzalez
e3f3099dc0 docs: fix reference to scheduler name in kubernetes docs
Closes dokku/dokku-scheduler-kubernetes#40
2022-12-07 23:25:05 -05:00
josegonzalez
47f3d0901a Merge pull request #5516 from dokku/josegonzalez-patch-1
Fix reference to scheduler name in nomad docs
2022-12-07 23:24:31 -05:00
josegonzalez
74ff966b9e docs: fix reference to scheduler name in nomad docs 2022-12-07 23:23:49 -05:00
dependabot[bot]
ef113bff2c chore(deps): bump golang in /tests/apps/zombies-dockerfile-no-tini
Bumps golang from 1.19.3 to 1.19.4.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-07 13:13:00 +00:00
dependabot[bot]
af421da8ea chore(deps): bump golang in /tests/apps/zombies-dockerfile-tini
Bumps golang from 1.19.3 to 1.19.4.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-07 13:12:47 +00:00
dependabot[bot]
eb1a13dadf chore(deps): bump golang from 1.19.3 to 1.19.4 in /tests/apps/gogrpc
Bumps golang from 1.19.3 to 1.19.4.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-07 13:12:46 +00:00
Dokku Bot
afaff73025 Release 0.29.0
# History

## 0.29.0

Install/update via the bootstrap script:

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

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

### Bug Fixes

- #5506: @josegonzalez Add support for escaped plus (+) signs in vector configurations
- #5505: @josegonzalez Add missing event hooks
- #5493: @josegonzalez Correct issue with detection of non-https port mapping as https port mapping
- #5499: @josegonzalez Do not use traefik priority in service name
- #5491: @josegonzalez Add missing http part to traefik routing rule
- #5477: @josegonzalez Add missing config_sub entry to config gitignore
- #5474: @josegonzalez Add missing source call
- #5345: @esirK Always set app created-at via property instead of introspecting on folder creation time
- #5456: @cooperaj Ensure Traefik only attempts to obtain certificate for api when enabled
- #5466: @josegonzalez Drop the app argument when calling storage:ensure-directory from remote client
- #5458: @cooperaj Ensure the TLS resolver is specifed for HTTPS enabled apps
- #5448: @josegonzalez Do not attempt to attach a network to a container that already has it

### New Features

- #5494: @josegonzalez Silence the warning message when there are no dokku apps on install
- #5490: @josegonzalez Add ability to set a custom priority for traefik routing rules
- #5489: @josegonzalez Use exit code 137 to signify a lock was unable to be retrieved when calling ps:retire
- #5487: @josegonzalez Use a priority when routing requests with traefik
- #5481: @josegonzalez Drop installation of nginx ppa
- #5478: @josegonzalez Allow users to enable herokuish usage on arm/arm64 platforms
- #5479: @josegonzalez Cleanup builder code and docs
- #5476: @josegonzalez Add fileutils plugin to the devcontainer
- #5473: @josegonzalez Add warning when a user is attempting to deploy with an ipv4/ipv6 domain name and has the default nginx site file available
- #5451: @josegonzalez Add git:status subcommand
- #5349: @josegonzalez Error out when executing caddy and traefik commands without the compose plugin installed
- #5322: @josegonzalez Implement run:logs command
- #5321: @josegonzalez Implement run:stop command
- #5434: @josegonzalez Upgrade to go 1.19 everywhere
- #5320: @josegonzalez Add json format output to run:list

### Refactors

- #5488: @josegonzalez De-duplicate proxy building and simplify url generation
- #5454: @josegonzalez Switch from base64-encoding to base36-encoding of cron task IDs

### Documentation

- #5509: @josegonzalez Update data loss blockquote to be warning
- #5507: @josegonzalez Add tutorials link to navigation
- #5503: @josegonzalez Document potential deployment downtime
- #5484: @IgnisDa Add edgedb community plugin
- #5482: @JonathanMH Fixes minor typos in proxy docs
- #5465: @josegonzalez Fix embedded lists on deployment tasks
- #5430: @pablobm Clarify that proxy:build-config is required for any nginx:set call
- #5447: @josegonzalez Specify correct command for builder-lambda:report
- #5429: @pablobm Clarify details of the default template

### Tests

- #5449: @josegonzalez Install goverage via go get

### Other

- #5500: @dependabot[bot] chore(deps): bump maven-dependency-plugin from 3.3.0 to 3.4.0 in /tests/apps/java
- #5472: @josegonzalez Start started proxies automatically during ps:restore
- #5497: @dependabot[bot] chore(deps): bump ruby from 3.1.2 to 3.1.3 in /tests/apps/dockerfile-entrypoint
- #5496: @dependabot[bot] chore(deps): bump sinatra from 3.0.3 to 3.0.4 in /tests/apps/ruby
- #5480: @josegonzalez Cleanup zero'd out processes when a Procfile omitting those process types is set
- #5475: @josegonzalez Refactor nginx.conf.sigil to be extracted from a specified path in source code instead of the built image
- #5467: @josegonzalez Move DOKKU_WAIT_TO_RETIRE to a checks property
- #5455: @dependabot[bot] chore(deps): bump hadolint/hadolint-action from 2.1.0 to 3.0.0
- #5463: @dependabot[bot] chore(deps): bump sinatra from 3.0.2 to 3.0.3 in /tests/apps/ruby
- #5450: @dependabot[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 226 to 227 in /tests/apps/php
- #5437: @dependabot[bot] chore(deps): bump golang from 1.19.2 to 1.19.3 in /tests/apps/zombies-dockerfile-tini
- #5441: @dependabot[bot] chore(deps): bump golang from 1.19.2 to 1.19.3 in /tests/apps/gogrpc
- #5440: @dependabot[bot] chore(deps): bump golang from 1.19.2 to 1.19.3 in /tests/apps/go-fail-predeploy
- #5439: @dependabot[bot] chore(deps): bump golang from 1.19.2 to 1.19.3 in /tests/apps/zombies-dockerfile-no-tini
- #5438: @dependabot[bot] chore(deps): bump golang from 1.19.2 to 1.19.3 in /tests/apps/go-fail-postdeploy
- #5431: @dependabot[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 225 to 226 in /tests/apps/php
- #5426: @dependabot[bot] chore(deps): bump python from 3.10.0-buster to 3.11.0-buster in /tests/apps/dockerfile-release
- #5319: @josegonzalez Use container name instead of container id for run:detached output
- #5427: @dependabot[bot] chore(deps): bump python from 3.10.8-alpine to 3.11.0-alpine in /docs/_build
2022-12-06 20:43:46 +00:00
josegonzalez
37b4beca1c Merge pull request #5509 from dokku/josegonzalez-patch-1
Update data loss blockquote to be warning
2022-12-06 14:41:52 -05:00
josegonzalez
f92d240461 docs: update data loss blockquote to be warning 2022-12-06 14:41:35 -05:00
josegonzalez
7bef9bac8c Merge pull request #5507 from dokku/tutorials-link
Add tutorials link to navigation
2022-12-05 06:22:07 -05:00
Jose Diaz-Gonzalez
8122470c0b chore: drop tutorials from main docs in favor of tutorials site
This ensures the main docs don't become an area for every use case, rather just focusing on the core concepts and usages of Dokku.
2022-12-05 06:14:50 -05:00
Jose Diaz-Gonzalez
8dfebad943 feat: add tutorials link to the docs 2022-12-05 05:53:10 -05:00
josegonzalez
ff935c333b Merge pull request #5506 from dokku/5502-support-plus
Add support for escaped plus (+) signs in vector configurations
2022-12-04 16:53:06 -05:00
Jose Diaz-Gonzalez
bbbdfbffe5 fix: add support for escaped plus (+) signs in vector configurations
Closes #5502
2022-12-04 15:40:46 -05:00
josegonzalez
4f76dd7bc2 Merge pull request #5488 from dokku/5435-potential-deploy-downtime 2022-12-03 23:01:09 -05:00
Jose Diaz-Gonzalez
80fd9bbd4b fix: run linting 2022-12-02 16:00:32 -05:00
josegonzalez
263d1a686d Merge pull request #5505 from dokku/missing-hooks
Add missing event hooks
2022-12-02 15:56:50 -05:00
Jose Diaz-Gonzalez
dfc7b26f42 fix: add missing event hooks 2022-12-02 15:56:29 -05:00
Jose Diaz-Gonzalez
ecae13ba84 fix: update event hooks 2022-12-02 15:55:49 -05:00
Jose Diaz-Gonzalez
c2ebf48524 refactor: use a single implementation for checking cnb/herokuish images
Also use a plugin trigger for testing whether an image is herokuish or not rather than trying to mess around with sourced files.
2022-12-02 15:54:48 -05:00
Jose Diaz-Gonzalez
a2cc6b84d6 fix: use assert_output_contains so as not to worry about order 2022-12-02 10:47:40 -05:00
Jose Diaz-Gonzalez
1dda402769 fix: do not depend upon domains:setup in tests
Since it is now called on app creation, it doesn't work as expected for 'resetting' already set state.
2022-12-02 02:33:54 -05:00
Jose Diaz-Gonzalez
edd6e476b3 refactor: simplify how url generation works
The URLS file is no longer necessary as urls are now generated directly from the app VHOST file.

This also moves all the url generation logic to the domains plugin.
2022-12-02 02:19:59 -05:00
Jose Diaz-Gonzalez
f4f0a29446 fix: correct domain wildcard tests for new domain initialization method 2022-12-01 22:57:31 -05:00
Jose Diaz-Gonzalez
d18cb3766c fix: correct tests for new domain initialization method 2022-12-01 22:39:38 -05:00
Jose Diaz-Gonzalez
9eab17af11 refactor: setup app domains in the post-create hook
This is more consistent with app setup, at the cost of making it so developers must disable domains manually afterwards.
2022-12-01 22:39:38 -05:00
Jose Diaz-Gonzalez
1fab98286b fix: also report that there is a network config if a static-web-listener is specified 2022-12-01 22:39:38 -05:00
Jose Diaz-Gonzalez
203a56fa11 chore: remote whitespace 2022-12-01 22:39:20 -05:00
Jose Diaz-Gonzalez
78438dfb74 chore: do not rework network config if the scheduler is not docker-local 2022-12-01 22:39:20 -05:00
Jose Diaz-Gonzalez
348a593ee8 refactor trigger proxy-build-config from nginx#core-post-deploy
This reduces the duplicated code in the plugin.
2022-12-01 22:39:20 -05:00
josegonzalez
9ccd1f397c Merge pull request #5503 from dokku/josegonzalez-patch-1
Document potential deployment downtime
2022-12-01 22:39:00 -05:00
josegonzalez
84a727a3aa Document potential deployment downtime
Closes #5435
2022-12-01 22:38:32 -05:00
josegonzalez
9e8312360e Merge pull request #5500 from dokku/dependabot/maven/tests/apps/java/org.apache.maven.plugins-maven-dependency-plugin-3.4.0
chore(deps): bump maven-dependency-plugin from 3.3.0 to 3.4.0 in /tests/apps/java
2022-12-01 10:53:27 -05:00
dependabot[bot]
fed6b871ce chore(deps): bump maven-dependency-plugin in /tests/apps/java
Bumps [maven-dependency-plugin](https://github.com/apache/maven-dependency-plugin) from 3.3.0 to 3.4.0.
- [Release notes](https://github.com/apache/maven-dependency-plugin/releases)
- [Commits](https://github.com/apache/maven-dependency-plugin/compare/maven-dependency-plugin-3.3.0...maven-dependency-plugin-3.4.0)

---
updated-dependencies:
- dependency-name: org.apache.maven.plugins:maven-dependency-plugin
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-12-01 07:27:17 +00:00
josegonzalez
9e939ea816 Merge pull request #5472 from dokku/5381-compose-proxy-lifecycle 2022-12-01 02:16:45 -05:00
Jose Diaz-Gonzalez
7ec555f617 fix: properly test priority
It is no longer part of the service name.
2022-12-01 00:27:21 -05:00
Jose Diaz-Gonzalez
e2d215ab4f fix: do not run enable/disable when using init.d
init.d doesn't support these two commands, causing nginx:stop/nginx:start to fail.
2022-11-30 15:00:05 -05:00
Jose Diaz-Gonzalez
a8bc8044e4 feat: switch to systemctl for interacting with the nginx init process 2022-11-29 01:38:36 -05:00
Jose Diaz-Gonzalez
5fed0c45ac refactor: use the properties system instead of the data dir for tracking whether a proxy should be stopped or started 2022-11-29 01:38:36 -05:00
Jose Diaz-Gonzalez
6fed37b408 refactor: rename pre-restore trigger to scheduler-pre-restore
This better reflects what the trigger does, and allows us to use the pre-restore trigger at the beginning of the ps:restore command.
2022-11-29 01:38:36 -05:00
Jose Diaz-Gonzalez
77fbd676bc feat: start caddy/nginx/traefik prior to restoring applications
This ensures routing works as expected.
2022-11-29 01:38:36 -05:00
Jose Diaz-Gonzalez
b97a5c0c00 feat: keep track of whether proxy implementation should be stopped or started 2022-11-29 01:38:36 -05:00
Jose Diaz-Gonzalez
bde7b16a80 chore: reorder commands alphabetically 2022-11-29 01:38:36 -05:00
Jose Diaz-Gonzalez
5c205b9e27 feat: keep track of whether caddy and traefik should be stopped/started 2022-11-29 01:38:36 -05:00
Jose Diaz-Gonzalez
2946e6d632 fix: enable/disable nginx when calling nginx:start/nginx:stop 2022-11-29 01:38:36 -05:00
Jose Diaz-Gonzalez
1d85095ec8 feat: allow dokku user to enable/disable nginx service 2022-11-29 01:38:36 -05:00
josegonzalez
a42360ec34 Merge pull request #5493 from dokku/5410-fix-ssl-detection
Correct issue with detection of non-https port mapping as https port mapping
2022-11-29 01:38:15 -05:00
josegonzalez
6522012b89 fix: do not use priority in test lookup 2022-11-29 01:27:57 -05:00
Jose Diaz-Gonzalez
b7bff8e152 fix: correct issue with detection of non-https port mapping as https port mapping
This allows folks to _only_ set the letsencrypt-email in order to get https working as expected.

Closes #5410
2022-11-29 00:21:04 -05:00
josegonzalez
2f79e68542 Merge pull request #5499 from dokku/traefik-priority-v2
Do not use traefik priority in service name
2022-11-29 00:20:13 -05:00
Jose Diaz-Gonzalez
2807d71ac6 fix: do not use traefik priority in service name
This breaks the ability to add new rules on the fly and also makes routing a bit more difficult.
2022-11-29 00:19:53 -05:00
josegonzalez
a416b07b0f Merge pull request #5497 from dokku/dependabot/docker/tests/apps/dockerfile-entrypoint/ruby-3.1.3
chore(deps): bump ruby from 3.1.2 to 3.1.3 in /tests/apps/dockerfile-entrypoint
2022-11-28 11:16:50 -05:00
josegonzalez
6400c84782 Merge pull request #5496 from dokku/dependabot/bundler/tests/apps/ruby/sinatra-3.0.4
chore(deps): bump sinatra from 3.0.3 to 3.0.4 in /tests/apps/ruby
2022-11-28 11:16:41 -05:00
dependabot[bot]
c8fc1e5ca8 chore(deps): bump ruby in /tests/apps/dockerfile-entrypoint
Bumps ruby from 3.1.2 to 3.1.3.

---
updated-dependencies:
- dependency-name: ruby
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-28 13:21:45 +00:00
dependabot[bot]
40c41d0a7e chore(deps): bump sinatra from 3.0.3 to 3.0.4 in /tests/apps/ruby
Bumps [sinatra](https://github.com/sinatra/sinatra) from 3.0.3 to 3.0.4.
- [Release notes](https://github.com/sinatra/sinatra/releases)
- [Changelog](https://github.com/sinatra/sinatra/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sinatra/sinatra/compare/v3.0.3...v3.0.4)

---
updated-dependencies:
- dependency-name: sinatra
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-28 13:01:56 +00:00
josegonzalez
d8aebda820 Merge pull request #5494 from dokku/silence-install
Silence the warning message when there are no dokku apps on install
2022-11-28 02:21:14 -05:00
Jose Diaz-Gonzalez
1a14731f46 chore: silence the warning message when there are no dokku apps on install 2022-11-28 02:20:54 -05:00
josegonzalez
f8cf40fc2d Merge pull request #5490 from dokku/custom-traefik-priority
Add ability to set a custom priority for traefik routing rules
2022-11-27 23:55:27 -05:00
josegonzalez
7c2ff907f4 Merge pull request #5489 from dokku/5432-lock-exit-code
Use exit code 137 to signify a lock was unable to be retrieved when calling ps:retire
2022-11-27 23:13:51 -05:00
josegonzalez
ac9c2db306 Merge pull request #5491 from dokku/josegonzalez-patch-1
Add missing http part to traefik routing rule
2022-11-27 22:27:04 -05:00
josegonzalez
1d13239ace fix: add missing http part to traefik routing rule 2022-11-27 22:26:47 -05:00
Jose Diaz-Gonzalez
e26b0ba1db feat: add ability to set a custom priority for traefik routing rules 2022-11-27 22:23:06 -05:00
Jose Diaz-Gonzalez
bc26766b84 refactor: use exit code 137 to signify a lock was unable to be retrieved when calling ps:retire
Closes #5432
2022-11-27 20:23:13 -05:00
josegonzalez
38cb05e7b1 Merge pull request #5487 from dokku/traefik-priority
Use a priority when routing requests with traefik
2022-11-27 19:35:10 -05:00
Jose Diaz-Gonzalez
56beaf6dd5 feat: use a priority when routing requests with traefik
This ensures we always use the newer config when there are conflicting versions.
2022-11-27 19:34:05 -05:00
josegonzalez
c29967eaa5 Merge pull request #5480 from dokku/5112-procfile-cleanup
Cleanup zero'd out processes when a Procfile omitting those process types is set
2022-11-27 16:13:44 -05:00
josegonzalez
ff53949ef3 Merge pull request #5484 from IgnisDa/master
Add edgedb community plugin
2022-11-27 15:53:05 -05:00
Jose Diaz-Gonzalez
22f6db1c6a chore: drop nginx config if there is no network config for the app 2022-11-27 15:07:42 -05:00
Jose Diaz-Gonzalez
e458c8e4a6 fix: keep track of old scale values for a single deploy
This will ensure we scale things down after usage.
2022-11-27 15:02:45 -05:00
Diptesh Choudhuri
216f2d6551 docs(plugins): added dokku-edgedb
Update plugins.md
2022-11-27 04:29:47 +00:00
Jose Diaz-Gonzalez
7cc3f33590 fix: create nginx data app directory before usage 2022-11-25 19:58:52 -05:00
Jose Diaz-Gonzalez
b91b8adf4d docs: remove extra whitespace 2022-11-25 19:58:37 -05:00
josegonzalez
c4521b0db1 Merge pull request #5482 from JonathanMH/fix/typos-in-proxy-docs
Fixes minor typos in proxy docs
2022-11-25 18:03:35 -05:00
Jonathan M. Hethey
345e28891e fix minor typos in proxy docs 2022-11-25 23:59:15 +01:00
Jose Diaz-Gonzalez
8ab2906930 chore: run shfmt 2022-11-25 17:40:45 -05:00
Jose Diaz-Gonzalez
f4913e1bf5 docs: add monorepo reference to nginx docs 2022-11-25 17:40:38 -05:00
Jose Diaz-Gonzalez
171dad8e88 feat: add method for pulling files when deploying from built images
This allows us to be backwards compatible when executing git:from-image.

The nice thing about this pattern is we can also extend it to other parts of the deployment as well, such asn nginx-vhosts fetching
2022-11-25 17:38:15 -05:00
Jose Diaz-Gonzalez
0857e51c43 fix: do not delete the existing procfile if it does not exist 2022-11-25 14:50:35 -05:00
Jose Diaz-Gonzalez
231e562b8d fix: respect the .missing file and the process-specific procfile when fetching the a procfile command 2022-11-25 14:50:35 -05:00
Jose Diaz-Gonzalez
1455390dd3 fix: reference the correct missing file 2022-11-25 14:50:35 -05:00
Jose Diaz-Gonzalez
55ca8e3d52 chore: drop debug calls 2022-11-25 14:50:35 -05:00
Jose Diaz-Gonzalez
fe4d80a82b refactor: cleanup zero'd out processes when a Procfile omitting those process types is set
This change also moves the referenced Procfile out to a host path once on deploy vs potentially several times, which should speed up deploys a small amount and simplify reasoning about the file.

Closes #5112
2022-11-25 14:50:35 -05:00
Jose Diaz-Gonzalez
3100eeb151 chore: split up ps-general tests 2022-11-25 14:50:35 -05:00
josegonzalez
555b081254 Merge pull request #5481 from dokku/drop-nginx-ppa
Drop installation of nginx ppa
2022-11-25 14:50:08 -05:00
Jose Diaz-Gonzalez
4e4f3c839a chore: drop installation of nginx ppa
We've been using OS nginx for quite a while now as it's been updated significantly, so there is no need to use the official ppa anymore.
2022-11-25 14:47:52 -05:00
josegonzalez
d66dc84c28 Merge pull request #5478 from dokku/herokuish-on-arm
Allow users to enable herokuish usage on arm/arm64 platforms
2022-11-24 23:00:47 -05:00
josegonzalez
f871c33dec Merge pull request #5479 from dokku/builder-cleanup
Cleanup builder code and docs
2022-11-24 14:47:38 -05:00
Jose Diaz-Gonzalez
7c5b0be2c3 chore: use the correct function when fetching properties with defaults 2022-11-24 14:47:13 -05:00
Jose Diaz-Gonzalez
beb8dff68c docs: cleanup builder docs a little 2022-11-24 14:46:51 -05:00
Jose Diaz-Gonzalez
1238c8d7e0 feat: allow users to enable herokuish usage on arm/arm64 platforms
While the majority of buildpacks do not work on non-amd64 platforms, this will at least allow developers the option to choose when to override this setting.
2022-11-24 14:43:47 -05:00
josegonzalez
e48417f18e Merge pull request #5477 from dokku/josegonzalez-patch-1
Add missing config_sub entry to config gitignore
2022-11-24 13:48:16 -05:00
josegonzalez
52f700ff97 fix: add missing app-list entry to config gitignore 2022-11-24 13:47:54 -05:00
josegonzalez
ce5f356015 fix: add missing config_sub entry to config gitignore 2022-11-24 13:47:49 -05:00
josegonzalez
25beb2af13 Merge pull request #5476 from dokku/devcontainer-fileutils
Add fileutils plugin to the devcontainer
2022-11-24 13:00:55 -05:00
Jose Diaz-Gonzalez
038eba6785 feat: add fileutils plugin to the devcontainer
This is useful in development when duplicating hooks.
2022-11-24 13:00:40 -05:00
josegonzalez
3365a544ac Merge pull request #5475 from dokku/5207-nginx-core-post-extract
Refactor nginx.conf.sigil to be extracted from a specified path in source code instead of the built image
2022-11-24 12:58:50 -05:00
Jose Diaz-Gonzalez
5dc1e779ae chore: run shfmt 2022-11-24 12:58:34 -05:00
Jose Diaz-Gonzalez
9fdc06e6fa tests: add a test case to cover new functionality 2022-11-24 00:52:18 -05:00
Jose Diaz-Gonzalez
67c243b0ba fix: keep track of case where current deployment does not have a custom nginx.conf.sigil 2022-11-24 00:51:58 -05:00
Jose Diaz-Gonzalez
39beb8894f fix: cleanup app data 2022-11-24 00:51:21 -05:00
Jose Diaz-Gonzalez
ff9005dd0e feat: migrate existing installs to new monorepo setup for nginx.conf.sigil file 2022-11-23 20:26:16 -05:00
Jose Diaz-Gonzalez
e3fa0c4bc4 refactor: move nginx.conf.sigil files into app-specific directories 2022-11-23 20:16:28 -05:00
Jose Diaz-Gonzalez
140c1e4d4c feat: scope the custom config to the current DOKKU_PID 2022-11-23 19:43:29 -05:00
Jose Diaz-Gonzalez
b166db90e6 fix: do not reuse app-specific nginx.conf.sigil globally 2022-11-23 19:41:56 -05:00
Jose Diaz-Gonzalez
bcbe343cf7 refactor: move env var migration to it's own function 2022-11-23 19:33:13 -05:00
Jose Diaz-Gonzalez
17814d4847 refactor: only extract the nginx.conf.sigil from the source code and not an app path
The previous method was a bit more difficult for users to interact with as they needed to ensure the file was at a certain path in the built image. This change divorces the file from the built artifact, better aligning the nginx.conf.sigil handling with the rest of Dokku's monorepo support.

A side effect of this is now building proxy configurations does not require access to the built image.

Closes #5207
2022-11-23 19:32:53 -05:00
josegonzalez
05b85d0ff3 Merge pull request #5473 from dokku/5341-ip-warn
Add warning when a user is attempting to deploy with an ipv4/ipv6 domain name and has the default nginx site file available
2022-11-23 19:12:28 -05:00
Jose Diaz-Gonzalez
4da1f7091a fix: run shfmt 2022-11-23 17:49:41 -05:00
Jose Diaz-Gonzalez
47f5af44c5 tests: add a test for the error message 2022-11-23 17:46:33 -05:00
Jose Diaz-Gonzalez
f3b04032a8 feat: add warning when a user is attempting to deploy with an ipv4/ipv6 domain name and has the default nginx site file available
This might cause an app to not load for users, causing confusion on first use.

Closes #5341
2022-11-23 16:42:58 -05:00
Jose Diaz-Gonzalez
c8a34f906a chore: remove unused ipv4/ipv6 regex fetch 2022-11-23 16:42:58 -05:00
josegonzalez
3f2625713a Merge pull request #5474 from dokku/josegonzalez-patch-1
Add missing source call
2022-11-23 16:42:38 -05:00
josegonzalez
280006f811 fix: add missing source call 2022-11-23 16:42:26 -05:00
josegonzalez
eb3db26b3e Merge pull request #5467 from dokku/5049-wait-to-retire
Move DOKKU_WAIT_TO_RETIRE to a checks property
2022-11-22 22:44:33 -05:00
josegonzalez
c398a2bc59 chore: document checks:set and new report properties 2022-11-22 22:44:23 -05:00
josegonzalez
8aa60f239d Merge pull request #5345 from esirK/ft-fix-created-at-bug
Always set app created-at via property instead of introspecting on folder creation time
2022-11-22 21:52:22 -05:00
Jose Diaz-Gonzalez
cb3b3b650d fix: convert all app creation timestamps over to the properties system 2022-11-22 20:54:48 -05:00
esir
9506ba727e Use property system to set when an app has been created 2022-11-22 20:47:29 -05:00
Jose Diaz-Gonzalez
daa4ee829e fix: run shfmt 2022-11-22 20:34:23 -05:00
Jose Diaz-Gonzalez
e8f69ca90e fix: remove equals sign 2022-11-22 20:28:28 -05:00
Jose Diaz-Gonzalez
9565648d8d fix: use correct function name 2022-11-22 20:27:43 -05:00
Jose Diaz-Gonzalez
c74e6ce216 refactor: use a common wrapper function to migrate config vars to properties 2022-11-22 20:27:43 -05:00
Jose Diaz-Gonzalez
c7be1766ed fix: call migration function 2022-11-22 20:27:43 -05:00
Jose Diaz-Gonzalez
bef746a5f6 fix: add missing source calls and ensure checks properties are setup 2022-11-22 20:27:43 -05:00
Jose Diaz-Gonzalez
f5c3b5dc34 refactor: move DOKKU_WAIT_TO_RETIRE to a checks property
This centralizes the property and removes one more dokku-specific property from the app environment variables.

Closes #5049
2022-11-22 20:27:43 -05:00
josegonzalez
4749d1529e Merge pull request #5456 from cooperaj/patch-1
Traefik attempts to obtain certificate for api even if it's disabled.
2022-11-21 11:55:37 -05:00
josegonzalez
5ac2fc457d Merge pull request #5466 from dokku/5464-ignore-app
Drop the app argument when calling storage:ensure-directory from remote client
2022-11-16 10:57:27 -05:00
Jose Diaz-Gonzalez
ba98055940 fix: drop the app argument when calling storage:ensure-directory from remote client
Closes #5464
2022-11-15 22:53:57 -05:00
josegonzalez
aa5a3953da Merge pull request #5455 from dokku/dependabot/github_actions/hadolint/hadolint-action-3.0.0
chore(deps): bump hadolint/hadolint-action from 2.1.0 to 3.0.0
2022-11-15 22:46:16 -05:00
josegonzalez
90163475ec Merge pull request #5458 from cooperaj/patch-2
Ensure the TLS resolver is specifed for HTTPS enabled apps
2022-11-15 22:45:09 -05:00
josegonzalez
c480a8f5b7 Merge pull request #5463 from dokku/dependabot/bundler/tests/apps/ruby/sinatra-3.0.3
chore(deps): bump sinatra from 3.0.2 to 3.0.3 in /tests/apps/ruby
2022-11-15 22:44:50 -05:00
josegonzalez
628a97a386 Merge pull request #5465 from dokku/josegonzalez-patch-1
Fix embedded lists on deployment tasks
2022-11-15 16:36:15 -05:00
josegonzalez
5559238287 docs: fix embedded lists on deployment tasks 2022-11-15 16:32:57 -05:00
dependabot[bot]
e39f532ed2 chore(deps): bump sinatra from 3.0.2 to 3.0.3 in /tests/apps/ruby
Bumps [sinatra](https://github.com/sinatra/sinatra) from 3.0.2 to 3.0.3.
- [Release notes](https://github.com/sinatra/sinatra/releases)
- [Changelog](https://github.com/sinatra/sinatra/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sinatra/sinatra/compare/v3.0.2...v3.0.3)

---
updated-dependencies:
- dependency-name: sinatra
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-14 13:01:07 +00:00
josegonzalez
ce52409ad8 Merge pull request #5454 from dokku/4903-cron-id
Switch from base64-encoding to base36-encoding of cron task IDs
2022-11-13 21:14:24 -05:00
Adam Cooper
2778d029fa Ensure the resolver is specifed for https enabled apps 2022-11-11 22:43:47 +00:00
Adam Cooper
a60ba4e2d4 Wrap dashboard routing definition in conditional
This ensures that we don't define the routes for the api unless we've enabled it.
2022-11-11 21:58:16 +00:00
dependabot[bot]
f182c43fa6 chore(deps): bump hadolint/hadolint-action from 2.1.0 to 3.0.0
Bumps [hadolint/hadolint-action](https://github.com/hadolint/hadolint-action) from 2.1.0 to 3.0.0.
- [Release notes](https://github.com/hadolint/hadolint-action/releases)
- [Changelog](https://github.com/hadolint/hadolint-action/blob/master/.releaserc)
- [Commits](f988afea3d...4b5806eb9c)

---
updated-dependencies:
- dependency-name: hadolint/hadolint-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-11 13:22:03 +00:00
Jose Diaz-Gonzalez
ddae4f71da refactor: switch from base64-encoding to base36-encoding of cron task IDs
This allows the IDs to be used as DNS labels, meaning they can be used as is for external scheduler task names.

Closes #4903
2022-11-09 22:22:37 -05:00
Jose Diaz-Gonzalez
14ba1a214f Merge pull request #5451 from dokku/5248-git-status
Add git:status subcommand
2022-11-09 10:20:38 -05:00
Jose Diaz-Gonzalez
aca8deb2f2 feat: add git:status subcommand
Closes #5248
2022-11-09 00:04:45 -05:00
Jose Diaz-Gonzalez
655b5307b5 Merge pull request #5450 from dokku/dependabot/composer/tests/apps/php/heroku/heroku-buildpack-php-227
chore(deps-dev): bump heroku/heroku-buildpack-php from 226 to 227 in /tests/apps/php
2022-11-08 19:35:57 -05:00
dependabot[bot]
6af43baa71 chore(deps-dev): bump heroku/heroku-buildpack-php in /tests/apps/php
Bumps [heroku/heroku-buildpack-php](https://github.com/heroku/heroku-buildpack-php) from 226 to 227.
- [Release notes](https://github.com/heroku/heroku-buildpack-php/releases)
- [Changelog](https://github.com/heroku/heroku-buildpack-php/blob/main/CHANGELOG.md)
- [Commits](https://github.com/heroku/heroku-buildpack-php/compare/v226...v227)

---
updated-dependencies:
- dependency-name: heroku/heroku-buildpack-php
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-08 13:06:48 +00:00
Jose Diaz-Gonzalez
b475b4de5b Merge pull request #5430 from pablobm/clarify-config-build
Clarify that proxy:build-config is required for any nginx:set call
2022-11-07 21:54:17 -05:00
Jose Diaz-Gonzalez
e8fad562d6 docs: add a note for every nginx:set command 2022-11-07 21:53:49 -05:00
Jose Diaz-Gonzalez
a742549387 Merge pull request #5449 from dokku/test-go-coverage
Install goverage via go get
2022-11-07 19:36:46 -05:00
Jose Diaz-Gonzalez
ea970c7737 chore: run go mod tidy 2022-11-07 17:52:41 -05:00
Jose Diaz-Gonzalez
b2b2b7dc2a chore: run go mod tidy 2022-11-07 17:44:30 -05:00
Jose Diaz-Gonzalez
01127fb09c chore: run go mod tidy 2022-11-07 16:37:14 -05:00
Jose Diaz-Gonzalez
e841e1039c fix: add missing go module dependencies 2022-11-07 16:17:55 -05:00
Jose Diaz-Gonzalez
edd0b16975 fix: install goverage via go get 2022-11-07 16:11:38 -05:00
Jose Diaz-Gonzalez
899886a5f1 Merge pull request #5349 from dokku/5335-compose-error
Error out when executing caddy and traefik commands without the compose plugin installed
2022-11-07 16:10:51 -05:00
Jose Diaz-Gonzalez
4a9bdd6dc2 fix: add missing {{end}} to docker format template 2022-11-07 10:07:48 -05:00
Jose Diaz-Gonzalez
36c2936a93 Merge pull request #5448 from dokku/5352-network-once
Do not attempt to attach a network to a container that already has it
2022-11-07 00:46:22 -05:00
Jose Diaz-Gonzalez
aa49df4fe4 fix: do not attempt to attach a network to a container that already has it
This avoids issues when scaling unrelated process types or if the user has specified the same network at different phases.

Closes #5352
2022-11-06 18:30:05 -05:00
Jose Diaz-Gonzalez
41b971e067 fix: add moby-compose as alternative for docker-compose-plugin
This is necessary on github actions as they use some weird apt repository that provides docker under the moby name...
2022-11-06 00:53:04 -04:00
Jose Diaz-Gonzalez
a19cef9411 fix: install official docker package from docker upstream
This ensures the docker version we ship to in the docker image can actually install the docker-compose-plugin.
2022-11-05 23:44:51 -04:00
Jose Diaz-Gonzalez
ee1ab45829 refactor: use local architecture version of golang when building the initial manpage file 2022-11-05 23:44:51 -04:00
Jose Diaz-Gonzalez
3ff5e0e3a6 fix: error out if commands using compose are executed
Refs #5335
2022-11-05 23:44:51 -04:00
Jose Diaz-Gonzalez
9bd927a598 docs: fix compose install link
The old link broke. Might be worth running some sort of linter for broken links in our documentation.
2022-11-05 23:44:51 -04:00
Jose Diaz-Gonzalez
3245a8d322 fix: add docker-compose-plugin to debian packaging
This might break installation on github actions - which only uses moby-engine - but we'll see as soon as CI runs since the install will fail.
2022-11-05 23:44:51 -04:00
Jose Diaz-Gonzalez
0f8d4a5b38 Merge pull request #5447 from dokku/josegonzalez-patch-1
Specify correct command for builder-lambda:report
2022-11-05 21:53:40 -04:00
Jose Diaz-Gonzalez
75d8e943a3 docs: specify correct command for builder-lambda:report 2022-11-05 21:53:29 -04:00
Jose Diaz-Gonzalez
3f08c54009 Merge pull request #5322 from dokku/5312-run-logs
Implement run:logs command
2022-11-03 17:39:20 -04:00
Jose Diaz-Gonzalez
54a1b54926 chore: run shfmt 2022-11-02 16:49:45 -04:00
Jose Diaz-Gonzalez
d6920230db feat: implement run:logs command
Closes #5312
2022-11-02 16:49:43 -04:00
Jose Diaz-Gonzalez
5c038c238c Merge pull request #5321 from dokku/5169-run-stop
Implement run:stop command
2022-11-02 16:46:09 -04:00
Jose Diaz-Gonzalez
58ef7c98d4 Merge pull request #5437 from dokku/dependabot/docker/tests/apps/zombies-dockerfile-tini/golang-1.19.3
chore(deps): bump golang from 1.19.2 to 1.19.3 in /tests/apps/zombies-dockerfile-tini
2022-11-02 16:45:36 -04:00
Jose Diaz-Gonzalez
7807caf212 Merge pull request #5434 from dokku/upgrade-to-go119
Upgrade to go 1.19 everywhere
2022-11-02 16:45:03 -04:00
Jose Diaz-Gonzalez
4a7edc234a feat: add debugging and use go get to grab godacov 2022-11-02 15:45:33 -04:00
dependabot[bot]
356f34c8a8 chore(deps): bump golang in /tests/apps/zombies-dockerfile-tini
Bumps golang from 1.19.2 to 1.19.3.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-02 17:12:03 +00:00
Jose Diaz-Gonzalez
b7a6b63d5a Merge pull request #5441 from dokku/dependabot/docker/tests/apps/gogrpc/golang-1.19.3
chore(deps): bump golang from 1.19.2 to 1.19.3 in /tests/apps/gogrpc
2022-11-02 13:11:33 -04:00
Jose Diaz-Gonzalez
5e93e0e612 Merge pull request #5440 from dokku/dependabot/docker/tests/apps/go-fail-predeploy/golang-1.19.3
chore(deps): bump golang from 1.19.2 to 1.19.3 in /tests/apps/go-fail-predeploy
2022-11-02 13:11:24 -04:00
Jose Diaz-Gonzalez
2945a53332 Merge pull request #5439 from dokku/dependabot/docker/tests/apps/zombies-dockerfile-no-tini/golang-1.19.3
chore(deps): bump golang from 1.19.2 to 1.19.3 in /tests/apps/zombies-dockerfile-no-tini
2022-11-02 13:11:01 -04:00
Jose Diaz-Gonzalez
9b7bd4eb97 Merge pull request #5438 from dokku/dependabot/docker/tests/apps/go-fail-postdeploy/golang-1.19.3
chore(deps): bump golang from 1.19.2 to 1.19.3 in /tests/apps/go-fail-postdeploy
2022-11-02 13:10:51 -04:00
Jose Diaz-Gonzalez
42cd2ae4bc fix: switch to go install from go get
This no longer works as of go 1.18: https://go.dev/doc/go-get-install-deprecation
2022-11-02 11:57:22 -04:00
dependabot[bot]
51879ee61a chore(deps): bump golang from 1.19.2 to 1.19.3 in /tests/apps/gogrpc
Bumps golang from 1.19.2 to 1.19.3.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-02 15:08:15 +00:00
dependabot[bot]
c1e37f80f0 chore(deps): bump golang in /tests/apps/go-fail-predeploy
Bumps golang from 1.19.2 to 1.19.3.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-02 14:16:16 +00:00
dependabot[bot]
28fbb8a54d chore(deps): bump golang in /tests/apps/zombies-dockerfile-no-tini
Bumps golang from 1.19.2 to 1.19.3.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-02 14:16:16 +00:00
dependabot[bot]
97b9961ffc chore(deps): bump golang in /tests/apps/go-fail-postdeploy
Bumps golang from 1.19.2 to 1.19.3.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-11-02 14:16:14 +00:00
Jose Diaz-Gonzalez
9b5c07edd7 chore: update herokuish to get new buildpack version 2022-11-01 22:01:14 -04:00
Jose Diaz-Gonzalez
ca224b8e1a chore: drop goVersion
Let the buildpack figure out the best version instead.
2022-11-01 20:57:23 -04:00
Jose Diaz-Gonzalez
5615765ddc feat: upgrade to go 1.19 everywhere 2022-10-31 13:49:17 -04:00
Jose Diaz-Gonzalez
1c595987b3 chore: run shfmt 2022-10-31 10:55:36 -04:00
Jose Diaz-Gonzalez
aa810cda7d feat: implement run:stop command
Closes #5169
2022-10-31 10:55:17 -04:00
Jose Diaz-Gonzalez
78157c8072 Merge pull request #5431 from dokku/dependabot/composer/tests/apps/php/heroku/heroku-buildpack-php-226
chore(deps-dev): bump heroku/heroku-buildpack-php from 225 to 226 in /tests/apps/php
2022-10-31 10:54:55 -04:00
Jose Diaz-Gonzalez
0c5ed725d9 Merge pull request #5426 from dokku/dependabot/docker/tests/apps/dockerfile-release/python-3.11.0-buster
chore(deps): bump python from 3.10.0-buster to 3.11.0-buster in /tests/apps/dockerfile-release
2022-10-31 10:54:44 -04:00
Jose Diaz-Gonzalez
245797ce1d Merge pull request #5319 from dokku/5170-cron-id
Use container name instead of container id for run:detached output
2022-10-29 17:13:05 -04:00
Jose Diaz-Gonzalez
60acf68412 feat: use container name instead of container id for run:detached output
Closes #5170
2022-10-29 17:12:18 -04:00
Jose Diaz-Gonzalez
a4554b794e Merge pull request #5320 from dokku/5171-run-json-output
Add json format output to run:list
2022-10-29 17:06:50 -04:00
Jose Diaz-Gonzalez
1e644d409b chore: update python version in pipfile 2022-10-29 17:05:58 -04:00
dependabot[bot]
103d8ad368 chore(deps): bump python in /tests/apps/dockerfile-release
Bumps python from 3.10.0-buster to 3.11.0-buster.

---
updated-dependencies:
- dependency-name: python
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-29 20:47:26 +00:00
Jose Diaz-Gonzalez
3475585434 Merge pull request #5427 from dokku/dependabot/docker/docs/_build/python-3.11.0-alpine
chore(deps): bump python from 3.10.8-alpine to 3.11.0-alpine in /docs/_build
2022-10-29 16:46:54 -04:00
dependabot[bot]
265a464c2d chore(deps-dev): bump heroku/heroku-buildpack-php in /tests/apps/php
Bumps [heroku/heroku-buildpack-php](https://github.com/heroku/heroku-buildpack-php) from 225 to 226.
- [Release notes](https://github.com/heroku/heroku-buildpack-php/releases)
- [Changelog](https://github.com/heroku/heroku-buildpack-php/blob/main/CHANGELOG.md)
- [Commits](https://github.com/heroku/heroku-buildpack-php/compare/v225...v226)

---
updated-dependencies:
- dependency-name: heroku/heroku-buildpack-php
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-28 13:26:52 +00:00
Pablo Brasero
4fd0b586b0 Applies to all hsts* values, per-app & globally 2022-10-27 22:05:41 +01:00
Jose Diaz-Gonzalez
a13c8c5a10 Merge pull request #5429 from pablobm/clarify-nginx-template
Clarify details of the default template
2022-10-27 14:00:15 -04:00
Pablo Brasero
3d252cc930 Clarify details of the default template 2022-10-27 15:45:32 +01:00
dependabot[bot]
fef00c6380 chore(deps): bump python in /docs/_build
Bumps python from 3.10.8-alpine to 3.11.0-alpine.

---
updated-dependencies:
- dependency-name: python
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-25 14:36:37 +00:00
Dokku Bot
90951d73ac Release 0.28.4
# History

## 0.28.4

Install/update via the bootstrap script:

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

### Bug Fixes

- #5423: @josegonzalez Respect PLUGIN_PATH when checking if a plugin trigger exists
- #5425: @josegonzalez Ignore https mappings when no ssl certificate exists

### New Features

- #5424: @josegonzalez Download all src files for go mod dependencies for use in vscode

### Documentation

- #5421: @josegonzalez Document that scaling via app.json will set all other processes to zero

### Tests

- #5422: @josegonzalez Test that build-arg works as expected

### Other

- #5418: @dependabot[bot] chore(deps): bump node from 18-alpine to 19-alpine in /tests/apps/dockerfile-noexpose
- #5417: @dependabot[bot] chore(deps): bump node from 18-alpine to 19-alpine in /tests/apps/dockerfile-procfile-bad
- #5419: @dependabot[bot] chore(deps): bump node from 18-alpine to 19-alpine in /tests/apps/dockerfile-dokku-scale
- #5416: @dependabot[bot] chore(deps): bump node from 18-alpine to 19-alpine in /tests/apps/dockerfile-procfile
- #5415: @dependabot[bot] chore(deps): bump node from 18-alpine to 19-alpine in /tests/apps/dockerfile
- #5413: @dependabot[bot] chore(deps): bump ibiqlik/action-yamllint from 3.1.0 to 3.1.1
2022-10-23 05:42:31 +00:00
Jose Diaz-Gonzalez
82296dcf33 Merge pull request #5423 from dokku/respect-plugin-path
Respect PLUGIN_PATH when checking if a plugin trigger exists
2022-10-23 01:41:35 -04:00
Jose Diaz-Gonzalez
33ea8f5d85 Merge pull request #5425 from dokku/5368-no-https-without-cert
Ignore https mappings when no ssl certificate exists
2022-10-23 01:41:25 -04:00
Jose Diaz-Gonzalez
83b8d02efd fix: correct shfmt issue 2022-10-22 17:51:06 -04:00
Jose Diaz-Gonzalez
576f3f407a fix: ignore pushd/popd errors 2022-10-22 17:50:14 -04:00
Jose Diaz-Gonzalez
4ef260f57a fix: ignore https mappings when no ssl certificate exists
This fixes issues where users may somehow add an https mapping but are missing an ssl certificate, causing nginx to not load properly. We now ignore the mapping and warn users of the misconfiguration.

Closes #5368
2022-10-22 17:47:54 -04:00
Jose Diaz-Gonzalez
d0966ce3d4 Merge pull request #5424 from dokku/vscode-golang-lsp
Download all src files for go mod dependencies for use in vscode
2022-10-22 16:47:04 -04:00
Jose Diaz-Gonzalez
524ce9b7d7 feat: download all src files for go mod dependencies for use in vscode
Without this, the LSP within the container continually complains that the source for go files cannot be found. While this method isn't _exactly_ correct, it does help with development.
2022-10-22 16:46:49 -04:00
Jose Diaz-Gonzalez
b94488f32f fix: set PLUGIN_PATH for golang tests 2022-10-22 15:56:23 -04:00
Jose Diaz-Gonzalez
03f43b602d Merge pull request #5418 from dokku/dependabot/docker/tests/apps/dockerfile-noexpose/node-19-alpine
chore(deps): bump node from 18-alpine to 19-alpine in /tests/apps/dockerfile-noexpose
2022-10-22 03:05:19 -04:00
Jose Diaz-Gonzalez
fa8ed5d229 fix: respect PLUGIN_PATH when checking if a plugin trigger exists
Without this, upgrades may fail if the user has enabled a plugin which implements a trigger that is checked for during an upgrade.
2022-10-22 02:54:17 -04:00
Jose Diaz-Gonzalez
227947c27f Merge pull request #5422 from dokku/5388-build-arg-test
Test that build-arg works as expected
2022-10-22 01:55:05 -04:00
Jose Diaz-Gonzalez
fc832b580b tests: test that build-arg works as expected
Closes #5388
2022-10-21 22:16:51 -04:00
Jose Diaz-Gonzalez
6727c82ce5 Merge pull request #5421 from dokku/5412-scale-docs
Document that scaling via app.json will set all other processes to zero
2022-10-21 21:38:53 -04:00
Jose Diaz-Gonzalez
b5da7a08b1 docs: document that scaling via app.json will set all other processes to zero
Closes #5412
2022-10-21 21:38:30 -04:00
dependabot[bot]
cc3f8f0c70 chore(deps): bump node in /tests/apps/dockerfile-noexpose
Bumps node from 18-alpine to 19-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-22 01:34:43 +00:00
Jose Diaz-Gonzalez
c916cdc291 Merge pull request #5417 from dokku/dependabot/docker/tests/apps/dockerfile-procfile-bad/node-19-alpine
chore(deps): bump node from 18-alpine to 19-alpine in /tests/apps/dockerfile-procfile-bad
2022-10-21 21:34:03 -04:00
dependabot[bot]
296f71660c chore(deps): bump node in /tests/apps/dockerfile-procfile-bad
Bumps node from 18-alpine to 19-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-22 01:28:15 +00:00
Jose Diaz-Gonzalez
2957c92c01 Merge pull request #5419 from dokku/dependabot/docker/tests/apps/dockerfile-dokku-scale/node-19-alpine
chore(deps): bump node from 18-alpine to 19-alpine in /tests/apps/dockerfile-dokku-scale
2022-10-21 21:27:37 -04:00
dependabot[bot]
364a1a3507 chore(deps): bump node in /tests/apps/dockerfile-dokku-scale
Bumps node from 18-alpine to 19-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-20 04:29:17 +00:00
Jose Diaz-Gonzalez
9231672382 Merge pull request #5416 from dokku/dependabot/docker/tests/apps/dockerfile-procfile/node-19-alpine
chore(deps): bump node from 18-alpine to 19-alpine in /tests/apps/dockerfile-procfile
2022-10-20 00:21:33 -04:00
Jose Diaz-Gonzalez
3415aeff2e Merge pull request #5415 from dokku/dependabot/docker/tests/apps/dockerfile/node-19-alpine
chore(deps): bump node from 18-alpine to 19-alpine in /tests/apps/dockerfile
2022-10-20 00:21:25 -04:00
Jose Diaz-Gonzalez
2df12dae19 Merge pull request #5413 from dokku/dependabot/github_actions/ibiqlik/action-yamllint-3.1.1
chore(deps): bump ibiqlik/action-yamllint from 3.1.0 to 3.1.1
2022-10-20 00:20:48 -04:00
dependabot[bot]
1066f1d3bf chore(deps): bump node in /tests/apps/dockerfile-procfile
Bumps node from 18-alpine to 19-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-19 13:59:48 +00:00
dependabot[bot]
c44ad37f43 chore(deps): bump node in /tests/apps/dockerfile
Bumps node from 18-alpine to 19-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-19 13:59:48 +00:00
dependabot[bot]
1e4b27cdab chore(deps): bump ibiqlik/action-yamllint from 3.1.0 to 3.1.1
Bumps [ibiqlik/action-yamllint](https://github.com/ibiqlik/action-yamllint) from 3.1.0 to 3.1.1.
- [Release notes](https://github.com/ibiqlik/action-yamllint/releases)
- [Commits](81e214fd48...2576378a8e)

---
updated-dependencies:
- dependency-name: ibiqlik/action-yamllint
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-17 14:06:16 +00:00
Dokku Bot
1b1bba683f Release 0.28.3
# History

## 0.28.3

Install/update via the bootstrap script:

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

### New Features

- #5394: @josegonzalez Add support for automatically updating Dockerfile FROM statements via dependabot

### Other

- #5411: @dependabot[bot] chore(deps): bump python from 3.8-buster to 3.10.0-buster in /tests/apps/dockerfile-release
- #5400: @dependabot[bot] chore(deps): bump node from 4-alpine to 18-alpine in /tests/apps/dockerfile-procfile
- #5405: @dependabot[bot] chore(deps): bump node from 4-alpine to 18-alpine in /tests/apps/dockerfile
- #5397: @dependabot[bot] chore(deps): bump ruby from 2.5.1 to 3.1.2 in /tests/apps/dockerfile-entrypoint
- #5401: @dependabot[bot] chore(deps): bump golang from 1.17.1 to 1.19.2 in /tests/apps/go-fail-postdeploy
- #5403: @dependabot[bot] chore(deps): bump golang from 1.17.1 to 1.19.2 in /tests/apps/zombies-dockerfile-tini
- #5407: @dependabot[bot] chore(deps): bump python from 3.10-alpine to 3.10.8-alpine in /docs/_build
- #5404: @dependabot[bot] chore(deps): bump node from 4-alpine to 18-alpine in /tests/apps/dockerfile-dokku-scale
- #5402: @dependabot[bot] chore(deps): bump node from 4-alpine to 18-alpine in /tests/apps/dockerfile-procfile-bad
- #5398: @dependabot[bot] chore(deps): bump golang from 1.17.1 to 1.19.2 in /tests/apps/go-fail-predeploy
- #5396: @dependabot[bot] chore(deps): bump golang from 1.17.1 to 1.19.2 in /tests/apps/gogrpc
- #5399: @dependabot[bot] chore(deps): bump golang from 1.17.1 to 1.19.2 in /tests/apps/zombies-dockerfile-no-tini
- #5395: @dependabot[bot] chore(deps): bump node from 4-alpine to 18-alpine in /tests/apps/dockerfile-noexpose
2022-10-15 23:39:38 +00:00
Jose Diaz-Gonzalez
24a37b08df Merge pull request #5411 from dokku/dependabot/docker/tests/apps/dockerfile-release/python-3.10.0-buster
chore(deps): bump python from 3.8-buster to 3.10.0-buster in /tests/apps/dockerfile-release
2022-10-15 14:40:25 -04:00
Jose Diaz-Gonzalez
7c48f0e339 Merge pull request #5400 from dokku/dependabot/docker/tests/apps/dockerfile-procfile/node-18-alpine
chore(deps): bump node from 4-alpine to 18-alpine in /tests/apps/dockerfile-procfile
2022-10-15 13:49:59 -04:00
Jose Diaz-Gonzalez
98ccb9cb65 Merge pull request #5405 from dokku/dependabot/docker/tests/apps/dockerfile/node-18-alpine
chore(deps): bump node from 4-alpine to 18-alpine in /tests/apps/dockerfile
2022-10-15 13:36:06 -04:00
Jose Diaz-Gonzalez
22c919d4e3 Merge pull request #5397 from dokku/dependabot/docker/tests/apps/dockerfile-entrypoint/ruby-3.1.2
chore(deps): bump ruby from 2.5.1 to 3.1.2 in /tests/apps/dockerfile-entrypoint
2022-10-15 13:28:03 -04:00
Jose Diaz-Gonzalez
cd9274a601 fix: update entrypoint used for node:18-alpine 2022-10-15 12:28:34 -04:00
Jose Diaz-Gonzalez
e961cf1c0f fix: update python version for dockerfile dependency 2022-10-15 12:21:29 -04:00
Jose Diaz-Gonzalez
7061fbbc60 Merge pull request #5401 from dokku/dependabot/docker/tests/apps/go-fail-postdeploy/golang-1.19.2
chore(deps): bump golang from 1.17.1 to 1.19.2 in /tests/apps/go-fail-postdeploy
2022-10-15 11:42:23 -04:00
dependabot[bot]
f0ff6d9a49 chore(deps): bump python in /tests/apps/dockerfile-release
Bumps python from 3.8-buster to 3.10.0-buster.

---
updated-dependencies:
- dependency-name: python
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-14 23:11:20 +00:00
dependabot[bot]
53c23b32cb chore(deps): bump golang in /tests/apps/go-fail-postdeploy
Bumps golang from 1.17.1 to 1.19.2.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-14 23:11:09 +00:00
dependabot[bot]
4b1c9d53f5 chore(deps): bump node in /tests/apps/dockerfile
Bumps node from 4-alpine to 18-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-14 23:10:51 +00:00
dependabot[bot]
dce59e2e41 chore(deps): bump node in /tests/apps/dockerfile-procfile
Bumps node from 4-alpine to 18-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-14 23:10:50 +00:00
Jose Diaz-Gonzalez
b2e27e24d4 Merge pull request #5403 from dokku/dependabot/docker/tests/apps/zombies-dockerfile-tini/golang-1.19.2
chore(deps): bump golang from 1.17.1 to 1.19.2 in /tests/apps/zombies-dockerfile-tini
2022-10-14 19:10:43 -04:00
Jose Diaz-Gonzalez
441436df66 Merge pull request #5407 from dokku/dependabot/docker/docs/_build/python-3.10.8-alpine
chore(deps): bump python from 3.10-alpine to 3.10.8-alpine in /docs/_build
2022-10-14 19:10:29 -04:00
dependabot[bot]
d810b88648 chore(deps): bump golang in /tests/apps/zombies-dockerfile-tini
Bumps golang from 1.17.1 to 1.19.2.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-14 23:10:25 +00:00
Jose Diaz-Gonzalez
0950d5bb67 Merge pull request #5404 from dokku/dependabot/docker/tests/apps/dockerfile-dokku-scale/node-18-alpine
chore(deps): bump node from 4-alpine to 18-alpine in /tests/apps/dockerfile-dokku-scale
2022-10-14 19:09:44 -04:00
Jose Diaz-Gonzalez
bea3ad5d72 Merge pull request #5402 from dokku/dependabot/docker/tests/apps/dockerfile-procfile-bad/node-18-alpine
chore(deps): bump node from 4-alpine to 18-alpine in /tests/apps/dockerfile-procfile-bad
2022-10-14 19:09:34 -04:00
Jose Diaz-Gonzalez
c86d6cb326 Merge pull request #5398 from dokku/dependabot/docker/tests/apps/go-fail-predeploy/golang-1.19.2
chore(deps): bump golang from 1.17.1 to 1.19.2 in /tests/apps/go-fail-predeploy
2022-10-14 19:09:12 -04:00
Jose Diaz-Gonzalez
adfbb5012c Merge pull request #5396 from dokku/dependabot/docker/tests/apps/gogrpc/golang-1.19.2
chore(deps): bump golang from 1.17.1 to 1.19.2 in /tests/apps/gogrpc
2022-10-14 19:08:51 -04:00
dependabot[bot]
9c426d8f68 chore(deps): bump golang in /tests/apps/go-fail-predeploy
Bumps golang from 1.17.1 to 1.19.2.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-14 05:19:39 +00:00
dependabot[bot]
388fb9a3ae chore(deps): bump golang from 1.17.1 to 1.19.2 in /tests/apps/gogrpc
Bumps golang from 1.17.1 to 1.19.2.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-14 05:19:39 +00:00
dependabot[bot]
d290f819a1 chore(deps): bump node in /tests/apps/dockerfile-dokku-scale
Bumps node from 4-alpine to 18-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-14 05:19:18 +00:00
dependabot[bot]
faed5e359d chore(deps): bump node in /tests/apps/dockerfile-procfile-bad
Bumps node from 4-alpine to 18-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-14 05:18:52 +00:00
Jose Diaz-Gonzalez
d880454ffa Merge pull request #5399 from dokku/dependabot/docker/tests/apps/zombies-dockerfile-no-tini/golang-1.19.2
chore(deps): bump golang from 1.17.1 to 1.19.2 in /tests/apps/zombies-dockerfile-no-tini
2022-10-14 01:18:51 -04:00
Jose Diaz-Gonzalez
d82c57e003 Merge pull request #5395 from dokku/dependabot/docker/tests/apps/dockerfile-noexpose/node-18-alpine
chore(deps): bump node from 4-alpine to 18-alpine in /tests/apps/dockerfile-noexpose
2022-10-14 01:17:51 -04:00
dependabot[bot]
77ea355bca chore(deps): bump python in /docs/_build
Bumps python from 3.10-alpine to 3.10.8-alpine.

---
updated-dependencies:
- dependency-name: python
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-14 01:20:04 +00:00
dependabot[bot]
5d9e70d155 chore(deps): bump golang in /tests/apps/zombies-dockerfile-no-tini
Bumps golang from 1.17.1 to 1.19.2.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-14 01:19:46 +00:00
dependabot[bot]
89fcbe42d9 chore(deps): bump ruby in /tests/apps/dockerfile-entrypoint
Bumps ruby from 2.5.1 to 3.1.2.

---
updated-dependencies:
- dependency-name: ruby
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-14 01:19:45 +00:00
dependabot[bot]
de1f03c72b chore(deps): bump node in /tests/apps/dockerfile-noexpose
Bumps node from 4-alpine to 18-alpine.

---
updated-dependencies:
- dependency-name: node
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-14 01:19:43 +00:00
Jose Diaz-Gonzalez
e1c74fe305 Merge pull request #5394 from dokku/dependabot-dockerfile
Add support for automatically updating Dockerfile FROM statements via dependabot
2022-10-13 21:19:16 -04:00
Jose Diaz-Gonzalez
ffd4c3470e feat: add support for automatically updating Dockerfile FROM statements via dependabot
There are quite a few images that won't build on ARM, so getting these up to date on a more regular basis is important for local development on M1 Macs (selfish, I know).
2022-10-13 21:18:17 -04:00
Dokku Bot
6cda8189f2 Release 0.28.2
# History

## 0.28.2

Install/update via the bootstrap script:

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

### Bug Fixes

- #5393: @josegonzalez Correct issue with replacing the version in the installation guide
- #5354: @josegonzalez Report the correct value for the letsencrypt server
- #5347: @josegonzalez Set correct version on builder-lambda plugin

### New Features

- #5392: @josegonzalez Add support for devcontainers on ARM64 instances

### Documentation

- #5365: @josegonzalez Use correct indentation for embedded list in remote commands documentation
- #5357: @josegonzalez Reference blog on main domain
- #5355: @josegonzalez Autogenerate documentation in CI
- #5351: @josegonzalez Fix formatting on list in deployment tasks
- #5328: @holtergram Call out git remote change when renaming an app
- #5344: @josegonzalez Generate docs via mkdocs
- #5342: @josegonzalez Ensure doc links work on github as well as on docs site
- #5336: @josegonzalez Add note about docker-compose requirement for using the caddy plugin
- #5337: @josegonzalez Add note about docker-compose requirement for using the traefik…
- #5332: @cdubz Remove errant semicolon from wget command
- #5329: @josegonzalez Use updated url for gliderlabs slack invite app
- #5315: @alexislefebvre Fix doc link for systems with less than 1GB memory

### Other

- #5382: @dependabot[bot] chore(deps): bump sinatra from 2.2.2 to 3.0.2 in /tests/apps/ruby
- #5386: @dependabot[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 224 to 225 in /tests/apps/php
- #5361: @dependabot[bot] chore(deps): bump jetty-servlet from 11.0.11 to 11.0.12 in /tests/apps/java
- #5346: @dependabot[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 223 to 224 in /tests/apps/php
2022-10-13 04:13:09 +00:00
Jose Diaz-Gonzalez
e63dbcd132 Merge pull request #5393 from dokku/josegonzalez-patch-1
Correct issue with replacing the version in the installation guide
2022-10-13 00:11:45 -04:00
Jose Diaz-Gonzalez
716326573c fix: correct issue with replacing the version in the installation guide 2022-10-13 00:11:37 -04:00
Jose Diaz-Gonzalez
99e2e0ea68 Merge pull request #5392 from dokku/vscode-arm
Add support for devcontainers on ARM64 instances
2022-10-13 00:09:30 -04:00
Jose Diaz-Gonzalez
674cb2b6eb docs: document development in a dev container
The process is roughly the same as in a VM.
2022-10-12 22:41:47 -04:00
Jose Diaz-Gonzalez
d9e584f5a1 docs: split out testing documentation a bit 2022-10-12 22:08:50 -04:00
Jose Diaz-Gonzalez
a39a47b3ae feat: respect TARGETARCH when installing development dependencies 2022-10-12 21:53:11 -04:00
Jose Diaz-Gonzalez
dfcce1c6a6 fix: ensure we install the golang for the correct architecture
TARGETARCH is an automatic build-arg that docker injects - https://docs.docker.com/engine/reference/builder/#automatic-platform-args-in-the-global-scope - so this is safe to depend on.
2022-10-12 21:51:52 -04:00
Jose Diaz-Gonzalez
8cb708b8f7 Merge pull request #5382 from dokku/dependabot/bundler/tests/apps/ruby/sinatra-3.0.2
chore(deps): bump sinatra from 2.2.2 to 3.0.2 in /tests/apps/ruby
2022-10-11 18:52:55 -07:00
Jose Diaz-Gonzalez
f8489efe17 Merge pull request #5386 from dokku/dependabot/composer/tests/apps/php/heroku/heroku-buildpack-php-225
chore(deps-dev): bump heroku/heroku-buildpack-php from 224 to 225 in /tests/apps/php
2022-10-11 18:52:42 -07:00
dependabot[bot]
7843738a2f chore(deps-dev): bump heroku/heroku-buildpack-php in /tests/apps/php
Bumps [heroku/heroku-buildpack-php](https://github.com/heroku/heroku-buildpack-php) from 224 to 225.
- [Release notes](https://github.com/heroku/heroku-buildpack-php/releases)
- [Changelog](https://github.com/heroku/heroku-buildpack-php/blob/main/CHANGELOG.md)
- [Commits](https://github.com/heroku/heroku-buildpack-php/compare/v224...v225)

---
updated-dependencies:
- dependency-name: heroku/heroku-buildpack-php
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-06 13:13:36 +00:00
dependabot[bot]
300aacfa5b chore(deps): bump sinatra from 2.2.2 to 3.0.2 in /tests/apps/ruby
Bumps [sinatra](https://github.com/sinatra/sinatra) from 2.2.2 to 3.0.2.
- [Release notes](https://github.com/sinatra/sinatra/releases)
- [Changelog](https://github.com/sinatra/sinatra/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sinatra/sinatra/compare/v2.2.2...v3.0.2)

---
updated-dependencies:
- dependency-name: sinatra
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-03 13:06:59 +00:00
Jose Diaz-Gonzalez
b72a2544ab Merge pull request #5365 from dokku/josegonzalez-patch-1
Use correct indentation for embedded list in remote commands documentation
2022-09-19 13:30:33 -04:00
Jose Diaz-Gonzalez
1474297397 docs: use correct indentation for embedded list in remote commands documentation 2022-09-19 13:29:47 -04:00
Jose Diaz-Gonzalez
02c304fada Merge pull request #5361 from dokku/dependabot/maven/tests/apps/java/org.eclipse.jetty-jetty-servlet-11.0.12
chore(deps): bump jetty-servlet from 11.0.11 to 11.0.12 in /tests/apps/java
2022-09-16 10:25:11 -04:00
dependabot[bot]
64706f021c chore(deps): bump jetty-servlet in /tests/apps/java
Bumps [jetty-servlet](https://github.com/eclipse/jetty.project) from 11.0.11 to 11.0.12.
- [Release notes](https://github.com/eclipse/jetty.project/releases)
- [Commits](https://github.com/eclipse/jetty.project/compare/jetty-11.0.11...jetty-11.0.12)

---
updated-dependencies:
- dependency-name: org.eclipse.jetty:jetty-servlet
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-16 13:10:22 +00:00
Jose Diaz-Gonzalez
10c222839d Merge pull request #5357 from dokku/unify-blog
Reference blog on main domain
2022-09-11 15:00:40 -04:00
Jose Diaz-Gonzalez
a3ca2a56b8 docs: reference blog on main domain
The blog is now backed by mkdocs and has been moved to a subdirectory of dokku.com.
2022-09-11 15:00:17 -04:00
Jose Diaz-Gonzalez
bdf12179fa fix: sort files 2022-09-10 16:11:16 -04:00
Jose Diaz-Gonzalez
674de032f8 fix: run shfmt 2022-09-10 16:09:19 -04:00
Jose Diaz-Gonzalez
807ae5e651 chore: drop debug statement 2022-09-10 16:06:00 -04:00
Jose Diaz-Gonzalez
bf26d32495 fix: setup correct python version for generating docs 2022-09-10 16:05:37 -04:00
Jose Diaz-Gonzalez
b23eb8f330 debug: output the current version file for debugging 2022-09-10 16:01:29 -04:00
Jose Diaz-Gonzalez
c715857ac7 fix: ensure the generated site is owned by the CI user 2022-09-10 15:54:39 -04:00
Jose Diaz-Gonzalez
a74ab40494 debug: note the current user and owner of files 2022-09-10 15:09:27 -04:00
Jose Diaz-Gonzalez
7316b6322c fix: ensure the docs image is generated 2022-09-10 15:03:52 -04:00
Jose Diaz-Gonzalez
14752ac407 Merge pull request #5355 from dokku/autogenerate-docs
Autogenerate documentation in CI
2022-09-10 14:59:37 -04:00
Jose Diaz-Gonzalez
3aab81aa7c feat: generate documentation in CI and auto-push to the docs site 2022-09-10 14:53:21 -04:00
Jose Diaz-Gonzalez
bed0e0ce71 feat: clone generated docs site before running docs generation 2022-09-10 14:34:15 -04:00
Jose Diaz-Gonzalez
46b9df3872 Merge pull request #5354 from dokku/caddy-report-output
Report the correct value for the letsencrypt server
2022-09-10 14:26:34 -04:00
Jose Diaz-Gonzalez
a2c8c77dad fix: report the correct value for the letsencrypt server 2022-09-10 00:04:52 -04:00
Jose Diaz-Gonzalez
224dc15f09 Merge pull request #5351 from dokku/josegonzalez-patch-1
Fix formatting on list in deployment tasks
2022-09-08 15:18:57 -04:00
Jose Diaz-Gonzalez
68752c9318 docs: fix formatting on list in deployment tasks 2022-09-08 15:15:26 -04:00
Jose Diaz-Gonzalez
0abbe320f3 Merge pull request #5347 from dokku/josegonzalez-patch-1
Set correct version on builder-lambda plugin
2022-09-06 22:32:08 -04:00
Jose Diaz-Gonzalez
59c7144255 fix: set correct version on builder-lambda plugin 2022-09-06 22:31:55 -04:00
Jose Diaz-Gonzalez
c5d282dcd1 Merge pull request #5328 from holtergram/patch-1
Update docs: Added Git change remote
2022-09-06 22:21:11 -04:00
Jose Diaz-Gonzalez
87c11ca077 Merge pull request #5346 from dokku/dependabot/composer/tests/apps/php/heroku/heroku-buildpack-php-224
chore(deps-dev): bump heroku/heroku-buildpack-php from 223 to 224 in /tests/apps/php
2022-09-06 22:20:32 -04:00
dependabot[bot]
bf13a6fd97 chore(deps-dev): bump heroku/heroku-buildpack-php in /tests/apps/php
Bumps [heroku/heroku-buildpack-php](https://github.com/heroku/heroku-buildpack-php) from 223 to 224.
- [Release notes](https://github.com/heroku/heroku-buildpack-php/releases)
- [Changelog](https://github.com/heroku/heroku-buildpack-php/blob/main/CHANGELOG.md)
- [Commits](https://github.com/heroku/heroku-buildpack-php/compare/v223...v224)

---
updated-dependencies:
- dependency-name: heroku/heroku-buildpack-php
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-06 13:12:46 +00:00
Jose Diaz-Gonzalez
75beecf65b Merge pull request #5344 from dokku/mkdocs-support
Generate docs via mkdocs
2022-09-05 22:00:41 -04:00
Jose Diaz-Gonzalez
8845715959 fix: correct current version 2022-09-05 21:53:34 -04:00
Jose Diaz-Gonzalez
c2a170b6ec chore: use normal blog link for now 2022-09-05 21:49:04 -04:00
Jose Diaz-Gonzalez
4ed1bcb3f4 chore: fix formatting 2022-09-05 21:45:46 -04:00
Jose Diaz-Gonzalez
dd26a82646 fix: add note about existing docs 2022-09-05 21:33:26 -04:00
Jose Diaz-Gonzalez
9ab58d6f33 feat: cleanup output and only ever generate latest docs for a version 2022-09-05 21:31:55 -04:00
Jose Diaz-Gonzalez
9cb54fc742 chore: silence command 2022-09-05 21:28:05 -04:00
Jose Diaz-Gonzalez
80924a0c31 fix: do not use unsupported hyphens in block name 2022-09-05 21:22:19 -04:00
Jose Diaz-Gonzalez
4b086ff8a4 chore: hide outdated message for latest docs 2022-09-05 21:21:06 -04:00
Jose Diaz-Gonzalez
b53a8526cd fix: add latest alias to latest docs 2022-09-05 21:20:42 -04:00
Jose Diaz-Gonzalez
401183fdd8 feat: use absolute url 2022-09-05 21:20:16 -04:00
Jose Diaz-Gonzalez
a862bdaf88 feat: add override 2022-09-05 21:02:44 -04:00
Jose Diaz-Gonzalez
e77e8d71bd fix: redirect to the correct page for old doc versions 2022-09-05 20:58:29 -04:00
Jose Diaz-Gonzalez
344d2e83ad fix: ensure the versions are sorted 2022-09-05 20:41:40 -04:00
Jose Diaz-Gonzalez
4c9deedba9 fix: rewrite home logo link in index.html 2022-09-05 20:25:41 -04:00
Jose Diaz-Gonzalez
460edc8b3e fix: remove unneeded variables 2022-09-05 20:24:57 -04:00
Jose Diaz-Gonzalez
98117db6a5 feat: write the mkdocs version 2022-09-05 20:20:52 -04:00
Jose Diaz-Gonzalez
cf92615936 feat: add social links to footer 2022-09-05 19:38:46 -04:00
Jose Diaz-Gonzalez
11b640c0b8 fix: drop trace output 2022-09-05 19:28:33 -04:00
Jose Diaz-Gonzalez
48ddbb4279 feat: ensure we build the app with the static buildpack 2022-09-05 19:28:20 -04:00
Jose Diaz-Gonzalez
3240491113 fix: ensure the assets are always up to date 2022-09-05 19:28:05 -04:00
Jose Diaz-Gonzalez
1d232aae89 fix: add missing / 2022-09-05 19:04:53 -04:00
Jose Diaz-Gonzalez
d3890fee9f feat: add rewrites for older versions 2022-09-05 19:03:56 -04:00
Jose Diaz-Gonzalez
8fe33a0e41 docs: copy the extra css to subsites 2022-09-05 17:35:48 -04:00
Jose Diaz-Gonzalez
d560ee13e0 docs: switch to the acquamarine color 2022-09-05 17:35:30 -04:00
Jose Diaz-Gonzalez
1d5c9edbd2 docs: use an easier to understand icon for toggling light mode 2022-09-05 17:35:17 -04:00
Jose Diaz-Gonzalez
4b0a40a20c docs: add navigation indexes for installations and upgrades 2022-09-05 17:29:09 -04:00
Jose Diaz-Gonzalez
47c1bfe26d docs: rename upgrading index to allow supporting navigation indexes 2022-09-05 17:18:00 -04:00
Jose Diaz-Gonzalez
01531c3986 docs: cleanup links to renamed docs 2022-09-05 16:49:56 -04:00
Jose Diaz-Gonzalez
d3a5289156 docs: turn absolute links into relative links
This is necessary as links in mkdocs must be relative.
2022-09-05 16:46:13 -04:00
Jose Diaz-Gonzalez
fa7de79faf docs: cleanup whitespace in codeblocks 2022-09-05 15:38:49 -04:00
Jose Diaz-Gonzalez
db11f1f15f docs: remove unnecessary link
This is duplicated through a redirect.
2022-09-05 15:28:46 -04:00
Jose Diaz-Gonzalez
0d6263c9b5 chore: drop extra print 2022-09-05 15:27:52 -04:00
Jose Diaz-Gonzalez
ab0b127778 chore: update build dependencies 2022-09-05 15:16:37 -04:00
Jose Diaz-Gonzalez
062aa7aa43 docs: add code for generating documentation from all old versions of dokku
This generates the appropriate versions for our usage, in addition to ensuring the markdown is of a format that mkdocs understands.
2022-09-05 14:49:56 -04:00
Jose Diaz-Gonzalez
f7905b4943 docs: add code for building docs in ci 2022-09-05 14:46:55 -04:00
Jose Diaz-Gonzalez
08b77b62d4 docs: add initial files for mkdocs support 2022-09-05 14:46:22 -04:00
Jose Diaz-Gonzalez
b8907d1f8e docs: update page titles to match sidebar 2022-09-05 14:43:45 -04:00
Jose Diaz-Gonzalez
9b05b9c2f4 Merge pull request #5342 from dokku/docs-links
Ensure doc links work on github as well as on docs site
2022-09-03 01:14:09 -04:00
Jose Diaz-Gonzalez
0b097b9b87 docs: ensure doc links work on github as well as on docs site 2022-09-03 01:13:31 -04:00
Jose Diaz-Gonzalez
ece77aa8c4 Merge pull request #5336 from dokku/5335-caddy
Add note about docker-compose requirement for using the caddy plugin
2022-08-30 13:29:05 -04:00
Jose Diaz-Gonzalez
0b5743a74c Merge pull request #5337 from dokku/5335-traefik
Add note about docker-compose requirement for using the traefik…
2022-08-30 13:27:57 -04:00
Jose Diaz-Gonzalez
66d2694751 docs: add note about docker-compose requirement for using the traefik plugin 2022-08-30 13:27:26 -04:00
Jose Diaz-Gonzalez
46ee448489 docs: add note about docker-compose requirement for using the caddy plugin 2022-08-30 13:27:24 -04:00
Jose Diaz-Gonzalez
953a2636a4 Merge pull request #5332 from cdubz/patch-1
Remove errant semicolon from wget command
2022-08-29 11:52:53 -04:00
Christopher Charbonneau Wells
1d1daafc07 Remove errant semicolon
Running the command with the semicolon results in a 404 Not Found.
2022-08-28 19:35:47 -07:00
Jose Diaz-Gonzalez
19ed0b00ea Merge pull request #5329 from dokku/update-invite-links
Use updated url for gliderlabs slack invite app
2022-08-25 18:20:01 -04:00
Jose Diaz-Gonzalez
18e787d65f docs: use updated url for gliderlabs slack invite app 2022-08-25 18:19:33 -04:00
holtergram
548013e46f Update docs: Added Git change remote
In order to make `git push` work after renaming an app the hint was added to update the remote url
2022-08-25 22:39:38 +02:00
Jose Diaz-Gonzalez
69738abec2 feat: add json format output to run:list
Also add some unit tests to the command.

Closes #5171
2022-08-22 22:37:04 -04:00
Jose Diaz-Gonzalez
6348126f0c docs: add missing upgrade guide 2022-08-22 21:47:54 -04:00
Jose Diaz-Gonzalez
0fd909b277 Merge pull request #5315 from alexislefebvre/patch-1
Fix link to system < 1GB memory
2022-08-18 17:49:42 -04:00
Alexis Lefebvre
563293d1ff Fix link to system < 1GB memory 2022-08-18 23:43:49 +02:00
Dokku Bot
9d87bdf93b Release 0.28.1
# History

## 0.28.1

Install/update via the bootstrap script:

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

### Bug Fixes

- #5313: @josegonzalez Fix issues with multiple domains in new proxy plugins
2022-08-18 20:53:49 +00:00
Jose Diaz-Gonzalez
702fb6c330 Merge pull request #5313 from dokku/5311-proxy-tests
Fix issues with multiple domains in new proxy plugins
2022-08-18 16:53:07 -04:00
Jose Diaz-Gonzalez
16dd0adb35 fix: drop extra quote on LE server 2022-08-18 13:10:47 -04:00
Jose Diaz-Gonzalez
c9caa0880f tests: add unit tests and support multiple routers/services in traefik 2022-08-18 11:13:34 -04:00
Jose Diaz-Gonzalez
801fc5d78c fix: ensure we don't output anything extra in tests 2022-08-18 11:13:01 -04:00
Jose Diaz-Gonzalez
741ffc635c fix: fix issue with multiple domain support for caddy 2022-08-18 10:53:08 -04:00
Jose Diaz-Gonzalez
591fe8642d fix: correct help output for traefik 2022-08-18 10:50:46 -04:00
Jose Diaz-Gonzalez
3a44c414d1 fix: correct help output for caddy 2022-08-18 10:50:39 -04:00
Dokku Bot
5276543ee5 Release 0.28.0
# History

## 0.28.0

Install/update via the bootstrap script:

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

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

### Bug Fixes

- #5299: @josegonzalez Do not trigger restarts when mutating config globally
- #5298: @josegonzalez Set core.bare=true on correct repository path

### New Features

- #5300: @josegonzalez Add the ability to disable the init process
- #5295: @josegonzalez Add an official caddy proxy implementation
- #5293: @josegonzalez Add an official traefik proxy implementation
- #5202: @josegonzalez Add builder-lambda plugin

### Documentation

- #5296: @janlavicka Fix typo in kubernetes docs
- #5288: @josegonzalez Do not have bottom border float on page
- #5283: @alexgleason Homepage: fix link in quick install guide

### Other

- #5297: @josegonzalez Update vector image
- #5294: @josegonzalez Document and enable alternative proxy implementations
- #5291: @dependabot[bot] chore(deps): bump werkzeug from 2.2.1 to 2.2.2 in /tests/apps/python-flask
- #5292: @dependabot[bot] chore(deps): bump flask from 2.2.1 to 2.2.2 in /tests/apps/multi
- #5290: @dependabot[bot] chore(deps): bump flask from 2.2.1 to 2.2.2 in /tests/apps/python-flask
- #5227: @josegonzalez Drop forwarded port from vagrant setup
- #5285: @josegonzalez Update all development dependencies
- #5240: @josegonzalez Drop support for CentOS, Fedora, OpenSuse, as well as Debian 9
- #5281: @dependabot[bot] chore(deps): bump flask from 2.1.3 to 2.2.1 in /tests/apps/multi
- #5280: @dependabot[bot] chore(deps): bump flask from 2.1.3 to 2.2.1 in /tests/apps/python-flask
- #5284: @dependabot[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 222 to 223 in /tests/apps/php
2022-08-17 18:29:17 +00:00
Jose Diaz-Gonzalez
4ce71cb6db Merge pull request #5300 from dokku/5287-disable-init
Add the ability to disable the init process
2022-08-15 16:23:14 -04:00
Jose Diaz-Gonzalez
f09b960997 tests: add a unit test for the init-process option 2022-08-14 13:45:41 -04:00
Jose Diaz-Gonzalez
e15f411939 Merge pull request #5299 from dokku/5289-no-global-restarts
Do not trigger restarts when mutating config globally
2022-08-11 15:50:17 -04:00
Jose Diaz-Gonzalez
58af38a9ab Merge pull request #5298 from dokku/5275-git-bare
Set core.bare=true on correct repository path
2022-08-11 15:50:07 -04:00
Jose Diaz-Gonzalez
bc4eaa002f fix: correct shfmt issue 2022-08-11 13:07:00 -04:00
Jose Diaz-Gonzalez
78ad3f59b1 Merge pull request #5297 from dokku/update-vector
Update vector image
2022-08-11 13:06:12 -04:00
Jose Diaz-Gonzalez
045825857a fix: add missing source and respect any user settings for init-process property 2022-08-11 11:51:31 -04:00
Jose Diaz-Gonzalez
293ead4f35 feat: force-disable the --init flag for linuxserver images
All linuxserver images uses S6, and there are enough of them that this makes sense to autodetect on behalf of users.
2022-08-10 21:33:08 -04:00
Jose Diaz-Gonzalez
c4c6ac5617 feat: add the ability to disable the init process
This allows projects using s6 overlay - in particular linxserver images - the ability to disable --init flag injection.

Closes #5287
2022-08-10 21:32:55 -04:00
Jose Diaz-Gonzalez
414c891c6c fix: do not trigger restarts when mutating config globally
Closes #5289
2022-08-10 17:01:31 -04:00
Jose Diaz-Gonzalez
deeb18b56c fix: set core.bare=true on correct repository path
Closes #5275
2022-08-10 16:51:17 -04:00
Jose Diaz-Gonzalez
f60e0d7c8a feat: update vector image
Also drop value for --watch-config flag, as this is now properly parsed as a boolean value.

Refs #5197
2022-08-10 16:46:56 -04:00
Jose Diaz-Gonzalez
6a3933213c Merge pull request #5295 from dokku/caddy-proxy
Add an official caddy proxy implementation
2022-08-10 16:08:08 -04:00
Jose Diaz-Gonzalez
8b2afbadc2 Merge pull request #5296 from janlavicka/docs-kubernetes
docs: fix typo in kubernetes docs
2022-08-10 14:34:43 -04:00
Jan Lavička
403da909cb docs: fix typo in kubernetes docs 2022-08-10 18:26:27 +00:00
Jose Diaz-Gonzalez
d749a400a2 docs: add new notes 2022-08-10 14:23:17 -04:00
Jose Diaz-Gonzalez
a7d5fb69e2 docs: add migration note 2022-08-10 14:15:05 -04:00
Jose Diaz-Gonzalez
e66671f3c5 feat: implement the caddy plugin
This plugin uses a docker-compose based Caddy installation in conjunction with injected container labels to route requests. It only exposes the minimal necessary for routing traffic to docker containers. Users wishing to customize further labels may explore using the docker-options plugin to attach additional labels during the 'deploy' phase.
2022-08-10 14:13:19 -04:00
Jose Diaz-Gonzalez
583cbc7326 docs: cleanup proxy plugin headers 2022-08-10 14:08:10 -04:00
Jose Diaz-Gonzalez
d32f0fe2b5 docs: add a warning for using multiple proxy services 2022-08-10 14:06:05 -04:00
Jose Diaz-Gonzalez
9c6380f07d chore: update compose version 2022-08-10 13:56:29 -04:00
Jose Diaz-Gonzalez
ea7299eef7 fix: do not expose port 443 if no letsencrypt email is set 2022-08-10 13:56:18 -04:00
Jose Diaz-Gonzalez
d5085d3156 feat: expose letsencrypt-server property for traefik plugin 2022-08-10 13:56:06 -04:00
Jose Diaz-Gonzalez
8ab44f1ab0 Merge pull request #5293 from dokku/traefik-proxy
Add an official traefik proxy implementation
2022-08-10 12:06:19 -04:00
Jose Diaz-Gonzalez
12d5bc4649 refactor: use http and https as traefik entrypoints
This makes it a bit more clear as to where things are being redirected for web containers.

Also gate the https entrypoint behind the letsencrypt integration.
2022-08-10 05:20:54 -04:00
Jose Diaz-Gonzalez
bebb05268c feat: restart traefik automatically unless stopped 2022-08-10 05:20:54 -04:00
Jose Diaz-Gonzalez
aeaf8e78f1 fix: run shfmt 2022-08-10 05:20:54 -04:00
Jose Diaz-Gonzalez
b66a8e6181 docs: note that requests are routed once the container is running. 2022-08-10 05:20:54 -04:00
Jose Diaz-Gonzalez
8fe122ffbd feat: implement the traefik plugin
This plugin uses a docker-compose based Traefik installation in conjunction with injected container labels to route requests. It only exposes the minimal necessary for routing traffic to docker containers. Users wishing to customize further labels may explore using the docker-options plugin to attach additional labels during the 'deploy' phase.
2022-08-10 05:20:54 -04:00
Jose Diaz-Gonzalez
45e250443c Merge pull request #5294 from dokku/alternative-proxies
Document and enable alternative proxy implementations
2022-08-10 05:20:41 -04:00
Jose Diaz-Gonzalez
f4c886e10f Merge pull request #5291 from dokku/dependabot/pip/tests/apps/python-flask/werkzeug-2.2.2
chore(deps): bump werkzeug from 2.2.1 to 2.2.2 in /tests/apps/python-flask
2022-08-10 05:10:46 -04:00
Jose Diaz-Gonzalez
40c5cd089a Merge pull request #5292 from dokku/dependabot/pip/tests/apps/multi/flask-2.2.2
chore(deps): bump flask from 2.2.1 to 2.2.2 in /tests/apps/multi
2022-08-10 05:10:38 -04:00
Jose Diaz-Gonzalez
823928a44c Merge pull request #5290 from dokku/dependabot/pip/tests/apps/python-flask/flask-2.2.2
chore(deps): bump flask from 2.2.1 to 2.2.2 in /tests/apps/python-flask
2022-08-10 05:10:29 -04:00
Jose Diaz-Gonzalez
98feb988fa feat: implement nginx:start and nginx:stop commands 2022-08-10 04:23:05 -04:00
Jose Diaz-Gonzalez
b605de522c refactor: split out proxy port configuration into it's own trigger
This will allow it to be called by plugins other than the nginx-vhosts one.
2022-08-10 04:23:05 -04:00
Jose Diaz-Gonzalez
707cafd26d fix: correct the required networking suffix 2022-08-10 04:23:05 -04:00
Jose Diaz-Gonzalez
f2c7392276 docs: add documentation for implementing a proxy 2022-08-10 04:23:05 -04:00
Jose Diaz-Gonzalez
f094ea1f72 chore: move nginx docs to new proxies location 2022-08-10 04:23:05 -04:00
dependabot[bot]
ebed512dbc chore(deps): bump flask from 2.2.1 to 2.2.2 in /tests/apps/multi
Bumps [flask](https://github.com/pallets/flask) from 2.2.1 to 2.2.2.
- [Release notes](https://github.com/pallets/flask/releases)
- [Changelog](https://github.com/pallets/flask/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/flask/compare/2.2.1...2.2.2)

---
updated-dependencies:
- dependency-name: flask
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-09 13:14:28 +00:00
dependabot[bot]
8cef4a4f5d chore(deps): bump werkzeug in /tests/apps/python-flask
Bumps [werkzeug](https://github.com/pallets/werkzeug) from 2.2.1 to 2.2.2.
- [Release notes](https://github.com/pallets/werkzeug/releases)
- [Changelog](https://github.com/pallets/werkzeug/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/werkzeug/compare/2.2.1...2.2.2)

---
updated-dependencies:
- dependency-name: werkzeug
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-09 13:14:12 +00:00
dependabot[bot]
36e93cab03 chore(deps): bump flask from 2.2.1 to 2.2.2 in /tests/apps/python-flask
Bumps [flask](https://github.com/pallets/flask) from 2.2.1 to 2.2.2.
- [Release notes](https://github.com/pallets/flask/releases)
- [Changelog](https://github.com/pallets/flask/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/flask/compare/2.2.1...2.2.2)

---
updated-dependencies:
- dependency-name: flask
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-09 13:14:08 +00:00
Jose Diaz-Gonzalez
c4de27a4a6 Merge pull request #5202 from dokku/builder-lambda 2022-08-09 04:46:46 -04:00
Jose Diaz-Gonzalez
6caf4e6039 fix: use newer lambda-builder 2022-08-09 02:34:04 -04:00
Jose Diaz-Gonzalez
7cc84dcdbe tests: add unit test for lambda builder 2022-08-09 02:13:06 -04:00
Jose Diaz-Gonzalez
65b9c6aa3e fix: delete the data dir for the app after the app is deleted 2022-08-09 02:12:27 -04:00
Jose Diaz-Gonzalez
2959fdd154 fix: create the data directory for an app as necessary 2022-08-09 02:11:48 -04:00
Jose Diaz-Gonzalez
a71e4219be fix: set the correct image source type based on label
We also have a special carveout for herokuish as folks may deploy built images with it.
2022-08-09 02:11:32 -04:00
Jose Diaz-Gonzalez
30e279b6b9 fix: suppress labeling output for the dockerfile builder 2022-08-09 02:10:46 -04:00
Jose Diaz-Gonzalez
216647890e Merge pull request #5288 from dokku/josegonzalez-patch-1
Do not have bottom border float on page
2022-08-08 22:33:19 -04:00
Jose Diaz-Gonzalez
9c3876045a fix: do not have bottom border float on page
This covers up some of the content.
2022-08-08 22:33:06 -04:00
Jose Diaz-Gonzalez
86d7b6b649 docs: fix path for alternative lamba.yml 2022-08-08 15:15:29 -04:00
Jose Diaz-Gonzalez
d91957b969 fix: use correct path for source call 2022-08-08 15:15:29 -04:00
Jose Diaz-Gonzalez
5ee0619888 fix: install the lambda-builder package in ci and development 2022-08-08 15:15:28 -04:00
Jose Diaz-Gonzalez
fbd77ee5e8 docs: document the lambda builder 2022-08-08 15:14:49 -04:00
Jose Diaz-Gonzalez
35c248fb5c fix: use correct variable name for lambda.yml path 2022-08-08 15:14:49 -04:00
Jose Diaz-Gonzalez
7eecbefdd0 chore: run shfmt 2022-08-08 15:14:49 -04:00
Jose Diaz-Gonzalez
2715d2a485 chore: drop extra cp statement 2022-08-08 15:14:49 -04:00
Jose Diaz-Gonzalez
951dd98f17 feat: ensure the container is routable by dokku
- Keep the container alive via DOCKER_LAMBDA_STAY_OPEN=1
- Set the default listening port to 5000 (which is what herokuish will use)
2022-08-08 15:14:49 -04:00
Jose Diaz-Gonzalez
8ca71d9ff5 fix: add com.dokku.builder-type label to built image
This will allow schedulers to make decisions when interacting with images from specific builders.
2022-08-08 15:14:49 -04:00
Jose Diaz-Gonzalez
f2e791f48f fix: do not detect builder-lambda on armhf
While the lambda-builder project builds for armhf, the underlying images are not armhf/arm compatible (only arm64).
2022-08-08 15:14:48 -04:00
Jose Diaz-Gonzalez
f549934740 fix: update lambda-builder usage and write out Procfile/lambda.zip 2022-08-08 15:14:48 -04:00
Jose Diaz-Gonzalez
3a09d2217f feat: initial templates for scheduling (not building, but i need them somewhere) 2022-08-08 15:14:48 -04:00
Jose Diaz-Gonzalez
92790b70e8 feat: broken support for lambda-builder
It's currently broken because there are flags in there that aren't actually implemented
2022-08-08 15:14:48 -04:00
Jose Diaz-Gonzalez
02d6813209 scratch: initial implementation 2022-08-08 15:14:48 -04:00
Jose Diaz-Gonzalez
96ef82cbc9 Merge pull request #5227 from dokku/josegonzalez-patch-1
Drop forwarded port from vagrant setup
2022-08-08 15:08:32 -04:00
Jose Diaz-Gonzalez
f9c2251711 Merge branch 'master' into josegonzalez-patch-1 2022-08-08 15:08:22 -04:00
Jose Diaz-Gonzalez
fb73c9e1d9 Merge pull request #5285 from dokku/update-dev-dependencies
Update all development dependencies
2022-08-08 15:07:57 -04:00
Jose Diaz-Gonzalez
15695eded2 Merge pull request #5240 from dokku/drop-unsupported-os
Drop support for CentOS, Fedora, OpenSuse, as well as Debian 9
2022-08-07 18:36:52 -04:00
Jose Diaz-Gonzalez
70fc35c317 chore: drop unsupported operating systems
We will no longer support CentOS, Fedora, and Opensuse as installation targets. These are not actively maintained by anyone with commit rights and occasionally cause issues for users as they are not tested during the release process.

Rather than have subpar support for an untested operating system, we're removing support for them completely. Users of these operating systems should take a look migration to the docker-based installation method, which will always be tested and supported by the project.

Additionally, drop support for Debian 9 as it is now EOL.
2022-08-07 18:36:30 -04:00
Jose Diaz-Gonzalez
0835e7706f Merge pull request #5281 from dokku/dependabot/pip/tests/apps/multi/flask-2.2.1
chore(deps): bump flask from 2.1.3 to 2.2.1 in /tests/apps/multi
2022-08-07 18:34:43 -04:00
Jose Diaz-Gonzalez
c4d1196975 Merge pull request #5280 from dokku/dependabot/pip/tests/apps/python-flask/flask-2.2.1
chore(deps): bump flask from 2.1.3 to 2.2.1 in /tests/apps/python-flask
2022-08-07 18:34:37 -04:00
Jose Diaz-Gonzalez
4ce2d63a0e Merge pull request #5284 from dokku/dependabot/composer/tests/apps/php/heroku/heroku-buildpack-php-223
chore(deps-dev): bump heroku/heroku-buildpack-php from 222 to 223 in /tests/apps/php
2022-08-07 18:34:21 -04:00
Jose Diaz-Gonzalez
e4db82aebf chore: update all development dependencies 2022-08-07 14:16:16 -04:00
dependabot[bot]
3f05666d59 chore(deps-dev): bump heroku/heroku-buildpack-php in /tests/apps/php
Bumps [heroku/heroku-buildpack-php](https://github.com/heroku/heroku-buildpack-php) from 222 to 223.
- [Release notes](https://github.com/heroku/heroku-buildpack-php/releases)
- [Changelog](https://github.com/heroku/heroku-buildpack-php/blob/main/CHANGELOG.md)
- [Commits](https://github.com/heroku/heroku-buildpack-php/compare/v222...v223)

---
updated-dependencies:
- dependency-name: heroku/heroku-buildpack-php
  dependency-type: direct:development
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-05 13:10:58 +00:00
Jose Diaz-Gonzalez
35e1ac9825 Merge pull request #5283 from alexgleason/homepage-install-link
Homepage: fix link in quick install guide
2022-08-04 13:59:57 -04:00
Alex Gleason
4a81bce0e7 Homepage: fix link in quick install guide 2022-08-04 12:33:05 -05:00
dependabot[bot]
1d9b8fdda8 chore(deps): bump flask from 2.1.3 to 2.2.1 in /tests/apps/multi
Bumps [flask](https://github.com/pallets/flask) from 2.1.3 to 2.2.1.
- [Release notes](https://github.com/pallets/flask/releases)
- [Changelog](https://github.com/pallets/flask/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/flask/compare/2.1.3...2.2.1)

---
updated-dependencies:
- dependency-name: flask
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-04 13:10:51 +00:00
dependabot[bot]
571a96fc77 chore(deps): bump flask from 2.1.3 to 2.2.1 in /tests/apps/python-flask
Bumps [flask](https://github.com/pallets/flask) from 2.1.3 to 2.2.1.
- [Release notes](https://github.com/pallets/flask/releases)
- [Changelog](https://github.com/pallets/flask/blob/main/CHANGES.rst)
- [Commits](https://github.com/pallets/flask/compare/2.1.3...2.2.1)

---
updated-dependencies:
- dependency-name: flask
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-04 13:10:45 +00:00
Dokku Bot
63f7f39048 Release 0.27.10
# History

## 0.27.10

Install/update via the bootstrap script:

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

### Bug Fixes

- #5276: @d6rkaiz Remove duplicate syntax for nginx.conf

### Other

- #5274: @kennell readme: mention Ubuntu 22.04 compability
2022-08-01 15:09:46 +00:00
Jose Diaz-Gonzalez
ef5a2a9f5b Merge pull request #5276 from d6rkaiz/fix_duplicate_nginxconf
Remove duplicate syntax for nginx.conf
2022-08-01 11:08:50 -04:00
Isao Sugimoto
51547b7688 fix duplicate syntax for nginx.conf 2022-07-31 15:38:53 +00:00
Jose Diaz-Gonzalez
6fe2559c01 Merge pull request #5274 from kennell/patch-1 2022-07-30 17:30:31 -04:00
Kevin Kennell
af069041c5 readme: mention Ubuntu 22.04 compability 2022-07-30 23:30:06 +02:00
Jose Diaz-Gonzalez
dac21b7280 chore: drop forwarded port from vagrant setup
This isn't necessary since routing should be performed via the exposed `DOKKU_IP` or `dokku.me` hostname.
2022-06-26 12:41:17 -04:00
382 changed files with 7500 additions and 3101 deletions

View File

@@ -7,8 +7,9 @@ RUN apt-get install --no-install-recommends -y build-essential file nano && \
apt-get autoremove --yes && \
rm -rf /var/lib/apt/lists/*
RUN wget https://dl.google.com/go/go1.17.9.linux-amd64.tar.gz && \
tar -xvf go1.17.9.linux-amd64.tar.gz && \
ARG TARGETARCH
RUN wget https://dl.google.com/go/go1.19.2.linux-${TARGETARCH}.tar.gz && \
tar -xvf go1.19.2.linux-${TARGETARCH}.tar.gz && \
mv go /usr/local
RUN GOROOT=/usr/local/go /usr/local/go/bin/go install golang.org/x/tools/gopls@latest 2>&1

View File

@@ -0,0 +1,25 @@
#!/usr/bin/env bash
main() {
declare PLUGIN_NAME="$1"
local plugin_root="/root/go/src/github.com/dokku/dokku/plugins"
export GO111MODULE=off
echo "-----> Fetching onsi/gomega dependency for tests"
go get github.com/onsi/gomega || true
echo "-----> Fetching spf13/pflag dependency for subcommands"
go get github.com/spf13/pflag || true
pushd "$plugin_root" >/dev/null || true
find "$plugin_root/" -mindepth 1 -maxdepth 1 -type d -printf '%f\n' | while read -r plugin; do
pushd "$plugin_root/$plugin" >/dev/null || true
if [[ -f "go.mod" ]]; then
echo "-----> Fetching dependencies for $plugin plugin"
go get || true
fi
popd >/dev/null || true
done
popd >/dev/null || true
}
main "$@"

View File

@@ -10,7 +10,8 @@
"extensions": [
"golang.go",
"mads-hartmann.bash-ide-vscode",
"ms-vscode.makefile-tools"
"ms-vscode.makefile-tools",
"sleistner.vscode-fileutils"
],
"initializeCommand": ["mkdir", "-p", "tmp/data"],
"mounts": [
@@ -18,7 +19,7 @@
"source=${localWorkspaceFolder}/tmp/data/,target=/mnt/dokku/,type=bind"
],
"overrideCommand": false,
"postCreateCommand": "make setup-deploy-tests",
"postCreateCommand": "download-go-mod && make setup-deploy-tests",
"runArgs": ["--init"],
"workspaceFolder": "/root/go/src/github.com/dokku/dokku",
"workspaceMount": "type=bind,source=${localWorkspaceFolder},target=/root/go/src/github.com/dokku/dokku,consistency=cached"

View File

@@ -7,6 +7,8 @@ build
docs
tests
!build/package/*
!docs/_build/entrypoint
!docs/_build/requirements.txt
!tests/dhparam.pem
!contrib/bash-completion
!contrib/docker

View File

@@ -110,3 +110,78 @@ updates:
schedule:
interval: daily
open-pull-requests-limit: 10
- package-ecosystem: "docker"
directory: /""
schedule:
interval: daily
open-pull-requests-limit: 10
- package-ecosystem: "docker"
directory: "/tests/apps/dockerfile-noexpose"
schedule:
interval: daily
open-pull-requests-limit: 10
- package-ecosystem: "docker"
directory: "/tests/apps/dockerfile"
schedule:
interval: daily
open-pull-requests-limit: 10
- package-ecosystem: "docker"
directory: "/tests/apps/dockerfile-procfile"
schedule:
interval: daily
open-pull-requests-limit: 10
- package-ecosystem: "docker"
directory: "/tests/apps/dockerfile-entrypoint"
schedule:
interval: daily
open-pull-requests-limit: 10
- package-ecosystem: "docker"
directory: "/tests/apps/dockerfile-procfile-bad"
schedule:
interval: daily
open-pull-requests-limit: 10
- package-ecosystem: "docker"
directory: "/tests/apps/go-fail-predeploy"
schedule:
interval: daily
open-pull-requests-limit: 10
- package-ecosystem: "docker"
directory: "/tests/apps/zombies-dockerfile-no-tini"
schedule:
interval: daily
open-pull-requests-limit: 10
- package-ecosystem: "docker"
directory: "/tests/apps/dockerfile-release"
schedule:
interval: daily
open-pull-requests-limit: 10
- package-ecosystem: "docker"
directory: "/tests/apps/dockerfile-dokku-scale"
schedule:
interval: daily
open-pull-requests-limit: 10
- package-ecosystem: "docker"
directory: "/tests/apps/gogrpc"
schedule:
interval: daily
open-pull-requests-limit: 10
- package-ecosystem: "docker"
directory: "/tests/apps/zombies-dockerfile-tini"
schedule:
interval: daily
open-pull-requests-limit: 10
- package-ecosystem: "docker"
directory: "/tests/apps/go-fail-postdeploy"
schedule:
interval: daily
open-pull-requests-limit: 10
- package-ecosystem: "docker"
directory: "/docs/_build"
schedule:
interval: daily
open-pull-requests-limit: 10
- package-ecosystem: "docker"
directory: "/.devcontainer"
schedule:
interval: daily
open-pull-requests-limit: 10

39
.github/workflows/docs.yml vendored Normal file
View File

@@ -0,0 +1,39 @@
---
name: 'docs'
# yamllint disable-line rule:truthy
on:
push:
branches:
- master
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Cloning repo
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: "Setup python 3.10"
uses: actions/setup-python@v4
with:
python-version: '3.10'
- name: Generate documentation
env:
BOT_GITHUB_USERNAME: ${{ secrets.HOMEBREW_GITHUB_USERNAME }}
BOT_GITHUB_API_TOKEN: ${{ secrets.HOMEBREW_GITHUB_API_TOKEN }}
run: |
git config --global user.name 'Dokku Bot'
git config --global user.email no-reply@dokku.com
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
sudo chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
sudo apt update
sudo apt install gh -y
gh auth login --with-token <<<"$BOT_GITHUB_API_TOKEN"
contrib/build-docs

View File

@@ -18,7 +18,7 @@ jobs:
- name: Clone
uses: actions/checkout@v3
- name: Run hadolint
uses: hadolint/hadolint-action@f988afea3da57ee48710a9795b6bb677cc901183
uses: hadolint/hadolint-action@4b5806eb9c6bee4954fc0e0cc3ad6175fc9782c1
# v1.6.0 => d7b38582334d9ac11c12021c16f21d63015fa250
markdown-lint:
@@ -68,7 +68,7 @@ jobs:
- name: Clone
uses: actions/checkout@v3
- name: Run yamllint
uses: ibiqlik/action-yamllint@81e214fd484713882ce4237cb7cd264d550856cf
uses: ibiqlik/action-yamllint@2576378a8e339169678f9939646ee3ee325e845c
# v3.0.4 => ed2b6e911569708ed121c14b87d513860a7e36a7
with:
config_file: '.github/linters/.yamllint.yml'

View File

@@ -135,4 +135,4 @@ which contains test setup information as well as tips for running tests.
- [Existing issues](https://github.com/dokku/dokku/issues)
- [General GitHub documentation](https://help.github.com/)
- [GitHub pull request documentation](https://help.github.com/send-pull-requests/)
- [Gliderlabs Slack in the #dokku channel](https://glider-slackin.herokuapp.com/)
- [Gliderlabs Slack in the #dokku channel](https://slack.dokku.com/)

View File

@@ -18,7 +18,13 @@ COPY ./build/package/ /tmp
SHELL ["/bin/bash", "-o", "pipefail", "-c"]
# hadolint ignore=DL3005,DL3008
RUN echo "dokku dokku/hostname string $DOKKU_HOSTNAME" | debconf-set-selections \
RUN mkdir -p /etc/apt/keyrings \
&& mkdir -p /etc/apt/keyrings \
&& curl -fsSL https://download.docker.com/linux/ubuntu/gpg | gpg --dearmor -o /etc/apt/keyrings/docker.gpg \
&& echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | tee /etc/apt/sources.list.d/docker.list > /dev/null \
&& apt-get update \
&& apt-get -y --no-install-recommends install docker-ce docker-ce-cli containerd.io docker-compose-plugin \
&& echo "dokku dokku/hostname string $DOKKU_HOSTNAME" | debconf-set-selections \
&& echo "dokku dokku/skip_key_file boolean $DOKKU_SKIP_KEY_FILE" | debconf-set-selections \
&& echo "dokku dokku/vhost_enable boolean $DOKKU_VHOST_ENABLE" | debconf-set-selections \
&& curl -sSL https://packagecloud.io/dokku/dokku/gpgkey | apt-key add - \

View File

@@ -1,5 +1,319 @@
# History
## 0.29.2
Install/update via the bootstrap script:
```shell
wget https://raw.githubusercontent.com/dokku/dokku/v0.29.2/bootstrap.sh
sudo DOKKU_TAG=v0.29.2 bash bootstrap.sh
```
### Bug Fixes
- #5537: @jamesremuscat Correctly include `auth` middleware on `api` router.
## 0.29.1
Install/update via the bootstrap script:
```shell
wget https://raw.githubusercontent.com/dokku/dokku/v0.29.1/bootstrap.sh
sudo DOKKU_TAG=v0.29.1 bash bootstrap.sh
```
### Bug Fixes
- #5532: @josegonzalez Fix issue where git:from-image deploys may result in extracted files not being respected
### Documentation
- #5531: @josegonzalez Fix indentation on heading in where to get help
- #5521: @AlejandroAkbal Remove reference to `--rm` flag cron task documentation
- #5517: @josegonzalez Fix reference to scheduler name in kubernetes docs
- #5516: @josegonzalez Fix reference to scheduler name in nomad docs
### Tests
- #5533: @josegonzalez Add a test case for nested vector-sink values with plus signs
### Other
- #5534: @dependabot[bot] chore(deps): bump sinatra from 3.0.4 to 3.0.5 in /tests/apps/ruby
- #5514: @dependabot[bot] chore(deps): bump golang from 1.19.3 to 1.19.4 in /tests/apps/go-fail-predeploy
- #5512: @dependabot[bot] chore(deps): bump golang from 1.19.3 to 1.19.4 in /tests/apps/go-fail-postdeploy
- #5513: @dependabot[bot] chore(deps): bump golang from 1.19.3 to 1.19.4 in /tests/apps/zombies-dockerfile-no-tini
- #5511: @dependabot[bot] chore(deps): bump golang from 1.19.3 to 1.19.4 in /tests/apps/zombies-dockerfile-tini
- #5510: @dependabot[bot] chore(deps): bump golang from 1.19.3 to 1.19.4 in /tests/apps/gogrpc
- #5525: @dependabot[bot] chore(deps): bump jetty-servlet from 11.0.12 to 11.0.13 in /tests/apps/java
- #5519: @dependabot[bot] chore(deps): bump python from 3.11.0-buster to 3.11.1-buster in /tests/apps/dockerfile-release
- #5520: @dependabot[bot] chore(deps): bump python from 3.11.0-alpine to 3.11.1-alpine in /docs/_build
## 0.29.0
Install/update via the bootstrap script:
```shell
wget https://raw.githubusercontent.com/dokku/dokku/v0.29.0/bootstrap.sh
sudo DOKKU_TAG=v0.29.0 bash bootstrap.sh
```
See the [0.29.0 migration guide](/docs/appendices/0.29.0-migration-guide.md) for more information on migrating to 0.29.0.
### Bug Fixes
- #5506: @josegonzalez Add support for escaped plus (+) signs in vector configurations
- #5505: @josegonzalez Add missing event hooks
- #5493: @josegonzalez Correct issue with detection of non-https port mapping as https port mapping
- #5499: @josegonzalez Do not use traefik priority in service name
- #5491: @josegonzalez Add missing http part to traefik routing rule
- #5477: @josegonzalez Add missing config_sub entry to config gitignore
- #5474: @josegonzalez Add missing source call
- #5345: @esirK Always set app created-at via property instead of introspecting on folder creation time
- #5456: @cooperaj Ensure Traefik only attempts to obtain certificate for api when enabled
- #5466: @josegonzalez Drop the app argument when calling storage:ensure-directory from remote client
- #5458: @cooperaj Ensure the TLS resolver is specifed for HTTPS enabled apps
- #5448: @josegonzalez Do not attempt to attach a network to a container that already has it
### New Features
- #5494: @josegonzalez Silence the warning message when there are no dokku apps on install
- #5490: @josegonzalez Add ability to set a custom priority for traefik routing rules
- #5489: @josegonzalez Use exit code 137 to signify a lock was unable to be retrieved when calling ps:retire
- #5487: @josegonzalez Use a priority when routing requests with traefik
- #5481: @josegonzalez Drop installation of nginx ppa
- #5478: @josegonzalez Allow users to enable herokuish usage on arm/arm64 platforms
- #5479: @josegonzalez Cleanup builder code and docs
- #5476: @josegonzalez Add fileutils plugin to the devcontainer
- #5473: @josegonzalez Add warning when a user is attempting to deploy with an ipv4/ipv6 domain name and has the default nginx site file available
- #5451: @josegonzalez Add git:status subcommand
- #5349: @josegonzalez Error out when executing caddy and traefik commands without the compose plugin installed
- #5322: @josegonzalez Implement run:logs command
- #5321: @josegonzalez Implement run:stop command
- #5434: @josegonzalez Upgrade to go 1.19 everywhere
- #5320: @josegonzalez Add json format output to run:list
### Refactors
- #5488: @josegonzalez De-duplicate proxy building and simplify url generation
- #5454: @josegonzalez Switch from base64-encoding to base36-encoding of cron task IDs
### Documentation
- #5509: @josegonzalez Update data loss blockquote to be warning
- #5507: @josegonzalez Add tutorials link to navigation
- #5503: @josegonzalez Document potential deployment downtime
- #5484: @IgnisDa Add edgedb community plugin
- #5482: @JonathanMH Fixes minor typos in proxy docs
- #5465: @josegonzalez Fix embedded lists on deployment tasks
- #5430: @pablobm Clarify that proxy:build-config is required for any nginx:set call
- #5447: @josegonzalez Specify correct command for builder-lambda:report
- #5429: @pablobm Clarify details of the default template
### Tests
- #5449: @josegonzalez Install goverage via go get
### Other
- #5500: @dependabot[bot] chore(deps): bump maven-dependency-plugin from 3.3.0 to 3.4.0 in /tests/apps/java
- #5472: @josegonzalez Start started proxies automatically during ps:restore
- #5497: @dependabot[bot] chore(deps): bump ruby from 3.1.2 to 3.1.3 in /tests/apps/dockerfile-entrypoint
- #5496: @dependabot[bot] chore(deps): bump sinatra from 3.0.3 to 3.0.4 in /tests/apps/ruby
- #5480: @josegonzalez Cleanup zero'd out processes when a Procfile omitting those process types is set
- #5475: @josegonzalez Refactor nginx.conf.sigil to be extracted from a specified path in source code instead of the built image
- #5467: @josegonzalez Move DOKKU_WAIT_TO_RETIRE to a checks property
- #5455: @dependabot[bot] chore(deps): bump hadolint/hadolint-action from 2.1.0 to 3.0.0
- #5463: @dependabot[bot] chore(deps): bump sinatra from 3.0.2 to 3.0.3 in /tests/apps/ruby
- #5450: @dependabot[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 226 to 227 in /tests/apps/php
- #5437: @dependabot[bot] chore(deps): bump golang from 1.19.2 to 1.19.3 in /tests/apps/zombies-dockerfile-tini
- #5441: @dependabot[bot] chore(deps): bump golang from 1.19.2 to 1.19.3 in /tests/apps/gogrpc
- #5440: @dependabot[bot] chore(deps): bump golang from 1.19.2 to 1.19.3 in /tests/apps/go-fail-predeploy
- #5439: @dependabot[bot] chore(deps): bump golang from 1.19.2 to 1.19.3 in /tests/apps/zombies-dockerfile-no-tini
- #5438: @dependabot[bot] chore(deps): bump golang from 1.19.2 to 1.19.3 in /tests/apps/go-fail-postdeploy
- #5431: @dependabot[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 225 to 226 in /tests/apps/php
- #5426: @dependabot[bot] chore(deps): bump python from 3.10.0-buster to 3.11.0-buster in /tests/apps/dockerfile-release
- #5319: @josegonzalez Use container name instead of container id for run:detached output
- #5427: @dependabot[bot] chore(deps): bump python from 3.10.8-alpine to 3.11.0-alpine in /docs/_build
## 0.28.4
Install/update via the bootstrap script:
```shell
wget https://raw.githubusercontent.com/dokku/dokku/v0.28.4/bootstrap.sh
sudo DOKKU_TAG=v0.28.4 bash bootstrap.sh
```
### Bug Fixes
- #5423: @josegonzalez Respect PLUGIN_PATH when checking if a plugin trigger exists
- #5425: @josegonzalez Ignore https mappings when no ssl certificate exists
### New Features
- #5424: @josegonzalez Download all src files for go mod dependencies for use in vscode
### Documentation
- #5421: @josegonzalez Document that scaling via app.json will set all other processes to zero
### Tests
- #5422: @josegonzalez Test that build-arg works as expected
### Other
- #5418: @dependabot[bot] chore(deps): bump node from 18-alpine to 19-alpine in /tests/apps/dockerfile-noexpose
- #5417: @dependabot[bot] chore(deps): bump node from 18-alpine to 19-alpine in /tests/apps/dockerfile-procfile-bad
- #5419: @dependabot[bot] chore(deps): bump node from 18-alpine to 19-alpine in /tests/apps/dockerfile-dokku-scale
- #5416: @dependabot[bot] chore(deps): bump node from 18-alpine to 19-alpine in /tests/apps/dockerfile-procfile
- #5415: @dependabot[bot] chore(deps): bump node from 18-alpine to 19-alpine in /tests/apps/dockerfile
- #5413: @dependabot[bot] chore(deps): bump ibiqlik/action-yamllint from 3.1.0 to 3.1.1
## 0.28.3
Install/update via the bootstrap script:
```shell
wget https://raw.githubusercontent.com/dokku/dokku/v0.28.3/bootstrap.sh
sudo DOKKU_TAG=v0.28.3 bash bootstrap.sh
```
### New Features
- #5394: @josegonzalez Add support for automatically updating Dockerfile FROM statements via dependabot
### Other
- #5411: @dependabot[bot] chore(deps): bump python from 3.8-buster to 3.10.0-buster in /tests/apps/dockerfile-release
- #5400: @dependabot[bot] chore(deps): bump node from 4-alpine to 18-alpine in /tests/apps/dockerfile-procfile
- #5405: @dependabot[bot] chore(deps): bump node from 4-alpine to 18-alpine in /tests/apps/dockerfile
- #5397: @dependabot[bot] chore(deps): bump ruby from 2.5.1 to 3.1.2 in /tests/apps/dockerfile-entrypoint
- #5401: @dependabot[bot] chore(deps): bump golang from 1.17.1 to 1.19.2 in /tests/apps/go-fail-postdeploy
- #5403: @dependabot[bot] chore(deps): bump golang from 1.17.1 to 1.19.2 in /tests/apps/zombies-dockerfile-tini
- #5407: @dependabot[bot] chore(deps): bump python from 3.10-alpine to 3.10.8-alpine in /docs/_build
- #5404: @dependabot[bot] chore(deps): bump node from 4-alpine to 18-alpine in /tests/apps/dockerfile-dokku-scale
- #5402: @dependabot[bot] chore(deps): bump node from 4-alpine to 18-alpine in /tests/apps/dockerfile-procfile-bad
- #5398: @dependabot[bot] chore(deps): bump golang from 1.17.1 to 1.19.2 in /tests/apps/go-fail-predeploy
- #5396: @dependabot[bot] chore(deps): bump golang from 1.17.1 to 1.19.2 in /tests/apps/gogrpc
- #5399: @dependabot[bot] chore(deps): bump golang from 1.17.1 to 1.19.2 in /tests/apps/zombies-dockerfile-no-tini
- #5395: @dependabot[bot] chore(deps): bump node from 4-alpine to 18-alpine in /tests/apps/dockerfile-noexpose
## 0.28.2
Install/update via the bootstrap script:
```shell
wget https://raw.githubusercontent.com/dokku/dokku/v0.28.2/bootstrap.sh
sudo DOKKU_TAG=v0.28.2 bash bootstrap.sh
```
### Bug Fixes
- #5393: @josegonzalez Correct issue with replacing the version in the installation guide
- #5354: @josegonzalez Report the correct value for the letsencrypt server
- #5347: @josegonzalez Set correct version on builder-lambda plugin
### New Features
- #5392: @josegonzalez Add support for devcontainers on ARM64 instances
### Documentation
- #5365: @josegonzalez Use correct indentation for embedded list in remote commands documentation
- #5357: @josegonzalez Reference blog on main domain
- #5355: @josegonzalez Autogenerate documentation in CI
- #5351: @josegonzalez Fix formatting on list in deployment tasks
- #5328: @holtergram Call out git remote change when renaming an app
- #5344: @josegonzalez Generate docs via mkdocs
- #5342: @josegonzalez Ensure doc links work on github as well as on docs site
- #5336: @josegonzalez Add note about docker-compose requirement for using the caddy plugin
- #5337: @josegonzalez Add note about docker-compose requirement for using the traefik…
- #5332: @cdubz Remove errant semicolon from wget command
- #5329: @josegonzalez Use updated url for gliderlabs slack invite app
- #5315: @alexislefebvre Fix doc link for systems with less than 1GB memory
### Other
- #5382: @dependabot[bot] chore(deps): bump sinatra from 2.2.2 to 3.0.2 in /tests/apps/ruby
- #5386: @dependabot[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 224 to 225 in /tests/apps/php
- #5361: @dependabot[bot] chore(deps): bump jetty-servlet from 11.0.11 to 11.0.12 in /tests/apps/java
- #5346: @dependabot[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 223 to 224 in /tests/apps/php
## 0.28.1
Install/update via the bootstrap script:
```shell
wget https://raw.githubusercontent.com/dokku/dokku/v0.28.1/bootstrap.sh
sudo DOKKU_TAG=v0.28.1 bash bootstrap.sh
```
### Bug Fixes
- #5313: @josegonzalez Fix issues with multiple domains in new proxy plugins
## 0.28.0
Install/update via the bootstrap script:
```shell
wget https://raw.githubusercontent.com/dokku/dokku/v0.28.0/bootstrap.sh
sudo DOKKU_TAG=v0.28.0 bash bootstrap.sh
```
See the [0.28.0 migration guide](/docs/appendices/0.28.0-migration-guide.md) for more information on migrating to 0.28.0.
### Bug Fixes
- #5299: @josegonzalez Do not trigger restarts when mutating config globally
- #5298: @josegonzalez Set core.bare=true on correct repository path
### New Features
- #5300: @josegonzalez Add the ability to disable the init process
- #5295: @josegonzalez Add an official caddy proxy implementation
- #5293: @josegonzalez Add an official traefik proxy implementation
- #5202: @josegonzalez Add builder-lambda plugin
### Documentation
- #5296: @janlavicka Fix typo in kubernetes docs
- #5288: @josegonzalez Do not have bottom border float on page
- #5283: @alexgleason Homepage: fix link in quick install guide
### Other
- #5297: @josegonzalez Update vector image
- #5294: @josegonzalez Document and enable alternative proxy implementations
- #5291: @dependabot[bot] chore(deps): bump werkzeug from 2.2.1 to 2.2.2 in /tests/apps/python-flask
- #5292: @dependabot[bot] chore(deps): bump flask from 2.2.1 to 2.2.2 in /tests/apps/multi
- #5290: @dependabot[bot] chore(deps): bump flask from 2.2.1 to 2.2.2 in /tests/apps/python-flask
- #5227: @josegonzalez Drop forwarded port from vagrant setup
- #5285: @josegonzalez Update all development dependencies
- #5240: @josegonzalez Drop support for CentOS, Fedora, OpenSuse, as well as Debian 9
- #5281: @dependabot[bot] chore(deps): bump flask from 2.1.3 to 2.2.1 in /tests/apps/multi
- #5280: @dependabot[bot] chore(deps): bump flask from 2.1.3 to 2.2.1 in /tests/apps/python-flask
- #5284: @dependabot[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 222 to 223 in /tests/apps/php
## 0.27.10
Install/update via the bootstrap script:
```shell
wget https://raw.githubusercontent.com/dokku/dokku/v0.27.10/bootstrap.sh
sudo DOKKU_TAG=v0.27.10 bash bootstrap.sh
```
### Bug Fixes
- #5276: @d6rkaiz Remove duplicate syntax for nginx.conf
### Other
- #5274: @kennell readme: mention Ubuntu 22.04 compability
## 0.27.9
Install/update via the bootstrap script:

View File

@@ -31,7 +31,7 @@
> For problems affecting all applications, the report output for a broken application is useful for our debugging.
> In these cases, you may run `dokku report` without any arguments to display the top-level reporting information.
### How (deb/make/rpm) and where (AWS, VirtualBox, physical, etc.) was Dokku installed?
### How (deb/make) and where (AWS, VirtualBox, physical, etc.) was Dokku installed?
### Additional information

View File

@@ -1,17 +1,21 @@
DOKKU_VERSION ?= master
DOCKER_IMAGE_LABELER_VERSION ?= 0.4.1
HEROKUISH_VERSION ?= 0.5.34
NETRC_VERSION ?= 0.5.1
PLUGN_VERSION ?= 0.8.2
PROCFILE_VERSION ?= 0.14.1
SIGIL_VERSION ?= 0.8.1
SSHCOMMAND_VERSION ?= 0.15.0
DOCKER_IMAGE_LABELER_URL ?= https://github.com/dokku/docker-image-labeler/releases/download/v${DOCKER_IMAGE_LABELER_VERSION}/docker-image-labeler_${DOCKER_IMAGE_LABELER_VERSION}_linux_amd64.tgz
NETRC_URL ?= https://github.com/dokku/netrc/releases/download/v${NETRC_VERSION}/netrc_${NETRC_VERSION}_linux_amd64.tgz
PLUGN_URL ?= https://github.com/dokku/plugn/releases/download/v${PLUGN_VERSION}/plugn_${PLUGN_VERSION}_linux_amd64.tgz
PROCFILE_UTIL_URL ?= https://github.com/josegonzalez/go-procfile-util/releases/download/v${PROCFILE_VERSION}/procfile-util_${PROCFILE_VERSION}_linux_amd64.tgz
SIGIL_URL ?= https://github.com/gliderlabs/sigil/releases/download/v${SIGIL_VERSION}/gliderlabs-sigil_${SIGIL_VERSION}_linux_amd64.tgz
TARGETARCH ?= amd64
DOCKER_IMAGE_LABELER_VERSION ?= 0.5.0
HEROKUISH_VERSION ?= 0.5.38
LAMBDA_BUILDER_VERSION ?= 0.4.0
NETRC_VERSION ?= 0.6.0
PLUGN_VERSION ?= 0.12.0
PROCFILE_VERSION ?= 0.15.0
SIGIL_VERSION ?= 0.9.0
SSHCOMMAND_VERSION ?= 0.16.0
DOCKER_IMAGE_LABELER_URL ?= https://github.com/dokku/docker-image-labeler/releases/download/v${DOCKER_IMAGE_LABELER_VERSION}/docker-image-labeler_${DOCKER_IMAGE_LABELER_VERSION}_linux_${TARGETARCH}.tgz
LAMBDA_BUILDER_URL ?= https://github.com/dokku/lambda-builder/releases/download/v${LAMBDA_BUILDER_VERSION}/lambda-builder_${LAMBDA_BUILDER_VERSION}_linux_${TARGETARCH}.tgz
NETRC_URL ?= https://github.com/dokku/netrc/releases/download/v${NETRC_VERSION}/netrc_${NETRC_VERSION}_linux_${TARGETARCH}.tgz
PLUGN_URL ?= https://github.com/dokku/plugn/releases/download/v${PLUGN_VERSION}/plugn_${PLUGN_VERSION}_linux_${TARGETARCH}.tgz
PROCFILE_UTIL_URL ?= https://github.com/josegonzalez/go-procfile-util/releases/download/v${PROCFILE_VERSION}/procfile-util_${PROCFILE_VERSION}_linux_${TARGETARCH}.tgz
SIGIL_URL ?= https://github.com/gliderlabs/sigil/releases/download/v${SIGIL_VERSION}/gliderlabs-sigil_${SIGIL_VERSION}_linux_${TARGETARCH}.tgz
SSHCOMMAND_URL ?= https://github.com/dokku/sshcommand/releases/download/v${SSHCOMMAND_VERSION}/sshcommand_${SSHCOMMAND_VERSION}_linux_x86_64.tgz
STACK_URL ?= https://github.com/gliderlabs/herokuish.git
PREBUILT_STACK_URL ?= gliderlabs/herokuish:latest-20
@@ -36,12 +40,12 @@ endif
include common.mk
.PHONY: all apt-update install version copyfiles copyplugin man-db plugins dependencies docker-image-labeler netrc sshcommand procfile-util plugn docker aufs stack count vagrant-acl-add vagrant-dokku go-build
.PHONY: all apt-update install version copyfiles copyplugin man-db plugins dependencies docker-image-labeler lambda-builder netrc sshcommand procfile-util plugn docker aufs stack count vagrant-acl-add vagrant-dokku go-build
include docs.mk
include tests.mk
include package.mk
include deb.mk
include rpm.mk
include arch.mk
all:
@@ -131,7 +135,7 @@ plugin-dependencies: plugn procfile-util
plugins: plugn procfile-util docker
sudo -E dokku plugin:install --core
dependencies: apt-update docker-image-labeler netrc sshcommand plugn procfile-util docker help2man man-db sigil dos2unix jq parallel
dependencies: apt-update docker-image-labeler lambda-builder netrc sshcommand plugn procfile-util docker help2man man-db sigil dos2unix jq parallel
$(MAKE) -e stack
apt-update:
@@ -155,27 +159,32 @@ man-db:
docker-image-labeler:
wget -qO /tmp/docker-image-labeler_latest.tgz ${DOCKER_IMAGE_LABELER_URL}
tar xzf /tmp/docker-image-labeler_latest.tgz -C /usr/local/bin
mv /usr/local/bin/docker-image-labeler-amd64 /usr/local/bin/docker-image-labeler
mv /usr/local/bin/docker-image-labeler-${TARGETARCH} /usr/local/bin/docker-image-labeler
lambda-builder:
wget -qO /tmp/lambda-builder_latest.tgz ${LAMBDA_BUILDER_URL}
tar xzf /tmp/lambda-builder_latest.tgz -C /usr/local/bin
mv /usr/local/bin/lambda-builder-${TARGETARCH} /usr/local/bin/lambda-builder
netrc:
wget -qO /tmp/netrc_latest.tgz ${NETRC_URL}
tar xzf /tmp/netrc_latest.tgz -C /usr/local/bin
mv /usr/local/bin/netrc-amd64 /usr/local/bin/netrc
mv /usr/local/bin/netrc-${TARGETARCH} /usr/local/bin/netrc
procfile-util:
wget -qO /tmp/procfile-util_latest.tgz ${PROCFILE_UTIL_URL}
tar xzf /tmp/procfile-util_latest.tgz -C /usr/local/bin
mv /usr/local/bin/procfile-util-amd64 /usr/local/bin/procfile-util
mv /usr/local/bin/procfile-util-${TARGETARCH} /usr/local/bin/procfile-util
plugn:
wget -qO /tmp/plugn_latest.tgz ${PLUGN_URL}
tar xzf /tmp/plugn_latest.tgz -C /usr/local/bin
mv /usr/local/bin/plugn-amd64 /usr/local/bin/plugn
mv /usr/local/bin/plugn-${TARGETARCH} /usr/local/bin/plugn
sigil:
wget -qO /tmp/sigil_latest.tgz ${SIGIL_URL}
tar xzf /tmp/sigil_latest.tgz -C /usr/local/bin
mv /usr/local/bin/gliderlabs-sigil-amd64 /usr/local/bin/sigil
mv /usr/local/bin/gliderlabs-sigil-${TARGETARCH} /usr/local/bin/sigil
sshcommand:
wget -qO /tmp/sshcommand_latest.tgz ${SSHCOMMAND_URL}

View File

@@ -3,7 +3,7 @@
[![Build Status](https://github.com/dokku/dokku/workflows/CI/badge.svg)](https://github.com/dokku/dokku/actions?query=workflow%3ACI)
[![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://glider-slackin.herokuapp.com/)
[![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)
@@ -74,9 +74,8 @@ Support us with a monthly donation and help us continue our activities. [[Become
A fresh VM running any of the following operating systems:
- Ubuntu 18.04/20.04 x64 - Any currently supported release
- Debian 9+ x64
- CentOS 7 x64 *(experimental)*
- Ubuntu 18.04 / 20.04 / 22.04 x64 - Any currently supported release
- Debian 10+ x64
- Arch Linux x64 *(experimental)*
An SSH keypair that can be used for application deployment. If this exists before installation, it will be automatically imported into dokku.
@@ -87,8 +86,8 @@ Otherwise, you will need to import the keypair manually after installation using
To install the latest stable release, run the following commands as a user who has access to `sudo`:
```shell
wget https://raw.githubusercontent.com/dokku/dokku/v0.27.9/bootstrap.sh
sudo DOKKU_TAG=v0.27.9 bash bootstrap.sh
wget https://raw.githubusercontent.com/dokku/dokku/v0.29.2/bootstrap.sh
sudo DOKKU_TAG=v0.29.2 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.
@@ -105,11 +104,11 @@ Full documentation - including advanced installation docs - are available online
## 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://glider-slackin.herokuapp.com/).
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://glider-slackin.herokuapp.com/), feel free to fork and create a Pull Request.
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.

17
Vagrantfile vendored
View File

@@ -6,7 +6,6 @@ BOX_CPUS = ENV["BOX_CPUS"] || "1"
BOX_MEMORY = ENV["BOX_MEMORY"] || "1024"
DOKKU_DOMAIN = ENV["DOKKU_DOMAIN"] || "dokku.me"
DOKKU_IP = ENV["DOKKU_IP"] || "10.0.0.2"
FORWARDED_PORT = (ENV["FORWARDED_PORT"] || '8080').to_i
PREBUILT_STACK_URL = File.exist?("#{File.dirname(__FILE__)}/stack.tgz") ? 'file:///root/dokku/stack.tgz' : nil
PUBLIC_KEY_PATH = "#{Dir.home}/.ssh/id_rsa.pub"
@@ -43,7 +42,6 @@ Vagrant::configure("2") do |config|
config.vm.define "dokku", primary: true do |vm|
vm.vm.synced_folder File.dirname(__FILE__), "/root/dokku"
vm.vm.network :forwarded_port, guest: 80, host: FORWARDED_PORT
vm.vm.hostname = "#{DOKKU_DOMAIN}"
vm.vm.network :private_network, ip: DOKKU_IP
@@ -72,7 +70,6 @@ Vagrant::configure("2") do |config|
# For windows users. Sharing folder from windows creates problem with sym links and so, sync the repo instead from GOS.
config.vm.define "dokku-windows", autostart: false do |vm|
vm.vm.network :forwarded_port, guest: 80, host: FORWARDED_PORT
vm.vm.hostname = "#{DOKKU_DOMAIN}"
vm.vm.network :private_network, ip: DOKKU_IP
vm.vm.provision :shell, :inline => "export DEBIAN_FRONTEND=noninteractive && apt-get update -qq >/dev/null && apt-get -qq -y --no-install-recommends install git dos2unix >/dev/null"
@@ -81,28 +78,17 @@ Vagrant::configure("2") do |config|
config.vm.define "dokku-deb", autostart: false do |vm|
vm.vm.synced_folder File.dirname(__FILE__), "/root/dokku"
vm.vm.network :forwarded_port, guest: 80, host: FORWARDED_PORT
vm.vm.hostname = "#{DOKKU_DOMAIN}"
vm.vm.network :private_network, ip: DOKKU_IP
vm.vm.provision :shell, :inline => "cd /root/dokku && make install-from-deb"
end
config.vm.define "dokku-rpm", autostart: false do |vm|
vm.vm.box = "centos/7"
vm.vm.synced_folder File.dirname(__FILE__), "/root/dokku"
vm.vm.network :forwarded_port, guest: 80, host: FORWARDED_PORT
vm.vm.hostname = "#{DOKKU_DOMAIN}"
vm.vm.network :private_network, ip: DOKKU_IP
vm.vm.provision :shell, :inline => "cd /root/dokku && bash bootstrap.sh"
end
config.vm.define "build", autostart: false do |vm|
vm.vm.synced_folder File.dirname(__FILE__), "/root/dokku"
vm.vm.network :forwarded_port, guest: 80, host: FORWARDED_PORT
vm.vm.hostname = "#{DOKKU_DOMAIN}"
vm.vm.network :private_network, ip: DOKKU_IP
vm.vm.provision :shell, :inline => "export DEBIAN_FRONTEND=noninteractive && apt-get update -qq >/dev/null && apt-get -qq -y --no-install-recommends install git >/dev/null && cd /root/dokku && #{make_cmd}"
vm.vm.provision :shell, :inline => "export IS_RELEASE=true && cd /root/dokku && make deb-all rpm-all"
vm.vm.provision :shell, :inline => "export IS_RELEASE=true && cd /root/dokku && make deb-all"
end
config.vm.define "build-arch", autostart: false do |vm|
@@ -111,7 +97,6 @@ Vagrant::configure("2") do |config|
if Pathname.new("#{File.dirname(__FILE__)}/../dokku-arch").exist?
vm.vm.synced_folder "#{File.dirname(__FILE__)}/../dokku-arch", "/dokku-arch"
end
vm.vm.network :forwarded_port, guest: 80, host: FORWARDED_PORT
vm.vm.hostname = "#{DOKKU_DOMAIN}"
vm.vm.network :private_network, ip: DOKKU_IP
vm.vm.provision :shell, :inline => "cd /dokku && make arch-all", privileged: false

View File

@@ -3,7 +3,7 @@ set -eo pipefail
[[ $TRACE ]] && set -x
# A script to bootstrap dokku.
# It expects to be run on Ubuntu 18.04/20.04, or CentOS 7 via 'sudo'
# It expects to be run on Ubuntu 18.04/20.04 via 'sudo`
# If installing a tag higher than 0.3.13, it may install dokku via a package (so long as the package is higher than 0.3.13)
# It checks out the dokku source code from GitHub into ~/dokku and then runs 'make install' from dokku source.
@@ -12,7 +12,7 @@ set -eo pipefail
# That's good because it prevents our output overlapping with wget's.
# It also means that we can't run a partially downloaded script.
SUPPORTED_VERSIONS="Debian [9, 10, 11], CentOS [7], Fedora (partial) [33, 34], Ubuntu [18.04, 20.04, 22.04]"
SUPPORTED_VERSIONS="Debian [10, 11], Ubuntu [18.04, 20.04, 22.04]"
log-fail() {
declare desc="log fail formatter"
@@ -139,9 +139,6 @@ install-dokku-from-package() {
debian | ubuntu)
install-dokku-from-deb-package "$@"
;;
centos | fedora | rhel)
install-dokku-from-rpm-package "$@"
;;
*)
log-fail "Unsupported Linux distribution. For manual installation instructions, consult https://dokku.com/docs/getting-started/advanced-installation/"
;;
@@ -163,7 +160,7 @@ install-dokku-from-deb-package() {
local NO_INSTALL_RECOMMENDS=${DOKKU_NO_INSTALL_RECOMMENDS:=""}
local OS_ID
if ! in-array "$DOKKU_DISTRO_VERSION" "18.04" "20.04" "22.04" "9" "10" "11"; then
if ! in-array "$DOKKU_DISTRO_VERSION" "18.04" "20.04" "22.04" "10" "11"; then
log-fail "Unsupported Linux distribution. Only the following versions are supported: $SUPPORTED_VERSIONS"
fi
@@ -231,35 +228,6 @@ install-dokku-from-deb-package() {
fi
}
install-dokku-from-rpm-package() {
local DOKKU_CHECKOUT="$1"
if ! in-array "$DOKKU_DISTRO_VERSION" "7"; then
log-fail "Unsupported Linux distribution. Only the following versions are supported: $SUPPORTED_VERSIONS"
fi
echo "--> Installing docker"
curl -fsSL https://get.docker.com/ | sh
echo "--> Installing epel for nginx packages to be available"
yum install -y epel-release
echo "--> Installing herokuish and dokku"
curl -s https://packagecloud.io/install/repositories/dokku/dokku/script.rpm.sh | bash
if [[ -n $DOKKU_CHECKOUT ]]; then
yum -y install herokuish "dokku-$DOKKU_CHECKOUT"
else
yum -y install herokuish dokku
fi
echo "--> Enabling docker and nginx on system startup"
systemctl enable docker
systemctl enable nginx
echo "--> Starting nginx"
systemctl start nginx
}
main() {
export DOKKU_DISTRO DOKKU_DISTRO_VERSION
# shellcheck disable=SC1091

View File

@@ -1,7 +1,7 @@
GO_ARGS ?=
GO_PLUGIN_MAKE_TARGET ?= build
GO_REPO_ROOT := /go/src/github.com/dokku/dokku
BUILD_IMAGE := golang:1.17.9
BUILD_IMAGE := golang:1.19.2
GO_BUILD_CACHE ?= /tmp/dokku-go-build-cache
GO_MOD_CACHE ?= /tmp/dokku-go-mod-mod
GO_ROOT_MOUNT ?= $$PWD/../..:$(GO_REPO_ROOT)

154
contrib/build-docs Executable file
View File

@@ -0,0 +1,154 @@
#!/usr/bin/env bash
set -eo pipefail
readonly ROOT_DIR="$(cd "$(dirname "$(dirname "${BASH_SOURCE[0]}")")" && pwd)"
main() {
pushd "$ROOT_DIR" >/dev/null || return 1
rm -rf docs-main tmp/docs-source tmp/docs-build # tmp/docs-build
cp -r docs docs-main
echo "====> Generating docs image"
make docs-build-image
echo "====> Fetching latest docs"
git clone -q https://github.com/dokku/docs.git tmp/docs-build
echo "====> Processing version: latest"
rm -rf tmp/docs-build/docs
git clone -q https://github.com/dokku/dokku.git tmp/docs-source
rm -rf docs/assets
mkdir -p docs/assets
cp -r docs-main/assets/extra.css docs/assets/extra.css
cp -r docs-main/assets/favicons docs/assets/favicons
cp -r docs-main/assets/dokku-logo.svg docs/assets/dokku-logo.svg
rm -rf tmp/docs-build/assets
cp -r docs-main/assets tmp/docs-build/assets
cp docs-main/_build/app-nginx.conf.sigil tmp/docs-build/app-nginx.conf.sigil
mkdir -p tmp/docs-build/nginx.conf.d
touch tmp/docs-build/.static
echo "[]" >tmp/docs-build/versions.json
sed -i.bak "s/outdated/outdated_hidden/g" docs/_overrides/main.html && rm docs/_overrides/main.html.bak
echo "----> Generating docs"
make docs-build
if [[ -n "$GITHUB_ACTION" ]]; then
sudo chown -R "$(whoami)" site
fi
rm -rf site/_build
mv site tmp/docs-build/docs
mv docs/home.html tmp/docs-build/index.html
sed -i.bak "s/{{NAME}}~{{REF}}/docs/g" tmp/docs-build/index.html && rm tmp/docs-build/index.html.bak
sed -i.bak "s/{{NAME}}/docs/g" tmp/docs-build/index.html && rm tmp/docs-build/index.html.bak
sed -i.bak 's/="\/docs\/"/="\/"/g' tmp/docs-build/index.html && rm tmp/docs-build/index.html.bak
jq -C -r '.["max-versions"][]' docs-main/assets/versions.json | while read -r current_version; do
major="$(echo "$current_version" | cut -d'.' -f1)"
minor="$(echo "$current_version" | cut -d'.' -f2)"
patch="$(echo "$current_version" | cut -d'.' -f3)"
while true; do
if [[ "$patch" -lt 0 ]]; then
break
fi
version="${major}.${minor}.${patch}"
echo "====> Processing version: ${major}.${minor}.${patch}"
if [[ "$major" -lt 1 ]]; then
if [[ "$current_version" != "$version" ]]; then
echo " Writing rewrite rule"
echo "rewrite ^/docs~v$version/(.*)$ /docs~v$current_version/\$1 redirect;" >"tmp/docs-build/nginx.conf.d/$version.conf"
echo " Removing old docs"
rm -rf "tmp/docs-build/docs~v${version}"
patch=$((patch - 1))
continue
fi
fi
jq --arg title "v$version" --arg version "docs~v$version" '. += [{"title": $title, "version": $version, "aliases": []}]' tmp/docs-build/versions.json >tmp/docs-build/versions.json.bak
mv tmp/docs-build/versions.json.bak tmp/docs-build/versions.json
if [[ -d "tmp/docs-build/docs~v${version}" ]]; then
echo " ! Docs exist, skipping regeneration"
rm -rf "tmp/docs-build/docs~v${version}/assets/favicons"
cp -r docs-main/assets/favicons "tmp/docs-build/docs~v${version}/assets/favicons"
cp -r docs-main/assets/dokku-logo.svg "tmp/docs-build/docs~v${version}/assets/dokku-logo.svg"
cp -r docs-main/assets/extra.css "tmp/docs-build/docs~v${version}/assets/extra.css"
patch=$((patch - 1))
continue
fi
git -C tmp/docs-source checkout -q -- .
git -C tmp/docs-source checkout -q "tags/v${version}" -b "v${version}-branch"
rm -rf docs
mv tmp/docs-source/docs docs
rm -rf docs/assets
mkdir -p docs/assets
cp -r docs-main/assets/favicons docs/assets/favicons
cp -r docs-main/assets/dokku-logo.svg docs/assets/dokku-logo.svg
cp -r docs-main/assets/extra.css docs/assets/extra.css
cp -r docs-main/_build docs/_build
cp -r docs-main/_overrides docs/_overrides
git checkout -q -- mkdocs.yml
sed -i.bak "s/site_dir: site/site_dir: docs~v$version/g" mkdocs.yml && rm mkdocs.yml.bak
if [[ ! -f docs/template.html ]]; then
if [[ "$patch" -eq 0 ]]; then
break
fi
continue
fi
echo "----> Generating docs"
if ! make docs-build; then
continue
fi
if [[ -d "docs~v${version}" ]]; then
if [[ -n "$GITHUB_ACTION" ]]; then
sudo chown -R "$(whoami)" "docs~v${version}"
fi
rm -rf "docs~v${version}/_build"
mv "docs~v${version}" "tmp/docs-build/docs~v${version}"
fi
if [[ "$patch" -eq 0 ]]; then
break
fi
patch=$((patch - 1))
done
done
echo "====> Rebuild versions"
if [[ -f "tmp/docs-build/versions.json" ]]; then
python contrib/sort-mkdocs-versions
else
echo " No version file exists"
fi
echo "====> Cleanup main repo"
rm -rf docs
mv docs-main docs
git checkout -- mkdocs.yml docs
if [[ "$(git -C tmp/docs-build ls-files -dmo)" == "docs/sitemap.xml.gz" ]]; then
echo " ! No doc changes found"
git -C tmp/docs-build checkout -- docs/sitemap.xml.gz
else
echo "====> Pushing docs"
git -C tmp/docs-build add .
git -C tmp/docs-build commit -m "chore: regenerate docs"
if [[ -n "$BOT_GITHUB_USERNAME" ]] && [[ -n "$BOT_GITHUB_API_TOKEN" ]]; then
git -C tmp/docs-build remote set-url origin "https://$BOT_GITHUB_USERNAME:$BOT_GITHUB_API_TOKEN@github.com/dokku/docs.git"
fi
git -C tmp/docs-build push origin master
fi
}
main "$@"

View File

@@ -7,8 +7,8 @@ RUN command -v fpm >/dev/null || sudo gem install fpm --no-ri --no-rdoc
ARG GOLANG_VERSION
RUN wget -qO /tmp/go${GOLANG_VERSION}.linux-amd64.tar.gz https://storage.googleapis.com/golang/go${GOLANG_VERSION}.linux-amd64.tar.gz \
&& tar -C /usr/local -xzf /tmp/go${GOLANG_VERSION}.linux-amd64.tar.gz \
RUN wget -qO /tmp/go${GOLANG_VERSION}.linux.tar.gz "https://storage.googleapis.com/golang/go${GOLANG_VERSION}.linux-$(dpkg --print-architecture).tar.gz" \
&& tar -C /usr/local -xzf /tmp/go${GOLANG_VERSION}.linux.tar.gz \
&& cp /usr/local/go/bin/* /usr/local/bin
ARG WORKDIR=/go/src/github.com/dokku/dokku
@@ -18,7 +18,7 @@ WORKDIR ${WORKDIR}
COPY Makefile ${WORKDIR}/
COPY *.mk ${WORKDIR}/
RUN make deb-setup rpm-setup sshcommand plugn
RUN make deb-setup sshcommand plugn
COPY . ${WORKDIR}
@@ -37,7 +37,7 @@ RUN PLUGIN_MAKE_TARGET=${PLUGIN_MAKE_TARGET} \
IS_RELEASE=${IS_RELEASE} \
SKIP_GO_CLEAN=true \
make version copyfiles \
&& make deb-dokku rpm-dokku
&& make deb-dokku
FROM builder as armhf

View File

@@ -147,6 +147,7 @@ main() {
[[ " apps certs help ls nginx shell storage trace version " == *" $CMD "* ]] && unset APP
[[ " certs:chain domains:add-global domains:remove-global domains:set-global ps:restore " == *" $CMD "* ]] && unset APP
[[ " storage:ensure-directory " == *" $CMD "* ]] && unset APP
[[ "$CMD" =~ events*|plugin*|ssh-keys* ]] && unset APP
[[ -n "$APP_ARG" ]] && [[ "$APP_ARG" == "--global" ]] && unset APP
[[ -n "$@" ]] && [[ -n "$APP" ]] && app_arg="--app $APP"

View File

@@ -134,7 +134,6 @@ fn-publish-package() {
local OS_ID ex
[[ "$IS_RELEASE" == "true" ]] && REPOSITORY=dokku/dokku
[[ "$RELEASE_TYPE" == "rpm" ]] && DIST=el/7
[[ "$RELEASE_TYPE" == "raspbian" ]] && DIST=raspbian
if [[ "$RELEASE_TYPE" == "raspbian" ]]; then
@@ -159,7 +158,7 @@ fn-publish-package() {
done
DIST=debian
OS_IDS=("stretch" "buster" "bullseye")
OS_IDS=("buster" "bullseye")
for OS_ID in "${OS_IDS[@]}"; do
log-info "(release-dokku) pushing ${RELEASE_TYPE} to packagecloud.com/${REPOSITORY}/${DIST}"
package_cloud push "${REPOSITORY}/${DIST}/${OS_ID}" "$PACKAGE_NAME"
@@ -224,7 +223,7 @@ fn-repo-update() {
fn-replace-version "$CURRENT_VERSION" "$NEXT_VERSION" docs/assets/style.css
fn-replace-version "$CURRENT_VERSION" "$NEXT_VERSION" docs/development/release-process.md
fn-replace-version "$CURRENT_VERSION" "$NEXT_VERSION" docs/getting-started/install/docker.md
fn-replace-version "$CURRENT_VERSION" "$NEXT_VERSION" docs/getting-started/installation.md
fn-replace-version "$CURRENT_VERSION" "$NEXT_VERSION" docs/getting-started/installation/index.md
fn-replace-version "$CURRENT_VERSION" "$NEXT_VERSION" docs/home.html
fn-replace-version "$CURRENT_VERSION" "$NEXT_VERSION" docs/template.html
fn-replace-version "$CURRENT_VERSION" "$NEXT_VERSION" README.md
@@ -408,18 +407,15 @@ main() {
fn-extract-package "$IS_RELEASE" "dokku_${NEXT_VERSION}_armhf.deb" || log-fail "Error extracting deb package"
fn-extract-package "$IS_RELEASE" "dokku_${NEXT_VERSION}_arm64.deb" || log-fail "Error extracting deb package"
fn-extract-package "$IS_RELEASE" "dokku_${NEXT_VERSION}_amd64.deb" || log-fail "Error extracting deb package"
fn-extract-package "$IS_RELEASE" "dokku-${NEXT_VERSION}-1.x86_64.rpm" || log-fail "Error extracting rpm package"
mkdir -p build/package
cp -f "build/dokku_${NEXT_VERSION}_amd64.deb" build/package/dokku-amd64.deb
cp -f "build/dokku_${NEXT_VERSION}_arm64.deb" build/package/dokku-arm64.deb
cp -f "build/dokku_${NEXT_VERSION}_armhf.deb" build/package/dokku-armhf.deb
cp -f "build/dokku-${NEXT_VERSION}-1.x86_64.rpm" build/package/dokku-amd64.rpm
if [[ "$RELEASE" != "build" ]]; then
fn-publish-package "$IS_RELEASE" "raspbian" "build/dokku_${NEXT_VERSION}_armhf.deb" || log-fail "Error publishing deb package"
fn-publish-package "$IS_RELEASE" "deb" "build/dokku_${NEXT_VERSION}_arm64.deb" || log-fail "Error publishing deb package"
fn-publish-package "$IS_RELEASE" "deb" "build/dokku_${NEXT_VERSION}_amd64.deb" || log-fail "Error publishing deb package"
fn-publish-package "$IS_RELEASE" "rpm" "build/dokku-${NEXT_VERSION}-1.x86_64.rpm" || log-fail "Error publishing rpm package"
fn-build-docker-image "$NEXT_VERSION" "$IS_RELEASE" || log-fail "Error building docker image"
fn-repo-push-tags "$IS_RELEASE"

View File

@@ -0,0 +1,38 @@
#!/usr/bin/env python
import json
def main():
version_file = "tmp/docs-build/versions.json"
data = []
with open(version_file) as f:
data = json.load(f)
versions = []
for info in data:
if info["title"] == "latest":
continue
versions.append(info["title"].removeprefix("v"))
versions.sort(key=lambda x: list(map(int, x.split('.'))), reverse=True)
data = [
{
"aliases": ["latest"],
"title": "latest",
"version": "docs",
}
]
for version in versions:
data.append({
"aliases": [],
"title": f"v{version}",
"version": f"docs~v{version}",
})
with open(version_file, "w") as f:
json.dump(data, f, indent=4)
if __name__ == "__main__":
main()

345
contrib/write-mkdocs Normal file
View File

@@ -0,0 +1,345 @@
#!/usr/bin/env python
from bs4 import BeautifulSoup
import os
import pathlib
import shutil
import sys
import yaml
def get_nav_from_selector(soup, selector, docs_dir):
navigation = []
header_name = ""
for anchor in soup.select(selector):
classes = anchor.get("class", [])
if classes is None:
continue
if "disabled" in classes:
header_name = anchor.text
navigation.append({header_name: []})
href = anchor.get("href", "")
if href is None:
continue
href = str(href)
if href == "#":
continue
url = href.replace("{{NAME}}", "")
filename = url.replace("http://progrium.viewdocs.io/dokku/", "")
filename = filename.replace("http://dokku.viewdocs.io/dokku/", "")
filename = filename.strip("/") + ".md"
filename = filename.removeprefix("dokku/")
ignore_errors_for = [
"getting-started/installation.md",
"getting-started/upgrading.md",
]
if not os.path.exists(docs_dir + "/" + filename):
if filename not in ignore_errors_for:
print("error fetching markdown file:", filename)
continue
for nav in navigation:
if header_name in nav:
if filename == "getting-started/installation.md":
child_dir = "getting-started/install/"
children = os.listdir(docs_dir + "/" + child_dir)
children = [child_dir + c for c in children]
children.sort()
children.insert(
0, "getting-started/advanced-installation.md")
if os.path.exists(docs_dir + "/" + filename):
children.insert(0, filename)
else:
children.insert(
0, "getting-started/installation/index.md")
nav[header_name].append({
"Getting Started with Dokku": children,
})
continue
elif filename == "getting-started/upgrading.md":
child_dir = "appendices/"
children = os.listdir(docs_dir + "/" + child_dir)
children.sort(key=lambda x: list(
map(int, x.split("-")[0].split('.'))),
reverse=True)
children = [child_dir + c for c in children]
if os.path.exists(docs_dir + "/" + filename):
children.insert(0, filename)
else:
children.insert(
0, "getting-started/upgrading/index.md")
nav[header_name].append({
"Upgrading": children,
})
continue
else:
nav[header_name].append(filename)
return navigation
def generate_nav(src, dest):
navigation = []
repo_dir = pathlib.Path(__file__).parent.parent.resolve()
docs_dir = str(repo_dir) + "/docs"
with open(docs_dir + "/template.html") as response:
soup = BeautifulSoup(response, "html.parser")
selectors = [
".container .row .list-group a",
".container-fluid .row .list-group a",
]
for selector in selectors:
navigation = get_nav_from_selector(soup, selector, docs_dir)
if len(navigation) > 0:
break
if len(navigation) == 0:
print("No navigation found")
sys.exit(1)
with open(src) as f:
data = yaml.unsafe_load(f)
data["nav"] = [
{"Docs": navigation},
{"Pro": "https://pro.dokku.com/docs/getting-started/"},
{"Blog": "https://dokku.com/blog/"},
{"Tutorials": "https://dokku.com/tutorials/"},
{"Purchase Dokku Pro": "https://dokku.dpdcart.com/cart/add?product_id=217344&method_id=236878"},
]
with open(dest, mode="wt", encoding="utf-8") as f:
yaml.dump(data, f)
def modify_content_noop(lines, _):
modified = False
updated_lines = []
for line in lines:
updated_lines.append(line)
return updated_lines, modified
def modify_content_links(lines, filename):
filename = filename.replace("/usr/src/source/docs/", "")
parts = filename.split("/")
parts.pop()
replacement = "](" + '/'.join([".." for _ in parts]) + "/"
modified = False
updated_lines = []
for line in lines:
if "](/docs/" in line:
line = line.replace("](/docs/", replacement)
modified = True
updated_lines.append(line)
return updated_lines, modified
def modify_content_stripspace(lines, _):
modified = False
updated_lines = []
for line in lines:
line = line.rstrip()
updated_lines.append(line)
return updated_lines, modified
def modify_content_inject_newlines(lines, _):
modified = False
updated_lines = []
for line in lines:
updated_lines.append(line.rstrip() + "\n")
return updated_lines, modified
def is_info(line):
return line.startswith("> ")
def is_new(line):
return line.startswith("> ") and "new as of" in line.lower()
def is_note(line):
return line.startswith("> Note:")
def is_warning(line):
return line.startswith("> Warning:")
def modify_content_admonition(lines, _):
modified = False
updated_lines = []
admonition_lines = []
is_admonition = False
for line in lines:
if is_info(line) or is_new(line) or is_note(line) or is_warning(line):
if is_new(line):
line = line.replace("> ", "!!! tip \"New\"\n\n ")
line = line.replace("New as of", "Introduced in")
line = line.replace("new as of", "introduced in")
if is_note(line):
line = line.replace(
"> Note: ", "!!! note \"Note\"\n\n ")
elif is_warning(line):
line = line.replace(
"> Warning: ", "!!! warning \"Warning\"\n\n ")
elif is_info(line):
if not is_admonition:
line = line.replace("> ", "!!! info \"Info\"\n\n ")
elif line in [">", "> "]:
line = ""
else:
line = " " + line.removeprefix("> ")
is_admonition = True
admonition_lines.append(line)
elif is_admonition and line in [">", "> "]:
line = ""
admonition_lines.append(line)
elif is_admonition and line.startswith("> "):
line = " " + line.removeprefix("> ")
admonition_lines.append(line)
elif line == "":
is_admonition = False
if len(admonition_lines) > 0:
updated_lines.extend(admonition_lines)
admonition_lines = []
updated_lines.append("")
else:
updated_lines.append(line)
return updated_lines, modified
def is_shell_codeblock_start(line):
return line == "```shell"
def modify_content_terminal_example(lines, _):
modified = False
updated_lines = []
command_block = []
example_block = []
in_command_block = False
in_example_block = False
previous_block = ""
next_line_must_be = None
for line in lines:
if is_shell_codeblock_start(line):
command_block.append(line)
modified = True
in_command_block = True
continue
elif in_command_block:
command_block.append(line)
if line == "```":
in_command_block = False
previous_block = "command_block"
next_line_must_be = ""
continue
elif line == "```":
if previous_block == "":
updated_lines.append(line)
continue
elif previous_block == "command_block":
example_block.append(line)
if in_example_block:
previous_block = ""
in_example_block = False
updated_lines.append("=== \"Shell\"")
updated_lines.append("")
for command_line in command_block:
updated_lines.append(f" {command_line}")
command_block = []
updated_lines.append("")
updated_lines.append("=== \"Output\"")
updated_lines.append("")
for example_line in example_block:
updated_lines.append(f" {example_line}")
example_block = []
else:
in_example_block = True
continue
elif previous_block == "command_block":
if next_line_must_be is None:
if in_example_block:
example_block.append(line)
else:
updated_lines.extend(command_block)
updated_lines.append("")
updated_lines.append(line)
command_block = []
previous_block = ""
continue
elif next_line_must_be == "":
if line == "":
next_line_must_be = None
continue
updated_lines.append(line)
if len(command_block) > 0:
updated_lines.extend(command_block)
return updated_lines, modified
def update_markdown(src):
markdown_files = []
allowed_extensions = [".md"]
for subdir, _, files in os.walk(src):
for file in files:
ext = os.path.splitext(file)[-1].lower()
file_path = os.path.join(subdir, file)
if ext in allowed_extensions:
markdown_files.append(file_path)
modifiers = [
modify_content_noop,
modify_content_links,
modify_content_stripspace,
modify_content_admonition,
modify_content_terminal_example,
modify_content_inject_newlines,
]
for file in markdown_files:
modified = False
lines = []
with open(file, 'r') as f:
lines = f.readlines()
for modifier in modifiers:
lines, m = modifier(lines, file)
if m:
modified = True
if modified:
with open(file, 'w') as fp:
fp.writelines(lines)
def main():
print("----> Copying mkdocs.yml")
print(" Generating navigation")
generate_nav("/usr/src/source/mkdocs.yml", "/usr/src/app/mkdocs.yml")
print("----> Copying docs folder")
update_markdown("/usr/src/source/docs",)
if os.path.exists("/usr/src/app/docs"):
print(" Removing old docs folder")
shutil.rmtree("/usr/src/app/docs")
print(" Performing copy")
shutil.copytree("/usr/src/source/docs", "/usr/src/app/docs")
if __name__ == "__main__":
main()

4
debian/control vendored
View File

@@ -1,9 +1,9 @@
Package: dokku
Version: 0.27.9
Version: 0.29.2
Section: web
Priority: optional
Architecture: amd64
Depends: locales, git, cpio, curl, man-db, netcat, sshcommand (>= 0.12.0), docker-engine-cs (>= 17.05.0) | docker-engine (>= 17.05.0) | docker-io (>= 17.05.0) | docker.io (>= 17.05.0) | docker-ce (>= 17.05.0) | docker-ee (>= 17.05.0) | moby-engine, docker-image-labeler (>= 0.2.2), net-tools, netrc, software-properties-common, parallel, procfile-util (>= 0.11.0), python-software-properties | python3-software-properties, rsync, rsyslog, dos2unix, jq, unzip
Depends: apache2-utils, locales, git, cpio, curl, man-db, netcat, sshcommand (>= 0.12.0), docker-engine-cs (>= 17.05.0) | docker-engine (>= 17.05.0) | docker-io (>= 17.05.0) | docker.io (>= 17.05.0) | docker-ce (>= 17.05.0) | docker-ee (>= 17.05.0) | moby-engine, docker-compose-plugin | moby-compose, docker-image-labeler (>= 0.2.2), lambda-builder, net-tools, netrc, software-properties-common, parallel, procfile-util (>= 0.11.0), python-software-properties | python3-software-properties, rsync, rsyslog, dos2unix, jq, unzip
Recommends: herokuish (>= 0.3.4), bash-completion, dokku-update, dokku-event-listener
Pre-Depends: gliderlabs-sigil, nginx (>= 1.8.0) | openresty, dnsutils, cgroupfs-mount | cgroup-lite, plugn (>= 0.3.0), sudo, python3, debconf
Maintainer: Jose Diaz-Gonzalez <dokku@josediazgonzalez.com>

19
docs.mk Normal file
View File

@@ -0,0 +1,19 @@
.PHONY: docs-build-image
docs-build-image:
docker build -f docs/_build/Dockerfile --progress plain -t app/mkdocs .
.PHONY: docs-build
docs-build:
@docker run --rm -p 3487:3487 -v "$(PWD):/usr/src/source" --name docs-serve app/mkdocs build
.PHONY: docs-serve
docs-serve:
docker run --rm -p 3487:3487 -v "$(PWD):/usr/src/source" --name docs-serve app/mkdocs serve
.PHONY: docs-deps
docs-deps:
@docker run --rm -p 3487:3487 -v "$(PWD):/usr/src/app" app/mkdocs deps
.PHONY: docs-enter
docs-enter:
docker exec -it docs-serve bash

12
docs/_build/Dockerfile vendored Normal file
View File

@@ -0,0 +1,12 @@
FROM python:3.11.1-alpine
WORKDIR /usr/src/app
COPY docs/_build/requirements.txt .
RUN apk add --no-cache bash yaml && \
pip install --no-cache-dir -r requirements.txt
COPY docs/_build/entrypoint /bin/entrypoint
ENTRYPOINT [ "/bin/entrypoint" ]

30
docs/_build/app-nginx.conf.sigil vendored Normal file
View File

@@ -0,0 +1,30 @@
worker_processes 1;
error_log stderr;
pid nginx.pid;
daemon off;
events {
worker_connections 768;
}
http {
types_hash_max_size 2048;
include mime.types;
charset UTF-8;
server {
listen {{ $.PORT }};
server_name _;
root /app/www;
index index.html;
port_in_redirect off;
include /app/www/nginx.conf.d/*.conf;
location ^~ /nginx.conf.d/ {
return 404;
}
location / {
try_files $uri $uri/ =404;
}
}
}

39
docs/_build/entrypoint vendored Executable file
View File

@@ -0,0 +1,39 @@
#!/usr/bin/env bash
set -eo pipefail
write-mkdocs() {
if [[ -f /usr/src/source/contrib/write-mkdocs ]]; then
if ! python /usr/src/source/contrib/write-mkdocs; then
exit 0
fi
fi
}
main() {
declare CMD="$1" ARGS=("${@:2}")
if [[ "$CMD" == "build" ]]; then
write-mkdocs
echo "----> Executing mkdocs build"
mkdocs build
site_dir="$(grep site_dir mkdocs.yml | awk '{print $2}')"
cp -r "/usr/src/app/${site_dir}" "/usr/src/source/${site_dir}"
return $?
fi
if [[ "$CMD" == "deps" ]]; then
pip freeze
return $?
fi
if [[ "$CMD" == "serve" ]]; then
write-mkdocs
mkdocs serve -a 0.0.0.0:3487
return $?
fi
"$CMD" "${ARGS[@]}"
}
main "$@"

23
docs/_build/requirements.txt vendored Normal file
View File

@@ -0,0 +1,23 @@
beautifulsoup4==4.11.1
click==8.1.3
ghp-import==2.1.0
importlib-metadata==4.12.0
Jinja2==3.1.2
Markdown==3.3.7
MarkupSafe==2.1.1
mergedeep==1.3.4
mkdocs==1.3.1
mkdocs-exclude==1.0.2
mkdocs-material==8.4.2
mkdocs-material-extensions==1.0.3
packaging==21.3
Pygments==2.13.0
pymdown-extensions==9.5
pyparsing==3.0.9
python-dateutil==2.8.2
PyYAML==6.0
pyyaml_env_tag==0.1
six==1.16.0
soupsieve==2.3.2.post1
watchdog==2.1.9
zipp==3.8.1

56
docs/_overrides/main.html Normal file
View File

@@ -0,0 +1,56 @@
<!--
Copyright (c) 2016-2022 Martin Donath <martin.donath@squidfunk.com>
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to
deal in the Software without restriction, including without limitation the
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
IN THE SOFTWARE.
-->
{% extends "base.html" %}
<!-- Custom front matter -->
{% block extrahead %}
<!-- Extra style sheets (can't be set in mkdocs.yml due to content hash) -->
<link
rel="stylesheet"
href="{{ 'overrides/assets/stylesheets/main.css' | url }}"
/>
{% endblock %}
<!-- Announcement bar -->
{% block announce %}
<a href="https://twitter.com/dokku">
For updates follow <strong>@dokku</strong> on
<span class="twemoji twitter">
{% include ".icons/fontawesome/brands/twitter.svg" %}
</span>
<strong>Twitter</strong>
</a>
{% endblock %}
<!-- Theme-related JavaScript -->
{% block scripts %}
{{ super() }}
<!-- Extra JavaScript (can't be set in mkdocs.yml due to content hash) -->
<script src="{{ 'overrides/assets/javascripts/bundle.js' | url }}"></script>
{% endblock %}
{% block outdated %}
You're not viewing the latest version.
<a href="{{ page.abs_url }}">
<strong>Click here to go to latest.</strong>
</a>
{% endblock %}

View File

@@ -17,30 +17,30 @@ To support this, Dokku provides support for a special `release` command within y
Each "phase" has different expectations and limitations:
- `app.json`: `scripts.dokku.predeploy`
- When to use: This should be used if your app does not support arbitrary build commands and you need to make changes to the built image.
- Are changes committed to the image at this phase: Yes
- Example use-cases
- Bundling assets in a slightly different way
- Installing a custom package from source or copying a binary into place
- When to use: This should be used if your app does not support arbitrary build commands and you need to make changes to the built image.
- Are changes committed to the image at this phase: Yes
- Example use-cases
- Bundling assets in a slightly different way
- Installing a custom package from source or copying a binary into place
- `app.json`: `scripts.dokku.postdeploy`
- When to use: This should be used in conjunction with external systems to signal the completion of your deploy.
- Are changes committed to the image at this phase: No
- Example use-cases
- Notifying slack that your app is deployed
- Coordinating traffic routing with a central load balancer
- When to use: This should be used in conjunction with external systems to signal the completion of your deploy.
- Are changes committed to the image at this phase: No
- Example use-cases
- Notifying slack that your app is deployed
- Coordinating traffic routing with a central load balancer
- `app.json`: `scripts.postdeploy`
- When to use: This should be used when you wish to run a command _once_, after the app is created and not on subsequent deploys to the app.
- Are changes committed to the image at this phase: No
- Example use-cases
- Setting up OAuth clients and DNS
- Loading seed/test data into the app’s test database
- When to use: This should be used when you wish to run a command _once_, after the app is created and not on subsequent deploys to the app.
- Are changes committed to the image at this phase: No
- Example use-cases
- Setting up OAuth clients and DNS
- Loading seed/test data into the app’s test database
- `Procfile`: `release`
- When to use: This should be used in conjunction with external systems to signal the completion of your app image build.
- Are changes committed to the image at this phase: No
- Example use-cases
- Sending CSS, JS, and other assets from your app’s slug to a CDN or S3 bucket
- Priming or invalidating cache stores
- Running database migrations
- When to use: This should be used in conjunction with external systems to signal the completion of your app image build.
- Are changes committed to the image at this phase: No
- Example use-cases
- Sending CSS, JS, and other assets from your app’s slug to a CDN or S3 bucket
- Priming or invalidating cache stores
- Running database migrations
Additionally, if using a Dockerfile with an `ENTRYPOINT`, the deployment task is passed to that entrypoint as is. The exceptions are if the entrypoint is one of the following:

View File

@@ -165,7 +165,7 @@ dokku docker-options:add node-js-app build "-v /tmp/python-test:/opt/test"
You cannot use mounted volumes during the build phase of a Dockerfile deploy. This is because Docker does not support volumes when executing `docker build`.
> Note: **This can cause data loss** if you bind a mount under `/app` in buildpack apps as herokuish will attempt to remove the original app path during the build phase.
> Warning: **This can cause data loss** if you bind a mount under `/app` in buildpack apps as herokuish will attempt to remove the original app path during the build phase.
## App User and Persistent Storage file ownership (buildpack apps only)
@@ -175,4 +175,4 @@ By default, Dokku will execute your buildpack app processes as the `herokuishuse
> NOTE: this user must exist in your herokuish image.
Additionally, the default `docker-local` scheduler that comes with Dokku will ensure your storage mounts are owned by either `herokuishuser` or the overridden value you have set in `DOKKU_APP_USER`. See the [docker-local scheduler documentation](/docs/advanced-usage/schedulers/docker-local.md#disabling-chown-of-persistent-storage) docs for more information.
Additionally, the default `docker-local` scheduler that comes with Dokku will ensure your storage mounts are owned by either `herokuishuser` or the overridden value you have set in `DOKKU_APP_USER`. See the [docker-local scheduler documentation](/docs/deployment/schedulers/docker-local.md#disabling-chown-of-persistent-storage) docs for more information.

View File

@@ -35,35 +35,35 @@ dokku plugin:list
```
plugn: dev
00_dokku-standard 0.27.9 enabled dokku core standard plugin
20_events 0.27.9 enabled dokku core events logging plugin
app-json 0.27.9 enabled dokku core app-json plugin
apps 0.27.9 enabled dokku core apps plugin
build-env 0.27.9 enabled dokku core build-env plugin
buildpacks 0.27.9 enabled dokku core buildpacks plugin
certs 0.27.9 enabled dokku core certificate management plugin
checks 0.27.9 enabled dokku core checks plugin
common 0.27.9 enabled dokku core common plugin
config 0.27.9 enabled dokku core config plugin
docker-options 0.27.9 enabled dokku core docker-options plugin
domains 0.27.9 enabled dokku core domains plugin
enter 0.27.9 enabled dokku core enter plugin
git 0.27.9 enabled dokku core git plugin
logs 0.27.9 enabled dokku core logs plugin
network 0.27.9 enabled dokku core network plugin
nginx-vhosts 0.27.9 enabled dokku core nginx-vhosts plugin
plugin 0.27.9 enabled dokku core plugin plugin
proxy 0.27.9 enabled dokku core proxy plugin
ps 0.27.9 enabled dokku core ps plugin
repo 0.27.9 enabled dokku core repo plugin
resource 0.27.9 enabled dokku core resource plugin
scheduler-docker-local 0.27.9 enabled dokku core scheduler-docker-local plugin
shell 0.27.9 enabled dokku core shell plugin
ssh-keys 0.27.9 enabled dokku core ssh-keys plugin
storage 0.27.9 enabled dokku core storage plugin
tags 0.27.9 enabled dokku core tags plugin
tar 0.27.9 enabled dokku core tar plugin
trace 0.27.9 enabled dokku core trace plugin
00_dokku-standard 0.29.2 enabled dokku core standard plugin
20_events 0.29.2 enabled dokku core events logging plugin
app-json 0.29.2 enabled dokku core app-json plugin
apps 0.29.2 enabled dokku core apps plugin
build-env 0.29.2 enabled dokku core build-env plugin
buildpacks 0.29.2 enabled dokku core buildpacks plugin
certs 0.29.2 enabled dokku core certificate management plugin
checks 0.29.2 enabled dokku core checks plugin
common 0.29.2 enabled dokku core common plugin
config 0.29.2 enabled dokku core config plugin
docker-options 0.29.2 enabled dokku core docker-options plugin
domains 0.29.2 enabled dokku core domains plugin
enter 0.29.2 enabled dokku core enter plugin
git 0.29.2 enabled dokku core git plugin
logs 0.29.2 enabled dokku core logs plugin
network 0.29.2 enabled dokku core network plugin
nginx-vhosts 0.29.2 enabled dokku core nginx-vhosts plugin
plugin 0.29.2 enabled dokku core plugin plugin
proxy 0.29.2 enabled dokku core proxy plugin
ps 0.29.2 enabled dokku core ps plugin
repo 0.29.2 enabled dokku core repo plugin
resource 0.29.2 enabled dokku core resource plugin
scheduler-docker-local 0.29.2 enabled dokku core scheduler-docker-local plugin
shell 0.29.2 enabled dokku core shell plugin
ssh-keys 0.29.2 enabled dokku core ssh-keys plugin
storage 0.29.2 enabled dokku core storage plugin
tags 0.29.2 enabled dokku core tags plugin
tar 0.29.2 enabled dokku core tar plugin
trace 0.29.2 enabled dokku core trace plugin
```
> Warning: All plugin commands other than `plugin:list` and `plugin:help` require sudo access and must be run directly from the Dokku server.

View File

@@ -28,7 +28,7 @@ Valid resource options include:
- `--network-egress`
- `--nvidia-gpu`
See the [Supported Resource Management Properties](/docs/advanced-usage/schedulers/docker-local.md#supported-resource-management-properties) section of the docker local scheduler documentation for more information on how each resource limit maps to Docker.
See the [Supported Resource Management Properties](/docs/deployment/schedulers/docker-local.md#supported-resource-management-properties) section of the docker local scheduler documentation for more information on how each resource limit maps to Docker.
Resource limits and reservations are applied only during the `run` and `deploy` phases of an application, and will not impact the `build` phase of an application.

View File

@@ -4,10 +4,10 @@
By default, Dokku will ship a PCI Compliant nginx configuration. For developers whose users are on older browsers or mobile devices, you may need to ship a custom `nginx.conf.sigil` to enable ciphers for older browsers.
See the [nginx customization](/docs/configuration/nginx/#customizing-the-nginx-configuration) docs for more details.
See the [nginx customization](/docs/networking/proxies/nginx/#customizing-the-nginx-configuration) docs for more details.
## Nginx Error Pages
We now ship with nicer error pages by default. You are free to customize your Dokku installation via a custom `nginx.conf.sigil` to change what error pages are displayed in different circumstances.
See the [nginx customization](/docs/configuration/nginx/#customizing-the-nginx-configuration) docs for more details.
See the [nginx customization](/docs/networking/proxies/nginx/#customizing-the-nginx-configuration) docs for more details.

View File

@@ -7,7 +7,7 @@ The [dokku-registry](https://github.com/dokku/dokku-registry) plugin is now buil
- Builder plugins should call `post-release-builder` at the end of the build.
- The `push` and `pull` command are not implemented. Users wishing to deploy a remote image should use `git:from-image`. Image pushing is not available at this time.
- At this time, remote docker repositories are not automatically created for AWS, and users must create those repositories for their applications as necessary. This may be implemented in the future.
- Docker images are only pushed when configured to do so. See the [registry management documentation](/docs/deployment/registry-management.md) for more details.
- Docker images are only pushed when configured to do so. See the [registry management documentation](/docs/advanced-usage/registry-management.md) for more details.
Before upgrading, uninstall the registry plugin via `dokku plugin:uninstall registry`. Not doing so will cause issues with Dokku.

View File

@@ -0,0 +1,25 @@
# 0.28.0 Migration Guide
## Removals
Support for the following operating systems has been removed:
- CentOS 7
- Debian 9 (Stretch)
- Fedora
- OpenSuse
Dokku will no longer provide packages for RPM based systems. Debian 9 users _may_ use new Debian packages, though support is not guaranteed.
All users are encouraged to install Dokku via the [Docker-based installation method](/docs/getting-started/install/docker.md), or switch to a supported operating system.
## Deprecations
Ubuntu 18.04 is now a deprecated installation target. The operating system will be considered EOL by Canonical in April 2023. Users are encouraged to upgrade to Ubuntu 22.04 or consider switching their instllation method to the [Docker-based installation method](/docs/getting-started/install/docker.md) to avoid any disruption in usage.
## Additions
New in 0.28.0 are the Caddy and Traefik plugins. As community plugins wrapping these proxies exist, users should:
- Recommended: Uninstall the community plugin in question and switch all config to the new plugins.
- Upgrade the community plugin to a version that does not use the `proxy:set` value of `caddy` or `traefik`.

View File

@@ -0,0 +1,19 @@
# 0.29.0 Migration Guide
## Changes
- The output of `run:detached` now uses the container name - eg. `node-js-app.run.1` - vs the container id.
- The ID of `cron` tasks is now base36-encoded instead of base64-encoded.
- The `nginx.conf.sigil` is now extracted when source code is extracted for a build and not from the built image. Users can specify alternative paths via the `nginx-conf-sigil-path` property of the `nginx` plugin. See the [nginx documentation](/docs/networking/proxies/nginx.md#customizing-the-nginx-configuration) for more information on how to configure the `nginx.conf.sigil` path for your application.
- For deploys via `git:from-image`, the `nginx.conf.sigil` file will be extracted from the source image, respecting the value of `nginx-conf-sigil-path`.
- The `Procfile` is now extracted when source code is extracted for a build and not from the built image. Users can specify alternative paths via the `procfile-path` property of the `ps` plugin. See the [process management documentation](/docs/processes/process-management.md#changing-the-procfile-location) for more information on how to configure the `Procfile` path for your application.
- For deploys via `git:from-image`, the `Procfile` file will be extracted from the source image, respecting the value of `procfile-path`.
- The existing `pre-restore` hook has been renamed to `scheduler-pre-restore`. There is a new `pre-restore` hook that is triggered within the `ps:restore` command prior to restoring any apps.
- Nginx init commands are now performed via systemctl on Ubuntu systems when `/usr/bin/systemctl` is available.
## Removals
- The `DOKKU_WAIT_TO_RETIRE` environment variable has been migrated to a `checks` property named `wait-to-retire` and will be ignored if set as an environment variable.
- The `domains-setup` trigger has been removed. Initial app domains will now be automatically setup during app creation.
- The `URLS` file containing generated urls for an app is no longer generated or referenced. Users should retrieve app urls via the new `domains-urls` plugin trigger.
- The common function `get_app_urls` has been removed. Users should retrieve app urls via the new `domains-urls` plugin trigger.

View File

@@ -5,11 +5,11 @@
- The nginx-vhosts template language is now [sigil](https://github.com/gliderlabs/sigil)
- No need to escape literal `$` characters (or other "bash-isms")
- Template variables are represented as {{ .VARIABLE_NAME }}
- A detailed list of template variables can be found [here](/docs/configuration/nginx.md#available-template-variables)
- A detailed list of template variables can be found [here](/docs/networking/proxies/nginx.md#available-template-variables)
- A custom nginx-vhosts template must be named `nginx.conf.sigil`
- The default path for this custom template is the root of your repo (i.e. `/app` in the container or `WORKDIR` if defined in a dockerfile app)
- Dokku no longer looks for this file in `/home/dokku/node-js-app` on the Dokku server
- Check out an example template [here](/docs/configuration/nginx.md)
- Check out an example template [here](/docs/networking/proxies/nginx.md)
- Support for server-wide SSL certs have been dropped in favor of using the `certs` plugin
- `dokku certs:add node-js-app < certs.tar`
- All domains for an SSL-enabled app will be redirected to https by default

5
docs/assets/extra.css Normal file
View File

@@ -0,0 +1,5 @@
:root > * {
--md-primary-fg-color: #2A8FBD;
--md-primary-fg-color--light: #ECB7B7;
--md-primary-fg-color--dark: #90030C;
}

View File

@@ -2,10 +2,10 @@
<browserconfig>
<msapplication>
<tile>
<square70x70logo src="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/mstile-70x70.png"/>
<square150x150logo src="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/mstile-150x150.png"/>
<square310x310logo src="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/mstile-310x310.png"/>
<wide310x150logo src="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/mstile-310x150.png"/>
<square70x70logo src="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/mstile-70x70.png"/>
<square150x150logo src="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/mstile-150x150.png"/>
<square310x310logo src="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/mstile-310x310.png"/>
<wide310x150logo src="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/mstile-310x150.png"/>
<TileColor>#da532c</TileColor>
</tile>
</msapplication>

View File

@@ -2,37 +2,37 @@
"name": "Dokku",
"icons": [
{
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.27.9\/docs\/assets\/favicons\/android-chrome-36x36.png",
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.29.2\/docs\/assets\/favicons\/android-chrome-36x36.png",
"sizes": "36x36",
"type": "image\/png",
"density": "0.75"
},
{
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.27.9\/docs\/assets\/favicons\/android-chrome-48x48.png",
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.29.2\/docs\/assets\/favicons\/android-chrome-48x48.png",
"sizes": "48x48",
"type": "image\/png",
"density": "1.0"
},
{
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.27.9\/docs\/assets\/favicons\/android-chrome-72x72.png",
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.29.2\/docs\/assets\/favicons\/android-chrome-72x72.png",
"sizes": "72x72",
"type": "image\/png",
"density": "1.5"
},
{
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.27.9\/docs\/assets\/favicons\/android-chrome-96x96.png",
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.29.2\/docs\/assets\/favicons\/android-chrome-96x96.png",
"sizes": "96x96",
"type": "image\/png",
"density": "2.0"
},
{
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.27.9\/docs\/assets\/favicons\/android-chrome-144x144.png",
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.29.2\/docs\/assets\/favicons\/android-chrome-144x144.png",
"sizes": "144x144",
"type": "image\/png",
"density": "3.0"
},
{
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.27.9\/docs\/assets\/favicons\/android-chrome-192x192.png",
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.29.2\/docs\/assets\/favicons\/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image\/png",
"density": "4.0"

View File

@@ -712,7 +712,6 @@ button.list-group-item:hover {
color: rgb(71, 74, 84);
font-size: 1.1em;
font-weight: normal;
height: 20px;
line-height: 1.7;
text-align: left;
}
@@ -1341,4 +1340,4 @@ ul.fas li .fa-large:before {
.markdown-body a {
color: #ffffff;
}
}
}

View File

@@ -24,6 +24,8 @@
"0.24.10",
"0.25.7",
"0.26.8",
"0.27.9"
"0.27.10",
"0.28.4",
"0.29.2"
]
}

View File

@@ -59,6 +59,7 @@ The following plugins are available and provided by Dokku maintainers. Please f
| [PostgreSQL](https://github.com/jlachowski/dokku-pg-plugin) | [jlachowski][] | 0.3.x |
| [PostgreSQL (single container)](https://github.com/ohardy/dokku-psql) | [ohardy][] | 0.3.x |
| [PostgreSQL (single container)](https://github.com/Flink/dokku-psql-single-container) | [flink][] | 0.3.26+ |
| [Edgedb](https://github.com/IgnisDa/dokku-edgedb) | [ignisda][] | 0.27.0+ |
#### Caching
@@ -313,3 +314,4 @@ The following plugins are no longer maintained by their developers.
[baikunz]: https://github.com/baikunz
[lazyatom]: https://github.com/lazyatom
[ollej]: https://github.com/ollej
[ignisda]: https://github.com/IgnisDa

View File

@@ -1,78 +0,0 @@
# Run Dokku on External Volume
In order to leverage cloud-provider facilities like _attachable volumes_, (_a.k.a. block storage_)
the following is an easy tutorial to achieve Dokku runs on them.
> Warning: If the block storage is not available and attached on boot it is possible that containers will not correctly start. Please keep this in mind when considering moving Dokku and/or Docker to network attached storage.
## Tutorial
The following is intended to be executed on the dokku host machine as `root`.
Say, _for instance_, that our volume is mapped into the systems as `/dev/vdb1`.
Stop docker daemon
```shell
systemctl stop docker
```
Prepare the filesystem:
```shell
mkfs -t ext4 /dev/vdb1
mkdir /mnt/volume
mount /dev/vdb1 /mnt/volume
```
Move the old data directories:
```shell
mv /home/dokku /home/dokku.OLD
mv /var/lib/docker /var/lib/docker.OLD
mv /var/lib/dokku /var/lib/dokku.OLD
```
Move the data on the volume
```shell
mkdir /mnt/volume/home/
mkdir -p /mnt/volume/var/lib/
mv /home/dokku.OLD /mnt/volume/home/dokku
mv /var/lib/dokku.OLD /mnt/volume/var/lib/dokku
mv /var/lib/docker.OLD /mnt/volume/var/lib/docker
```
Prepare the mountpoints
```shell
mkdir /home/dokku
mkdir /var/lib/dokku
mkdir /var/lib/docker
chown dokku:dokku /home/dokku # respect the original ownership
chmod 711 /var/lib/docker # respect the original permissions
```
Mount bind
```shell
mount -o bind /mnt/volume/home/dokku /home/dokku
mount -o bind /mnt/volume/var/lib/dokku /var/lib/dokku
mount -o bind /mnt/volume/var/lib/docker /var/lib/docker
```
Start docker daemon
```shell
systemctl start docker
```
At this point all should be working fine, please check it out.
Then, let the changes be reboot-persistent
```shell
echo '/dev/vdb1 /mnt/volume ext4 defaults 0 2' | sudo tee -a /etc/fstab
echo '/mnt/volume/home/dokku /home/dokku none defaults,bind 0 0' | sudo tee -a /etc/fstab
echo '/mnt/volume/var/lib/dokku /var/lib/dokku none defaults,bind 0 0' | sudo tee -a /etc/fstab
echo '/mnt/volume/var/lib/docker /var/lib/docker none defaults,bind 0 0' | sudo tee -a /etc/fstab
```

View File

@@ -113,4 +113,4 @@ dokku domains:report node-js-app --domains-app-enabled
## Default site
This is specific to your proxy plugin of choice. See the [nginx documentation](/docs/configuration/nginx.md#default-site) for more information on how to configure this for the default nginx proxy implementation.
This is specific to your proxy plugin of choice. See the [nginx documentation](/docs/networking/proxies/nginx.md#default-site) for more information on how to configure this for the default nginx proxy implementation.

View File

@@ -125,4 +125,3 @@ The following config variables have special meanings and can be set in a variety
| `DOKKU_START_CMD` | none | `dokku config:set` | Command to run instead of `/start $PROC_TYPE` |
| `DOKKU_SYSTEM_GROUP` | `dokku` | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` | System group to chown files as. |
| `DOKKU_SYSTEM_USER` | `dokku` | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` | System user to chown files as. |
| `DOKKU_WAIT_TO_RETIRE` | `60` | `dokku config:set` | After a successful deploy, the grace period given to old containers before they are stopped/terminated. This is useful for ensuring completion of long-running http connections. |

View File

@@ -43,7 +43,7 @@ cat yourdomain_com.crt yourdomain_com.ca-bundle > server.crt
When an SSL certificate is associated to an application, the certificate will be associated with _all_ domains currently associated with said application. Your certificate _should_ be associated with all of those domains, otherwise accessing the application will result in SSL errors. If you wish to remove one of the domains from the application, refer to the [domain configuration documentation](/docs/configuration/domains.md).
Note that with the default nginx template, requests will be redirected to the `https` version of the domain. If this is not the desired state of request resolution, you may customize the nginx template in use. For more details, see the [nginx documentation](/docs/configuration/nginx.md).
Note that with the default nginx template, requests will be redirected to the `https` version of the domain. If this is not the desired state of request resolution, you may customize the nginx template in use. For more details, see the [nginx documentation](/docs/networking/proxies/nginx.md).
### Certificate generation
@@ -126,7 +126,7 @@ dokku certs:report node-js-app --ssl-enabled
The [HSTS header](https://en.wikipedia.org/wiki/HTTP_Strict_Transport_Security) is an HTTP header that can inform browsers that all requests to a given site should be made via HTTPS. Dokku does enables this header by default for HTTPS requests.
See the [NGINX HSTS documentation](/docs/configuration/nginx.md#hsts-header) for more information on how the HSTS configuration can be managed for your application.
See the [NGINX HSTS documentation](/docs/networking/proxies/nginx.md#hsts-header) for more information on how the HSTS configuration can be managed for your application.
## HTTP/2 support

View File

@@ -1,4 +1,4 @@
# Deploying to Dokku
# Deploying an Application
> Note: This walkthrough uses the hostname `dokku.me` in commands. When deploying to your own server, you should substitute the domain `dokku.me` for the domain name or IP address associated with your server. Users of the Vagrant VM included with Dokku can use `dokku.me` which points to the IP of the VM.
@@ -105,7 +105,7 @@ Dokku supports deploying applications in a few ways:
- [Heroku buildpacks](https://devcenter.heroku.com/articles/buildpacks) via [Herokuish](https://github.com/gliderlabs/herokuish#buildpacks): See the [herokuish buildpacks documentation](/docs/deployment/builders/herokuish-buildpacks.md) to learn about the different ways to specify a buildpack.
- This is the default method used by Dokku.
- [Dockerfile](https://docs.docker.com/reference/builder/): See the [dockerfile documentation](/docs/deployment/builders/dockerfiles.md) to learn about the different ways to configure Dockerfile-based deploys.
- [Docker Image](https://docs.docker.com/get-started/overview/#docker-objects): See the [docker image documentation](/docs/deployment/methods/images.md) to learn about how to deploy a Docker Image.
- [Docker Image](https://docs.docker.com/get-started/overview/#docker-objects): See the [docker image documentation](/docs/deployment/methods/git.md#initializing-an-app-repository-from-a-docker-image) to learn about how to deploy a Docker Image.
### Setting up SSL
@@ -242,7 +242,7 @@ See the [Dockerfile documentation](/docs/deployment/builders/dockerfiles.md) for
## Image tagging
See the [image tagging documentation](/docs/deployment/methods/images.md) for more information on how Docker images can be tagged and deployed for a given application.
See the [image tagging documentation](/docs/deployment/methods/git.md#initializing-an-app-repository-from-a-docker-image) for more information on how Docker images can be tagged and deployed for a given application.
## Specifying a custom buildpack

View File

@@ -150,6 +150,12 @@ By default, Dokku will deploy the renamed app, though you can skip the deploy by
dokku apps:rename --skip-deploy node-js-app io-js-app
```
Remember to also change your git remote on your local machine in order to make `git push dokku main:master` work again. For this you can use `git remote set-url`.
```shell
git remote set-url dokku dokku@dokku.me:io-js-app
```
### Cloning an existing app
> New as of 0.11.5

View File

@@ -17,6 +17,7 @@ Dokku supports the following built-in builders:
- `builder-dockerfile`: Builds apps using a `Dockerfile` via `docker build`. See the [dockerfile builder documentation](/docs/deployment/builders/dockerfiles.md) for more information on how this builder functions.
- `builder-herokuish`: Builds apps with Heroku's v2a Buildpack specification via `gliderlabs/herokuish`. See the [herokuish builder documentation](/docs/deployment/builders/herokuish-buildpacks.md) for more information on how this builder functions.
- `builder-lambda`: Builds AWS Lambda functions in an environment simulating AWS Lambda runtimes via [lambda-builder](https://github.com/dokku/lambda-builder). See the [lambda builder documentation](/docs/deployment/builders/lambda.md) for more information on how this builder functions.
- `builder-null`: Does nothing during the build phase. See the [null builder documentation](/docs/deployment/builders/null.md) for more information on how this builder functions.
- `builder-pack`: Builds apps with Cloud Native Buildpacks via the `pack-cli` tool. See the [cloud native buildpacks builder documentation](/docs/deployment/builders/cloud-native-buildpacks.md) for more information on how this builder functions.

View File

@@ -1,7 +1,12 @@
# Cloud Native Buildpacks (Experimental)
# Cloud Native Buildpacks
> New as of 0.22.0
```
builder-pack:report [<app>] [<flag>] # Displays a builder-pack report for one or more apps
builder-pack:set <app> <key> (<value>) # Set or clear a builder-pack property for an app
```
```
buildpacks:set-property [--global|<app>] <key> <value> # Set or clear a buildpacks property for an app
```
@@ -89,17 +94,17 @@ dokku builder-pack:report
```
=====> node-js-app builder-pack information
Builder-pack computed projecttoml path: project2.toml
Builder-pack global projecttoml path: project.toml
Builder-pack projecttoml path: project2.toml
Builder pack computed projecttoml path: project2.toml
Builder pack global projecttoml path: project.toml
Builder pack projecttoml path: project2.toml
=====> python-sample builder-pack information
Builder-pack computed projecttoml path: project.toml
Builder-pack global projecttoml path: project.toml
Builder-pack projecttoml path:
Builder pack computed projecttoml path: project.toml
Builder pack global projecttoml path: project.toml
Builder pack projecttoml path:
=====> ruby-sample builder-pack information
Builder-pack computed projecttoml path: project.toml
Builder-pack global projecttoml path: project.json
Builder-pack projecttoml path:
Builder pack computed projecttoml path: project.toml
Builder pack global projecttoml path: project.json
Builder pack projecttoml path:
```
You can run the command for a specific app also.
@@ -110,9 +115,9 @@ dokku builder-pack:report node-js-app
```
=====> node-js-app builder-pack information
Builder-pack computed projecttoml path: project2.toml
Builder-pack global projecttoml path: project.toml
Builder-pack projecttoml path: project2.toml
Builder pack computed projecttoml path: project2.toml
Builder pack global projecttoml path: project.toml
Builder pack projecttoml path: project2.toml
```
You can pass flags which will output only the value of the specific information you want. For example:

View File

@@ -2,6 +2,11 @@
> New as of 0.3.15
```
builder-dockerfile:report [<app>] [<flag>] # Displays a builder-dockerfile report for one or more apps
builder-dockerfile:set <app> <key> (<value>) # Set or clear a builder-dockerfile property for an app
```
While Dokku normally defaults to using [Heroku buildpacks](https://devcenter.heroku.com/articles/buildpacks) for deployment, you can also use Docker's native `Dockerfile` system to define a container.
> Dockerfile support is considered a *power user* feature. By using Dockerfile-based deployment, you agree that you will not have the same comfort as that enjoyed by buildpack users, and Dokku features may work differently. Differences between the two systems will be documented here.
@@ -67,17 +72,17 @@ dokku builder-dockerfile:report
```
=====> node-js-app builder-dockerfile information
Builder-dockerfile computed dockerfile path: Dockerfile2
Builder-dockerfile global dockerfile path: Dockerfile
Builder-dockerfile dockerfile path: Dockerfile2
Builder dockerfile computed dockerfile path: Dockerfile2
Builder dockerfile global dockerfile path: Dockerfile
Builder dockerfile dockerfile path: Dockerfile2
=====> python-sample builder-dockerfile information
Builder-dockerfile computed dockerfile path: Dockerfile
Builder-dockerfile global dockerfile path: Dockerfile
Builder-dockerfile dockerfile path:
Builder dockerfile computed dockerfile path: Dockerfile
Builder dockerfile global dockerfile path: Dockerfile
Builder dockerfile dockerfile path:
=====> ruby-sample builder-dockerfile information
Builder-dockerfile computed dockerfile path: Dockerfile
Builder-dockerfile global dockerfile path: Dockerfile
Builder-dockerfile dockerfile path:
Builder dockerfile computed dockerfile path: Dockerfile
Builder dockerfile global dockerfile path: Dockerfile
Builder dockerfile dockerfile path:
```
You can run the command for a specific app also.
@@ -88,9 +93,9 @@ dokku builder-dockerfile:report node-js-app
```
=====> node-js-app builder-dockerfile information
Builder-dockerfile computed dockerfile path: Dockerfile2
Builder-dockerfile global dockerfile path: Dockerfile
Builder-dockerfile dockerfile path: Dockerfile2
Builder dockerfile computed dockerfile path: Dockerfile2
Builder dockerfile global dockerfile path: Dockerfile
Builder dockerfile dockerfile path: Dockerfile2
```
You can pass flags which will output only the value of the specific information you want. For example:
@@ -107,7 +112,7 @@ Dockerfile2
For security reasons - and as per [Docker recommendations](https://github.com/docker/docker/issues/13490) - Dockerfile-based deploys have variables available only during runtime.
For users that require customization in the `build` phase, you may use build arguments via the [docker-options plugin](docs/advanced-usage/docker-options.md):
For users that require customization in the `build` phase, you may use build arguments via the [docker-options plugin](/docs/advanced-usage/docker-options.md):
```shell
dokku docker-options:add node-js-app build '--build-arg NODE_ENV=production'

View File

@@ -1,4 +1,4 @@
# Herokuish Buildpack Deployment
# Herokuish Buildpacks
> Subcommands new as of 0.15.0
@@ -12,6 +12,11 @@ buildpacks:set [--index 1] <app> <buildpack> # Set new app buildpack
buildpacks:set-property [--global|<app>] <key> <value> # Set or clear a buildpacks property for an app
```
```
builder-herokuish:report [<app>] [<flag>] # Displays a builder-herokuish report for one or more apps
builder-herokuish:set <app> <key> (<value>) # Set or clear a builder-herokuish property for an app
```
> Warning: If using the `buildpacks` plugin, be sure to unset any `BUILDPACK_URL` and remove any such entries from a committed `.env` file. A specified `BUILDPACK_URL` will always override a `.buildpacks` file or the buildpacks plugin.
Dokku normally defaults to using [Heroku buildpacks](https://devcenter.heroku.com/articles/buildpacks) for deployment, though this may be overridden by committing a valid `Dockerfile` to the root of your repository and pushing the repository to your Dokku installation. To avoid this automatic `Dockerfile` deployment detection, you may do one of the following:
@@ -168,6 +173,36 @@ dokku buildpacks:set-property --global stack gliderlabs/herokuish:latest
dokku buildpacks:set-property --global stack
```
### Allowing herokuish for non-amd64 platforms
> New as of 0.29.0
By default, the builder-herokuish plugin is not enabled for non-amd64 platforms, and attempting to use it is blocked. This is because the majority of buildpacks are not cross-platform compatible, and thus building apps will either be considerably slower - due to emulating the amd64 platform - or won't work - due to building amd64 packages on arm/arm64 platforms.
To force-enable herokuish on non-amd64 platforms, the `allowed` property can be set via `builder-herokuish:set`. The default value depends on the host platform architecture (`true` on amd64, `false` otherwise).
```shell
dokku builder-herokuish:set node-js-app allowed true
```
The default value may be set by passing an empty value for the option:
```shell
dokku builder-herokuish:set node-js-app allowed
```
The `allowed` property can also be set globally. The global default is platform-dependent, and the global value is used when no app-specific value is set.
```shell
dokku builder-herokuish:set --global allowed true
```
The default value may be set by passing an empty value for the option.
```shell
dokku builder-herokuish:set --global allowed
```
### Displaying buildpack reports for an app
You can get a report about the app's buildpacks status using the `buildpacks:report` command:
@@ -211,6 +246,54 @@ You can pass flags which will output only the value of the specific information
dokku buildpacks:report node-js-app --buildpacks-list
```
### Displaying builder-herokuish reports for an app
> New as of 0.29.0
You can get a report about the app's storage status using the `builder-herokuish:report` command:
```shell
dokku builder-herokuish:report
```
```
=====> node-js-app builder-herokuish information
Builder herokuish computed allowed: false
Builder herokuish global allowed: true
Builder herokuish allowed: false
=====> python-sample builder-herokuish information
Builder herokuish computed allowed: true
Builder herokuish global allowed: true
Builder herokuish allowed:
=====> ruby-sample builder-herokuish information
Builder herokuish computed allowed: true
Builder herokuish global allowed: true
Builder herokuish allowed:
```
You can run the command for a specific app also.
```shell
dokku builder-herokuish:report node-js-app
```
```
=====> node-js-app builder-herokuish information
Builder herokuish computed allowed: false
Builder herokuish global allowed: true
Builder herokuish allowed: false
```
You can pass flags which will output only the value of the specific information you want. For example:
```shell
dokku builder-herokuish:report node-js-app --builder-herokuish-allowed
```
```
false
```
## Errata
### Switching from Dockerfile deployments

View File

@@ -0,0 +1,112 @@
# Lambda Builder
> New as of 0.28.0
```
builder-lambda:report [<app>] [<flag>] # Displays a builder-lambda report for one or more apps
builder-lambda:set <app> <key> (<value>) # Set or clear a builder-lambda property for an app
```
The `lambda` builder builds AWS Lambda functions in an environment simulating AWS Lambda runtimes via [lambda-builder](https://github.com/dokku/lambda-builder). Apps built via this builder can run natively in Dokku and may also have their artifacts scheduled to Lambda via an appropriate scheduler.
## Usage
### Detection
This builder will be auto-detected in the following case:
- A `lambda.yml` exists in the root of the app repository.
The builder may also be selected via the `builder:set` command
```shell
dokku builder:set node-js-app selected lambda
```
### Supported languages
The `lambda` builder plugin supports the following AWS runtime languages on Amazon Linux 2:
- dotnet
- go (builder is based on AL1)
- nodejs
- python
- ruby
See the [lambda-builder](https://github.com/dokku/lambda-builder#how-does-it-work) documentation for more information on how specific languages are detected.
### Customizing the build environment
The `lambda` builder plugin delegates all build logic to [lambda-builder](https://github.com/dokku/lambda-builder), including language detection and build/runtime environment specification. The lambda-builder tool supports a `lambda.yml` file format for customizing how apps are built. Please see the readme for lambda-builder for more information on different options.
### Changing the `lambda.yml` location
When deploying a monorepo, it may be desirable to specify the specific path of the `lambda.yml` file to use for a given app. This can be done via the `builder-lambda:set` command. If a value is specified and that file does not exist in the app's build directory, then the build will fail.
```shell
dokku builder-lambda:set node-js-app lambdayml-path lambda2.yml
```
The default value may be set by passing an empty value for the option:
```shell
dokku builder-lambda:set node-js-app lambdayml-path
```
The `lambdayml-path` property can also be set globally. The global default is `lambda.yml`, and the global value is used when no app-specific value is set.
```shell
dokku builder-lambda:set --global lambdayml-path lambda2.yml
```
The default value may be set by passing an empty value for the option.
```shell
dokku builder-lambda:set --global lambdayml-path
```
### Displaying builder-lambda reports for an app
You can get a report about the app's storage status using the `builder-lambda:report` command:
```shell
dokku builder-lambda:report
```
```
=====> node-js-app builder-lambda information
Builder lambda computed lambdayml path: lambda2.yml
Builder lambda global lambdayml path: lambda.yml
Builder lambda lambdayml path: lambda2.yml
=====> python-sample builder-lambda information
Builder lambda computed lambdayml path: lambda.yml
Builder lambda global lambdayml path: lambda.yml
Builder lambda lambdayml path:
=====> ruby-sample builder-lambda information
Builder lambda computed lambdayml path: lambda.yml
Builder lambda global lambdayml path: lambda.yml
Builder lambda lambdayml path:
```
You can run the command for a specific app also.
```shell
dokku builder-lambda:report node-js-app
```
```
=====> node-js-app builder-lambda information
Builder lambda computed lambdayml path: lambda2.yml
Builder lambda global lambdayml path: lambda.yml
Builder lambda lambdayml path: lambda2.yml
```
You can pass flags which will output only the value of the specific information you want. For example:
```shell
dokku builder-lambda:report node-js-app --builder-lambda-lambdayml-path
```
```
lambda2.yml
```

View File

@@ -20,7 +20,7 @@ You can easily get logs of an app using the `logs` command:
dokku logs node-js-app
```
Logs are pulled via integration with the scheduler for the specified application via "live tailing". As such, logs from previously running deployments are usually not available. Users that desire to see logs from previous deployments for debugging purposes should persist those logs to external services. Please see Dokku's [vector integration](deployment/logs.md#vector-logging-shipping) for more information on how to persist logs across deployments to ship logs to another service or a third-party platform.
Logs are pulled via integration with the scheduler for the specified application via "live tailing". As such, logs from previously running deployments are usually not available. Users that desire to see logs from previous deployments for debugging purposes should persist those logs to external services. Please see Dokku's [vector integration](/docs/deployment/logs.md#vector-logging-shipping) for more information on how to persist logs across deployments to ship logs to another service or a third-party platform.
#### Behavioral modifiers
@@ -43,7 +43,7 @@ The above command will show logs continually from the web process.
### Failed deploy logs
> Warning: The default [docker-local scheduler](/docs/advanced-usage/schedulers/docker-local.md) will "store" these until the next deploy or until the old containers are garbage collected - whichever runs first. If you require the logs beyond this point in time, please ship the logs to a centralized log server.
> Warning: The default [docker-local scheduler](/docs/deployment/schedulers/docker-local.md) will "store" these until the next deploy or until the old containers are garbage collected - whichever runs first. If you require the logs beyond this point in time, please ship the logs to a centralized log server.
In some cases, it may be useful to retrieve the logs from a previously failed deploy.

View File

@@ -12,6 +12,7 @@ git:initialize <app> # Initialize a git repository
git:public-key # Outputs the dokku public deploy key
git:report [<app>] [<flag>] # Displays a git report for one or more apps
git:set <app> <key> (<value>) # Set or clear a git property for an app
git:status <app> # Show the working tree status for an app
git:unlock <app> [--force] # Removes previous git clone folder for new deployment
```
@@ -135,6 +136,8 @@ In the above example, Dokku will build the app as if the repository contained _o
FROM dokku/node-js-getting-started:latest
```
If the specified image already exists on the Dokku host, it will not be pulled again, though this behavior may be changed using [build phase docker-options](/docs/advanced-usage/docker-options.md).
Triggering a build with the same arguments multiple times will result in Dokku exiting `0` early as there will be no changes detected. If the image tag is reused but the underlying image is different, it is recommended to use the image digest instead of the tag. This can be retrieved via the following command:
```shell
@@ -156,6 +159,18 @@ dokku git:from-image node-js-app dokku/node-js-getting-started:latest "Camila" "
If the image is a private image that requires a docker login to access, the `registry:login` command should be used to log into the registry. See the [registry documentation](/docs/advanced-usage/registry-management.md#logging-into-a-registry) for more details on this process.
Building an app from an image will result in the following files being extracted from the source image (with all custom paths specified for each file being respected):
- nginx.conf.sigil
- Procfile
In the case where the repository is later modified to manually add any of the above files and deployed via `git push`, the files will still be extracted from the initial source image. To avoid this, please clear the `source-image` git property. It will be set back to the original source image on any subsequent `git:from-image` calls.
```shell
# sets an empty value
dokku git:set node-js-app source-image
```
Finally, certain images may require a custom build context in order for `ONBUILD ADD` and `ONBUILD COPY` statements to succeed. A custom build context can be specified via the `--build-dir` flag. All files in the specified `build-dir` will be copied into the repository for use within the `docker build` process. The build context _must_ be specified on each deploy, and is not otherwise persisted between builds.
```shell

View File

@@ -84,10 +84,10 @@ It also supports several flags (all flags unspecified here are passed as is to t
In addition, the following commands have special local side-effects:
- `apps:create`:
- If no local `--app` flag is specified or detected from a `dokku` git remote, a random name is generated and used for the app.
- The `dokku` git remote is set if not already set.
- If no local `--app` flag is specified or detected from a `dokku` git remote, a random name is generated and used for the app.
- The `dokku` git remote is set if not already set.
- `apps:destroy`:
- Removes the local `dokku` git remote if set.
- Removes the local `dokku` git remote if set.
## Unofficial Clients

View File

@@ -37,6 +37,22 @@ Once set, you may re-enable it by setting a blank value for `disable-chown`:
dokku scheduler-docker-local:set node-js-app disable-chown
```
### Disabling the init process
The `scheduler-docker-local` injects an init process by default via the `--init`. For some apps - such as those where the built docker image uses S6 as the init - this may be undesirable and cause issues with process starts. You may disable this by running the following `scheduler-docker-local:set` command for your application:
```shell
dokku scheduler-docker-local:set node-js-app init-process false
```
Once set, you may re-enable it by setting a blank value for `init-process`:
```shell
dokku scheduler-docker-local:set node-js-app init-process
```
All image containers with the label `org.opencontainers.image.vendor=linuxserver.io` will have the automatic init process injection force-disabled without further intervention.
### Deploying Process Types in Parallel
> New as of 0.25.5
@@ -112,7 +128,7 @@ This plugin implements various functionality through `plugn` triggers to integra
### Logging support
App logs for the `logs` command are fetched from running containers via the `docker` cli. To persist logs across deployments, consider using Dokku's [vector integration](deployment/logs.md#vector-logging-shipping) to ship logs to another service or a third-party platform.
App logs for the `logs` command are fetched from running containers via the `docker` cli. To persist logs across deployments, consider using Dokku's [vector integration](/docs/deployment/logs.md#vector-logging-shipping) to ship logs to another service or a third-party platform.
### Supported Resource Management Properties

View File

@@ -2,13 +2,13 @@
> Warning: This scheduler is not in Dokku core and thus functionality may change over time as the API stabilizes.
The [Nomad Scheduler Plugin](https://github.com/dokku/dokku-scheduler-kubernetes) is available free as an external plugin. Please see the plugin's [issue tracker](https://github.com/dokku/dokku-scheduler-kubernetes/issues) for more information on the status of the plugin.
The [Kubernetes Scheduler Plugin](https://github.com/dokku/dokku-scheduler-kubernetes) is available free as an external plugin. Please see the plugin's [issue tracker](https://github.com/dokku/dokku-scheduler-kubernetes/issues) for more information on the status of the plugin.
For users that require additional functionality, please refer to the [Sponsoring Documentation](https://github.com/dokku/.github/blob/master/SPONSORING.md).
## Scheduler Interface
The following sections describe implemented scheduler functionality for the `docker-local` scheduler.
The following sections describe implemented scheduler functionality for the `kubernetes` scheduler.
### Implemented Commands and Triggers

View File

@@ -8,7 +8,7 @@ For users that require additional functionality, please refer to the [Sponsoring
## Scheduler Interface
The following sections describe implemented scheduler functionality for the `docker-local` scheduler.
The following sections describe implemented scheduler functionality for the `nomad` scheduler.
### Implemented Commands and Triggers

View File

@@ -18,8 +18,6 @@ Dokku supports the following built-in schedulers:
- `scheduler-docker-local`: Schedules apps against the local docker socket and runs containers directly on the Dokku host. See the [docker-local scheduler documentation](/docs/deployment/schedulers/docker-local.md) for more information on how this scheduler functions.
- `scheduler-null`: Does nothing during the scheduler phase. See the [null scheduler documentation](/docs/deployment/schedulers/null.md) for more information on how this scheduler functions.
See the [alternate schedulers documentation](/docs/deployment/schedulers/alternate-schedulers.md) for more information on other scheduler plugins.
### Overriding the auto-selected scheduler
If desired, the scheduler can be specified via the `scheduler:set` command by speifying a value for `selected`. The selected scheduler will always be used.

View File

@@ -1,13 +1,14 @@
# Zero Downtime Deploys
# Zero Downtime Deploy Checks
> New as of 0.5.0
```
checks:disable <app> [process-type(s)] Disable zero-downtime deployment for all processes (or comma-separated process-type list) ***WARNING: this will cause downtime during deployments***
checks:enable <app> [process-type(s)] Enable zero-downtime deployment for all processes (or comma-separated process-type list)
checks:report [<app>] [<flag>] Displays a checks report for one or more apps
checks:run <app> [process-type(s)] Runs zero-downtime checks for all processes (or comma-separated process-type list)
checks:skip <app> [process-type(s)] Skip zero-downtime checks for all processes (or comma-separated process-type list)
checks:disable <app> [process-type(s)] Disable zero-downtime deployment for all processes (or comma-separated process-type list) ***WARNING: this will cause downtime during deployments***
checks:enable <app> [process-type(s)] Enable zero-downtime deployment for all processes (or comma-separated process-type list)
checks:report [<app>] [<flag>] Displays a checks report for one or more apps
checks:run <app> [process-type(s)] Runs zero-downtime checks for all processes (or comma-separated process-type list)
checks:set [--global|<app>] <key> <value> Set or clear a logs property for an app
checks:skip <app> [process-type(s)] Skip zero-downtime checks for all processes (or comma-separated process-type list)
```
By default, Dokku will wait `10` seconds after starting each container before assuming it is up and proceeding with the deploy. Once this has occurred for all containers started by an application, traffic will be switched to point to your new containers. Dokku will also wait a further `60` seconds *after* the deploy is complete before terminating old containers in order to give time for long running connections to terminate. In either case, you may have more than one container running for a given application.
@@ -22,13 +23,24 @@ You may both create user-defined checks for web processes using a `CHECKS` file,
> - Allow checks from all hostnames: Modify your application to accept a dynamically provided hostname.
> - Specify the domain within the check: See below for further documentation.
## Configuring checks settings
### wait-to-retire
After a successful deploy, the grace period given to old containers before they are stopped/terminated is determined by the value of `wait-to-retire`. This is useful for ensuring completion of long-running HTTP connections.
```shell
dokku checks:set node-js-app wait-to-retire 30
```
Defaults to `60`.
## Configuring check settings using the `config` plugin
There are certain settings that can be configured via environment variables:
- `DOKKU_DEFAULT_CHECKS_WAIT`: (default: `10`) If no user-defined checks are specified - or if the process being checked is not a `web` process - this is the period of time Dokku will wait before checking that a container is still running.
- `DOKKU_DOCKER_STOP_TIMEOUT`: (default: `10`) Configurable grace period given to the `docker stop` command. If a container has not stopped by this time, a `kill -9` signal or equivalent is sent in order to force-terminate the container. Both the `ps:stop` and `apps:destroy` commands *also* respect this value. If not specified, the Docker defaults for the [`docker stop` command](https://docs.docker.com/engine/reference/commandline/stop/) will be used.
- `DOKKU_WAIT_TO_RETIRE`: (default: `60`) After a successful deploy, the grace period given to old containers before they are stopped/terminated. This is useful for ensuring completion of long-running HTTP connections.
The following settings may also be specified in the `CHECKS` file, though are available as environment variables in order to ease application reuse.
@@ -82,13 +94,22 @@ dokku checks:report
```
=====> node-js-app checks information
Checks disabled list: none
Checks skipped list: none
Checks skipped list: none
Checks computed wait to retire: 60
Checks global wait to retire: 60
Checks wait to retire:
=====> python-app checks information
Checks disabled list: none
Checks skipped list: none
Checks skipped list: none
Checks computed wait to retire: 60
Checks global wait to retire: 60
Checks wait to retire:
=====> ruby-app checks information
Checks disabled list: _all_
Checks skipped list: none
Checks skipped list: none
Checks computed wait to retire: 60
Checks global wait to retire: 60
Checks wait to retire:
```
You can run the command for a specific app also.
@@ -100,7 +121,10 @@ dokku checks:report node-js-app
```
=====> node-js-app checks information
Checks disabled list: none
Checks skipped list: none
Checks skipped list: none
Checks computed wait to retire: 60
Checks global wait to retire: 60
Checks wait to retire:
```
You can pass flags which will output only the value of the specific information you want. For example:

View File

@@ -173,6 +173,21 @@ set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
# TODO
```
### `builder-create-dokku-image`
- Description: Allows modification of the configured dokku-image
- Invoked by: `dokku deploy`
- Arguments: `$BUILDER_TYPE` `$APP` `$SOURCECODE_WORK_DIR` `$DOKKU_IMAGE`
- Example:
```shell
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
# TODO
```
### `builder-detect`
- Description: Allows overriding the auto-detected `herokuish` builder in favor of a custom one. Dockerfile gets lowest builder precedence.
@@ -191,21 +206,6 @@ if [[ -f "$SOURCECODE_WORK_DIR/project.toml" ]]; then
fi
```
### `builder-create-dokku-image`
- Description: Allows modification of the configured dokku-image
- Invoked by: `dokku deploy`
- Arguments: `$BUILDER_TYPE` `$APP` `$SOURCECODE_WORK_DIR` `$DOKKU_IMAGE`
- Example:
```shell
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
# TODO
```
### `builder-dokku-image`
- Description: Allows modification of the used dokku-image.
@@ -221,6 +221,36 @@ set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
# TODO
```
### `builder-image-is-cnb`
- Description: Checks if an image is cnb-based
- Invoked by: unit tests
- Arguments: `$APP` `$IMAGE_TAG`
- Example:
```shell
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
# TODO
```
### `builder-image-is-herokuish`
- Description: Checks if an image is herokuish-based
- Invoked by: unit tests
- Arguments: `$APP` `$IMAGE_TAG`
- Example:
```shell
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
# TODO
```
### `builder-release`
- Description: Triggers the artifact release process
@@ -236,6 +266,21 @@ set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
# TODO
```
### `certs-exists`
- Description: Echos `true` if certs exists for the app, `false` otherwise
- Invoked by:
- Arguments: `$APP`
- Example:
```shell
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
# TODO
```
### `check-deploy`
- Description: Allows you to run checks on a deploy before Dokku allows the container to handle requests.
@@ -262,6 +307,22 @@ if [[ "$DOKKU_DISABLE_DEPLOY" = "true" ]]; then
fi
```
### `checks-get-property`
- Description: Return the value for an app's checks property
- Invoked by:
- Arguments: `$APP $KEY`
- Example:
```shell
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
APP="$1"; PROPERTY="$2"
# TODO
```
### `commands help` and `commands <PLUGIN_NAME>:help`
- Description: Your plugin should implement a `help` command in your `commands` file to take advantage of this plugin trigger. `commands help` is used by `dokku help` to aggregate all plugins abbreviated `help` output. Implementing `<PLUGIN_NAME>:help` in your `commands` file gives users looking for help, a more detailed output. 'commands help' must be implemented inside the `commands` plugin file. It's recommended that `PLUGIN_NAME:help` be added to the commands file to ensure consistency among community plugins and give you a new avenue to share rich help content with your user.
@@ -441,7 +502,6 @@ DOKKU_SCHEDULER="$1"
```shell
#!/usr/bin/env bash
# Installs nginx for the current plugin
# Supports both opensuse and ubuntu
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
@@ -451,9 +511,8 @@ case "$DOKKU_DISTRO" in
debian|raspbian|ubuntu)
apt-get -qq -y --no-install-recommends install nginx
;;
opensuse)
zypper -q in -y nginx
*)
echo "Installation on $DOKKU_DISTRO not supported" 1>&2
;;
esac
```
@@ -699,11 +758,11 @@ set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
# TODO
```
### `domains-setup`
### `domains-urls`
- Description: Initializes domains for an app if enabled
- Description: Gets an app's url(s)
- Invoked by:
- Arguments: `$APP`
- Arguments: `$APP $URL_TYPE`
- Example:
```shell
@@ -744,6 +803,22 @@ set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
# TODO
```
### `git-get-property`
- Description: Return the value for an app's git property
- Invoked by:
- Arguments: `$APP $KEY`
- Example:
```shell
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
APP="$1"; PROPERTY="$2"
# TODO
```
### `git-from-archive`
- Description: Updates an app's git repository from an archive and then triggers a build
@@ -871,9 +946,9 @@ fi
### `logs-get-property`
- Description: Fetches a given logs property value
- Description: Return the value for an app's log property
- Invoked by:
- Arguments: `$APP` `$PROPERTY`
- Arguments: `$APP $KEY`
- Example:
```shell
@@ -992,7 +1067,7 @@ set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
### `network-get-property`
- Description: Return the network value for an app's property
- Description: Return the value for an app's network property
- Invoked by: `internally triggered by a deploy`
- Arguments: `$APP $KEY`
- Example:
@@ -1739,7 +1814,7 @@ APP="$1"; IMAGE_TAG="$2"; IMAGE=$(get_app_image_name $APP $IMAGE_TAG)
- Description: Allows you to run commands before all containers are restored
- Invoked by: `dokku ps:restore`
- Arguments: `$DOKKU_SCHEDULER $APP`
- Arguments:
- Example:
```shell
@@ -1769,21 +1844,6 @@ APP="$1";
curl "https://dokku.me/starting/${APP}" || true
```
### `procfile-extract`
- Description: Extracts a Procfile from a given image to a path
- Invoked by: `internally`
- Arguments: `$APP $IMAGE`
- Example:
```shell
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
# TODO
```
### `procfile-get-command`
- Description: Fetches the command for a specific process type
@@ -1799,21 +1859,6 @@ set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
# TODO
```
### `procfile-remove`
- Description: Removes the extracted Procfile
- Invoked by: `internally`
- Arguments: `$APP`
- Example:
```shell
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
# TODO
```
### `proxy-build-config`
- Description: Builds the proxy implementation configuration for a given app
@@ -1844,6 +1889,21 @@ set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
# TODO
```
### `proxy-configure-ports`
- Description: Configures the proxy port mapping
- Invoked by: `internally triggered by proxy plugins`
- Arguments: `$APP`
- Example:
```shell
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
# TODO
```
### `proxy-disable`
- Description: Disables the configured proxy implementation for an app
@@ -2188,6 +2248,25 @@ DOKKU_SCHEDULER="$1"; APP="$2";
# TODO
```
### `scheduler-pre-restore`
> Warning: The scheduler plugin trigger apis are under development and may change
> between minor releases until the 1.0 release.
- Description: Allows you to run commands before an app is restored
- Invoked by: `dokku ps:restore`
- Arguments: `$DOKU_SCHEDULER $APP`
- Example:
```shell
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
DOKKU_SCHEDULER="$1"; APP="$2";
# TODO
```
### `scheduler-post-delete`
> Warning: The scheduler plugin trigger apis are under development and may change
@@ -2284,6 +2363,44 @@ DOKKU_SCHEDULER="$1"; APP="$2"; ARGS="${@:3}";
# TODO
```
### `scheduler-run-list`
> Warning: The scheduler plugin trigger apis are under development and may change
> between minor releases until the 1.0 release.
- Description: Lists all run containers for a given app
- Invoked by: `dokku run`
- Arguments: `$DOKKU_SCHEDULER $APP $FORMAT`
- Example:
```shell
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
DOKKU_SCHEDULER="$1"; APP="$2"; FORMAT="$3";
# TODO
```
### `scheduler-run-logs`
> Warning: The scheduler plugin trigger apis are under development and may change
> between minor releases until the 1.0 release.
- Description: Allows you to run scheduler commands when retrieving one-off container logs
- Invoked by: `dokku run`
- Arguments: `$DOKKU_SCHEDULER $APP $CONTAINER $TAIL $PRETTY_PRINT $NUM`
- Example:
```shell
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
DOKKU_SCHEDULER="$1"; APP="$2"; CONTAINER="$3"; TAIL="$4"; PRETTY_PRINT="$5"; NUM="$6"
# TODO
```
### `scheduler-stop`
> Warning: The scheduler plugin trigger apis are under development and may change

View File

@@ -29,7 +29,7 @@ The workflow looks like this:
```shell
# having dokku-arch in ../dokku-arch
vagrant up build-arch
# wait for "==> build-arch: ==> Finished making: dokku 0.27.9-2 (Mon Feb 22 23:20:37 CET 2016)"
# wait for "==> build-arch: ==> Finished making: dokku 0.29.2-2 (Mon Feb 22 23:20:37 CET 2016)"
cd ../dokku-arch
git add PKGBUILD .SRCINFO
git commit -m 'Update to dokku 0.9.9'

View File

@@ -17,6 +17,8 @@ While we do provide official packages for a variety of platforms, as our test su
## Local Test Execution
### Vagrant VM
- Setup Dokku in a [Vagrant VM](/docs/getting-started/install/vagrant.md).
- Run the following to setup tests and execute them:
@@ -25,18 +27,6 @@ While we do provide official packages for a variety of platforms, as our test su
sudo su -
cd ~/dokku
make ci-dependencies setup-deploy-tests
# execute the entire test suite (linter, bats tests, and app deployment tests)
make test
# run linter
make lint
# execute all bats tests
make unit-tests
# execute all app deployment tests
make deploy-tests
```
After making changes to your local Dokku clone, don't forget to update the Vagrant Dokku install.
@@ -49,7 +39,54 @@ make copyfiles
make go-build-plugin copyplugin PLUGIN_NAME=apps
```
Additionally you may run a specific app deployment tests with a target similar to:
### VSCode Dev Container
- Open Dokku in a VSCode DevContainer
- Run the following in the VSCode terminal to setup tests and execute them:
```shell
make ci-dependencies setup-deploy-tests
```
After making changes to your local Dokku clone, don't forget to update the Vagrant Dokku install.
```shell
# update vagrant dokku install from local git clone
make copyfiles
# build a specific plugin
make go-build-plugin copyplugin PLUGIN_NAME=apps
```
### Executing tests
Execute the entire test suite (linter, bats tests, and app deployment tests):
```shell
make test
```
Run the linter
```shell
make lint
```
Execute all bats tests
```shell
make unit-tests
```
Execute all app deployment tests
```shell
make deploy-tests
```
#### Executing App Tests
You may run a specific app deployment tests with a target similar to:
```shell
make deploy-test-nodejs-express
@@ -57,32 +94,32 @@ make deploy-test-nodejs-express
For a full list of test make targets check out `tests.mk` in the root of the Dokku repository.
## Executing a single test suite
#### Executing a single test suite
When working on a particular plugin, it may be useful to run _only_ a particular test suite. This can be done by specifying the test suite path:
```shell
bats tests/unit/10_apps.bats
bats tests/unit/apps_1.bats
```
It is also possible to target multiple test suites at a time.
```shell
bats tests/unit/10_apps.bats tests/unit/10_certs.bats
bats tests/unit/apps_1.bats tests/unit/certs.bats
```
## Executing a single test
#### Executing a single test
In order to increase testing velocity, a wrapper script around Bats is available that can be used to run a single test case within a suite.
Tests within a suite may be listed by specifying the suite as a parameter to `bats`.
```shell
bats tests/unit/10_apps.bats
bats tests/unit/apps_1.bats
```
A single test can be specified via the `--filter` argument. The tests are selected via regex match, and all matches are executed.
```shell
bats --filter clone tests/unit/10_apps.bats
bats --filter list tests/unit/apps_1.bats
```

View File

@@ -12,7 +12,6 @@ As well, you may wish to customize your installation in some other fashion. or e
- [Debian Package Installation Notes](/docs/getting-started/install/debian.md)
- [Docker-based Installation Notes](/docs/getting-started/install/docker.md)
- [RPM Package Installation Notes](/docs/getting-started/install/rpm.md)
- [Vagrant Installation Notes](/docs/getting-started/install/vagrant.md)
- [Advanced Install Customization](/docs/getting-started/advanced-installation.md)
- [Automated deployment via ansible](https://github.com/dokku/ansible-dokku)

View File

@@ -3,7 +3,7 @@
Pull the dokku/dokku image:
```shell
docker pull dokku/dokku:0.27.9
docker pull dokku/dokku:0.29.2
```
Next, run the image.
@@ -18,7 +18,7 @@ docker container run \
--publish 8443:443 \
--volume /var/lib/dokku:/mnt/dokku \
--volume /var/run/docker.sock:/var/run/docker.sock \
dokku/dokku:0.27.9
dokku/dokku:0.29.2
```
The above command will start a new docker container that is ready when a message similar to `Runit started as PID 12345` appears.

View File

@@ -1,27 +0,0 @@
# RPM Package Installation Notes
> New as of 0.8.0 *(experimental)*
> **Warning:** Web installer is not available on CentOS. You will need to configure [SSH keys](/docs/deployment/user-management.md#adding-ssh-keys) and [virtual hosts](/docs/configuration/domains.md#customizing-hostnames) using dokku command line interface.
Dokku defaults to being installed via RPM package on CentOS 7. While certain hosts may require extra work to get running, you may optionally wish to automate the installation of Dokku without the use of our `bootstrap.sh` Bash script. The following are the steps run by said script:
```shell
# Install docker
curl -fsSL https://get.docker.com/ | sh
# Install epel for nginx packages to be available
sudo yum install -y epel-release
# Install dokku
curl -s https://packagecloud.io/install/repositories/dokku/dokku/script.rpm.sh | sudo bash
sudo yum install -y herokuish dokku
sudo dokku plugin:install-dependencies --core
systemctl start nginx
# Enable docker and nginx on system startup
systemctl enable docker
systemctl enable nginx
```
The [devicemapper](https://docs.docker.com/engine/userguide/storagedriver/device-mapper-driver/) is the default Docker storage driver on CentOS 7 and defaults to a configuration mode known as `loop-lvm`. This mode is designed to work out-of-the-box with no additional configuration. However, production deployments should not run under `loop-lvm` mode. The preferred configuration for production deployments is [`direct-lvm`](https://docs.docker.com/engine/userguide/storagedriver/device-mapper-driver/#/configure-direct-lvm-mode-for-production).

View File

@@ -10,8 +10,7 @@ To start using Dokku, you'll need a system that meets the following minimum requ
- A fresh installation of any of the following operating systems:
- [Ubuntu 18.04/20.04/22.04](https://www.ubuntu.com/download)
- [Debian 9+ x64](https://www.debian.org/distrib/)
- [CentOS 7 x64](https://www.centos.org/download/) *(experimental)*
- [Debian 10+ x64](https://www.debian.org/distrib/)
- A server with one of the following architectures
- AMD64 (alternatively known as `x86_64`), commonly used for Intel cloud servers
- ARMV7 (alternatively known as `armhf`), commonly used for Raspberry PI
@@ -20,7 +19,7 @@ To start using Dokku, you'll need a system that meets the following minimum requ
To avoid memory pressure during builds or runtime of your applications, we suggest the following:
- At least 1 GB of system memory
- If your system has less than 1GB of memory, you can use [this workaround](/docs/getting-started/advanced-installation.md#vms-with-less-than-1gb-of-memory).
- If your system has less than 1GB of memory, you can use [this workaround](/docs/getting-started/advanced-installation.md#vms-with-less-than-1-gb-of-memory).
Finally, we recommend attaching at least one domain name to your server. This is not required, but using a domain name will make app access easier. When connecting a domain, either a single domain or a wildcard may be associated to the server's IP.
@@ -39,8 +38,8 @@ To install the latest stable version of Dokku, you can run the following shell c
```shell
# for debian systems, installs Dokku via apt-get
wget https://raw.githubusercontent.com/dokku/dokku/v0.27.9/bootstrap.sh;
sudo DOKKU_TAG=v0.27.9 bash bootstrap.sh
wget https://raw.githubusercontent.com/dokku/dokku/v0.29.2/bootstrap.sh
sudo DOKKU_TAG=v0.29.2 bash bootstrap.sh
```
The installation process takes about 5-10 minutes, depending upon internet connection speed.

View File

@@ -9,13 +9,6 @@ While we hate to see you go, if you need to uninstall Dokku, the following may h
yay -Rsn dokku
```
## CentOS Uninstallation
```shell
# uninstall dokku
yum remove dokku herokuish
```
## Debian Uninstallation
```shell

View File

@@ -1,6 +1,6 @@
# Upgrading
If your version of Dokku is pre 0.3.0 (check with `dokku version`), we recommend [a fresh install](/docs/getting-started/installation.md) on a new server.
If your version of Dokku is pre 0.3.0 (check with `dokku version`), we recommend [a fresh install](/docs/getting-started/installation/index.md) on a new server.
## Security Updates
@@ -9,7 +9,6 @@ For any security related updates, please follow our [Twitter account](https://tw
Your operating system may occasionally provide security updates. We recommend setting unattended upgrades for your operating system. Here are some helpful links:
- [Arch Linux System Maintenance](https://wiki.archlinux.org/index.php/System_maintenance)
- [CentOS Automatic Security Updates](https://serversforhackers.com/c/automatic-security-updates-centos)
- [Debian Unattended Upgrades](https://wiki.debian.org/UnattendedUpgrades)
- [Ubuntu Unattended Upgrades](https://help.ubuntu.com/community/AutomaticSecurityUpdates)
@@ -19,6 +18,8 @@ Docker releases updates periodically to their engine. We recommend reading their
Before upgrading, check the migration guides to get comfortable with new features and prepare your deployment to be upgraded.
- [Upgrading to 0.29](/docs/appendices/0.29.0-migration-guide.md)
- [Upgrading to 0.28](/docs/appendices/0.28.0-migration-guide.md)
- [Upgrading to 0.27](/docs/appendices/0.27.0-migration-guide.md)
- [Upgrading to 0.26](/docs/appendices/0.26.0-migration-guide.md)
- [Upgrading to 0.25](/docs/appendices/0.25.0-migration-guide.md)

View File

@@ -20,13 +20,13 @@ GitHub Discussions is a new way for the Dokku community to interact with each ot
### The Slack Channel
- [Gliderlabs Slack](https://glider-slackin.herokuapp.com/) (Join the `#dokku` channel)
- [Gliderlabs Slack](https://slack.dokku.com/) (Join the `#dokku` channel)
If you’re stumped, give us a holler in the Dokku Slack channel. Someone from the development team is usually there, especially during the daylight hours for North and South American users. We’d love to hear from you, whether you need some help, want to find users in your area, or would like to donate our brand new sports car.
Chat is synced to Discord and IRC.
## Discord
### Discord
- [Dokku Discord](https://discord.gg/YQjANGMZvu)

View File

@@ -10,26 +10,26 @@
<meta name="author" content="">
<title>Dokku - The smallest PaaS implementation you've ever seen</title>
<link rel="apple-touch-icon" sizes="57x57" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/apple-touch-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/apple-touch-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/apple-touch-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/apple-touch-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/apple-touch-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/apple-touch-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/apple-touch-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/apple-touch-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/apple-touch-icon-180x180.png">
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/android-chrome-192x192.png" sizes="192x192">
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/favicon-96x96.png" sizes="96x96">
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/favicon-16x16.png" sizes="16x16">
<link rel="manifest" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/manifest.json">
<link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/favicon.ico">
<link rel="apple-touch-icon" sizes="57x57" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/apple-touch-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/apple-touch-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/apple-touch-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/apple-touch-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/apple-touch-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/apple-touch-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/apple-touch-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/apple-touch-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/apple-touch-icon-180x180.png">
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/android-chrome-192x192.png" sizes="192x192">
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/favicon-96x96.png" sizes="96x96">
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/favicon-16x16.png" sizes="16x16">
<link rel="manifest" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/manifest.json">
<link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/favicon.ico">
<meta name="apple-mobile-web-app-title" content="Dokku">
<meta name="application-name" content="Dokku">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="msapplication-TileImage" content="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/mstile-144x144.png">
<meta name="msapplication-config" content="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/browserconfig.xml">
<meta name="msapplication-TileImage" content="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/mstile-144x144.png">
<meta name="msapplication-config" content="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/browserconfig.xml">
<meta name="theme-color" content="#ffffff">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-0evHe/X+R7YkIZDRvuzKMRqM+OrBnVFBL6DOitfPri4tjfHxaWutUpFmBp4vmVor" crossorigin="anonymous">
@@ -38,7 +38,7 @@
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Lato:wght@400;700;900&display=swap" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/style.css" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/style.css" rel="stylesheet">
<!-- <link href="./assets/style.css" rel="stylesheet"> -->
</head>
@@ -53,7 +53,7 @@
<button class="navbar-toggler navbar-toggler-right" type="button" data-bs-toggle="collapse" data-bs-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button>
<div class="collapse navbar-collapse" id="navbarResponsive">
<ul class="navbar-nav ms-auto my-2 my-lg-0">
<li class="nav-item"><a class="nav-link mx-0 mx-md-2 underline" href="https://dokku.github.io/">Blog</a></li>
<li class="nav-item"><a class="nav-link mx-0 mx-md-2 underline" href="https://dokku.com/blog/">Blog</a></li>
<li class="nav-item"><a class="nav-link mx-0 mx-md-2 underline" href="https://github.com/dokku/dokku/">Code</a></li>
<li class="nav-item"><a class="nav-link mx-0 mx-md-2 underline" href="/{{NAME}}/getting-started/installation/">Docs</a></li>
<li class="nav-item dropdown">
@@ -68,7 +68,7 @@
<strong class="d-block">Discord</strong>
</div>
</a>
<a href="https://glider-slackin.herokuapp.com/" class="btn rounded-2 d-flex align-items-center py-2 px-3 lh-sm text-start mx-2">
<a href="https://slack.dokku.com/" class="btn rounded-2 d-flex align-items-center py-2 px-3 lh-sm text-start mx-2">
<img class="me-3" alt="slack" src="./assets/social/slack.png" width="25px" />
<div>
<strong class="d-block">Slack</strong>
@@ -98,7 +98,7 @@
<main class="container px-4 px-lg-5">
<div class="row">
<div class="col-lg-7">
<a class="badge-link" href="https://github.com/dokku/dokku/releases"><span class="badge py-2 d-flex fit-content"><div class="circle align-self-center me-2"></div>Latest release <span id="releaseVersion" class="ms-1">v0.27.1</span></span></a>
<a class="badge-link" href="https://github.com/dokku/dokku/releases"><span class="badge py-2 d-flex fit-content"><div class="circle align-self-center me-2"></div>Latest release <span id="releaseVersion" class="ms-1">v0.29.2</span></span></a>
<h1 class="text-white hero-heading mt-5">An open source PAAS alternative to Heroku.</h1>
<h4 class="text-white mt-5">Dokku helps you build and manage the lifecycle of applications from building to scaling.</h4>
<div class="d-flex mt-5">
@@ -117,14 +117,14 @@
<br>
<p class="line">
<span class="prompt">$</span>
<span class="command">wget https://dokku.com/installer/latest/bootstrap.sh</span>
<span class="command">wget https://raw.githubusercontent.com/dokku/dokku/v0.29.2/bootstrap.sh</span>
</p>
<p class="line">
<span class="output"># run the installer</span>
</p>
<p class="line">
<span class="prompt">$</span>
<span class="command">sudo DOKKU_TAG=v0.27.9 bash bootstrap.sh</span>
<span class="command">sudo DOKKU_TAG=v0.29.2 bash bootstrap.sh</span>
</p>
<br>
<p class="line">
@@ -218,12 +218,12 @@
<a class="nav-link" id="nav-deploy-tab" data-bs-toggle="tab" href="#nav-deploy" role="tab" aria-controls="nav-deploy" aria-selected="false">
<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M29.8709 1.40551C29.8591 1.34642 29.8311 1.29205 29.7903 1.24881C29.7495 1.20556 29.6976 1.17524 29.6407 1.16141C25.8466 0.20375 17.082 3.61605 12.3285 8.51812C11.4813 9.38524 10.7088 10.3268 10.0198 11.3321C8.55457 11.1953 7.08939 11.3105 5.84189 11.8721C2.31916 13.4706 1.29423 17.6454 1.00817 19.4376C0.992669 19.5358 0.999288 19.6364 1.02751 19.7315C1.05574 19.8267 1.10481 19.9138 1.17093 19.9862C1.23705 20.0586 1.31844 20.1144 1.40878 20.1491C1.49913 20.1838 1.59601 20.1966 1.69192 20.1865L7.34824 19.5456C7.35215 19.9859 7.37777 20.4257 7.42498 20.8633C7.4545 21.1658 7.58527 21.4482 7.79477 21.6618L9.98487 23.9221C10.1921 24.1384 10.466 24.2734 10.7593 24.3037C11.1808 24.3522 11.6044 24.3786 12.0285 24.3829L11.4082 30.2153C11.3985 30.3141 11.411 30.414 11.4446 30.507C11.4783 30.6001 11.5323 30.684 11.6023 30.7521C11.6724 30.8202 11.7567 30.8708 11.8487 30.9C11.9408 30.9291 12.0381 30.936 12.1331 30.9202C13.8704 30.6322 17.9241 29.5744 19.4639 25.9396C20.0081 24.6508 20.1198 23.1466 19.9942 21.6417C20.9712 20.9312 21.8861 20.134 22.7285 19.2591C27.4994 14.3627 30.7849 5.51625 29.8709 1.40551ZM18.4878 12.9162C18.0711 12.4862 17.7873 11.9384 17.6723 11.3419C17.5573 10.7455 17.6162 10.1273 17.8417 9.56541C18.0672 9.00356 18.449 8.52333 18.939 8.18546C19.4289 7.84759 20.005 7.66725 20.5942 7.66725C21.1835 7.66725 21.7595 7.84759 22.2494 8.18546C22.7394 8.52333 23.1212 9.00356 23.3467 9.56541C23.5722 10.1273 23.6311 10.7455 23.5161 11.3419C23.4011 11.9384 23.1173 12.4862 22.7006 12.9162C22.4242 13.202 22.0959 13.4288 21.7344 13.5835C21.373 13.7383 20.9855 13.8179 20.5942 13.8179C20.2029 13.8179 19.8154 13.7383 19.454 13.5835C19.0926 13.4288 18.7642 13.202 18.4878 12.9162Z" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M5.29982 22.8765C4.60428 22.9646 3.95721 23.29 3.46136 23.801C2.232 25.074 2.11548 29.7889 2.11548 29.7889C2.11548 29.7889 6.68686 29.6687 7.91692 28.3985C8.41409 27.8876 8.72993 27.2187 8.81347 26.4997" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M5.29982 22.8765C4.60.29.22.9646 3.95721 23.29 3.46136 23.801C2.232 25.074 2.11548 29.7889 2.11548 29.7889C2.11548 29.7889 6.68686 29.6687 7.91692 28.3985C8.41409 27.8876 8.72993 27.2187 8.81347 26.4997" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
</svg>
Deploy</a>
<a class="nav-link" id="nav-scale-tab" data-bs-toggle="tab" href="#nav-scale" role="tab" aria-controls="nav-scale" aria-selected="false">
<svg width="23" height="24" viewBox="0 0 23 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 0L2.5 0V21H23V23.7364H0V0ZM15.1473 4.08735C15.1473 3.89062 15.2543 3.57401 15.3891 3.4349C15.5239 3.29579 15.7067 3.21764 15.8973 3.21764H21.6473C21.8379 3.21764 22.2313 3.38443 22.3661 3.52353C22.5009 3.66264 22.6529 4.06992 22.6529 4.26665V10.2008C22.6529 10.3975 22.5985 10.5861 22.4637 10.7253C22.3289 10.8644 22.0528 10.9376 21.8622 10.9376C21.6715 10.9376 21.2739 10.8644 21.1391 10.7253C21.0043 10.5861 20.9286 10.3975 20.9286 10.2008V6.34359L15.7349 12.8963C15.6713 12.9764 15.5028 13.1856 15.4132 13.2322C15.3236 13.2788 15.2256 13.3056 15.1254 13.3108C15.0252 13.3159 14.9251 13.2994 14.8314 13.2622C14.7378 13.225 14.6527 13.1681 14.5817 13.0949L10.9086 9.79904L5.65683 16.7063C5.43978 16.9911 4.8927 16.8125 4.47404 16.5042C4.08636 16.2187 3.75998 15.7452 3.99173 15.3696L9.97348 7.33459C10.0345 7.24783 10.113 7.17575 10.2037 7.12332C10.2943 7.0709 10.3948 7.03937 10.4984 7.0309C10.602 7.02244 10.7061 7.03725 10.8036 7.07432C10.9011 7.11138 10.9896 7.16981 11.0631 7.24558L14.8314 10.7253L19.3036 5.07432L15.8973 5.00841C15.7067 5.00841 15.4678 4.92015 15.333 4.78104C15.1982 4.64193 15.1473 4.28407 15.1473 4.08735Z" />
<path fill-rule="evenodd" clip-rule="evenodd" d="M0 0L2.5 0V21H23V23.7364H0V0ZM15.1473 4.08735C15.1473 3.89062 15.2543 3.57401 15.3891 3.4349C15.5239 3.29579 15.7067 3.21764 15.8973 3.21764H21.6473C21.8379 3.21764 22.2313 3.38443 22.3661 3.52353C22.5009 3.66264 22.6529 4.06992 22.6529 4.26665V10.2008C22.6529 10.3975 22.5985 10.5861 22.4637 10.7253C22.3289 10.8644 22.0.29.20.9376 21.8622 10.9376C21.6715 10.9376 21.2739 10.8644 21.1391 10.7253C21.0043 10.5861 20.9286 10.3975 20.9286 10.2008V6.34359L15.7349 12.8963C15.6713 12.9764 15.5028 13.1856 15.4132 13.2322C15.3236 13.2788 15.2256 13.3056 15.1254 13.3108C15.0252 13.3159 14.9251 13.2994 14.8314 13.2622C14.7378 13.225 14.6527 13.1681 14.5817 13.0949L10.9086 9.79904L5.65683 16.7063C5.43978 16.9911 4.8927 16.8125 4.47404 16.5042C4.08636 16.2187 3.75998 15.7452 3.99173 15.3696L9.97348 7.33459C10.0345 7.24783 10.113 7.17575 10.2037 7.12332C10.2943 7.0709 10.3948 7.03937 10.4984 7.0309C10.602 7.02244 10.7061 7.03725 10.8036 7.07432C10.9011 7.11138 10.9896 7.16981 11.0631 7.24558L14.8314 10.7253L19.3036 5.07432L15.8973 5.00841C15.7067 5.00841 15.4678 4.92015 15.333 4.78104C15.1982 4.64193 15.1473 4.28407 15.1473 4.08735Z" />
</svg>
Scale</a>
</div>
@@ -408,7 +408,7 @@
<g id="mysql" data-bs-toggle="svg-tooltip" data-bs-placement="bottom" title="MySQL" filter="url(#filter9_d_55_77)" transform="translate(79.2566,394.257) translate(-79.2566,-394.257)" style="animation: 30s linear infinite both mysql_t;">
<ellipse fill="white" rx="51.2566" ry="51.2566" transform="translate(79.2566,394.257)"/>
<path d="M39,411.45L41.6356,411.45L41.6356,401.092L45.7157,410.121C46.1971,411.214,46.8562,411.601,48.1485,411.601C49.4411,411.601,50.0746,411.214,50.5563,410.121L54.6364,401.092L54.6364,411.449L57.272,411.449L57.272,401.109C57.272,400.1,56.8664,399.612,56.0303,399.36C54.0283,398.738,52.685,399.276,52.0767,400.621L48.0726,409.533L44.1953,400.621C43.6124,399.276,42.2439,398.738,40.2419,399.36C39.4055,399.612,39,400.1,39,401.109L39,411.45L39,411.45ZM59.4635,403.019L62.0983,403.019L62.0983,408.725C62.0736,409.035,62.1982,409.763,63.642,409.785C64.3786,409.797,69.327,409.785,69.3732,409.785L69.3732,402.991L72.0141,402.991C72.0263,402.991,72.0115,412.257,72.0117,412.296C72.026,414.581,69.1626,415.078,67.8428,415.116L59.5205,415.116L59.5205,413.351C59.5353,413.351,67.8366,413.353,67.8575,413.351C69.5538,413.173,69.3535,412.334,69.3533,412.051L69.3533,411.363L63.7512,411.363C61.1447,411.339,59.4852,410.207,59.4647,408.905C59.4626,408.785,59.5209,403.076,59.4633,403.019L59.4635,403.019Z" fill="#00618A" transform="translate(55.5095,407.109) translate(-55.5095,-407.109)"/>
<path d="M74.0451,411.45L81.6224,411.45C82.5094,411.45,83.371,411.265,84.0554,410.945C85.1957,410.424,85.7533,409.718,85.7533,408.793L85.7533,406.876C85.7533,406.12,85.1198,405.413,83.8779,404.943C83.2189,404.69,82.408,404.556,81.6224,404.556L78.4289,404.556C77.365,404.556,76.8581,404.236,76.7314,403.53C76.706,403.446,76.706,403.379,76.706,403.295L76.706,402.101C76.706,402.034,76.706,401.966,76.7314,401.882C76.8581,401.344,77.137,401.193,78.0745,401.109C78.1504,401.109,78.2518,401.092,78.328,401.092L85.8547,401.092L85.8547,399.344L78.4546,399.344C77.3902,399.344,76.8326,399.411,76.3259,399.562C74.7546,400.05,74.0704,400.823,74.0704,402.168L74.0704,403.698C74.0704,404.875,75.4136,405.884,77.6689,406.12C77.9226,406.136,78.1759,406.153,78.4291,406.153L81.1661,406.153C81.2677,406.153,81.3691,406.153,81.445,406.17C82.2814,406.237,82.636,406.389,82.8897,406.691C83.0416,406.842,83.0922,406.994,83.0922,407.162L83.0922,408.692C83.0922,408.877,82.9656,409.113,82.7124,409.314C82.4841,409.516,82.104,409.651,81.5971,409.684C81.4957,409.684,81.4198,409.701,81.3184,409.701L74.0449,409.701L74.0449,411.449L74.0451,411.45ZM102.195,408.406C102.195,410.205,103.538,411.214,106.25,411.416C106.503,411.433,106.757,411.45,107.01,411.45L113.878,411.45L113.878,409.701L106.959,409.701C105.413,409.701,104.831,409.314,104.831,408.39L104.831,399.343L102.195,399.343L102.195,408.406ZM87.4354,408.498L87.4354,402.264C87.4354,400.68,88.5529,399.719,90.762,399.416C90.9976,399.383,91.2352,399.366,91.4732,399.366L96.476,399.366C96.7298,399.366,96.9587,399.383,97.2126,399.416C99.4219,399.719,100.539,400.68,100.539,402.264L100.539,408.498C100.539,409.783,100.065,410.47,98.971,410.919L101.567,413.251L98.507,413.251L96.4066,411.364L94.2921,411.497L91.4732,411.497C90.9907,411.497,90.4829,411.43,89.9241,411.278C88.2481,410.823,87.4354,409.947,87.4354,408.498L87.4354,408.498ZM90.28,408.346C90.28,408.431,90.3054,408.515,90.3309,408.616C90.4831,409.341,91.1688,409.745,92.21,409.745L94.6044,409.745L92.4049,407.769L95.465,407.769L97.3835,409.492C97.7369,409.305,97.9697,409.018,98.0509,408.65C98.0762,408.566,98.0762,408.481,98.0762,408.397L98.0762,402.416C98.0762,402.348,98.0762,402.264,98.0509,402.18C97.8984,401.506,97.2128,401.118,96.1971,401.118L92.21,401.118C91.042,401.118,90.2802,401.624,90.2802,402.416L90.2802,408.346L90.28,408.346Z" fill="#E48E00" transform="translate(93.9614,406.297) translate(-93.9614,-406.297)"/>
<path d="M74.0451,411.45L81.6224,411.45C82.5094,411.45,83.371,411.265,84.0554,410.945C85.1957,410.424,85.7533,409.718,85.7533,408.793L85.7533,406.876C85.7533,406.12,85.1198,405.413,83.8779,404.943C83.2189,404.69,82.408,404.556,81.6224,404.556L78.4289,404.556C77.365,404.556,76.8581,404.236,76.7314,403.53C76.706,403.446,76.706,403.379,76.706,403.295L76.706,402.101C76.706,402.034,76.706,401.966,76.7314,401.882C76.8581,401.344,77.137,401.193,78.0745,401.109C78.1504,401.109,78.2518,401.092,78.328,401.092L85.8547,401.092L85.8547,399.344L78.4546,399.344C77.3902,399.344,76.8326,399.411,76.3259,399.562C74.7546,400.05,74.0704,400.823,74.0704,402.168L74.0704,403.698C74.0704,404.875,75.4136,405.884,77.6689,406.12C77.9226,406.136,78.1759,406.153,78.4291,406.153L81.1661,406.153C81.2677,406.153,81.3691,406.153,81.445,406.17C82.2814,406.237,82.636,406.389,82.8897,406.691C83.0416,406.842,83.0922,406.994,83.0922,407.162L83.0922,408.692C83.0922,408.877,82.9656,409.113,82.7124,409.314C82.4841,409.516,82.104,409.651,81.5971,409.684C81.4957,409.684,81.4198,409.701,81.3184,409.701L74.0449,409.701L74.0449,411.449L74.0451,411.45ZM102.195,408.406C102.195,410.205,103.538,411.214,106.25,411.416C106.503,411.433,106.757,411.45,107.01,411.45L113.878,411.45L113.878,409.701L106.959,409.701C105.413,409.701,104.831,409.314,104.831,408.39L104.831,399.343L102.195,399.343L102.195,408.406ZM87.4354,408.498L87.4354,402.264C87.4354,400.68,88.5529,399.719,90.762,399.416C90.9976,399.383,91.2352,399.366,91.4732,399.366L96.476,399.366C96.7298,399.366,96.9587,399.383,97.2126,399.416C99.4219,399.719,100.539,400.68,100.539,402.264L100.539,408.498C100.539,409.783,100.065,410.47,98.971,410.919L101.567,413.251L98.507,413.251L96.4066,411.364L94.2921,411.497L91.4732,411.497C90.9907,411.497,90.4829,411.43,89.9241,411.278C88.2481,410.823,87.4354,409.947,87.4354,408.498L87.4354,408.498ZM90.29.208.346C90.29.208.431,90.3054,408.515,90.3309,408.616C90.4831,409.341,91.1688,409.745,92.21,409.745L94.6044,409.745L92.4049,407.769L95.465,407.769L97.3835,409.492C97.7369,409.305,97.9697,409.018,98.0509,408.65C98.0762,408.566,98.0762,408.481,98.0762,408.397L98.0762,402.416C98.0762,402.348,98.0762,402.264,98.0509,402.18C97.8984,401.506,97.2128,401.118,96.1971,401.118L92.21,401.118C91.042,401.118,90.29.2,401.624,90.29.2,402.416L90.29.2,408.346L90.29.208.346Z" fill="#E48E00" transform="translate(93.9614,406.297) translate(-93.9614,-406.297)"/>
<path d="M116.197,396.443C114.577,396.399,113.339,396.549,112.281,396.993C111.981,397.119,111.501,397.122,111.452,397.497C111.617,397.67,111.643,397.927,111.774,398.139C112.027,398.546,112.453,399.091,112.834,399.377C113.25,399.69,113.678,400.024,114.124,400.294C114.917,400.775,115.802,401.05,116.565,401.532C117.015,401.816,117.462,402.174,117.901,402.495C118.118,402.653,118.264,402.9,118.546,402.999L118.546,402.953C118.398,402.765,118.36,402.507,118.224,402.311L117.625,401.715C117.039,400.942,116.296,400.262,115.506,399.698C114.876,399.248,113.465,398.64,113.203,397.91L113.156,397.864C113.603,397.814,114.126,397.653,114.539,397.543C115.231,397.358,115.85,397.406,116.565,397.222C116.888,397.131,117.21,397.039,117.533,396.947L117.533,396.764C117.171,396.395,116.914,395.906,116.519,395.572C115.488,394.698,114.362,393.824,113.203,393.096C112.56,392.692,111.765,392.43,111.083,392.087C110.854,391.972,110.451,391.913,110.3,391.721C109.942,391.266,109.747,390.691,109.471,390.162C108.893,389.054,108.325,387.843,107.813,386.677C107.463,385.882,107.235,385.098,106.799,384.385C104.707,380.962,102.456,378.897,98.9679,376.866C98.2258,376.434,97.3322,376.264,96.3879,376.041L94.8677,375.949C94.5584,375.82,94.2366,375.444,93.9462,375.261C92.7908,374.535,89.8272,372.955,88.9714,375.032C88.431,376.344,89.779,377.623,90.2611,378.288C90.5995,378.754,91.0327,379.276,91.2745,379.8C91.4336,380.145,91.4611,380.49,91.5971,380.855C91.9321,381.753,92.2231,382.73,92.6565,383.56C92.8755,383.98,93.1169,384.422,93.3937,384.798C93.5635,385.028,93.8543,385.13,93.9003,385.485C93.6158,385.882,93.5996,386.496,93.4397,386.998C92.7198,389.258,92.9913,392.066,94.0386,393.738C94.36,394.251,95.1169,395.352,96.1576,394.93C97.0681,394.561,96.8647,393.417,97.1251,392.408C97.184,392.18,97.1477,392.011,97.2632,391.858L97.2632,391.904L98.0924,393.554C98.706,394.538,99.7954,395.566,100.718,396.26C101.197,396.619,101.574,397.241,102.193,397.451L102.193,397.406L102.146,397.406C102.027,397.22,101.839,397.142,101.686,396.993C101.325,396.641,100.924,396.204,100.626,395.801C99.7868,394.667,99.0449,393.426,98.369,392.133C98.0462,391.516,97.7656,390.836,97.4935,390.208C97.3886,389.966,97.3899,389.6,97.1713,389.474C96.8733,389.934,96.4343,390.306,96.2038,390.85C95.8352,391.718,95.7876,392.777,95.6511,393.875C95.5703,393.904,95.606,393.884,95.5588,393.921C94.9172,393.767,94.6916,393.11,94.4534,392.546C93.85,391.12,93.7381,388.823,94.2687,387.182C94.4062,386.757,95.0268,385.419,94.7756,385.027C94.6557,384.636,94.26,384.409,94.0386,384.11C93.7646,383.74,93.491,383.253,93.3014,382.826C92.8078,381.714,92.5773,380.466,92.0577,379.342C91.8093,378.805,91.3892,378.261,91.0442,377.783C90.6623,377.254,90.2346,376.864,89.9386,376.224C89.8333,375.997,89.6903,375.633,89.8463,375.399C89.8961,375.241,89.9661,375.175,90.1229,375.124C90.3901,374.919,91.1343,375.192,91.4126,375.307C92.1515,375.613,92.768,375.904,93.3937,376.316C93.6942,376.514,93.998,376.898,94.361,377.004L94.7756,377.004C95.4241,377.152,96.1507,377.05,96.7565,377.233C97.8274,377.557,98.7871,378.061,99.6585,378.608C102.314,380.277,104.485,382.652,105.97,385.485C106.209,385.942,106.312,386.377,106.523,386.861C106.947,387.837,107.482,388.841,107.905,389.795C108.326,390.747,108.737,391.708,109.333,392.5C109.646,392.917,110.856,393.14,111.406,393.371C111.791,393.533,112.423,393.702,112.788,393.921C113.485,394.34,114.161,394.838,114.815,395.297C115.142,395.526,116.147,396.029,116.197,396.443L116.197,396.443Z" fill="#00618A" transform="translate(103.696,388.499) translate(-103.696,-388.499)"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M95.6047,378.975C95.2669,378.969,95.028,379.012,94.7754,379.067L94.7754,379.113L94.8216,379.113C94.9827,379.442,95.2669,379.654,95.4664,379.938C95.6199,380.259,95.7735,380.58,95.9272,380.901L95.9731,380.855C96.2584,380.655,96.3891,380.335,96.3877,379.846C96.2734,379.727,96.2564,379.576,96.1574,379.434C96.0257,379.243,95.7708,379.135,95.6047,378.975L95.6047,378.975Z" fill="#00618A" transform="translate(95.5816,379.938) translate(-95.5816,-379.938)"/>
<path fill-rule="evenodd" clip-rule="evenodd" d="M115.115,409.651C115.115,410.806,116.032,411.584,117.058,411.584C118.083,411.584,119,410.806,119,409.651C119,408.497,118.083,407.718,117.058,407.718C116.032,407.718,115.115,408.497,115.115,409.651L115.115,409.651ZM118.565,409.651C118.565,410.527,117.892,411.182,117.058,411.182C116.214,411.182,115.551,410.527,115.551,409.651C115.551,408.775,116.213,408.12,117.058,408.12C117.892,408.12,118.565,408.775,118.565,409.651ZM117.581,410.754L118.016,410.754L117.379,409.785C117.721,409.749,117.98,409.584,117.98,409.182C117.98,408.734,117.695,408.548,117.146,408.548L116.281,408.548L116.281,410.754L116.654,410.754L116.654,409.801L117.001,409.801L117.581,410.754L117.581,410.754ZM116.654,409.491L116.654,408.857L117.084,408.857C117.307,408.857,117.576,408.899,117.576,409.156C117.576,409.466,117.332,409.491,117.052,409.491L116.654,409.491L116.654,409.491Z" fill="#E48E00" transform="translate(117.058,409.651) translate(-117.058,-409.651)"/>
@@ -735,4 +735,4 @@
</script>
</body>
</html>
</html>

View File

@@ -65,7 +65,7 @@ If everything is working correctly, you should also be able to query for any oth
If they all return your IP address, you have set DNS up properly for dokku. You should also be able to `ssh root@myserver.example.tld` and access your server.
Proceed with the setup instructions in the [installation documentation](/docs/getting-started/installation.md)
Proceed with the setup instructions in the [installation documentation](/docs/getting-started/installation/index.md)
### Using the root of your domain (node-js-app.example.tld)
@@ -74,4 +74,4 @@ This section is a work in progress. It is incomplete.
Using the 'root' of your domain is nearly identical to the previous example.
* hostname is under `example.tld`, still needs `A` record.
* Update your global domain using the [domains plugin](docs/configuration/domains.md).
* Update your global domain using the [domains plugin](/docs/configuration/domains.md).

View File

@@ -161,7 +161,7 @@ Only a single `$IP:$PORT` combination can be routed to for a given app, and that
> New as of 0.20.0, Requires Docker 1.21+
Apps will default to being associated with the default `bridge` network or a network specified by the `initial-network` network property. Additionally, an app can be attached to `attachable` networks by changing the `attach-post-create` or `attach-post-deploy` network properties when using the [docker-local scheduler](/docs/advanced-usage/schedulers/docker-local.md). A change in these values will require an app deploy or rebuild.
Apps will default to being associated with the default `bridge` network or a network specified by the `initial-network` network property. Additionally, an app can be attached to `attachable` networks by changing the `attach-post-create` or `attach-post-deploy` network properties when using the [docker-local scheduler](/docs/deployment/schedulers/docker-local.md). A change in these values will require an app deploy or rebuild.
```shell
# associates the network after a container is created but before it is started
@@ -308,7 +308,7 @@ dokku network:rebuildall
### Container network interface binding
> This functionality does not control the `--network` docker flag. Please use the [docker-options plugin](docs/advanced-usage/docker-options.md) to manage this flag.
> This functionality does not control the `--network` docker flag. Please use the [docker-options plugin](/docs/advanced-usage/docker-options.md) to manage this flag.
By default, an app will only bind to the internal interface. This behavior can be modified per app by changing the `bind-all-interfaces` network property.

View File

@@ -0,0 +1,202 @@
# Caddy Proxy
> New as of 0.28.0
Dokku provides integration with the [Caddy](https://caddyserver.com/) proxy service by utilizing the Docker label-based integration implemented by Caddy.
```
caddy:report [<app>] [<flag>] # Displays a caddy report for one or more apps
caddy:logs [--num num] [--tail] # Display caddy log output
caddy:set <app> <property> (<value>) # Set or clear an caddy property for an app
caddy:show-config <app> # Display caddy compose config
caddy:start # Starts the caddy server
caddy:stop # Stops the caddy server
```
## Requirements
Using the `caddy` plugin integration requires the `docker-compose-plugin` for Docker. See [this document](https://docs.docker.com/compose/install/) from the Docker documentation for more information on the installation process for the `docker-compose-plugin`.
## Usage
> Warning: As using multiple proxy plugins on a single Dokku installation can lead to issues routing requests to apps, doing so should be avoided. As the default proxy implementation is nginx, users are encouraged to stop the nginx service before switching to Caddy.
The Caddy plugin has specific rules for routing requests:
- Caddy integration is exposed via docker labels attached to containers. Changes in labels require either app deploys or rebuilds.
- While Caddy will respect labels associated with other containers, only `web` containers have Caddy labels injected by the plugin.
- Only `http:80` and `https:443` port mappings are supported.
- Caddy will automatically enable SSL if the letsencrypt email property is set. SSL will be disabled otherwise.
- If no `http:80` mapping is found, the first `http` port mapping is used for http requests.
- If no `https:443` mapping is found, the first `https` port mapping is used for https requests.
- If no `https` mapping is found, the container port from `http:80` will be used for https requests.
- Requests are routed as soon as the container is running and passing healthchecks.
### Switching to Caddy
To use the Caddy plugin, use the `proxy:set` command for the app in question:
```shell
dokku proxy:set node-js-app caddy
```
This will enable the docker label-based Caddy integration. All future deploys will inject the correct labels for Caddy to read and route requests to containers. Due to the docker label-based integration used by Caddy, a single deploy or rebuild will be required before requests will route successfully.
```shell
dokku ps:rebuild node-js-app
```
Any changes to domains or port mappings will also require either a deploy or rebuild.
### Starting Caddy container
Caddy can be started via the `caddy:start` command. This will start a Caddy container via the `docker compose up` command.
```shell
dokku caddy:start
```
### Stopping the Caddy container
Caddy may be stopped via the `caddy:stop` command.
```shell
dokku caddy:stop
```
The Caddy container will be stopped and removed from the system. If the container is not running, this command will do nothing.
### Showing the Caddy compose config
For debugging purposes, it may be useful to show the Caddy compose config. This can be achieved via the `caddy:show-config` command.
```shell
dokku caddy:show-config
```
### Customizing the Caddy container image
While the default Caddy image is hardcoded, users may specify an alternative by setting the `image` property with the `--global` flag:
```shell
dokku caddy:set --global image lucaslorentz/caddy-docker-proxy:2.7
```
#### Checking the Caddy container's logs
It may be necessary to check the Caddy container's logs to ensure that Caddy is operating as expected. This can be performed with the `caddy:logs` command.
```shell
dokku caddy:logs
```
This command also supports the following modifiers:
```shell
--num NUM # the number of lines to display
--tail # continually stream logs
```
You can use these modifiers as follows:
```shell
dokku caddy:logs --tail --num 10
```
The above command will show logs continually from the vector container, with an initial history of 10 log lines
### Changing the Caddy log level
Caddy log output is set to `ERROR` by default. It may be changed by setting the `log-level` property with the `--global` flag:
```shell
dokku caddy:set --global log-level DEBUG
```
After modifying, the Caddy container will need to be restarted.
### SSL Configuration
The caddy plugin only supports automatic ssl certificates from it's letsencrypt integration. Managed certificates provided by the `certs` plugin are ignored.
#### Enabling letsencrypt integration
By default, letsencrypt is disabled and https port mappings are ignored. To enable, set the `letsencrypt-email` property with the `--global` flag:
```shell
dokku caddy:set --global letsencrypt-email automated@dokku.sh
```
After enabling, the Caddy container will need to be restarted and apps will need to be rebuilt. All http requests will then be redirected to https.
#### Customizing the letsencrypt server
The letsencrypt integration is set to the production letsencrypt server by default. To change this, set the `letsencrypt-server` property with the `--global` flag:
```shell
dokku caddy:set --global letsencrypt-server https://acme-staging-v02.api.letsencrypt.org/directory
```
After enabling, the Caddy container will need to be restarted and apps will need to be rebuilt to retrieve certificates from the new server.
### Using Caddy's Internal TLS server
To switch to Caddy's internal TLS server for certificate provisioning, set the `tls-internal` property. This can only be set on a per-app basis.
```shell
dokku caddy:set node-js-app tls-internal true
```
## Displaying Caddy reports for an app
You can get a report about the app's Caddy config using the `caddy:report` command:
```shell
dokku caddy:report
```
```
=====> node-js-app caddy information
Caddy image: lucaslorentz/caddy-docker-proxy:2.7
Caddy letsencrypt email:
Caddy letsencrypt server:
Caddy log level: ERROR
Caddy polling interval: 5s
Caddy tls internal: false
=====> python-app caddy information
Caddy image: lucaslorentz/caddy-docker-proxy:2.7
Caddy letsencrypt email:
Caddy letsencrypt server:
Caddy log level: ERROR
Caddy polling interval: 5s
Caddy tls internal: false
=====> ruby-app caddy information
Caddy image: lucaslorentz/caddy-docker-proxy:2.7
Caddy letsencrypt email:
Caddy letsencrypt server:
Caddy log level: ERROR
Caddy polling interval: 5s
Caddy tls internal: false
```
You can run the command for a specific app also.
```shell
dokku caddy:report node-js-app
```
```
=====> node-js-app caddy information
Caddy image: lucaslorentz/caddy-docker-proxy:2.7
Caddy letsencrypt email:
Caddy letsencrypt server:
Caddy log level: ERROR
Caddy polling interval: 5s
Caddy tls internal: false
```
You can pass flags which will output only the value of the specific information you want. For example:
```shell
dokku caddy:report node-js-app --caddy-image
```

View File

@@ -1,4 +1,4 @@
# Nginx Configuration
# Nginx Proxy
Dokku uses nginx as its server for routing requests to specific applications. By default, access and error logs are written for each app to `/var/log/nginx/${APP}-access.log` and `/var/log/nginx/${APP}-error.log` respectively
@@ -8,21 +8,49 @@ nginx:error-logs <app> [-t] # Show the nginx error logs for an appl
nginx:report [<app>] [<flag>] # Displays a nginx report for one or more apps
nginx:set <app> <property> (<value>) # Set or clear an nginx property for an app
nginx:show-config <app> # Display app nginx config
nginx:start # Starts the nginx server
nginx:stop # Stops the nginx server
nginx:validate-config [<app>] [--clean] # Validates and optionally cleans up invalid nginx configurations
```
## Usage
> Warning: As using multiple proxy plugins on a single Dokku installation can lead to issues routing requests to apps, doing so should be avoided.
### Request Proxying
By default, the `web` process is the only process proxied by the nginx proxy implementation. Proxying to other process types may be handled by a custom `nginx.conf.sigil` file, as generally described [below](/docs/configuration/nginx.md#customizing-the-nginx-configuration)
By default, the `web` process is the only process proxied by the nginx proxy implementation. Proxying to other process types may be handled by a custom `nginx.conf.sigil` file, as generally described [below](/docs/networking/proxies/nginx.md#customizing-the-nginx-configuration)
Nginx will proxy the requests in a [round-robin balancing fashion](http://nginx.org/en/docs/http/ngx_http_upstream_module.html#upstream) to the different deployed (scaled) containers running the `web` proctype. This way, the host's resources can be fully leveraged for single-threaded applications (e.g. `dokku ps:scale node-js-app web=4` on a 4-core machine)
Nginx will proxy the requests in a [round-robin balancing fashion](http://nginx.org/en/docs/http/ngx_http_upstream_module.html#upstream) to the different deployed (scaled) containers running the `web` proctype. This way, the host's resources can be fully leveraged for single-threaded applications (e.g. `dokku ps:scale node-js-app web=4` on a 4-core machine).
> Note: Due to how the plugin is implemented, if an app successfully starts up `web` containers but fails to deploy some other containers, nginx may eventually stop routing requests. Users should revert their code in these cases, or manually trigger `dokku proxy:build-config $APP` in order to ensure requests route to the new web containers.
### Starting nginx
> New as of 0.28.0
The nginx server can be started via `nginx:start`.
```shell
dokku nginx:start
````
### Stopping nginx
> New as of 0.28.0
The nginx server can be stopped via `nginx:stop`.
```shell
dokku nginx:stop
````
### Binding to specific addresses
> New as of 0.19.2
> Note: Changing this value globally or on a per-app basis will require rebuilding the nginx config via the `proxy:build-config` command.
By default, nginx will listen to all interfaces (`[::]` for IPv6, `0.0.0.0` for IPv4) when proxying requests to applications. This may be changed using the `bind-address-ipv4` and `bind-address-ipv6` properties. This is useful in cases where the proxying should be internal to a network or if there are multiple network interfaces that should respond with different content.
```shell
@@ -45,6 +73,8 @@ Users with apps that contain a custom `nginx.conf.sigil` file will need to modif
> New as of 0.20.0
> Note: Changing this value globally or on a per-app basis will require rebuilding the nginx config via the `proxy:build-config` command.
If SSL certificates are present, HSTS will be automatically enabled. It can be toggled via `nginx:set`:
```shell
@@ -63,7 +93,9 @@ Beware that if you enable the header and a subsequent deploy of your application
#### Globally disabling the HSTS Header
HSTS Header can be disabled for all apps by setting the `hsts` property to false after passing the `--global` flag to `nginx:set`. Changing this value globally or on a per-app basis will require rebuilding the nginx config via the `proxy:build-config` command.
> Note: Changing this value globally or on a per-app basis will require rebuilding the nginx config via the `proxy:build-config` command.
HSTS Header can be disabled for all apps by setting the `hsts` property to false after passing the `--global` flag to `nginx:set`.
```shell
dokku nginx:set --global hsts false
@@ -77,6 +109,8 @@ dokku nginx:set node-js-app hsts true
### Checking access logs
> Note: Changing this value globally or on a per-app basis will require rebuilding the nginx config via the `proxy:build-config` command.
You may check nginx access logs via the `nginx:access-logs` command. This assumes that app access logs are being stored in `/var/log/nginx/$APP-access.log`, as is the default in the generated `nginx.conf`.
```shell
@@ -107,6 +141,8 @@ dokku nginx:error-logs node-js-app -t
> New as of 0.20.1
> Note: Changing this value globally or on a per-app basis will require rebuilding the nginx config via the `proxy:build-config` command.
The path to where log files are stored can be changed by calling the `nginx:set` command with the following options:
- `access-log-path` (type: string, default: `${NGINX_LOG_ROOT}/${APP}-access.log`): Log path for nginx access logs
@@ -132,6 +168,8 @@ In all cases, the nginx config must be regenerated after setting the above value
> New as of 0.22.0
> Note: Changing this value globally or on a per-app basis will require rebuilding the nginx config via the `proxy:build-config` command.
The format of the access log can be changed by calling the `nginx:set` command as follows:
```shell
@@ -173,6 +211,8 @@ dokku proxy:build-config node-js-app
> New as of 0.21.0
> Note: Changing this value globally or on a per-app basis will require rebuilding the nginx config via the `proxy:build-config` command.
When proxying requests to your applications, it may be useful to specify a proxy read timeout. This can be done via the `nginx:set` command as follows:
```shell
@@ -193,6 +233,8 @@ In all cases, the nginx config must be regenerated after setting the above value
> New as of 0.23.0
> Note: Changing this value globally or on a per-app basis will require rebuilding the nginx config via the `proxy:build-config` command.
Users can override the default `client_max_body_size` value - which limits file uploads - via `nginx:set`. Changing this value will only apply to every `server` stanza of the default `nginx.conf.sigil`; users of custom `nginx.conf.sigil` files must update their templates to support the new value.
```shell
@@ -247,17 +289,32 @@ dokku nginx:validate-config node-js-app --clean
> New as of 0.5.0
Dokku uses a templating library by the name of [sigil](https://github.com/gliderlabs/sigil) to generate nginx configuration for each app. You may also provide a custom template for your application as follows:
Dokku uses a templating library by the name of [sigil](https://github.com/gliderlabs/sigil) to generate nginx configuration for each app. This may be overriden by committing the [default configuration template](https://github.com/dokku/dokku/blob/master/plugins/nginx-vhosts/templates/nginx.conf.sigil) to a file named `nginx.conf.sigil` in the root of the app repository.
- Copy the following example template to a file named `nginx.conf.sigil` and either:
- If using a buildpack application, you __must__ check it into the root of your app repo.
- If using a dockerfile or docker image for deploys, either:
- If `WORKDIR` is specified, add the file to the `WORKDIR` specified in the last Dockerfile stage (example: `WORKDIR /app` and `ADD nginx.conf.sigil /app`).
- If no `WORKDIR` is specified, add the file to the root (`/`) of the docker image (example: `ADD nginx.conf.sigil /`).
When deploying a monorepo, it may be desirable to specify the specific path of the `nginx.conf.sigil` file to use for a given app. This can be done via the `nginx:set` command. If a value is specified and that file does not exist in the app's build directory, Dokku will continue the build process as if the repository has no `nginx.conf.sigil`.
> When using a custom `nginx.conf.sigil` file, depending upon your application configuration, you _may_ be exposing the file externally. As this file is extracted before the container is run, you can, safely delete it in a custom `entrypoint.sh` configured in a Dockerfile `ENTRYPOINT`.
```shell
dokku nginx:set node-js-app nginx-conf-sigil-path dokku/nginx.conf.sigil
```
> The default template is available [here](https://github.com/dokku/dokku/blob/master/plugins/nginx-vhosts/templates/nginx.conf.sigil), and can be used as a guide for your own, custom `nginx.conf.sigil` file. Please refer to the appropriate template file version for your Dokku version.
This property can also be changed globally, which will take into effect if there is no value at the app level.
```shell
dokku nginx:set --global nginx-conf-sigil-path dokku/nginx.conf.sigil
```
In either case, the value can be reset by specifying an empty value.
```shell
dokku nginx:set node-js-app nginx-conf-sigil-path
dokku nginx:set --global nginx-conf-sigil-path
```
> The [default template](https://github.com/dokku/dokku/blob/master/plugins/nginx-vhosts/templates/nginx.conf.sigil) may change with new releases of Dokku. Please refer to the appropriate template file version for your Dokku version, and make sure to look out for changes when you upgrade.
#### Disabling custom nginx config
> Note: Changing this value globally or on a per-app basis will require rebuilding the nginx config via the `proxy:build-config` command.
While enabled by default, using a custom nginx config can be disabled via `nginx:set`. This may be useful in cases where you do not want to allow users to override any higher-level customization of app nginx config.

View File

@@ -0,0 +1,264 @@
# Traefik Proxy
> New as of 0.28.0
Dokku provides integration with the [Traefik](https://traefik.io/) proxy service by utilizing the Docker label-based integration implemented by Traefik.
```
traefik:report [<app>] [<flag>] # Displays a traefik report for one or more apps
traefik:logs [--num num] [--tail] # Display traefik log output
traefik:set <app> <property> (<value>) # Set or clear an traefik property for an app
traefik:show-config <app> # Display traefik compose config
traefik:start # Starts the traefik server
traefik:stop # Stops the traefik server
```
## Requirements
Using the `traefik` plugin integration requires the `docker-compose-plugin` for Docker. See [this document](https://docs.docker.com/compose/install/) from the Docker documentation for more information on the installation process for the `docker-compose-plugin`.
## Usage
> Warning: As using multiple proxy plugins on a single Dokku installation can lead to issues routing requests to apps, doing so should be avoided. As the default proxy implementation is nginx, users are encouraged to stop the nginx service before switching to Traefik.
The Traefik plugin has specific rules for routing requests:
- Traefik integration is exposed via docker labels attached to containers. Changes in labels require either app deploys or rebuilds.
- While Traefik will respect labels associated with other containers, only `web` containers have Traefik labels injected by the plugin.
- Only `http:80` and `https:443` port mappings are supported.
- If no `http:80` mapping is found, the first `http` port mapping is used for http requests.
- If no `https:443` mapping is found, the first `https` port mapping is used for https requests.
- If no `https` mapping is found, the container port from `http:80` will be used for https requests.
- Requests are routed as soon as the container is running and passing healthchecks.
### Switching to Traefik
To use the Traefik plugin, use the `proxy:set` command for the app in question:
```shell
dokku proxy:set node-js-app traefik
```
This will enable the docker label-based Traefik integration. All future deploys will inject the correct labels for Traefik to read and route requests to containers. Due to the docker label-based integration used by Traefik, a single deploy or rebuild will be required before requests will route successfully.
```shell
dokku ps:rebuild node-js-app
```
Any changes to domains or port mappings will also require either a deploy or rebuild.
### Starting Traefik container
Traefik can be started via the `traefik:start` command. This will start a Traefik container via the `docker compose up` command.
```shell
dokku traefik:start
```
### Stopping the Traefik container
Traefik may be stopped via the `traefik:stop` command.
```shell
dokku traefik:stop
```
The Traefik container will be stopped and removed from the system. If the container is not running, this command will do nothing.
### Showing the Traefik compose config
For debugging purposes, it may be useful to show the Traefik compose config. This can be achieved via the `traefik:show-config` command.
```shell
dokku traefik:show-config
```
### Customizing the Traefik container image
While the default Traefik image is hardcoded, users may specify an alternative by setting the `image` property with the `--global` flag:
```shell
dokku traefik:set --global image traefik:v2.8
```
#### Checking the Traefik container's logs
It may be necessary to check the Traefik container's logs to ensure that Traefik is operating as expected. This can be performed with the `traefik:logs` command.
```shell
dokku traefik:logs
```
This command also supports the following modifiers:
```shell
--num NUM # the number of lines to display
--tail # continually stream logs
```
You can use these modifiers as follows:
```shell
dokku traefik:logs --tail --num 10
```
The above command will show logs continually from the vector container, with an initial history of 10 log lines
### Changing the Traefik log level
Traefik log output is set to `ERROR` by default. It may be changed by setting the `log-level` property with the `--global` flag:
```shell
dokku traefik:set --global log-level DEBUG
```
After modifying, the Traefik container will need to be restarted.
### Setting rule priority
By default, app deployments will result in the newer traefik rules using a higher priority in order to have any newer rules respected by Traefik. Rule priorities will always increase according to the current unix timestamp. The priority may be fixed by setting the app-level `priority` property:
```shell
dokku traefik:set node-js-app priority 12345
```
After modifying, the app container will need to be recreated via a `ps:rebuild` or an app deployment.
### SSL Configuration
The traefik plugin only supports automatic ssl certificates from it's letsencrypt integration. Managed certificates provided by the `certs` plugin are ignored.
#### Enabling letsencrypt integration
By default, letsencrypt is disabled and https port mappings are ignored. To enable, set the `letsencrypt-email` property with the `--global` flag:
```shell
dokku traefik:set --global letsencrypt-email automated@dokku.sh
```
After enabling, apps will need to be rebuilt and the Traefik container will need to be restarted. All http requests will then be redirected to https.
#### Customizing the letsencrypt server
The letsencrypt integration is set to the production letsencrypt server by default. To change this, set the `letsencrypt-server` property with the `--global` flag:
```shell
dokku traefik:set --global letsencrypt-server https://acme-staging-v02.api.letsencrypt.org/directory
```
After enabling, the Traefik container will need to be restarted and apps will need to be rebuilt to retrieve certificates from the new server.
### API Access
Traefik exposes an API and Dashboard, which Dokku disables by default for security reasons. It can be exposed and customized as described below.
#### Enabling the api
> Warning: Users enabling the dashboard should also enable api basic auth.
By default, the api is disabled. To enable, set the `api` property with the `--global` flag:
```shell
dokku traefik:set --global api true
```
After enabling, the Traefik container will need to be restarted.
#### Enabling the dashboard
> Warning: Users enabling the dashboard should also enable api basic auth.
By default, the dashboard is disabled. To enable, set the `dashboard` property with the `--global` flag:
```shell
dokku traefik:set --global dashboard true
```
After enabling, the Traefik container will need to be restarted.
#### Enabling api basic auth
Users enabling either the api or dashboard are encouraged to enable basic auth. This will apply _only_ to the api/dashboard, and not to apps. To enable, set the `basic-auth-username` and `basic-auth-password` properties with the `--global` flag:. Both must be set or basic auth will not be enabled.
```shell
dokku traefik:set --global basic-auth-username username
dokku traefik:set --global basic-auth-password password
```
After enabling, the Traefik container will need to be restarted.
#### Customizing the api hostname
The hostname used for the api and dashboard is set to `traefik.dokku.me` by default. It can be customized by setting the `api-vhost` property with the `--global` flag:
```shell
dokku traefik:set --global api-vhost lb.dokku.me
```
After enabling, the Traefik container will need to be restarted.
## Displaying Traefik reports for an app
You can get a report about the app's Traefik config using the `traefik:report` command:
```shell
dokku traefik:report
```
```
=====> node-js-app traefik information
Traefik api enabled: false
Traefik api vhost: traefik.dokku.me
Traefik basic auth password: password
Traefik basic auth username: user
Traefik dashboard enabled: false
Traefik image: traefik:v2.8
Traefik letsencrypt email:
Traefik letsencrypt server:
Traefik log level: ERROR
=====> python-app traefik information
Traefik api enabled: false
Traefik api vhost: traefik.dokku.me
Traefik basic auth password: password
Traefik basic auth username: user
Traefik dashboard enabled: false
Traefik image: traefik:v2.8
Traefik letsencrypt email:
Traefik letsencrypt server:
Traefik log level: ERROR
=====> ruby-app traefik information
Traefik api enabled: false
Traefik api vhost: traefik.dokku.me
Traefik basic auth password: password
Traefik basic auth username: user
Traefik dashboard enabled: false
Traefik image: traefik:v2.8
Traefik letsencrypt email:
Traefik letsencrypt server:
Traefik log level: ERROR
```
You can run the command for a specific app also.
```shell
dokku traefik:report node-js-app
```
```
=====> node-js-app traefik information
Traefik api enabled: false
Traefik api vhost: traefik.dokku.me
Traefik basic auth password: password
Traefik basic auth username: user
Traefik dashboard enabled: false
Traefik image: traefik:v2.8
Traefik letsencrypt email:
Traefik letsencrypt server:
Traefik log level: ERROR
```
You can pass flags which will output only the value of the specific information you want. For example:
```shell
dokku traefik:report node-js-app --traefik-api-enabled
```

View File

@@ -131,3 +131,44 @@ See the [port management documentation](/docs/networking/port-management.md) for
> Changed as of 0.11.0
From Dokku versions `0.5.0` until `0.11.0`, enabling or disabling an application's proxy would **also** control whether or not the application was bound to all interfaces - e.g. `0.0.0.0`. As of `0.11.0`, this is now controlled by the network plugin. Please see the [network documentation](/docs/networking/network.md#container-network-interface-binding) for more information.
## Implementing a Proxy
Custom plugins names _must_ have the suffix `-vhosts` or scheduler overriding via `proxy:set` may not function as expected.
At this time, the following dokku commands are used to implement a complete proxy implementation.
- `domains:add`: Adds a given domain to an app.
- triggers: `post-domains-update`
- `domains:clear`: Clears out an app's associated domains.
- triggers: `post-domains-update`
- `domains:disable`: Disables domains for an app.
- triggers: `pre-disable-vhost`
- `domains:enable`: Enables domains for an app.
- triggers: `pre-enable-vhost`
- `domains:remove`: Removes a domain from an app.
- triggers: `post-domains-update`
- `domains:set`: Sets all domains for a given app.
- triggers: `post-domains-update`
- `proxy:build-config`: Builds - or rebuilds - external proxy configuration.
- triggers: `proxy-build-config`
- `proxy:clear-config`: Clears out external proxy configuration.
- triggers: `proxy-clear-config`
- `proxy:disable`: Disables the proxy configuration for an app.
- triggers: `proxy-disable`
- `proxy:enable`: Enables the proxy configuration for an app.
- triggers: `proxy-enable`
- `proxy:ports-add`: Adds one or more port mappings to an app
- triggers: `post-proxy-ports-update`
- `proxy:ports-clear`: Clears out all port mappings for an app.
- triggers: `post-proxy-ports-update`
- `proxy:ports-remove`: Removes one or more port mappings from an app.
- triggers: `post-proxy-ports-update`
- `proxy:ports-set`: Sets all port mappings for an app.
- triggers: `post-proxy-ports-update`
Proxy implementations may decide to omit some functionality here, or use plugin triggers to supplement config with information from other plugins.
Individual proxy implementations _may_ trigger app rebuilds, depending on how proxy metadata is exposed for the proxy implementation.
Finally, proxy implementations _may_ install extra software needed for the proxy itself in whatever manner deemed fit. Proxy software can run on the host itself or within a running Docker container with either exposed ports or host networking.

View File

@@ -1,9 +1,11 @@
# One-off Tasks
```
run [-e|--env KEY=VALUE] [--no-tty] <app> <cmd> # Run a command in a new container using the current app image
run:detached [-e|-env KEY=VALUE] [--no-tty] <app> <cmd> # Run a command in a new detached container using the current app image
run:list [<app>] # List all run containers for an app
run [-e|--env KEY=VALUE] [--no-tty] <app> <cmd> # Run a command in a new container using the current app image
run:detached [-e|-env KEY=VALUE] [--no-tty] <app> <cmd> # Run a command in a new detached container using the current app image
run:list [--format json|stdout] [<app>] # List all run containers for an app
run:logs <app|--container CONTAINER> [-h] [-t] [-n num] [-q] # Display recent log output for run containers
run:stop <app|--container CONTAINER> # Stops all run containers for an app or a specified run container
```
Sometimes it is necessary to run a one-off command under an app. Dokku makes it easy to run a fresh container via the `run` command.
@@ -68,6 +70,35 @@ dokku run:detached node-js-app ls -lah
# returns the ID of the new container
```
### Displaying one-off container logs
You can easily get logs of all one-off containers for an app using the `logs` command:
```shell
dokku run:logs node-js-app
```
Logs are pulled via integration with the scheduler for the specified application via "live tailing". As such, logs from previously running deployments are usually not available. Users that desire to see logs from previous deployments for debugging purposes should persist those logs to external services. Please see Dokku's [vector integration](/docs/deployment/logs.md#vector-logging-shipping) for more information on how to persist logs across deployments to ship logs to another service or a third-party platform.
#### Behavioral modifiers
Dokku also supports certain command-line arguments that augment the `run:log` command's behavior.
```
--container NAME # the name of a specific container to show logs for
-n, --num NUM # the number of lines to display
-t, --tail # continually stream logs
-q, --quiet # display raw logs without colors, time and names
```
You can use these modifiers as follows:
```shell
dokku run:logs -t --container node-js-app.run.1234
```
The above command will show logs continually from the `node-js-app.run.1234` one-off run process.
### Listing one-off containers
> New as of 0.25.0
@@ -85,3 +116,50 @@ node-js-app.run.28689 "/exec sleep 15" 2 seconds ago
```
> The `COMMAND` displayed will be what Docker executes and may not exactly match the command specified by a `dokku run` command.
The output can also be shown in json format:
```shell
dokku run:list node-js-app --format json
```
```
[
{
"name": "node-js-app.run.28689",
"state": "running",
"command": "\"/exec 'sleep 15'\"",
"created_at": "2022-08-03 05:47:44 +0000 UTC"
}
]
```
### Stopping a one-off cotainer
> New as of 0.29.0
Run containers for an app can be stopped via the `run:stop` command. The output will be the container id.
```shell
# start a container
# the output will be something like: node-js-app.run.2313
dokku run node-js-app sleep 300
# stop the container
dokku run:stop --container node-js-app.run.2313
````
```
node-js-app.run.2313
```
All containers for a given app can be stopped by specifying the app name.
```shell
dokku run:stop node-js-app
```
```
node-js-app.run.2313
node-js-app.run.574
```

View File

@@ -131,7 +131,7 @@ dokku ps:scale --skip-deploy node-js-app web=1
#### Manually managing process scaling
> Using a `formation` key in an `app.json` file with _any_ `quantity` specified disables the ability to use `ps:scale` for scaling.
> Using a `formation` key in an `app.json` file with _any_ `quantity` specified disables the ability to use `ps:scale` for scaling. All processes not specified in the `app.json` will have their process count set to zero.
An `app.json` file can be committed to the root of the pushed app repository, and must be within the built image artifact in the image's working directory as shown below.
@@ -164,7 +164,7 @@ There are also a few other exceptions for the `web` process.
- Custom checks defined by a `CHECKS` file only apply to the `web` process type.
- By default, the built-in nginx proxy implementation only proxies the `web` process (others may be handled via a custom `nginx.conf.sigil`).
- See the [nginx request proxying documentation](/docs/configuration/nginx.md#request-proxying) for more information on how nginx handles proxied requests.
- See the [nginx request proxying documentation](/docs/networking/proxies/nginx.md#request-proxying) for more information on how nginx handles proxied requests.
- Only the `web` process may be bound to an external port.
#### Changing the `Procfile` location

View File

@@ -43,7 +43,6 @@ When running scheduled cron tasks, there are a few items to be aware of:
- Schedules are performed on the hosting server's timezone, which is typically UTC.
- At this time, only the `PATH` and `SHELL` environment variables are specified in the cron template.
- Each scheduled task is executed within a one-off `run` container, and thus inherit any docker-options specified for `run` containers.Resources are never shared between scheduled tasks.
- Tasks are always executed using the `--rm` flag, and are never executed in detached mode.
- Scheduled cron tasks are supported on a per-scheduler basis, and are currently only implemented by the `docker-local` scheduler.
- Tasks for _all_ apps managed by the `docker-local` scheduler are written to a single crontab file owned by the `dokku` user. The `dokku` user's crontab should be considered reserved for this purpose.
@@ -106,8 +105,7 @@ Some installations may require more fine-grained control over cron usage. The fo
You can always use a one-off container to run an app task:
```shell
dokku --rm run node-js-app some-command
dokku --rm-container run node-js-app some-command
dokku run node-js-app some-command
```
For tasks that should not be interrupted, run is the _preferred_ method of handling cron tasks, as the container will continue running even during a deploy or scaling event. The trade-off is that there will be an increase in memory usage if there are multiple concurrent tasks running.
@@ -183,7 +181,7 @@ SHELL=/bin/bash
### PLACE ALL CRON TASKS BELOW
# removes unresponsive users from the subscriber list to decrease bounce rates
0 0 * * * dokku dokku --rm run node-js-app some-command
0 0 * * * dokku dokku run node-js-app some-command
# sends out our email alerts to users
0 1 * * * dokku dokku ps:scale node-js-app cron=1 && dokku enter node-js-app cron some-other-command && dokku ps:scale node-js-app cron=0

View File

@@ -9,26 +9,26 @@
<meta name="author" content="">
<title>Dokku - {{DOC_TITLE}}</title>
<link rel="apple-touch-icon" sizes="57x57" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/apple-touch-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/apple-touch-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/apple-touch-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/apple-touch-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/apple-touch-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/apple-touch-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/apple-touch-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/apple-touch-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/apple-touch-icon-180x180.png">
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/android-chrome-192x192.png" sizes="192x192">
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/favicon-96x96.png" sizes="96x96">
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/favicon-16x16.png" sizes="16x16">
<link rel="manifest" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/manifest.json">
<link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/favicon.ico">
<link rel="apple-touch-icon" sizes="57x57" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/apple-touch-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/apple-touch-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/apple-touch-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/apple-touch-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/apple-touch-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/apple-touch-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/apple-touch-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/apple-touch-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/apple-touch-icon-180x180.png">
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/favicon-32x32.png" sizes="32x32">
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/android-chrome-192x192.png" sizes="192x192">
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/favicon-96x96.png" sizes="96x96">
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/favicon-16x16.png" sizes="16x16">
<link rel="manifest" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/manifest.json">
<link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/favicon.ico">
<meta name="apple-mobile-web-app-title" content="Dokku">
<meta name="application-name" content="Dokku">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="msapplication-TileImage" content="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/mstile-144x144.png">
<meta name="msapplication-config" content="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/favicons/browserconfig.xml">
<meta name="msapplication-TileImage" content="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/mstile-144x144.png">
<meta name="msapplication-config" content="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/favicons/browserconfig.xml">
<meta name="theme-color" content="#ffffff">
<script>
@@ -47,8 +47,8 @@
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Lato:wght@400;700;900&display=swap" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.9/docs/assets/style.css" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.29.2/docs/assets/style.css" rel="stylesheet">
<!-- <link href="./assets/style.css" rel="stylesheet"> -->
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.5.0/css/font-awesome.min.css" rel="stylesheet">
</head>
@@ -66,7 +66,7 @@
<button class="navbar-toggler navbar-toggler-right" type="button" data-bs-toggle="collapse" data-bs-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button>
<div class="collapse navbar-collapse" id="navbarResponsive">
<ul class="navbar-nav ms-auto my-2 my-lg-0">
<li class="nav-item"><a class="nav-link mx-0 mx-md-2 underline" href="https://dokku.github.io/">Blog</a></li>
<li class="nav-item"><a class="nav-link mx-0 mx-md-2 underline" href="https://dokku.com/blog/">Blog</a></li>
<li class="nav-item"><a class="nav-link mx-0 mx-md-2 underline" href="https://github.com/dokku/dokku/">Code</a></li>
<li class="nav-item"><a class="nav-link mx-0 mx-md-2 underline" href="/{{NAME}}/getting-started/installation/">Docs</a></li>
<li class="nav-item dropdown">
@@ -81,7 +81,7 @@
<strong class="d-block">Discord</strong>
</div>
</a>
<a href="https://glider-slackin.herokuapp.com/" class="btn rounded-2 d-flex align-items-center py-2 px-3 lh-sm text-start mx-2">
<a href="https://slack.dokku.com/" class="btn rounded-2 d-flex align-items-center py-2 px-3 lh-sm text-start mx-2">
<img class="me-3" alt="slack" src="./assets/social/slack.png" width="25px" />
<div>
<strong class="d-block">Slack</strong>
@@ -147,6 +147,7 @@
<a href="/{{NAME}}/deployment/builders/cloud-native-buildpacks/" class="list-group-item">Cloud Native Buildpacks</a>
<a href="/{{NAME}}/deployment/builders/herokuish-buildpacks/" class="list-group-item">Herokuish Buildpacks</a>
<a href="/{{NAME}}/deployment/builders/dockerfiles/" class="list-group-item">Dockerfile Deployment</a>
<a href="/{{NAME}}/deployment/builders/lambda/" class="list-group-item">Lambda Builder</a>
<a href="/{{NAME}}/deployment/builders/null/" class="list-group-item">Null Builder</a>
<a href="#" class="list-group-item disabled">Deployment Methods</a>
@@ -156,7 +157,6 @@
<a href="/{{NAME}}/configuration/environment-variables/" class="list-group-item">Environment Variables</a>
<a href="/{{NAME}}/configuration/domains/" class="list-group-item">Domain Configuration</a>
<a href="/{{NAME}}/configuration/nginx/" class="list-group-item">Nginx Configuration</a>
<a href="/{{NAME}}/configuration/ssl/" class="list-group-item">SSL Configuration</a>
<a href="#" class="list-group-item disabled">Interacting with Processes</a>
@@ -171,7 +171,13 @@
<a href="/{{NAME}}/networking/dns/" class="list-group-item">DNS Configuration</a>
<a href="/{{NAME}}/networking/network/" class="list-group-item">Network Management</a>
<a href="/{{NAME}}/networking/port-management/" class="list-group-item">Port Management</a>
<a href="#" class="list-group-item disabled">Proxy Configuration</a>
<a href="/{{NAME}}/networking/proxy-management/" class="list-group-item">Proxy Management</a>
<a href="/{{NAME}}/networking/proxies/caddy/" class="list-group-item">Caddy Proxy</a>
<a href="/{{NAME}}/networking/proxies/nginx/" class="list-group-item">Nginx Proxy</a>
<a href="/{{NAME}}/networking/proxies/traefik/" class="list-group-item">Traefik Proxy</a>
<a href="#" class="list-group-item disabled">Advanced Usage</a>
@@ -192,7 +198,6 @@
<a href="/{{NAME}}/deployment/schedulers/kubernetes/" class="list-group-item">Kubernetes</a>
<a href="/{{NAME}}/deployment/schedulers/nomad/" class="list-group-item">Nomad</a>
<a href="/{{NAME}}/deployment/schedulers/null/" class="list-group-item">Null Scheduler</a>
<a href="/{{NAME}}/deployment/schedulers/alternate-schedulers/" class="list-group-item">Alternate Schedulers</a>
<a href="#" class="list-group-item disabled">Development</a>
@@ -209,9 +214,6 @@
<a href="#" class="list-group-item disabled">Community Contributions</a>
<a href="/{{NAME}}/community/clients/" class="list-group-item">Clients</a>
<a href="/{{NAME}}/community/plugins/" class="list-group-item">Plugins</a>
<a href="#" class="list-group-item disabled">Community Tutorials</a>
<a href="/{{NAME}}/community/tutorials/run-on-external-volume/" class="list-group-item">Run on External Volume</a>
</div>
</div>
<div class="col-8 col-md-9 markdown-body" style="padding-top:16px">

View File

@@ -4,49 +4,40 @@
"advanced-installation": "getting-started/advanced-installation/",
"troubleshooting": "getting-started/troubleshooting/",
"upgrading": "getting-started/upgrading/",
"application-deployment": "deployment/application-deployment/",
"checks-examples": "deployment/zero-downtime-deploys/",
"remote-commands": "deployment/remote-commands/",
"process-management": "processes/process-management/",
"deployment/process-management": "processes/process-management/",
"deployment/one-off-processes": "processes/one-off-tasks/",
"deployment/buildpacks": "deployment/builders/herokuish-buildpacks/",
"deployment/methods/buildpacks": "deployment/builders/herokuish-buildpacks/",
"deployment/dockerfiles": "deployment/builders/dockerfiles/",
"deployment/methods/cloud-native-buildpacks": "deployment/builders/cloud-native-buildpacks/",
"deployment/methods/dockerfiles": "deployment/builders/dockerfiles/",
"deployment/methods/herokuish-buildpacks": "deployment/builders/herokuish-buildpacks/",
"deployment/images": "deployment/methods/git/#initializing-an-app-repository-from-a-docker-image",
"deployment/tar": "deployment/methods/git/#initializing-an-app-repository-from-an-archive-file",
"deployment/methods/images": "deployment/methods/git/#initializing-an-app-repository-from-a-docker-image",
"deployment/methods/tar": "deployment/methods/git/#initializing-an-app-repository-from-an-archive-file",
"configuration-management": "configuration/environment-variables/",
"deployment/ssl-configuration": "configuration/ssl/",
"nginx": "configuration/nginx/",
"configuration/nginx": "networking/proxies/nginx/",
"nginx": "networking/proxies/nginx/",
"dns": "networking/dns/",
"configuration/dns": "networking/dns/",
"proxy": "networking/proxy-management/",
"advanced-usage/proxy-management": "networking/proxy-management/",
"backup-recovery": "advanced-usage/backup-recovery/",
"deployment-tasks": "advanced-usage/deployment-tasks/",
"deployment/deployment-tasks": "advanced-usage/deployment-tasks/",
"docker-options": "advanced-usage/docker-options/",
"dokku-events-logs": "advanced-usage/event-logs/",
"dokku-storage": "advanced-usage/persistent-storage/",
"advanced-usage/schedulers/alternate-schedulers": "deployment/schedulers/scheduler-management/",
"advanced-usage/schedulers/docker-local": "deployment/schedulers/docker-local/",
"deployment/schedulers/alternate-schedulers": "deployment/schedulers/scheduler-management/",
"community/tutorials/deploying-with-gitlab-ci": "deployment/continuous-integration/gitlab-ci/",
"plugins": "community/plugins/"
}
}

6
dokku
View File

@@ -138,9 +138,15 @@ execute_dokku_cmd() {
events | events:*)
local PLUGIN_NAME=${PLUGIN_NAME/events/20_events}
;;
caddy | caddy:*)
local PLUGIN_NAME=${PLUGIN_NAME/caddy/caddy-vhosts}
;;
nginx | nginx:*)
local PLUGIN_NAME=${PLUGIN_NAME/nginx/nginx-vhosts}
;;
traefik | traefik:*)
local PLUGIN_NAME=${PLUGIN_NAME/traefik/traefik-vhosts}
;;
deploy | cleanup | url | urls | report)
local PLUGIN_NAME="00_dokku-standard"
;;

91
mkdocs.yml Normal file
View File

@@ -0,0 +1,91 @@
---
# yaml-language-server: $schema=https://squidfunk.github.io/mkdocs-material/schema.json
markdown_extensions:
- admonition
- attr_list
- footnotes
- md_in_html
- pymdownx.details
- pymdownx.emoji:
emoji_generator: !!python/name:materialx.emoji.to_svg
emoji_index: !!python/name:materialx.emoji.twemoji
- pymdownx.highlight:
anchor_linenums: true
- pymdownx.inlinehilite
- pymdownx.snippets
- pymdownx.superfences
- pymdownx.tabbed:
alternate_style: true
- tables
repo_url: https://github.com/dokku/dokku
site_dir: site
site_name: Dokku Documentation
site_url: https://dokku.com/docs/
extra:
social:
- icon: fontawesome/brands/github
link: https://github.com/dokku/dokku
- icon: fontawesome/solid/bug
link: https://github.com/dokku/dokku/issues
- icon: fontawesome/brands/discord
link: https://discord.gg/YQjANGMZvu
- icon: fontawesome/brands/slack
link: https://slack.dokku.com/
- icon: fontawesome/solid/hashtag
link: https://webchat.libera.chat/?channels=dokku
- icon: fontawesome/brands/twitter
link: https://twitter.com/dokku
- icon: fontawesome/solid/comments
link: https://github.com/dokku/dokku/discussions
- icon: fontawesome/solid/cart-shopping
link: https://dokku.dpdcart.com/cart/add?product_id=217344&method_id=236878
version:
provider: mike
theme:
custom_dir: docs/_overrides
favicon: assets/favicons/favicon-96x96.png
features:
- navigation.indexes
- navigation.instant
- navigation.sections
- navigation.tabs
- navigation.top
- search.highlight
homepage: https://dokku.com
icon:
admonition:
tip: fontawesome/solid/wand-magic-sparkles
logo: assets/dokku-logo.svg
name: material
palette:
# Palette toggle for light mode
- media: "(prefers-color-scheme: light)"
scheme: default
toggle:
icon: material/toggle-switch
name: Switch to dark mode
# Palette toggle for dark mode
- media: "(prefers-color-scheme: dark)"
scheme: slate
toggle:
icon: material/toggle-switch-off-outline
name: Switch to light mode
plugins:
- search
- exclude:
glob:
- _build/Dockerfile
- _build/entrypoint
- _build/requirements.txt
- home.html
- template.html
extra_css:
- assets/extra.css

View File

@@ -1,4 +1,4 @@
[plugin]
description = "dokku core standard plugin"
version = "0.27.9"
version = "0.29.2"
[plugin.config]

View File

@@ -1,15 +1,15 @@
#!/usr/bin/env bash
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
set -eo pipefail
[[ $DOKKU_TRACE ]] && set -x
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
cmd-urls() {
declare desc="reports dokku vitals for troubleshooting"
declare cmd="url"
declare APP="$2"
declare URL_TYPE="$1" APP="$2"
verify_app_name "$APP"
get_app_urls "$@"
plugn trigger domains-urls "$APP" "$URL_TYPE"
}
cmd-urls "$@"

View File

@@ -0,0 +1 @@
hook

View File

@@ -0,0 +1 @@
hook

View File

@@ -0,0 +1 @@
hook

1
plugins/20_events/deploy Symbolic link
View File

@@ -0,0 +1 @@
hook

View File

@@ -0,0 +1 @@
hook

View File

@@ -0,0 +1 @@
hook

View File

@@ -0,0 +1 @@
hook

View File

@@ -17,7 +17,7 @@ trigger-events-install() {
# shellcheck disable=SC2174
mkdir -m 775 -p "$DOKKU_LOGS_DIR"
case "$DOKKU_DISTRO" in
arch | debian | centos | fedora | raspbian | rhel)
arch | debian | raspbian)
chgrp dokku "$DOKKU_LOGS_DIR"
;;
*)
@@ -28,7 +28,7 @@ trigger-events-install() {
if [[ ! -f "$DOKKU_EVENTS_LOGFILE" ]]; then
touch "$DOKKU_EVENTS_LOGFILE"
case "$DOKKU_DISTRO" in
arch | debian | centos | fedora | raspbian | rhel)
arch | debian | raspbian)
chgrp dokku "$DOKKU_EVENTS_LOGFILE"
;;
*)

View File

@@ -0,0 +1 @@
hook

View File

@@ -0,0 +1 @@
hook

Some files were not shown because too many files have changed in this diff Show More