Compare commits
227 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5276543ee5 | ||
|
|
4ce71cb6db | ||
|
|
f09b960997 | ||
|
|
e15f411939 | ||
|
|
58af38a9ab | ||
|
|
bc4eaa002f | ||
|
|
78ad3f59b1 | ||
|
|
045825857a | ||
|
|
293ead4f35 | ||
|
|
c4c6ac5617 | ||
|
|
414c891c6c | ||
|
|
deeb18b56c | ||
|
|
f60e0d7c8a | ||
|
|
6a3933213c | ||
|
|
8b2afbadc2 | ||
|
|
403da909cb | ||
|
|
d749a400a2 | ||
|
|
a7d5fb69e2 | ||
|
|
e66671f3c5 | ||
|
|
583cbc7326 | ||
|
|
d32f0fe2b5 | ||
|
|
9c6380f07d | ||
|
|
ea7299eef7 | ||
|
|
d5085d3156 | ||
|
|
8ab44f1ab0 | ||
|
|
12d5bc4649 | ||
|
|
bebb05268c | ||
|
|
aeaf8e78f1 | ||
|
|
b66a8e6181 | ||
|
|
8fe122ffbd | ||
|
|
45e250443c | ||
|
|
f4c886e10f | ||
|
|
40c5cd089a | ||
|
|
823928a44c | ||
|
|
98feb988fa | ||
|
|
b605de522c | ||
|
|
707cafd26d | ||
|
|
f2c7392276 | ||
|
|
f094ea1f72 | ||
|
|
ebed512dbc | ||
|
|
8cef4a4f5d | ||
|
|
36e93cab03 | ||
|
|
c4de27a4a6 | ||
|
|
6caf4e6039 | ||
|
|
7cc84dcdbe | ||
|
|
65b9c6aa3e | ||
|
|
2959fdd154 | ||
|
|
a71e4219be | ||
|
|
30e279b6b9 | ||
|
|
216647890e | ||
|
|
9c3876045a | ||
|
|
86d7b6b649 | ||
|
|
d91957b969 | ||
|
|
5ee0619888 | ||
|
|
fbd77ee5e8 | ||
|
|
35c248fb5c | ||
|
|
7eecbefdd0 | ||
|
|
2715d2a485 | ||
|
|
951dd98f17 | ||
|
|
8ca71d9ff5 | ||
|
|
f2e791f48f | ||
|
|
f549934740 | ||
|
|
3a09d2217f | ||
|
|
92790b70e8 | ||
|
|
02d6813209 | ||
|
|
96ef82cbc9 | ||
|
|
f9c2251711 | ||
|
|
fb73c9e1d9 | ||
|
|
15695eded2 | ||
|
|
70fc35c317 | ||
|
|
0835e7706f | ||
|
|
c4d1196975 | ||
|
|
4ce2d63a0e | ||
|
|
e4db82aebf | ||
|
|
3f05666d59 | ||
|
|
35e1ac9825 | ||
|
|
4a81bce0e7 | ||
|
|
1d9b8fdda8 | ||
|
|
571a96fc77 | ||
|
|
63f7f39048 | ||
|
|
ef5a2a9f5b | ||
|
|
51547b7688 | ||
|
|
6fe2559c01 | ||
|
|
af069041c5 | ||
|
|
9192198096 | ||
|
|
d68fbd5e09 | ||
|
|
39561bde4a | ||
|
|
16090e58c7 | ||
|
|
d8e9511769 | ||
|
|
652a9ec26c | ||
|
|
d243433625 | ||
|
|
40143622ad | ||
|
|
bfe679fb50 | ||
|
|
e7a8793414 | ||
|
|
a9f3ed206b | ||
|
|
2f58ab0637 | ||
|
|
abaf6db3e3 | ||
|
|
235dfd2257 | ||
|
|
a09262b35e | ||
|
|
2daf25186f | ||
|
|
2648e90f29 | ||
|
|
fa9595ea35 | ||
|
|
480ee7b9af | ||
|
|
9d332e9b2d | ||
|
|
e6b9851b52 | ||
|
|
71210df5ec | ||
|
|
99b25d3e91 | ||
|
|
a8a9bc93ab | ||
|
|
d5590b61af | ||
|
|
84aee0909d | ||
|
|
cfc1cfb305 | ||
|
|
4d8e8148d5 | ||
|
|
beec7f8468 | ||
|
|
5b35bab62c | ||
|
|
ebed25693a | ||
|
|
6ae507a0b2 | ||
|
|
5182638599 | ||
|
|
23341bd0c5 | ||
|
|
8a2f7401a3 | ||
|
|
6c3de8c628 | ||
|
|
99dd31ceeb | ||
|
|
b983afe9fa | ||
|
|
ef64210821 | ||
|
|
dcb880b0f2 | ||
|
|
b26aec249c | ||
|
|
3903b8a331 | ||
|
|
5f192ec3a1 | ||
|
|
f42972fc3c | ||
|
|
f4f3d4adc6 | ||
|
|
7e0a8dca94 | ||
|
|
ab45435473 | ||
|
|
23322b6dde | ||
|
|
fbf136bbe3 | ||
|
|
952e7c6fda | ||
|
|
ae10527b8a | ||
|
|
b4d0456f5f | ||
|
|
3f28c24b57 | ||
|
|
9da3b4e155 | ||
|
|
dded26625b | ||
|
|
dac21b7280 | ||
|
|
515eb372a4 | ||
|
|
abe06b3d84 | ||
|
|
229d97e502 | ||
|
|
51cd7fd85e | ||
|
|
9a52cbdd27 | ||
|
|
7d5c242fa9 | ||
|
|
e665243ae1 | ||
|
|
6f79fb2e87 | ||
|
|
211f0ef049 | ||
|
|
07aa343140 | ||
|
|
ab658ec274 | ||
|
|
a2eab242b6 | ||
|
|
321b94db19 | ||
|
|
e17f87d62d | ||
|
|
4fc23a8ffb | ||
|
|
044027e31b | ||
|
|
e4be7e38ad | ||
|
|
5a93e875a3 | ||
|
|
ddfbdbe6d3 | ||
|
|
24fdc0a778 | ||
|
|
3db3bfb150 | ||
|
|
37036ec2fa | ||
|
|
4b94a37f72 | ||
|
|
863eead7fd | ||
|
|
db4d8dba88 | ||
|
|
cc9d76aa11 | ||
|
|
97bbded5bb | ||
|
|
a95e5d210d | ||
|
|
0f7b24fcc7 | ||
|
|
3a2e9973b6 | ||
|
|
5b5f6031b2 | ||
|
|
96a2ec01f5 | ||
|
|
9473ac5f38 | ||
|
|
d803dbb84a | ||
|
|
5981ff8e9b | ||
|
|
b3d7174a7a | ||
|
|
9ea888f62e | ||
|
|
2ba5c9df50 | ||
|
|
d30fb7b85c | ||
|
|
0a895b2d11 | ||
|
|
20ed65efdd | ||
|
|
27769f54b0 | ||
|
|
0748b3eec8 | ||
|
|
469156ac98 | ||
|
|
6f5f3fa908 | ||
|
|
fe84ec08a8 | ||
|
|
f6cd3f5c89 | ||
|
|
88c1abc608 | ||
|
|
a937e6de50 | ||
|
|
5d36264dd2 | ||
|
|
2d5799625c | ||
|
|
156da6c30a | ||
|
|
22fd5ea0f0 | ||
|
|
0fca7f5256 | ||
|
|
aeae7cea53 | ||
|
|
cbe8376bdb | ||
|
|
8cbe7e66a3 | ||
|
|
2994e724c2 | ||
|
|
9b76012f1c | ||
|
|
21ad711055 | ||
|
|
70217bcc13 | ||
|
|
53d1a21638 | ||
|
|
f26ca309e3 | ||
|
|
af88aabfb6 | ||
|
|
4491142a7b | ||
|
|
5df4bd710a | ||
|
|
a41cb46b77 | ||
|
|
7477f6438a | ||
|
|
ed2c4493a4 | ||
|
|
2ed14fc81c | ||
|
|
978e2fd702 | ||
|
|
712954560a | ||
|
|
5e648c29ed | ||
|
|
ea84e4d5e4 | ||
|
|
f2a32ae0f6 | ||
|
|
358b02ac39 | ||
|
|
268c318bc5 | ||
|
|
f87cd22340 | ||
|
|
b1223cd6cc | ||
|
|
9fb4ce6cb4 | ||
|
|
d73eee201d | ||
|
|
dd900a3975 | ||
|
|
9452699aaf | ||
|
|
f2081505eb | ||
|
|
857724984e | ||
|
|
4e36ab9361 | ||
|
|
b3ac4f36f7 |
2
.github/workflows/lint.yml
vendored
@@ -54,7 +54,7 @@ jobs:
|
||||
- name: Clone
|
||||
uses: actions/checkout@v3
|
||||
- name: Run shfmt
|
||||
uses: luizm/action-sh-checker@38985be9e872ef709f8ffca07af3ff88572fe429
|
||||
uses: luizm/action-sh-checker@edd0e45ecff35b05f162052b50df50976c1b74fc
|
||||
# v0.3.0 => 7f44869033b40ee4ffe7dc76c87a1bc66e3d025a
|
||||
env:
|
||||
SHFMT_OPTS: -l -bn -ci -i 2 -d
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
FROM phusion/baseimage:focal-1.1.0
|
||||
FROM phusion/baseimage:focal-1.2.0
|
||||
|
||||
CMD ["/sbin/my_init"]
|
||||
|
||||
|
||||
232
HISTORY.md
@@ -1,5 +1,237 @@
|
||||
# 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
|
||||
|
||||
## 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:
|
||||
|
||||
```shell
|
||||
wget https://raw.githubusercontent.com/dokku/dokku/v0.27.9/bootstrap.sh
|
||||
sudo DOKKU_TAG=v0.27.9 bash bootstrap.sh
|
||||
```
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- #5273: @josegonzalez Correct issue where more complex docker args were not properly parsed when scheduling containers
|
||||
- #5272: @josegonzalez Add support for --global as app name when calling config-get trigger
|
||||
- #5263: @alexgleason Update deprecated apt-key command
|
||||
|
||||
### New Features
|
||||
|
||||
- #5262: @josegonzalez Run shfmt against all test files
|
||||
- #5257: @chrisjdixon Move nginx.conf.d includes after all other hard-coded config to allow for overrides
|
||||
|
||||
### Other
|
||||
|
||||
- #5184: @yasoob New website. Closes #5175
|
||||
- #5270: @dependabot[bot] chore(deps): bump werkzeug from 2.2.0 to 2.2.1 in /tests/apps/python-flask
|
||||
- #5265: @dependabot[bot] chore(deps): bump werkzeug from 2.1.2 to 2.2.0 in /tests/apps/python-flask
|
||||
- #5264: @dependabot[bot] chore(deps): bump sinatra from 2.2.1 to 2.2.2 in /tests/apps/ruby
|
||||
- #5261: @dependabot[bot] chore(deps): bump luizm/action-sh-checker from 0.4.0 to 0.5.0
|
||||
- #5258: @dependabot[bot] chore(deps): bump sinatra from 2.2.0 to 2.2.1 in /tests/apps/ruby
|
||||
|
||||
## 0.27.8
|
||||
|
||||
Install/update via the bootstrap script:
|
||||
|
||||
```shell
|
||||
wget https://raw.githubusercontent.com/dokku/dokku/v0.27.8/bootstrap.sh
|
||||
sudo DOKKU_TAG=v0.27.8 bash bootstrap.sh
|
||||
```
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- #5232: @YuukiHogo builder-build fix for DOKKU_DOCKERFILE_CACHE_BUILD and DOKKU_DOCKER_BUILD_OPTS variables
|
||||
|
||||
### New Features
|
||||
|
||||
- #5255: @josegonzalez export DOKKU_COMMAND for use in authentication systems
|
||||
|
||||
### Other
|
||||
|
||||
- #5250: @dependabot[bot] chore(deps): bump flask from 2.1.2 to 2.1.3 in /tests/apps/multi
|
||||
- #5251: @dependabot[bot] chore(deps): bump flask from 2.1.2 to 2.1.3 in /tests/apps/python-flask
|
||||
- #5245: @dependabot[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 221 to 222 in /tests/apps/php
|
||||
|
||||
## 0.27.7
|
||||
|
||||
Install/update via the bootstrap script:
|
||||
|
||||
```shell
|
||||
wget https://raw.githubusercontent.com/dokku/dokku/v0.27.7/bootstrap.sh
|
||||
sudo DOKKU_TAG=v0.27.7 bash bootstrap.sh
|
||||
```
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- #5238: @josegonzalez Respect dokku system user/group when setting storage permissions on installation
|
||||
|
||||
### New Features
|
||||
|
||||
- #5239: @josegonzalez Add builder-type and image-stage labels to all images
|
||||
|
||||
### Documentation
|
||||
|
||||
- #5241: @josegonzalez Clarify where logs are pulled from and general log shipping stance
|
||||
- #5237: @josegonzalez Fix builder-pack:set command example
|
||||
|
||||
### Other
|
||||
|
||||
- #5235: @dependabot[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 220 to 221 in /tests/apps/php
|
||||
|
||||
## 0.27.6
|
||||
|
||||
Install/update via the bootstrap script:
|
||||
|
||||
```shell
|
||||
wget https://raw.githubusercontent.com/dokku/dokku/v0.27.6/bootstrap.sh
|
||||
sudo DOKKU_TAG=v0.27.6 bash bootstrap.sh
|
||||
```
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- #5225: @josegonzalez Use original app name when setting include_labels for vector source
|
||||
- #5228: @josegonzalez Always respect app.json formations in scale settings
|
||||
- #5201: @josegonzalez Use pack as default builder for arm64 servers
|
||||
|
||||
### Documentation
|
||||
|
||||
- #5230: @josegonzalez Clarify usage of build args to set environment variables for Dockerfile deploys
|
||||
- #5208: @asokoloski-m Fix typo in dockerfile builder docs
|
||||
- #5206: @AxelTheGerman Added dokku-litestream to list of community plugins
|
||||
|
||||
### Other
|
||||
|
||||
- #5218: @dependabot[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 219 to 220 in /tests/apps/php
|
||||
- #5222: @dependabot[bot] chore(deps): bump jetty-servlet from 11.0.10 to 11.0.11 in /tests/apps/java
|
||||
- #5224: @josegonzalez Document that the community registry plugin should be uninstalled before upgrading past 0.24.x
|
||||
- #5220: @dependabot[bot] chore(deps): bump jetty-servlet from 11.0.9 to 11.0.10 in /tests/apps/java
|
||||
- #5212: @dependabot[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 218 to 219 in /tests/apps/php
|
||||
- #5210: @dependabot[bot] chore(deps): bump monolog/monolog from 1.27.0 to 1.27.1 in /tests/apps/php
|
||||
- #5204: @dependabot[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 217 to 218 in /tests/apps/php
|
||||
|
||||
## 0.27.5
|
||||
|
||||
Install/update via the bootstrap script:
|
||||
|
||||
```shell
|
||||
wget https://raw.githubusercontent.com/dokku/dokku/v0.27.5/bootstrap.sh
|
||||
sudo DOKKU_TAG=v0.27.5 bash bootstrap.sh
|
||||
```
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- #5183: @josegonzalez Filter apps when verifying app names
|
||||
- #5199: @josegonzalez Revert "fix: Vector fails to start container due to --watch-config flag"
|
||||
- #5197: @holamendi fix: Vector fails to start container due to --watch-config flag
|
||||
- #5192: @josegonzalez Confirm installation of universe packages when installing on ubuntu
|
||||
- #5193: @josegonzalez Force-set correct permissions on env files
|
||||
- #5181: @josegonzalez Ensure we default SSH_NAME to NAME when filtering apps
|
||||
|
||||
### New Features
|
||||
|
||||
- #5196: @josegonzalez Disable herokuish usage on both armhf and arm64 platforms
|
||||
- #5194: @josegonzalez Upgrade base Dockerfile image to phusion/baseimage:focal-1.2.0
|
||||
|
||||
### Other
|
||||
|
||||
- #5200: @dependabot[bot] chore(deps): bump rack from 2.2.3 to 2.2.3.1 in /tests/apps/ruby
|
||||
- #5198: @dependabot[bot] chore(deps): bump grunt from 1.5.2 to 1.5.3 in /tests/apps/multi
|
||||
- #5187: @dependabot[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 216 to 217 in /tests/apps/php
|
||||
|
||||
## 0.27.4
|
||||
|
||||
Install/update via the bootstrap script:
|
||||
|
||||
```shell
|
||||
wget https://raw.githubusercontent.com/dokku/dokku/v0.27.4/bootstrap.sh
|
||||
sudo DOKKU_TAG=v0.27.4 bash bootstrap.sh
|
||||
```
|
||||
|
||||
### Documentation
|
||||
|
||||
- #5180: @Bilal-io fixes rst-versions height
|
||||
|
||||
## 0.27.3
|
||||
|
||||
Install/update via the bootstrap script:
|
||||
|
||||
```shell
|
||||
wget https://raw.githubusercontent.com/dokku/dokku/v0.27.3/bootstrap.sh
|
||||
sudo DOKKU_TAG=v0.27.3 bash bootstrap.sh
|
||||
```
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
- #5178: @josegonzalez Fix app filtering for authenticated usage
|
||||
- #5173: @bitjockey42 Add 22.04 to supported distro versions
|
||||
|
||||
### Documentation
|
||||
|
||||
- #5179: @Bilal-io Fixes to the Docs version switcher
|
||||
- #5177: @josegonzalez docs: cleanup experimental warning in scheduler docs
|
||||
- #5176: @josegonzalez Update installation requirements to mention arm64 and ubuntu 22.04
|
||||
- #5174: @vladdoster Fix typos and phrasing in remote commands documentation
|
||||
|
||||
## 0.27.2
|
||||
|
||||
Install/update via the bootstrap script:
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
26
Makefile
@@ -1,13 +1,15 @@
|
||||
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_VERSION ?= 0.5.0
|
||||
HEROKUISH_VERSION ?= 0.5.37
|
||||
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_amd64.tgz
|
||||
LAMBDA_BUILDER_URL ?= https://github.com/dokku/lambda-builder/releases/download/v${LAMBDA_BUILDER_VERSION}/lambda-builder_${LAMBDA_BUILDER_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
|
||||
@@ -36,12 +38,11 @@ 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 tests.mk
|
||||
include package.mk
|
||||
include deb.mk
|
||||
include rpm.mk
|
||||
include arch.mk
|
||||
|
||||
all:
|
||||
@@ -131,7 +132,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:
|
||||
@@ -157,6 +158,11 @@ docker-image-labeler:
|
||||
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
|
||||
|
||||
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-amd64 /usr/local/bin/lambda-builder
|
||||
|
||||
netrc:
|
||||
wget -qO /tmp/netrc_latest.tgz ${NETRC_URL}
|
||||
tar xzf /tmp/netrc_latest.tgz -C /usr/local/bin
|
||||
|
||||
@@ -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.2/bootstrap.sh
|
||||
sudo DOKKU_TAG=v0.27.2 bash bootstrap.sh
|
||||
wget https://raw.githubusercontent.com/dokku/dokku/v0.28.0/bootstrap.sh
|
||||
sudo DOKKU_TAG=v0.28.0 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.
|
||||
|
||||
17
Vagrantfile
vendored
@@ -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
|
||||
|
||||
42
bootstrap.sh
@@ -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]"
|
||||
SUPPORTED_VERSIONS="Debian [10, 11], Ubuntu [18.04, 20.04, 22.04]"
|
||||
|
||||
log-fail() {
|
||||
declare desc="log fail formatter"
|
||||
@@ -63,7 +63,7 @@ install-requirements() {
|
||||
apt-get -qq -y --no-install-recommends install software-properties-common
|
||||
fi
|
||||
|
||||
add-apt-repository universe >/dev/null
|
||||
add-apt-repository -y universe >/dev/null
|
||||
apt-get update -qq >/dev/null
|
||||
;;
|
||||
esac
|
||||
@@ -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" "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
|
||||
|
||||
@@ -212,7 +209,7 @@ install-dokku-from-deb-package() {
|
||||
fi
|
||||
|
||||
echo "--> Installing dokku"
|
||||
wget -nv -O - https://packagecloud.io/dokku/dokku/gpgkey | apt-key add -
|
||||
wget -qO- https://packagecloud.io/dokku/dokku/gpgkey | sudo tee /etc/apt/trusted.gpg.d/dokku.asc
|
||||
echo "deb https://packagecloud.io/dokku/dokku/$DOKKU_DISTRO/ $OS_ID main" | tee /etc/apt/sources.list.d/dokku.list
|
||||
apt-get update -qq >/dev/null
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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"
|
||||
@@ -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"
|
||||
|
||||
2
deb.mk
@@ -19,7 +19,7 @@ install-from-deb:
|
||||
wget -nv -O - https://get.docker.com/ | sh
|
||||
|
||||
@echo "--> Installing dokku"
|
||||
wget -nv -O - https://packagecloud.io/dokku/dokku/gpgkey | apt-key add -
|
||||
wget -qO- https://packagecloud.io/dokku/dokku/gpgkey | sudo tee /etc/apt/trusted.gpg.d/dokku.asc
|
||||
@echo "deb https://packagecloud.io/dokku/dokku/ubuntu/ $(shell lsb_release -cs 2>/dev/null || echo "bionic") main" | sudo tee /etc/apt/sources.list.d/dokku.list
|
||||
sudo apt-get update -qq >/dev/null
|
||||
sudo DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true apt-get -qq -y --no-install-recommends install dokku
|
||||
|
||||
4
debian/control
vendored
@@ -1,9 +1,9 @@
|
||||
Package: dokku
|
||||
Version: 0.27.2
|
||||
Version: 0.28.0
|
||||
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-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>
|
||||
|
||||
@@ -35,35 +35,35 @@ dokku plugin:list
|
||||
|
||||
```
|
||||
plugn: dev
|
||||
00_dokku-standard 0.27.2 enabled dokku core standard plugin
|
||||
20_events 0.27.2 enabled dokku core events logging plugin
|
||||
app-json 0.27.2 enabled dokku core app-json plugin
|
||||
apps 0.27.2 enabled dokku core apps plugin
|
||||
build-env 0.27.2 enabled dokku core build-env plugin
|
||||
buildpacks 0.27.2 enabled dokku core buildpacks plugin
|
||||
certs 0.27.2 enabled dokku core certificate management plugin
|
||||
checks 0.27.2 enabled dokku core checks plugin
|
||||
common 0.27.2 enabled dokku core common plugin
|
||||
config 0.27.2 enabled dokku core config plugin
|
||||
docker-options 0.27.2 enabled dokku core docker-options plugin
|
||||
domains 0.27.2 enabled dokku core domains plugin
|
||||
enter 0.27.2 enabled dokku core enter plugin
|
||||
git 0.27.2 enabled dokku core git plugin
|
||||
logs 0.27.2 enabled dokku core logs plugin
|
||||
network 0.27.2 enabled dokku core network plugin
|
||||
nginx-vhosts 0.27.2 enabled dokku core nginx-vhosts plugin
|
||||
plugin 0.27.2 enabled dokku core plugin plugin
|
||||
proxy 0.27.2 enabled dokku core proxy plugin
|
||||
ps 0.27.2 enabled dokku core ps plugin
|
||||
repo 0.27.2 enabled dokku core repo plugin
|
||||
resource 0.27.2 enabled dokku core resource plugin
|
||||
scheduler-docker-local 0.27.2 enabled dokku core scheduler-docker-local plugin
|
||||
shell 0.27.2 enabled dokku core shell plugin
|
||||
ssh-keys 0.27.2 enabled dokku core ssh-keys plugin
|
||||
storage 0.27.2 enabled dokku core storage plugin
|
||||
tags 0.27.2 enabled dokku core tags plugin
|
||||
tar 0.27.2 enabled dokku core tar plugin
|
||||
trace 0.27.2 enabled dokku core trace plugin
|
||||
00_dokku-standard 0.28.0 enabled dokku core standard plugin
|
||||
20_events 0.28.0 enabled dokku core events logging plugin
|
||||
app-json 0.28.0 enabled dokku core app-json plugin
|
||||
apps 0.28.0 enabled dokku core apps plugin
|
||||
build-env 0.28.0 enabled dokku core build-env plugin
|
||||
buildpacks 0.28.0 enabled dokku core buildpacks plugin
|
||||
certs 0.28.0 enabled dokku core certificate management plugin
|
||||
checks 0.28.0 enabled dokku core checks plugin
|
||||
common 0.28.0 enabled dokku core common plugin
|
||||
config 0.28.0 enabled dokku core config plugin
|
||||
docker-options 0.28.0 enabled dokku core docker-options plugin
|
||||
domains 0.28.0 enabled dokku core domains plugin
|
||||
enter 0.28.0 enabled dokku core enter plugin
|
||||
git 0.28.0 enabled dokku core git plugin
|
||||
logs 0.28.0 enabled dokku core logs plugin
|
||||
network 0.28.0 enabled dokku core network plugin
|
||||
nginx-vhosts 0.28.0 enabled dokku core nginx-vhosts plugin
|
||||
plugin 0.28.0 enabled dokku core plugin plugin
|
||||
proxy 0.28.0 enabled dokku core proxy plugin
|
||||
ps 0.28.0 enabled dokku core ps plugin
|
||||
repo 0.28.0 enabled dokku core repo plugin
|
||||
resource 0.28.0 enabled dokku core resource plugin
|
||||
scheduler-docker-local 0.28.0 enabled dokku core scheduler-docker-local plugin
|
||||
shell 0.28.0 enabled dokku core shell plugin
|
||||
ssh-keys 0.28.0 enabled dokku core ssh-keys plugin
|
||||
storage 0.28.0 enabled dokku core storage plugin
|
||||
tags 0.28.0 enabled dokku core tags plugin
|
||||
tar 0.28.0 enabled dokku core tar plugin
|
||||
trace 0.28.0 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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -9,6 +9,8 @@ The [dokku-registry](https://github.com/dokku/dokku-registry) plugin is now buil
|
||||
- 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.
|
||||
|
||||
Before upgrading, uninstall the registry plugin via `dokku plugin:uninstall registry`. Not doing so will cause issues with Dokku.
|
||||
|
||||
## Other
|
||||
|
||||
### Changes
|
||||
|
||||
25
docs/appendices/0.28.0-migration-guide.md
Normal 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`.
|
||||
@@ -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
|
||||
|
||||
31
docs/assets/dokku-logo.svg
Normal file
@@ -0,0 +1,31 @@
|
||||
<svg width="89" height="62" viewBox="0 0 89 62" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M78.4046 17.1912C84.738 21.1608 86.2188 20.7419 87.6794 19.9955C88.5202 19.5664 88.8496 18.5392 88.4243 17.6985C86.4622 13.818 78.212 0.118992 59.5364 0.118992C43.8588 0.118992 34.4377 13.3435 31.5684 18.0766C31.0067 19.0027 31.4447 20.2158 32.4755 20.5543C34.1357 21.0995 35.9508 21.216 39.8333 18.8625C52.5306 11.8038 78.4046 17.1912 78.4046 17.1912Z" fill="#F15B55"/>
|
||||
<mask id="mask0_55_415" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="31" y="0" width="58" height="21">
|
||||
<path d="M78.4212 17.0723C84.7546 21.0418 86.2354 20.6229 87.696 19.8766C88.5368 19.4474 88.8662 18.4202 88.4409 17.5795C86.4788 13.699 78.2286 3.8147e-06 59.553 3.8147e-06C43.8754 3.8147e-06 34.4543 13.2245 31.585 17.9576C31.0233 18.8837 31.4613 20.0969 32.4921 20.4353C34.1523 20.9805 35.9674 21.097 39.8499 18.7436C52.5472 11.6848 78.4212 17.0723 78.4212 17.0723Z" fill="#F15B55"/>
|
||||
</mask>
|
||||
<g mask="url(#mask0_55_415)">
|
||||
<path d="M43.7907 2.62413C49.4945 9.99967 33.5952 13.8544 45.8049 22.3539" stroke="#FF9580" stroke-width="1.5" stroke-miterlimit="10"/>
|
||||
<path d="M56.7977 -1.62458C62.8837 6.0383 46.832 8.92189 53.8305 19.6981" stroke="#FF9580" stroke-width="1.5" stroke-miterlimit="10"/>
|
||||
<path d="M72.3168 -0.867853C76.7291 7.02473 58.5477 8.73199 64.5571 18.3322" stroke="#FF9580" stroke-width="1.5" stroke-miterlimit="10"/>
|
||||
<path d="M84.2603 7.02465C84.2603 15.1449 71.708 10.5128 72.3169 19.6982" stroke="#FF9580" stroke-width="1.5" stroke-miterlimit="10"/>
|
||||
</g>
|
||||
<g opacity="0.399994">
|
||||
<g opacity="0.399994">
|
||||
<path opacity="0.399994" d="M31.3365 18.747C31.2415 19.5146 31.6815 20.2937 32.4751 20.5544C34.1353 21.0993 35.9508 21.2158 39.8333 18.8623C52.5302 11.8039 78.4042 17.1914 78.4042 17.1914C84.7377 21.1606 86.2184 20.7416 87.6795 19.9957C88.3903 19.6328 88.7337 18.8419 88.5657 18.0976C78.1555 10.8635 54.5866 3.8145 31.3365 18.747Z" fill="black"/>
|
||||
</g>
|
||||
</g>
|
||||
<path d="M67.274 14.8087H56.4204C44.6233 14.8087 38.4193 18.2775 33.8378 24.2005L29.4542 29.8671L27.7038 32.1805C26.3653 33.9491 24.2728 34.9885 22.0517 34.9885C18.6867 34.9885 15.8194 32.6685 15.0623 29.48C15.0512 29.433 15.0385 29.359 15.025 29.2679C14.9103 28.4884 15.5203 27.7899 16.3099 27.7899H18.4798C22.2049 27.7899 25.2246 24.7776 25.2246 21.0614V20.5325C25.2246 19.8467 24.667 19.2904 23.979 19.2904H17.6005C15.0492 19.2904 13.2669 20.6106 12.6674 22.0612C12.0676 20.6106 10.2853 19.2904 7.73397 19.2904H1.35542C0.667492 19.2904 0.109863 19.8467 0.109863 20.5325V21.0614C0.109863 24.7776 3.12951 27.7899 6.85471 27.7899H9.05492C9.75186 27.7899 10.3443 28.2988 10.4476 28.9867L10.6905 30.604C13.3361 48.2223 28.5057 61.2576 46.3638 61.2576H47.2697H59.4081C71.7445 61.2576 82.2727 52.3616 84.302 40.2227L85.8397 31.0254C87.259 22.5369 81.2902 14.8087 67.274 14.8087Z" fill="#07CBCF"/>
|
||||
<path d="M81.4705 48.3116C79.3404 48.386 77.5986 49.0698 75.2239 51.4388C72.2001 54.4552 67.1794 57.8702 59.4197 57.8702H45.0417C39.2224 57.8702 35.1162 53.5434 35.1162 53.5434C35.1162 53.5434 31.7479 53.7154 24.4261 49.5603C12.4254 41.9906 11.9501 29.2979 11.7788 27.7043C11.6076 26.1106 10.7517 25.2568 9.04025 25.2568H6.70074C2.34293 25.2568 1.16088 23.1183 0.893741 19.3792C0.434853 19.5628 0.110352 20.0095 0.110352 20.5327V21.0612C0.110352 24.7773 3.13 27.7897 6.85479 27.7897H9.055C9.75235 27.7897 10.3448 28.2986 10.4481 28.9864L10.6906 30.6038C13.3362 48.2221 28.5062 61.2573 46.3643 61.2573H47.2698H59.4086C68.7888 61.2573 77.1226 56.113 81.4705 48.3116Z" fill="#05B7BF"/>
|
||||
<path d="M15.0249 29.2677C14.9102 28.4883 15.5203 27.7898 16.3098 27.7898H18.4797C22.2049 27.7898 25.2246 24.7774 25.2246 21.0617V20.5328C25.2246 20.0092 24.8997 19.5624 24.4404 19.3793V19.3797C24.1728 23.1184 22.9908 25.2569 18.633 25.2569H16.8376C14.4411 25.2569 14.7549 27.9512 15.0249 29.2677Z" fill="#05B7BF"/>
|
||||
<path d="M24.4257 49.5606C27.1262 52.1789 25.7188 53.2412 21.2307 53.2412H14.3327C13.2428 53.2412 12.697 54.5557 13.4677 55.3245L14.322 56.1767C16.9737 58.8224 20.5707 60.3085 24.3213 60.3085H24.9584C32.4133 60.3085 37.929 52.8239 37.929 52.8239L24.4257 49.5606Z" fill="#07CBCF"/>
|
||||
<path d="M35.1162 53.544C32.9984 55.5574 29.4485 58.1536 25.2235 58.1536H24.6339C21.1631 58.1536 17.8345 56.7783 15.3807 54.33L14.59 53.5415C14.497 53.4488 14.4257 53.3474 14.3728 53.2411H14.3327C13.2428 53.2411 12.697 54.5556 13.4677 55.3244L14.322 56.1766C16.9741 58.8223 20.5711 60.3085 24.3213 60.3085H24.9584C29.8025 60.3085 33.8281 57.1482 36.0533 54.9349L36.3528 54.6312L35.1162 53.544Z" fill="#05B7BF"/>
|
||||
<mask id="mask1_55_415" style="mask-type:alpha" maskUnits="userSpaceOnUse" x="0" y="15" width="86" height="47">
|
||||
<path d="M67.1641 15.1884H56.3106C44.5134 15.1884 38.3094 18.6572 33.7279 24.5802L29.3443 30.2468L27.594 32.5602C26.2554 34.3288 24.163 35.3682 21.9419 35.3682C18.5768 35.3682 15.7096 33.0482 14.9524 29.8597C14.9413 29.8127 14.9286 29.7387 14.9151 29.6476C14.8004 28.8681 15.4105 28.1696 16.2 28.1696H18.3699C22.0951 28.1696 25.1147 25.1573 25.1147 21.4411V20.9122C25.1147 20.2264 24.5571 19.6701 23.8692 19.6701H17.4906C14.9393 19.6701 13.157 20.9903 12.5576 22.4409C11.9577 20.9903 10.1755 19.6701 7.62411 19.6701H1.24555C0.557629 19.6701 0 20.2264 0 20.9122V21.4411C0 25.1573 3.01965 28.1696 6.74484 28.1696H8.94506C9.64199 28.1696 10.2344 28.6785 10.3377 29.3664L10.5807 30.9837C13.2262 48.602 28.3958 61.6373 46.2539 61.6373H47.1598H59.2983C71.6346 61.6373 82.1628 52.7413 84.1922 40.6024L85.7299 31.4051C87.1491 22.9166 81.1803 15.1884 67.1641 15.1884Z" fill="#07CBCF"/>
|
||||
</mask>
|
||||
<g mask="url(#mask1_55_415)">
|
||||
<path d="M48.2573 43.0378C50.1929 48.5818 55.4426 52.9185 61.7015 52.9185C72.2568 52.9185 71.2993 45.7048 82.7326 45.7048H84.3526" stroke="#00576C" stroke-width="1.46" stroke-miterlimit="10" stroke-linecap="round"/>
|
||||
<path d="M50.1195 43.0151H46.9814" stroke="#00576C" stroke-width="1.46" stroke-miterlimit="10" stroke-linecap="round"/>
|
||||
<path d="M65.353 42.7305C65.353 41.096 64.0247 39.7709 62.3862 39.7709C60.7478 39.7709 59.4194 41.096 59.4194 42.7305" stroke="#00576C" stroke-width="1.46" stroke-miterlimit="10" stroke-linecap="round"/>
|
||||
</g>
|
||||
<path d="M77.4491 19.774C80.7847 21.9824 82.0434 23.4419 85.095 23.7701C82.9402 18.5919 77.0788 14.8087 67.2741 14.8087H56.4206C45.0819 14.8087 38.9111 18.0148 34.3804 23.5229C37.2443 23.5229 40.3812 21.1661 43.0628 19.698C46.182 17.9907 50.3669 16.3586 59.4197 16.3586C68.4725 16.3586 73.2651 17.004 77.4491 19.774Z" fill="#05B7BF"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 6.3 KiB |
@@ -2,10 +2,10 @@
|
||||
<browserconfig>
|
||||
<msapplication>
|
||||
<tile>
|
||||
<square70x70logo src="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.2/docs/assets/favicons/mstile-70x70.png"/>
|
||||
<square150x150logo src="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.2/docs/assets/favicons/mstile-150x150.png"/>
|
||||
<square310x310logo src="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.2/docs/assets/favicons/mstile-310x310.png"/>
|
||||
<wide310x150logo src="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.2/docs/assets/favicons/mstile-310x150.png"/>
|
||||
<square70x70logo src="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.28.0/docs/assets/favicons/mstile-70x70.png"/>
|
||||
<square150x150logo src="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.28.0/docs/assets/favicons/mstile-150x150.png"/>
|
||||
<square310x310logo src="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.28.0/docs/assets/favicons/mstile-310x310.png"/>
|
||||
<wide310x150logo src="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.28.0/docs/assets/favicons/mstile-310x150.png"/>
|
||||
<TileColor>#da532c</TileColor>
|
||||
</tile>
|
||||
</msapplication>
|
||||
|
||||
@@ -2,37 +2,37 @@
|
||||
"name": "Dokku",
|
||||
"icons": [
|
||||
{
|
||||
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.27.2\/docs\/assets\/favicons\/android-chrome-36x36.png",
|
||||
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.28.0\/docs\/assets\/favicons\/android-chrome-36x36.png",
|
||||
"sizes": "36x36",
|
||||
"type": "image\/png",
|
||||
"density": "0.75"
|
||||
},
|
||||
{
|
||||
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.27.2\/docs\/assets\/favicons\/android-chrome-48x48.png",
|
||||
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.28.0\/docs\/assets\/favicons\/android-chrome-48x48.png",
|
||||
"sizes": "48x48",
|
||||
"type": "image\/png",
|
||||
"density": "1.0"
|
||||
},
|
||||
{
|
||||
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.27.2\/docs\/assets\/favicons\/android-chrome-72x72.png",
|
||||
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.28.0\/docs\/assets\/favicons\/android-chrome-72x72.png",
|
||||
"sizes": "72x72",
|
||||
"type": "image\/png",
|
||||
"density": "1.5"
|
||||
},
|
||||
{
|
||||
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.27.2\/docs\/assets\/favicons\/android-chrome-96x96.png",
|
||||
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.28.0\/docs\/assets\/favicons\/android-chrome-96x96.png",
|
||||
"sizes": "96x96",
|
||||
"type": "image\/png",
|
||||
"density": "2.0"
|
||||
},
|
||||
{
|
||||
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.27.2\/docs\/assets\/favicons\/android-chrome-144x144.png",
|
||||
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.28.0\/docs\/assets\/favicons\/android-chrome-144x144.png",
|
||||
"sizes": "144x144",
|
||||
"type": "image\/png",
|
||||
"density": "3.0"
|
||||
},
|
||||
{
|
||||
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.27.2\/docs\/assets\/favicons\/android-chrome-192x192.png",
|
||||
"src": "https:\/\/cdn.jsdelivr.net\/dokku\/dokku@v0.28.0\/docs\/assets\/favicons\/android-chrome-192x192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image\/png",
|
||||
"density": "4.0"
|
||||
|
||||
BIN
docs/assets/placeholder-avatar.jpg
Normal file
|
After Width: | Height: | Size: 44 KiB |
BIN
docs/assets/social/discord.png
Normal file
|
After Width: | Height: | Size: 825 B |
BIN
docs/assets/social/github.png
Normal file
|
After Width: | Height: | Size: 469 B |
BIN
docs/assets/social/irc.png
Normal file
|
After Width: | Height: | Size: 686 B |
BIN
docs/assets/social/slack.png
Normal file
|
After Width: | Height: | Size: 816 B |
BIN
docs/assets/universe/universe animation.keyshape
Normal file
303
docs/assets/universe/universe animation.svg
Normal file
|
After Width: | Height: | Size: 91 KiB |
@@ -24,6 +24,7 @@
|
||||
"0.24.10",
|
||||
"0.25.7",
|
||||
"0.26.8",
|
||||
"0.27.2"
|
||||
"0.27.10",
|
||||
"0.28.0"
|
||||
]
|
||||
}
|
||||
|
||||
@@ -102,6 +102,7 @@ The following plugins are available and provided by Dokku maintainers. Please f
|
||||
| [Haproxy tcp load balancer](https://github.com/256dpi/dokku-haproxy) | [256dpi][] | 0.4.0+ |
|
||||
| [Hostname](https://github.com/michaelshobbs/dokku-hostname) | [michaelshobbs][] | 0.4.0+ |
|
||||
| [HTTP Auth Secure Apps](https://github.com/matto1990/dokku-secure-apps) | [matto1990][] | 0.4.0+ |
|
||||
| [Litestream](https://github.com/AxelTheGerman/dokku-litestream)<sup>2</sup> | [AxelTheGerman][] | 0.27.0+ |
|
||||
| [Monit (Health Checks)](https://github.com/mbreit/dokku-monit) | [mbreit][] | 0.8.0+ |
|
||||
| [Nuke Containers](https://github.com/josegonzalez/dokku-nuke) | [josegonzalez][] | 0.4.0+ |
|
||||
| [Open App Ports](https://github.com/josegonzalez/dokku-ports) | [josegonzalez][] | 0.3.x |
|
||||
@@ -116,13 +117,15 @@ The following plugins are available and provided by Dokku maintainers. Please f
|
||||
|
||||
<sup>1</sup> Extends app.json support to include creating volumes and creating / linking databases on push
|
||||
|
||||
<sup>2</sup> Adds the possibility to add SSH deployment keys to receive private hosted packages
|
||||
<sup>2</sup> Adds SQLite replication to external object storage via [Litestream](https://litestream.io)
|
||||
|
||||
<sup>3</sup> Adds the ability to add custom hosts to the containers known_hosts file to be able to ssh them easily (useful with deployment keys)
|
||||
<sup>3</sup> Adds the possibility to add SSH deployment keys to receive private hosted packages
|
||||
|
||||
<sup>4</sup> Adds the ability to sync an application repo with a remote GitHub repo (useful for automated rebuilds without needing a git push from an external system
|
||||
<sup>4</sup> Adds the ability to add custom hosts to the containers known_hosts file to be able to ssh them easily (useful with deployment keys)
|
||||
|
||||
<sup>5</sup> Adds the ability to invoke a post-deploy webhook with the IP, port and app name, all with a single config:set).
|
||||
<sup>5</sup> Adds the ability to sync an application repo with a remote GitHub repo (useful for automated rebuilds without needing a git push from an external system
|
||||
|
||||
<sup>6</sup> Adds the ability to invoke a post-deploy webhook with the IP, port and app name, all with a single config:set).
|
||||
|
||||
### Other Plugins
|
||||
|
||||
@@ -238,6 +241,7 @@ The following plugins are no longer maintained by their developers.
|
||||
[aomitayo]: https://github.com/aomitayo
|
||||
[apmorton]: https://github.com/apmorton
|
||||
[artofrawr]: https://github.com/artofrawr
|
||||
[AxelTheGerman]: https://github.com/AxelTheGerman
|
||||
[badsyntax]: https://github.com/badsyntax
|
||||
[basgys]: https://github.com/basgys
|
||||
[benjamin-dobell]: https://github.com/benjamin-dobell
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -14,7 +14,7 @@ config:keys (<app>|--global) [--merged]
|
||||
config:set [--encoded] [--no-restart] (<app>|--global) KEY1=VALUE1 [KEY2=VALUE2 ...] Set one or more config vars
|
||||
config:unset [--no-restart] (<app>|--global) KEY1 [KEY2 ...] Unset one or more config vars
|
||||
```
|
||||
> For security reasons - and as per [docker recommendations](https://github.com/docker/docker/issues/13490) - Dockerfile-based deploys have variables available _only_ during runtime, as noted in [this issue](https://github.com/dokku/dokku/issues/1860).
|
||||
> For security reasons - and as per [docker recommendations](https://github.com/docker/docker/issues/13490) - Dockerfile-based deploys have variables available _only_ during runtime, as noted in [this issue](https://github.com/dokku/dokku/issues/1860). Consider using [build arguments](/docs/deployment/builders/dockerfiles.md#build-time-configuration-variables) to expose variables during build-time for Dockerfile apps.
|
||||
|
||||
Environment variables are available both at run time and during the application build/compilation step for buildpack-based deploys.
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -84,7 +84,7 @@ dokku builder-pack:set --global projecttoml-path
|
||||
You can get a report about the app's storage status using the `builder-pack:report` command:
|
||||
|
||||
```shell
|
||||
dokku app-json:report
|
||||
dokku builder-pack:report
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
@@ -62,7 +62,7 @@ dokku builder-dockerfile:set --global dockerfile-path
|
||||
You can get a report about the app's storage status using the `builder-dockerfile:report` command:
|
||||
|
||||
```shell
|
||||
dokku app-json:report
|
||||
dokku builder-dockerfile:report
|
||||
```
|
||||
|
||||
```
|
||||
|
||||
107
docs/deployment/builders/lambda.md
Normal file
@@ -0,0 +1,107 @@
|
||||
# Lambda Builder
|
||||
|
||||
> New as of 0.28.0
|
||||
|
||||
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-json: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
|
||||
```
|
||||
@@ -20,6 +20,8 @@ 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.
|
||||
|
||||
#### Behavioral modifiers
|
||||
|
||||
Dokku also supports certain command-line arguments that augment the `log` command's behavior.
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
Dokku commands can be run over SSH. Anywhere you would run `dokku <command>`, just run `ssh -t dokku@dokku.me <command>`
|
||||
The `-t` is used to request a pty. It is highly recommended to do so.
|
||||
To avoid the need to type the `-t` option each time, simply create/modify a section in the `.ssh/config` on the client side, as follows:
|
||||
To avoid the need to type the `-t` option each time, create/modify a section in the `.ssh/config` on the client side, as follows:
|
||||
|
||||
```ini
|
||||
Host dokku.me
|
||||
@@ -12,7 +12,7 @@ Host dokku.me
|
||||
## Behavioral modifiers
|
||||
|
||||
Dokku also supports certain command line arguments that augment its behavior. If using these over SSH, you must use the form `ssh -t dokku@dokku.me -- <command>`
|
||||
in order to avoid SSH interpretting Dokku arguments for itself.
|
||||
to avoid SSH interpreting Dokku arguments for itself.
|
||||
|
||||
```
|
||||
--quiet suppress output headers
|
||||
@@ -71,7 +71,7 @@ All commands have the application name automatically set via the `--app` flag on
|
||||
|
||||
The client supports several environment variables:
|
||||
|
||||
- `DOKKU_HOST` (default: `dokku` git remote): Used to interact with a specific remote server. Can be overriden via `--remote` flag.
|
||||
- `DOKKU_HOST` (default: `dokku` git remote): Used to interact with a specific remote server. Can be overridden via the `--remote` flag.
|
||||
- `DOKKU_PORT` (default: `22`): Used to specify a port to connect to the Dokku server on.
|
||||
|
||||
It also supports several flags (all flags unspecified here are passed as is to the server):
|
||||
|
||||
@@ -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
|
||||
@@ -91,7 +107,11 @@ Omitting or removing the entry will result in parallelism for that process type
|
||||
|
||||
Note that increasing the value of `max_parallel` may significantly impact CPU utilization on your host as your app containers - and their respective processes - start up. Setting a value higher than the number of available CPUs is discouraged. It is recommended that users carefully set this value so as not to overburden their server.
|
||||
|
||||
## Implemented Triggers
|
||||
## Scheduler Interface
|
||||
|
||||
The following sections describe implemented scheduler functionality for the `docker-local` scheduler.
|
||||
|
||||
### Implemented Commands and Triggers
|
||||
|
||||
This plugin implements various functionality through `plugn` triggers to integrate with Docker for running apps on a single server. The following functionality is supported by the `scheduler-docker-local` plugin.
|
||||
|
||||
@@ -105,11 +125,16 @@ This plugin implements various functionality through `plugn` triggers to integra
|
||||
- `ps:stop`
|
||||
- `run`
|
||||
|
||||
## Supported Resource Management Properties
|
||||
|
||||
### 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.
|
||||
|
||||
### Supported Resource Management Properties
|
||||
|
||||
The `docker-local` scheduler supports a minimal list of resource _limits_ and _reservations_. The following properties are supported:
|
||||
|
||||
### Resource Limits
|
||||
#### Resource Limits
|
||||
|
||||
- cpu: (docker option: `--cpus`), is specified in number of CPUs a process can access.
|
||||
- See the ["CPU" section](https://docs.docker.com/config/containers/resource_constraints/#cpu) of the Docker Runtime Options documentation for more information.
|
||||
@@ -120,7 +145,7 @@ The `docker-local` scheduler supports a minimal list of resource _limits_ and _r
|
||||
- nvidia-gpus: (docker option: `--gpus`), is specified in number of Nvidia GPUs a process can access.
|
||||
- See the ["GPU" section](https://docs.docker.com/config/containers/resource_constraints/#gpu) of the Docker Runtime Options documentation for more information.
|
||||
|
||||
### Resource Reservations
|
||||
#### Resource Reservations
|
||||
|
||||
- memory: (docker option: `--memory-reservation`) should be specified with a suffix of `b` (bytes), `k` (kilobytes), `m` (megabytes), `g` (gigabytes). Default unit is `m` (megabytes).
|
||||
- See the ["Memory" section](https://docs.docker.com/config/containers/resource_constraints/#memory) of the Docker Runtime Options documentation for more information.
|
||||
|
||||
@@ -1,14 +1,24 @@
|
||||
# Kubernetes Scheduler
|
||||
|
||||
> Warning: This scheduler is not in Dokku core and thus is considered experimental.
|
||||
> Warning: This scheduler is not in Dokku core and thus functionality may change over time as the API stabilizes.
|
||||
|
||||
The [Kubernetes Scheduler Plugin](https://github.com/dokku/dokku-scheduler-kubernetes) implements the following functionality:
|
||||
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.
|
||||
|
||||
### Implemented Commands and Triggers
|
||||
|
||||
This plugin implements various functionality through `plugn` triggers to integrate with `kubectl` for running apps on a Kubernetes cluster. The following functionality is supported by the `scheduler-kubernetes` plugin.
|
||||
|
||||
- `apps:destroy`
|
||||
- `deploy`: partial, does not implement failed deploy log capture
|
||||
- `logs`: partial, does not implement failure logs
|
||||
- `ps:stop`
|
||||
|
||||
Please see the plugin's [issue tracker](https://github.com/dokku/dokku-scheduler-kubernetes/issues) for more information on the status of the plugin.
|
||||
### Logging support
|
||||
|
||||
For users that require additional functionality, please refer to the [Sponsoring Documentation](https://github.com/dokku/.github/blob/master/SPONSORING.md).
|
||||
App logs for the `logs` command are fetched from running pods via the `kubectl` cli. To persist logs across deployments, consider using [Vector](https://vector.dev/docs/setup/installation/platforms/kubernetes/) or a similar tool to ship logs to another service or a third-party platform.
|
||||
|
||||
@@ -1,13 +1,23 @@
|
||||
# Nomad Scheduler
|
||||
|
||||
> Warning: This scheduler is not in Dokku core and thus is considered experimental.
|
||||
> 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-nomad) implements the following functionality:
|
||||
The [Nomad Scheduler Plugin](https://github.com/dokku/dokku-scheduler-nomad) is available free as an external plugin. Please see the plugin's [issue tracker](https://github.com/dokku/dokku-scheduler-nomad/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.
|
||||
|
||||
### Implemented Commands and Triggers
|
||||
|
||||
This plugin implements various functionality through `plugn` triggers to integrate with the `nomad` cli for running apps on a Nomad cluster. The following functionality is supported by the `scheduler-nomad` plugin.
|
||||
|
||||
- `apps:destroy`
|
||||
- `deploy`
|
||||
- `ps:stop`
|
||||
|
||||
Please see the plugin's [issue tracker](https://github.com/dokku/dokku-scheduler-nomad/issues) for more information on the status of the plugin.
|
||||
### Logging support
|
||||
|
||||
For users that require additional functionality, please refer to the [Sponsoring Documentation](https://github.com/dokku/.github/blob/master/SPONSORING.md).
|
||||
> Warning: Fetching app logs for the `logs` command is currently not implemented. Please consider using [Vector](https://vector.dev/docs/setup/installation/platforms/kubernetes/) or a similar tool to ship logs to another service or a third-party platform.
|
||||
|
||||
@@ -74,6 +74,21 @@ set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
|
||||
# TODO
|
||||
```
|
||||
|
||||
### `app-list`
|
||||
|
||||
- Description: Lists all apps in available to the currently logged in user. Optionally disables filtering by user if the first argument is `false`.
|
||||
- Invoked by:
|
||||
- Arguments: `$FILTER`
|
||||
- Example:
|
||||
|
||||
```shell
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
|
||||
|
||||
# TODO
|
||||
```
|
||||
|
||||
### `app-json-process-deploy-parallelism`
|
||||
|
||||
- Description: Decides the parallelism to use when deploying a given process type. The default is 1 process entry at a type.
|
||||
@@ -426,7 +441,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
|
||||
|
||||
@@ -436,9 +450,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
|
||||
```
|
||||
@@ -1829,6 +1842,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
|
||||
|
||||
@@ -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.2-2 (Mon Feb 22 23:20:37 CET 2016)"
|
||||
# wait for "==> build-arch: ==> Finished making: dokku 0.28.0-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'
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -11,7 +11,7 @@ sudo apt-get -qq -y --no-install-recommends install apt-transport-https
|
||||
wget -nv -O - https://get.docker.com/ | sh
|
||||
|
||||
# install dokku
|
||||
wget -nv -O - https://packagecloud.io/dokku/dokku/gpgkey | apt-key add -
|
||||
wget -qO- https://packagecloud.io/dokku/dokku/gpgkey | sudo tee /etc/apt/trusted.gpg.d/dokku.asc
|
||||
OS_ID="$(lsb_release -cs 2>/dev/null || echo "bionic")"
|
||||
echo "bionic focal jammy" | grep -q "$OS_ID" || OS_ID="bionic"
|
||||
echo "deb https://packagecloud.io/dokku/dokku/ubuntu/ ${OS_ID} main" | sudo tee /etc/apt/sources.list.d/dokku.list
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
Pull the dokku/dokku image:
|
||||
|
||||
```shell
|
||||
docker pull dokku/dokku:0.27.2
|
||||
docker pull dokku/dokku:0.28.0
|
||||
```
|
||||
|
||||
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.2
|
||||
dokku/dokku:0.28.0
|
||||
```
|
||||
|
||||
The above command will start a new docker container that is ready when a message similar to `Runit started as PID 12345` appears.
|
||||
|
||||
@@ -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).
|
||||
@@ -9,12 +9,12 @@ Dokku is an extensible, open source Platform as a Service that runs on a single
|
||||
To start using Dokku, you'll need a system that meets the following minimum requirements:
|
||||
|
||||
- A fresh installation of any of the following operating systems:
|
||||
- [Ubuntu 18.04/20.04 x64](https://www.ubuntu.com/download)
|
||||
- [Debian 9+ x64](https://www.debian.org/distrib/)
|
||||
- [CentOS 7 x64](https://www.centos.org/download/) *(experimental)*
|
||||
- [Ubuntu 18.04/20.04/22.04](https://www.ubuntu.com/download)
|
||||
- [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
|
||||
- ARMV8 (alternatively known as `arm64`), commonly used for Raspberry PI and AWS Graviton
|
||||
|
||||
To avoid memory pressure during builds or runtime of your applications, we suggest the following:
|
||||
|
||||
@@ -38,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.2/bootstrap.sh;
|
||||
sudo DOKKU_TAG=v0.27.2 bash bootstrap.sh
|
||||
wget https://raw.githubusercontent.com/dokku/dokku/v0.28.0/bootstrap.sh;
|
||||
sudo DOKKU_TAG=v0.28.0 bash bootstrap.sh
|
||||
```
|
||||
|
||||
The installation process takes about 5-10 minutes, depending upon internet connection speed.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
1024
docs/home.html
198
docs/networking/proxies/caddy.md
Normal file
@@ -0,0 +1,198 @@
|
||||
# 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
|
||||
```
|
||||
|
||||
## 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
|
||||
```
|
||||
@@ -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,16 +8,40 @@ 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).
|
||||
|
||||
### 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
|
||||
|
||||
250
docs/networking/proxies/traefik.md
Normal file
@@ -0,0 +1,250 @@
|
||||
# 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
|
||||
```
|
||||
|
||||
## 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.
|
||||
|
||||
### 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
|
||||
```
|
||||
@@ -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.
|
||||
- trigers: `post-domains-update`
|
||||
- `domains:clear`: Clears out an app's associated domains.
|
||||
- trigers: `post-domains-update`
|
||||
- `domains:disable`: Disables domains for an app.
|
||||
- trigers: `pre-disable-vhost`
|
||||
- `domains:enable`: Enables domains for an app.
|
||||
- trigers: `pre-enable-vhost`
|
||||
- `domains:remove`: Removes a domain from an app.
|
||||
- trigers: `post-domains-update`
|
||||
- `domains:set`: Sets all domains for a given app.
|
||||
- trigers: `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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.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.27.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.27.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.27.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.27.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.27.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.27.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.27.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.27.2/docs/assets/favicons/apple-touch-icon-180x180.png">
|
||||
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.2/docs/assets/favicons/favicon-32x32.png" sizes="32x32">
|
||||
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.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.27.2/docs/assets/favicons/favicon-96x96.png" sizes="96x96">
|
||||
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.2/docs/assets/favicons/favicon-16x16.png" sizes="16x16">
|
||||
<link rel="manifest" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.2/docs/assets/favicons/manifest.json">
|
||||
<link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.2/docs/assets/favicons/favicon.ico">
|
||||
<link rel="apple-touch-icon" sizes="57x57" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.28.0/docs/assets/favicons/apple-touch-icon-57x57.png">
|
||||
<link rel="apple-touch-icon" sizes="60x60" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.28.0/docs/assets/favicons/apple-touch-icon-60x60.png">
|
||||
<link rel="apple-touch-icon" sizes="72x72" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.28.0/docs/assets/favicons/apple-touch-icon-72x72.png">
|
||||
<link rel="apple-touch-icon" sizes="76x76" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.28.0/docs/assets/favicons/apple-touch-icon-76x76.png">
|
||||
<link rel="apple-touch-icon" sizes="114x114" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.28.0/docs/assets/favicons/apple-touch-icon-114x114.png">
|
||||
<link rel="apple-touch-icon" sizes="120x120" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.28.0/docs/assets/favicons/apple-touch-icon-120x120.png">
|
||||
<link rel="apple-touch-icon" sizes="144x144" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.28.0/docs/assets/favicons/apple-touch-icon-144x144.png">
|
||||
<link rel="apple-touch-icon" sizes="152x152" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.28.0/docs/assets/favicons/apple-touch-icon-152x152.png">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.28.0/docs/assets/favicons/apple-touch-icon-180x180.png">
|
||||
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.28.0/docs/assets/favicons/favicon-32x32.png" sizes="32x32">
|
||||
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.28.0/docs/assets/favicons/android-chrome-192x192.png" sizes="192x192">
|
||||
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.28.0/docs/assets/favicons/favicon-96x96.png" sizes="96x96">
|
||||
<link rel="icon" type="image/png" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.28.0/docs/assets/favicons/favicon-16x16.png" sizes="16x16">
|
||||
<link rel="manifest" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.28.0/docs/assets/favicons/manifest.json">
|
||||
<link rel="shortcut icon" href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.28.0/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.2/docs/assets/favicons/mstile-144x144.png">
|
||||
<meta name="msapplication-config" content="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.2/docs/assets/favicons/browserconfig.xml">
|
||||
<meta name="msapplication-TileImage" content="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.28.0/docs/assets/favicons/mstile-144x144.png">
|
||||
<meta name="msapplication-config" content="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.28.0/docs/assets/favicons/browserconfig.xml">
|
||||
<meta name="theme-color" content="#ffffff">
|
||||
|
||||
<script>
|
||||
@@ -41,50 +41,76 @@
|
||||
}
|
||||
</script>
|
||||
|
||||
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.0.0-alpha.2/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link href="https://cdn.jsdelivr.net/gh/dokku/dokku@v0.27.2/docs/assets/style.css" rel="stylesheet">
|
||||
<!-- <link href="/dokku/docs/assets/style.css" rel="stylesheet"> -->
|
||||
<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">
|
||||
|
||||
<!-- Font (Lato) -->
|
||||
<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.28.0/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">
|
||||
<style>
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="dev-warning doc-floating-warning" style="display:none">
|
||||
This document is for dokku's development version, which can be significantly different from previous releases. For older releases, use the version selector floating in the bottom right corner of this page.
|
||||
</div>
|
||||
<div class="header">
|
||||
<div class="container-fluid">
|
||||
<div class="row">
|
||||
<div class="col-md-offset-2">
|
||||
<h1 class="heading navbar-brand">
|
||||
<a href="/{{NAME}}/">Dokku</a>
|
||||
</h1>
|
||||
<ul class="nav nav-pills pull-xs-right col-md-offset-right-2">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="https://dokku.github.io/">Blog</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="https://github.com/dokku/dokku/">Code</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/{{NAME}}/getting-started/installation/">Docs</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="https://glider-slackin.herokuapp.com/">Slack</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="https://github.com/dokku/dokku/discussions">Forums</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="https://pro.dokku.com/">Pro</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<header class="hero-section">
|
||||
<nav class="navbar navbar-expand-md navbar-dark py-3" id="mainNav">
|
||||
<div class="container top-50 px-4 px-lg-5">
|
||||
<a class="navbar-brand d-flex" href="/{{NAME}}/">
|
||||
<img class="me-3" src="./assets/dokku-logo.svg" alt="" width="55">
|
||||
<span class="align-self-center d-block">Dokku</span>
|
||||
</a>
|
||||
<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://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">
|
||||
<a class="nav-link dropdown-toggle mx-0 mx-md-2 underline" id="navbarDropdownMenuLink" role="button" data-bs-toggle="dropdown" aria-expanded="false">
|
||||
Social
|
||||
</a>
|
||||
<ul class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink">
|
||||
<div class="d-grid gap-2">
|
||||
<a href="https://discord.gg/YQjANGMZvu" class="btn rounded-2 d-flex align-items-center py-2 px-3 lh-sm text-start mx-2">
|
||||
<img class="me-3" alt="discord" src="./assets/social/discord.png" width="25px" />
|
||||
<div>
|
||||
<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">
|
||||
<img class="me-3" alt="slack" src="./assets/social/slack.png" width="25px" />
|
||||
<div>
|
||||
<strong class="d-block">Slack</strong>
|
||||
</div>
|
||||
</a>
|
||||
<a href="https://webchat.libera.chat/?channels=dokku" class="btn rounded-2 d-flex align-items-center py-2 px-3 lh-sm text-start mx-2">
|
||||
<img class="me-3" alt="irc" src="./assets/social/irc.png" width="25px" />
|
||||
<div>
|
||||
<strong class="d-block">IRC</strong>
|
||||
</div>
|
||||
</a>
|
||||
<a href="https://github.com/dokku/dokku/discussions" class="btn rounded-2 d-flex align-items-center py-2 px-3 lh-sm text-start mx-2">
|
||||
<img class="me-3" alt="github" src="./assets/social/github.png" width="25px" />
|
||||
<div>
|
||||
<strong class="d-block">GitHub Discussions</strong>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="nav-item"><a class="nav-link mx-0 mx-md-2 underline" href="https://pro.dokku.com/">Pro</a></li>
|
||||
<li class="nav-item"><a class="btn btn-primary mx-0 mx-md-3 cta" href="/{{NAME}}/getting-started/installation/">Get Started</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<div class="container-fluid">
|
||||
<div class="container">
|
||||
<div class="improve-slideout">
|
||||
<i class="fa fa-pencil icon-improve"></i>
|
||||
<a href="https://github.com/{{USER}}/{{NAME}}/edit/master/docs/{{DOC}}" target="_blank">
|
||||
@@ -94,10 +120,7 @@
|
||||
<a class="back-to-contents" href="#page-contents"><i class="fa fa-arrow-circle-up icon-improve" title="Back to Contents"></i></a>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-8 col-md-6 col-md-push-4 markdown-body" style="padding-top:16px">
|
||||
{{CONTENT}}
|
||||
</div>
|
||||
<div class="col-xs-4 col-md-2 col-md-pull-6 col-md-offset-2" style="padding-top:16px">
|
||||
<div class="col-4 col-md-3" style="padding-top:16px">
|
||||
<div class="list-group">
|
||||
<a href="#" class="list-group-item disabled">Getting Started</a>
|
||||
<a href="/{{NAME}}/getting-started/installation/" class="list-group-item">Getting Started with Dokku</a>
|
||||
@@ -124,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>
|
||||
@@ -133,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>
|
||||
@@ -148,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>
|
||||
|
||||
@@ -191,6 +220,9 @@
|
||||
<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">
|
||||
{{CONTENT}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -222,7 +254,19 @@
|
||||
This document is for dokku's development version, which can be significantly different from previous releases. For older releases, use the version selector floating in the bottom right corner of this page.
|
||||
</div>
|
||||
|
||||
<!-- Footer section -->
|
||||
<footer class="px-4 px-lg-5 text-start mt-5">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-12 align-self-start text-white">
|
||||
<p class="m-0 py-3">© 2013-2022 Dokku. Website designed & developed by <a href="https://yasoob.me" class="text-decoration-none text-white">Yasoob Khalid</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/anchor-js/1.3.0/anchor.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0-beta1/dist/js/bootstrap.bundle.min.js" integrity="sha384-pprn3073KE6tl6bjs2QrFaJGz5/SUsLqktiwsUTF55Jfv3qYSDhgCecCxMW52nD2" crossorigin="anonymous"></script>
|
||||
|
||||
<script src="https://dokku.dpdcart.com/dpd.js"></script>
|
||||
<script>
|
||||
// Source: https://github.com/Alhadis/Snippets/blob/master/js/polyfills/IE8-child-elements.js
|
||||
@@ -500,6 +544,7 @@
|
||||
}
|
||||
|
||||
addVersionLink('master');
|
||||
versions.reverse();
|
||||
Array.prototype.forEach.call(versions, function (version, i) {
|
||||
addVersionLink(version);
|
||||
});
|
||||
|
||||
@@ -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
@@ -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"
|
||||
;;
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core standard plugin"
|
||||
version = "0.27.2"
|
||||
version = "0.28.0"
|
||||
[plugin.config]
|
||||
|
||||
@@ -8,6 +8,7 @@ cmd-report() {
|
||||
declare cmd="report"
|
||||
[[ "$1" == "$cmd" ]] && shift 1
|
||||
declare APP="$1"
|
||||
local ARCHITECTURE="$(dpkg --print-architecture 2>/dev/null || true)"
|
||||
|
||||
if [[ "$APP" == "--format" ]]; then
|
||||
dokku_log_fail "--format flag not supported on global report"
|
||||
@@ -23,8 +24,8 @@ cmd-report() {
|
||||
dokku_log_info1 "git version: $(git --version)"
|
||||
dokku_log_info1 "sigil version: $(sigil -v)"
|
||||
dokku_log_info1 "herokuish version: "
|
||||
if [[ "$(dpkg --print-architecture 2>/dev/null || true)" == "armhf" ]]; then
|
||||
dokku_log_warn "herokuish not supported on armhf architecture"
|
||||
if [[ "$ARCHITECTURE" == "armhf" ]] || [[ "$ARCHITECTURE" == "arm64" ]]; then
|
||||
dokku_log_warn "herokuish not supported on $ARCHITECTURE architecture"
|
||||
else
|
||||
"$DOCKER_BIN" container run $DOKKU_GLOBAL_RUN_ARGS --rm "$DOKKU_IMAGE" herokuish version | sed "s/^/ /"
|
||||
fi
|
||||
|
||||
6
plugins/20_events/app-list
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
set -eo pipefail
|
||||
[[ $DOKKU_TRACE ]] && set -x
|
||||
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
|
||||
|
||||
[[ ! "$DOKKU_EVENTS" ]] || dokku_log_plugn_trigger_call "$(basename "$0")" "$@"
|
||||
@@ -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"
|
||||
;;
|
||||
*)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core events logging plugin"
|
||||
version = "0.27.2"
|
||||
version = "0.28.0"
|
||||
[plugin.config]
|
||||
|
||||
@@ -497,7 +497,7 @@ func setScale(appName string, image string) error {
|
||||
}
|
||||
|
||||
skipDeploy := true
|
||||
clearExisting := false
|
||||
clearExisting := true
|
||||
args := []string{appName, strconv.FormatBool(skipDeploy), strconv.FormatBool(clearExisting)}
|
||||
for processType, formation := range appJSON.Formation {
|
||||
if formation.Quantity != nil {
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core app-json plugin"
|
||||
version = "0.27.2"
|
||||
version = "0.28.0"
|
||||
[plugin.config]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core apps plugin"
|
||||
version = "0.27.2"
|
||||
version = "0.28.0"
|
||||
[plugin.config]
|
||||
|
||||
@@ -17,7 +17,9 @@ trigger-builder-dockerfile-builder-build() {
|
||||
dokku_log_info1 "Building $APP from Dockerfile"
|
||||
|
||||
local IMAGE=$(get_app_image_name "$APP")
|
||||
local DOCKER_BUILD_LABEL_ARGS=("--label=org.label-schema.schema-version=1.0" "--label=org.label-schema.vendor=dokku" "--label=com.dokku.app-name=$APP" "--label=com.dokku.image-stage=build")
|
||||
local DOKKU_DOCKERFILE_CACHE_BUILD=$(config_get "$APP" "DOKKU_DOCKERFILE_CACHE_BUILD")
|
||||
local DOKKU_DOCKER_BUILD_OPTS=$(config_get "$APP" "DOKKU_DOCKER_BUILD_OPTS")
|
||||
local DOCKER_BUILD_LABEL_ARGS=("--label=dokku" "--label=org.label-schema.schema-version=1.0" "--label=org.label-schema.vendor=dokku" "--label=com.dokku.image-stage=build" "--label=com.dokku.builder-type=dockerfile" "--label=com.dokku.app-name=$APP")
|
||||
|
||||
pushd "$SOURCECODE_WORK_DIR" &>/dev/null
|
||||
|
||||
@@ -36,7 +38,7 @@ trigger-builder-dockerfile-builder-build() {
|
||||
declare -a ARG_ARRAY
|
||||
eval "ARG_ARRAY=($DOCKER_ARGS)"
|
||||
|
||||
"$DOCKER_BIN" image build "${DOCKER_BUILD_LABEL_ARGS[@]}" $DOKKU_GLOBAL_BUILD_ARGS "${ARG_ARRAY[@]}" "${DOKKU_DOCKER_BUILD_OPTS[@]}" -t $IMAGE .
|
||||
"$DOCKER_BIN" image build "${DOCKER_BUILD_LABEL_ARGS[@]}" $DOKKU_GLOBAL_BUILD_ARGS "${ARG_ARRAY[@]}" ${DOKKU_DOCKER_BUILD_OPTS} -t $IMAGE .
|
||||
|
||||
plugn trigger post-build-dockerfile "$APP"
|
||||
}
|
||||
|
||||
@@ -20,7 +20,7 @@ trigger-builder-dockerfile-builder-release() {
|
||||
trap "rm -rf '$TMP_WORK_DIR' >/dev/null" RETURN INT TERM EXIT
|
||||
|
||||
local IMAGE=$(get_app_image_name "$APP" "$IMAGE_TAG")
|
||||
if ! "$DOCKER_BIN" image build "${DOCKER_BUILD_LABEL_ARGS[@]}" $DOKKU_GLOBAL_BUILD_ARGS -f "$PLUGIN_AVAILABLE_PATH/builder-dockerfile/dockerfiles/builder-release.Dockerfile" --build-arg APP_IMAGE="$IMAGE" -t "$IMAGE" "$TMP_WORK_DIR"; then
|
||||
if ! suppress_output "$DOCKER_BIN" image build "${DOCKER_BUILD_LABEL_ARGS[@]}" $DOKKU_GLOBAL_BUILD_ARGS -f "$PLUGIN_AVAILABLE_PATH/builder-dockerfile/dockerfiles/builder-release.Dockerfile" --build-arg APP_IMAGE="$IMAGE" -t "$IMAGE" "$TMP_WORK_DIR"; then
|
||||
dokku_log_warn "Failure injecting docker labels on image"
|
||||
return 1
|
||||
fi
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core builder-dockerfile plugin"
|
||||
version = "0.27.2"
|
||||
version = "0.28.0"
|
||||
[plugin.config]
|
||||
|
||||
@@ -23,8 +23,8 @@ trigger-builder-herokuish-builder-build() {
|
||||
local IMAGE=$(get_app_image_name "$APP")
|
||||
local DOKKU_APP_CACHE_DIR="$DOKKU_ROOT/$APP/cache"
|
||||
local DOKKU_APP_HOST_CACHE_DIR="$DOKKU_HOST_ROOT/$APP/cache"
|
||||
local DOCKER_COMMIT_LABEL_ARGS=("--change" "LABEL org.label-schema.schema-version=1.0" "--change" "LABEL org.label-schema.vendor=dokku" "--change" "LABEL com.dokku.app-name=$APP")
|
||||
local DOCKER_RUN_LABEL_ARGS=("--label=com.dokku.image-stage=build" "--label=com.dokku.app-name=$APP")
|
||||
local DOCKER_COMMIT_LABEL_ARGS=("--change" "LABEL dokku=" "--change" "LABEL org.label-schema.schema-version=1.0" "--change" "LABEL org.label-schema.vendor=dokku" "--change" "LABEL com.dokku.image-stage=build" "--change" "LABEL com.dokku.builder-type=herokuish" "--change" "LABEL com.dokku.app-name=$APP")
|
||||
local DOCKER_RUN_LABEL_ARGS=("--label=dokku" "--label=org.label-schema.schema-version=1.0" "--label=org.label-schema.vendor=dokku" "--label=com.dokku.image-stage=build" "--label=com.dokku.builder-type=herokuish" "--label=com.dokku.app-name=$APP")
|
||||
local CID TAR_CID
|
||||
|
||||
pushd "$SOURCECODE_WORK_DIR" &>/dev/null
|
||||
|
||||
@@ -7,8 +7,9 @@ trigger-builder-herokuish-builder-detect() {
|
||||
declare desc="builder-herokuish builder-detect plugin trigger"
|
||||
declare trigger="builder-detect"
|
||||
declare APP="$1" SOURCECODE_WORK_DIR="$2"
|
||||
local ARCHITECTURE="$(dpkg --print-architecture 2>/dev/null || true)"
|
||||
|
||||
if [[ "$(dpkg --print-architecture 2>/dev/null || true)" == "armhf" ]]; then
|
||||
if [[ "$ARCHITECTURE" == "armhf" ]] || [[ "$ARCHITECTURE" == "arm64" ]]; then
|
||||
return
|
||||
fi
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core builder-herokuish plugin"
|
||||
version = "0.27.2"
|
||||
version = "0.28.0"
|
||||
[plugin.config]
|
||||
|
||||
43
plugins/builder-lambda/builder-build
Executable file
@@ -0,0 +1,43 @@
|
||||
#!/usr/bin/env bash
|
||||
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
|
||||
set -eo pipefail
|
||||
[[ $DOKKU_TRACE ]] && set -x
|
||||
|
||||
trigger-builder-lambda-builder-build() {
|
||||
declare desc="builder-lambda builder-build plugin trigger"
|
||||
declare trigger="builder-build"
|
||||
declare BUILDER_TYPE="$1" APP="$2" SOURCECODE_WORK_DIR="$3"
|
||||
|
||||
if [[ "$BUILDER_TYPE" != "lambda" ]]; then
|
||||
return
|
||||
fi
|
||||
|
||||
dokku_log_info1 "Building $APP from lambda"
|
||||
|
||||
local IMAGE=$(get_app_image_name "$APP")
|
||||
|
||||
pushd "$SOURCECODE_WORK_DIR" &>/dev/null
|
||||
|
||||
plugn trigger pre-build-lambda "$APP"
|
||||
|
||||
# shellcheck disable=SC2086
|
||||
lambda-builder build --generate-image --write-procfile --image-env=DOCKER_LAMBDA_STAY_OPEN=1 --label=org.label-schema.schema-version=1.0 --label=org.label-schema.vendor=dokku --label=com.dokku.image-stage=build --label=com.dokku.builder-type=lambda "--label=com.dokku.app-name=$APP" $DOKKU_GLOBAL_BUILD_ARGS --port 5000 --tag "$IMAGE" --working-directory "$SOURCECODE_WORK_DIR"
|
||||
if [[ ! -f "$SOURCECODE_WORK_DIR/lambda.zip" ]]; then
|
||||
dokku_log_warn "Compressed lambda.zip not detected, failed to build lambda function"
|
||||
return 1
|
||||
fi
|
||||
|
||||
local GIT_REV="$(plugn trigger git-revision "$APP")"
|
||||
mkdir -p "${DOKKU_LIB_ROOT}/data/builder-lambda/$APP"
|
||||
pushd "${DOKKU_LIB_ROOT}/data/builder-lambda/$APP" >/dev/null
|
||||
rm -f -- *.zip
|
||||
popd &>/dev/null || pushd "/tmp" >/dev/null
|
||||
cp "$SOURCECODE_WORK_DIR/lambda.zip" "${DOKKU_LIB_ROOT}/data/builder-lambda/$APP/$GIT_REV.zip"
|
||||
if [[ -f "$SOURCECODE_WORK_DIR/Procfile" ]]; then
|
||||
cp "$SOURCECODE_WORK_DIR/Procfile" "${DOKKU_LIB_ROOT}/data/builder-lambda/$APP/$GIT_REV.Procfile"
|
||||
fi
|
||||
|
||||
plugn trigger post-build-lambda "$APP"
|
||||
}
|
||||
|
||||
trigger-builder-lambda-builder-build "$@"
|
||||
22
plugins/builder-lambda/builder-detect
Executable file
@@ -0,0 +1,22 @@
|
||||
#!/usr/bin/env bash
|
||||
source "$PLUGIN_AVAILABLE_PATH/config/functions"
|
||||
set -eo pipefail
|
||||
[[ $DOKKU_TRACE ]] && set -x
|
||||
|
||||
trigger-builder-lambda-builder-detect() {
|
||||
declare desc="builder-lambda builder-detect plugin trigger"
|
||||
declare trigger="builder-detect"
|
||||
declare APP="$1" SOURCECODE_WORK_DIR="$2"
|
||||
local ARCHITECTURE="$(dpkg --print-architecture 2>/dev/null || true)"
|
||||
|
||||
if [[ "$ARCHITECTURE" == "armhf" ]]; then
|
||||
return
|
||||
fi
|
||||
|
||||
if [[ -f "$SOURCECODE_WORK_DIR/lambda.yml" ]]; then
|
||||
echo "lambda"
|
||||
return
|
||||
fi
|
||||
}
|
||||
|
||||
trigger-builder-lambda-builder-detect "$@"
|
||||
32
plugins/builder-lambda/builder-release
Executable file
@@ -0,0 +1,32 @@
|
||||
#!/usr/bin/env bash
|
||||
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
|
||||
set -eo pipefail
|
||||
[[ $DOKKU_TRACE ]] && set -x
|
||||
|
||||
trigger-builder-lambda-builder-release() {
|
||||
declare desc="builder-lambda builder-release plugin trigger"
|
||||
declare trigger="builder-release"
|
||||
declare BUILDER_TYPE="$1" APP="$2" IMAGE_TAG="$3"
|
||||
|
||||
if [[ "$BUILDER_TYPE" != "lambda" ]]; then
|
||||
return
|
||||
fi
|
||||
|
||||
local DOCKER_BUILD_LABEL_ARGS="--label=org.label-schema.schema-version=1.0 --label=org.label-schema.vendor=dokku --label=com.dokku.app-name=$APP --label=com.dokku.image-stage=release --label=dokku"
|
||||
|
||||
plugn trigger pre-release-lambda "$APP" "$IMAGE_TAG"
|
||||
|
||||
TMP_WORK_DIR="$(mktemp -d "/tmp/dokku-${DOKKU_PID}-${FUNCNAME[0]}.XXXXXX")"
|
||||
trap "rm -rf '$TMP_WORK_DIR' >/dev/null" RETURN INT TERM EXIT
|
||||
|
||||
local IMAGE=$(get_app_image_name "$APP" "$IMAGE_TAG")
|
||||
if ! suppress_output "$DOCKER_BIN" image build "${DOCKER_BUILD_LABEL_ARGS[@]}" $DOKKU_GLOBAL_BUILD_ARGS -f "$PLUGIN_AVAILABLE_PATH/builder-lambda/dockerfiles/builder-release.Dockerfile" --build-arg APP_IMAGE="$IMAGE" -t "$IMAGE" "$TMP_WORK_DIR"; then
|
||||
dokku_log_warn "Failure injecting docker labels on image"
|
||||
return 1
|
||||
fi
|
||||
|
||||
plugn trigger post-release-lambda "$APP" "$IMAGE_TAG"
|
||||
plugn trigger post-release-builder "$BUILDER_TYPE" "$APP" "$IMAGE"
|
||||
}
|
||||
|
||||
trigger-builder-lambda-builder-release "$@"
|
||||
15
plugins/builder-lambda/commands
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env bash
|
||||
set -eo pipefail
|
||||
[[ $DOKKU_TRACE ]] && set -x
|
||||
source "$PLUGIN_AVAILABLE_PATH/builder-lambda/help-functions"
|
||||
|
||||
case "$1" in
|
||||
help | builder-lambda:help)
|
||||
cmd-builder-lambda-help "$@"
|
||||
;;
|
||||
|
||||
*)
|
||||
exit "$DOKKU_NOT_IMPLEMENTED_EXIT"
|
||||
;;
|
||||
|
||||
esac
|
||||
30
plugins/builder-lambda/core-post-extract
Executable file
@@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env bash
|
||||
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
|
||||
source "$PLUGIN_AVAILABLE_PATH/builder-lambda/internal-functions"
|
||||
set -eo pipefail
|
||||
[[ $DOKKU_TRACE ]] && set -x
|
||||
|
||||
trigger-builder-lambda-core-post-extract() {
|
||||
declare desc="builder-lambda post-extract plugin trigger"
|
||||
declare trigger="post-extract"
|
||||
declare APP="$1" SOURCECODE_WORK_DIR="$2"
|
||||
local NEW_LAMBDA_YML="$(fn-builder-lambda-computed-lambdayml-path "$APP")"
|
||||
|
||||
pushd "$TMP_WORK_DIR" >/dev/null
|
||||
|
||||
if [[ -z "$NEW_LAMBDA_YML" ]]; then
|
||||
return
|
||||
fi
|
||||
|
||||
if [[ ! -f "$NEW_LAMBDA_YML" ]]; then
|
||||
rm -f lambda.yml
|
||||
return
|
||||
fi
|
||||
|
||||
if [[ "$NEW_LAMBDA_YML" != "lambda.yml" ]]; then
|
||||
mv "$NEW_LAMBDA_YML" lambda.yml
|
||||
fi
|
||||
popd &>/dev/null || pushd "/tmp" >/dev/null
|
||||
}
|
||||
|
||||
trigger-builder-lambda-core-post-extract "$@"
|
||||
@@ -0,0 +1,2 @@
|
||||
ARG APP_IMAGE
|
||||
FROM $APP_IMAGE
|
||||
33
plugins/builder-lambda/help-functions
Executable file
@@ -0,0 +1,33 @@
|
||||
#!/usr/bin/env bash
|
||||
set -eo pipefail
|
||||
[[ $DOKKU_TRACE ]] && set -x
|
||||
|
||||
cmd-builder-lambda-help() {
|
||||
declare desc="help command"
|
||||
declare CMD="$1"
|
||||
local plugin_name="builder-lambda"
|
||||
local plugin_description="Manage the lambda builder integration for an app"
|
||||
|
||||
if [[ "$CMD" == "${plugin_name}:help" ]]; then
|
||||
echo -e "Usage: dokku ${plugin_name}[:COMMAND]"
|
||||
echo ''
|
||||
echo "$plugin_description"
|
||||
echo ''
|
||||
echo 'Additional commands:'
|
||||
fn-help-content | sort | column -c2 -t -s,
|
||||
elif [[ $(ps -o command= $PPID) == *"--all"* ]]; then
|
||||
fn-help-content
|
||||
else
|
||||
cat <<help_desc
|
||||
$plugin_name, $plugin_description
|
||||
help_desc
|
||||
fi
|
||||
}
|
||||
|
||||
fn-help-content() {
|
||||
declare desc="return help content"
|
||||
cat <<help_content
|
||||
builder-lambda:report [<app>] [<flag>], Displays a builder-lambda report for one or more apps
|
||||
builder-lambda:set <app> <property> (<value>), Set or clear a builder-lambda property for an app
|
||||
help_content
|
||||
}
|
||||
16
plugins/builder-lambda/install
Executable file
@@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
source "$PLUGIN_CORE_AVAILABLE_PATH/common/property-functions"
|
||||
set -eo pipefail
|
||||
[[ $DOKKU_TRACE ]] && set -x
|
||||
|
||||
trigger-builder-lambda-install() {
|
||||
declare desc="installs the builder-lambda plugin"
|
||||
declare trigger="install"
|
||||
|
||||
fn-plugin-property-setup "builder-lambda"
|
||||
|
||||
mkdir -p "${DOKKU_LIB_ROOT}/data/builder-lambda"
|
||||
chown -R "${DOKKU_SYSTEM_USER}:${DOKKU_SYSTEM_GROUP}" "${DOKKU_LIB_ROOT}/data/builder-lambda"
|
||||
}
|
||||
|
||||
trigger-builder-lambda-install "$@"
|
||||
90
plugins/builder-lambda/internal-functions
Executable file
@@ -0,0 +1,90 @@
|
||||
#!/usr/bin/env bash
|
||||
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
|
||||
source "$PLUGIN_CORE_AVAILABLE_PATH/common/property-functions"
|
||||
set -eo pipefail
|
||||
[[ $DOKKU_TRACE ]] && set -x
|
||||
|
||||
cmd-builder-lambda-report() {
|
||||
declare desc="displays a builder-lambda report for one or more apps"
|
||||
declare cmd="builder-lambda:report"
|
||||
[[ "$1" == "$cmd" ]] && shift 1
|
||||
declare APP="$1" INFO_FLAG="$2"
|
||||
|
||||
if [[ -n "$APP" ]] && [[ "$APP" == --* ]]; then
|
||||
INFO_FLAG="$APP"
|
||||
APP=""
|
||||
fi
|
||||
|
||||
if [[ -z "$APP" ]] && [[ -z "$INFO_FLAG" ]]; then
|
||||
INFO_FLAG="true"
|
||||
fi
|
||||
|
||||
if [[ -z "$APP" ]]; then
|
||||
for app in $(dokku_apps); do
|
||||
cmd-builder-lambda-report-single "$app" "$INFO_FLAG" | tee || true
|
||||
done
|
||||
else
|
||||
cmd-builder-lambda-report-single "$APP" "$INFO_FLAG"
|
||||
fi
|
||||
}
|
||||
|
||||
cmd-builder-lambda-report-single() {
|
||||
declare APP="$1" INFO_FLAG="$2"
|
||||
if [[ "$INFO_FLAG" == "true" ]]; then
|
||||
INFO_FLAG=""
|
||||
fi
|
||||
verify_app_name "$APP"
|
||||
local flag_map=(
|
||||
"--builder-lambda-computed-lambdayml-path: $(fn-builder-lambda-computed-lambdayml-path "$APP")"
|
||||
"--builder-lambda-global-lambdayml-path: $(fn-builder-lambda-global-lambdayml-path "$APP")"
|
||||
"--builder-lambda-lambdayml-path: $(fn-builder-lambda-lambdayml-path "$APP")"
|
||||
)
|
||||
|
||||
if [[ -z "$INFO_FLAG" ]]; then
|
||||
dokku_log_info2_quiet "${APP} builder-lambda information"
|
||||
for flag in "${flag_map[@]}"; do
|
||||
key="$(echo "${flag#--}" | cut -f1 -d' ' | tr - ' ')"
|
||||
dokku_log_verbose "$(printf "%-30s %-25s" "${key^}" "${flag#*: }")"
|
||||
done
|
||||
else
|
||||
local match=false
|
||||
local value_exists=false
|
||||
for flag in "${flag_map[@]}"; do
|
||||
valid_flags="${valid_flags} $(echo "$flag" | cut -d':' -f1)"
|
||||
if [[ "$flag" == "${INFO_FLAG}:"* ]]; then
|
||||
value=${flag#*: }
|
||||
size="${#value}"
|
||||
if [[ "$size" -ne 0 ]]; then
|
||||
echo "$value" && match=true && value_exists=true
|
||||
else
|
||||
match=true
|
||||
fi
|
||||
fi
|
||||
done
|
||||
[[ "$match" == "true" ]] || dokku_log_fail "Invalid flag passed, valid flags:${valid_flags}"
|
||||
[[ "$value_exists" == "true" ]] || dokku_log_fail "not deployed"
|
||||
fi
|
||||
}
|
||||
|
||||
fn-builder-lambda-computed-lambdayml-path() {
|
||||
declare APP="$1"
|
||||
|
||||
file="$(fn-builder-lambda-lambdayml-path "$APP")"
|
||||
if [[ "$file" == "" ]]; then
|
||||
file="$(fn-builder-lambda-global-lambdayml-path "$APP")"
|
||||
fi
|
||||
|
||||
echo "$file"
|
||||
}
|
||||
|
||||
fn-builder-lambda-global-lambdayml-path() {
|
||||
declare APP="$1"
|
||||
|
||||
fn-plugin-property-get "builder-lambda" "--global" "lambdayml-path" "lambda.yml"
|
||||
}
|
||||
|
||||
fn-builder-lambda-lambdayml-path() {
|
||||
declare APP="$1"
|
||||
|
||||
fn-plugin-property-get "builder-lambda" "$APP" "lambdayml-path" ""
|
||||
}
|
||||
4
plugins/builder-lambda/plugin.toml
Normal file
@@ -0,0 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core builder-lambda plugin"
|
||||
version = "0.27.0"
|
||||
[plugin.config]
|
||||
14
plugins/builder-lambda/post-app-clone-setup
Executable file
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
source "$PLUGIN_CORE_AVAILABLE_PATH/common/property-functions"
|
||||
set -eo pipefail
|
||||
[[ $DOKKU_TRACE ]] && set -x
|
||||
|
||||
trigger-builder-lambda-post-app-clone-setup() {
|
||||
declare desc="sets up properties for new app"
|
||||
declare trigger="post-app-clone-setup"
|
||||
declare OLD_APP="$1" NEW_APP="$2"
|
||||
|
||||
fn-plugin-property-clone "builder-lambda" "$OLD_APP" "$NEW_APP"
|
||||
}
|
||||
|
||||
trigger-builder-lambda-post-app-clone-setup "$@"
|
||||
15
plugins/builder-lambda/post-app-rename-setup
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env bash
|
||||
source "$PLUGIN_CORE_AVAILABLE_PATH/common/property-functions"
|
||||
set -eo pipefail
|
||||
[[ $DOKKU_TRACE ]] && set -x
|
||||
|
||||
trigger-builder-lambda-post-app-rename-setup() {
|
||||
declare desc="updates settings for new app"
|
||||
declare trigger="post-app-rename-setup"
|
||||
declare OLD_APP="$1" NEW_APP="$2"
|
||||
|
||||
fn-plugin-property-clone "builder-lambda" "$OLD_APP" "$NEW_APP"
|
||||
fn-plugin-property-destroy "builder-lambda" "$OLD_APP"
|
||||
}
|
||||
|
||||
trigger-builder-lambda-post-app-rename-setup "$@"
|
||||
15
plugins/builder-lambda/post-delete
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env bash
|
||||
source "$PLUGIN_CORE_AVAILABLE_PATH/common/property-functions"
|
||||
set -eo pipefail
|
||||
[[ $DOKKU_TRACE ]] && set -x
|
||||
|
||||
trigger-builder-lambda-post-delete() {
|
||||
declare desc="destroys the builder-lambda properties for a given app"
|
||||
declare trigger="post-delete"
|
||||
declare APP="$1"
|
||||
|
||||
fn-plugin-property-destroy "builder-lambda" "$APP"
|
||||
rm -rf "${DOKKU_LIB_ROOT}/data/builder-lambda/$APP"
|
||||
}
|
||||
|
||||
trigger-builder-lambda-post-delete "$@"
|
||||
6
plugins/builder-lambda/report
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
source "$PLUGIN_AVAILABLE_PATH/builder-lambda/internal-functions"
|
||||
set -eo pipefail
|
||||
[[ $DOKKU_TRACE ]] && set -x
|
||||
|
||||
cmd-builder-lambda-report-single "$@"
|
||||
6
plugins/builder-lambda/subcommands/default
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
source "$PLUGIN_AVAILABLE_PATH/builder-lambda/help-functions"
|
||||
set -eo pipefail
|
||||
[[ $DOKKU_TRACE ]] && set -x
|
||||
|
||||
cmd-builder-lambda-help "builder-lambda:help"
|
||||
6
plugins/builder-lambda/subcommands/report
Executable file
@@ -0,0 +1,6 @@
|
||||
#!/usr/bin/env bash
|
||||
source "$PLUGIN_AVAILABLE_PATH/builder-lambda/internal-functions"
|
||||
set -eo pipefail
|
||||
[[ $DOKKU_TRACE ]] && set -x
|
||||
|
||||
cmd-builder-lambda-report "$@"
|
||||
30
plugins/builder-lambda/subcommands/set
Executable file
@@ -0,0 +1,30 @@
|
||||
#!/usr/bin/env bash
|
||||
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
|
||||
source "$PLUGIN_CORE_AVAILABLE_PATH/common/property-functions"
|
||||
set -eo pipefail
|
||||
[[ $DOKKU_TRACE ]] && set -x
|
||||
|
||||
cmd-builder-lambda-set() {
|
||||
declare desc="set or clear a builder-lambda property for an app"
|
||||
declare cmd="builder-lambda:set"
|
||||
[[ "$1" == "$cmd" ]] && shift 1
|
||||
declare APP="$1" KEY="$2" VALUE="$3"
|
||||
local VALID_KEYS=("lambdayml-path")
|
||||
[[ "$APP" == "--global" ]] || verify_app_name "$APP"
|
||||
|
||||
[[ -z "$KEY" ]] && dokku_log_fail "No key specified"
|
||||
|
||||
if ! fn-in-array "$KEY" "${VALID_KEYS[@]}"; then
|
||||
dokku_log_fail "Invalid key specified, valid keys include: lambdayml-path"
|
||||
fi
|
||||
|
||||
if [[ -n "$VALUE" ]]; then
|
||||
dokku_log_info2_quiet "Setting ${KEY} to ${VALUE}"
|
||||
fn-plugin-property-write "builder-lambda" "$APP" "$KEY" "$VALUE"
|
||||
else
|
||||
dokku_log_info2_quiet "Unsetting ${KEY}"
|
||||
fn-plugin-property-delete "builder-lambda" "$APP" "$KEY"
|
||||
fi
|
||||
}
|
||||
|
||||
cmd-builder-lambda-set "$@"
|
||||
13
plugins/builder-lambda/templates/samconfig.toml.sigil
Normal file
@@ -0,0 +1,13 @@
|
||||
version = 0.1
|
||||
|
||||
[default]
|
||||
[default.deploy]
|
||||
[default.deploy.parameters]
|
||||
stack_name = "{{ $.APP }}-lambda"
|
||||
s3_bucket = "{{ $.S3_BUCKET }}"
|
||||
s3_prefix = "{{ $.APP }}"
|
||||
region = "{{ $.AWS_REGION }}"
|
||||
confirm_changeset = true
|
||||
fail_on_empty_changeset = false
|
||||
capabilities = "CAPABILITY_IAM"
|
||||
image_repositories = []
|
||||
25
plugins/builder-lambda/templates/template.yaml.sigil
Normal file
@@ -0,0 +1,25 @@
|
||||
---
|
||||
AWSTemplateFormatVersion: "2010-09-09"
|
||||
Transform: AWS::Serverless-2016-10-31
|
||||
Description: >
|
||||
{{ $.APP }}
|
||||
|
||||
# todo: iterate over every process type and create a resource entry
|
||||
Resources:
|
||||
{{ $.APP}}{{ $.PROCESS_TYPE | capitalize}}:
|
||||
Type: AWS::Serverless::Function
|
||||
Properties:
|
||||
Architectures:
|
||||
- x86_64
|
||||
CodeUri: s3://{{ $.S3_BUCKET }}/{{ $.APP }}/{{ $.GIT_REV }}
|
||||
FunctionName: {{ $.APP | lower }}{{ $.PROCESS_TYPE | lower }}
|
||||
Handler: {{ $.HANDLER }}
|
||||
Runtime: {{ $.RUNTIME }}
|
||||
Role: {{ $.IAM_ROLE }}
|
||||
Timeout: 3
|
||||
Environment:
|
||||
Variables:
|
||||
{{ range $key, $value := . }}
|
||||
{{ $key }}: |
|
||||
{{ $value }}
|
||||
{{ end }}
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core builder-null plugin"
|
||||
version = "0.27.2"
|
||||
version = "0.28.0"
|
||||
[plugin.config]
|
||||
|
||||
@@ -33,7 +33,7 @@ trigger-builder-pack-builder-build() {
|
||||
|
||||
plugn trigger pre-build-pack "$APP" "$SOURCECODE_WORK_DIR"
|
||||
pack build "$IMAGE" --builder "$DOKKU_CNB_BUILDER" --path "$SOURCECODE_WORK_DIR" --default-process web "${ENV_ARGS[@]}"
|
||||
docker-image-labeler --label=com.dokku.image-stage=build --label=com.dokku.app-name=$APP --label=org.label-schema.schema-version=1.0 --label=org.label-schema.vendor=dokku --label=dokku "$IMAGE"
|
||||
docker-image-labeler --label=dokku --label=org.label-schema.schema-version=1.0 --label=org.label-schema.vendor=dokku --label=com.dokku.image-stage=build --label=com.dokku.builder-type=pack --label=com.dokku.app-name=$APP "$IMAGE"
|
||||
|
||||
plugn trigger post-build-pack "$APP" "$SOURCECODE_WORK_DIR"
|
||||
}
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core builder-pack plugin"
|
||||
version = "0.27.2"
|
||||
version = "0.28.0"
|
||||
[plugin.config]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core builder plugin"
|
||||
version = "0.27.2"
|
||||
version = "0.28.0"
|
||||
[plugin.config]
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
[plugin]
|
||||
description = "dokku core buildpacks plugin"
|
||||
version = "0.27.2"
|
||||
version = "0.28.0"
|
||||
[plugin.config]
|
||||
|
||||
140
plugins/caddy-vhosts/command-functions
Executable file
@@ -0,0 +1,140 @@
|
||||
#!/usr/bin/env bash
|
||||
source "$PLUGIN_CORE_AVAILABLE_PATH/common/functions"
|
||||
source "$PLUGIN_AVAILABLE_PATH/caddy-vhosts/internal-functions"
|
||||
set -eo pipefail
|
||||
[[ $DOKKU_TRACE ]] && set -x
|
||||
|
||||
cmd-caddy-report() {
|
||||
declare desc="displays a caddy report for one or more apps"
|
||||
declare cmd="caddy:report"
|
||||
[[ "$1" == "$cmd" ]] && shift 1
|
||||
declare APP="$1" INFO_FLAG="$2"
|
||||
|
||||
if [[ -n "$APP" ]] && [[ "$APP" == --* ]]; then
|
||||
INFO_FLAG="$APP"
|
||||
APP=""
|
||||
fi
|
||||
|
||||
if [[ -z "$APP" ]] && [[ -z "$INFO_FLAG" ]]; then
|
||||
INFO_FLAG="true"
|
||||
fi
|
||||
|
||||
if [[ -z "$APP" ]]; then
|
||||
for app in $(dokku_apps); do
|
||||
cmd-caddy-report-single "$app" "$INFO_FLAG" | tee || true
|
||||
done
|
||||
else
|
||||
cmd-caddy-report-single "$APP" "$INFO_FLAG"
|
||||
fi
|
||||
}
|
||||
|
||||
cmd-caddy-report-single() {
|
||||
declare APP="$1" INFO_FLAG="$2"
|
||||
if [[ "$INFO_FLAG" == "true" ]]; then
|
||||
INFO_FLAG=""
|
||||
fi
|
||||
verify_app_name "$APP"
|
||||
local flag_map=(
|
||||
"--caddy-image: $(fn-caddy-image)"
|
||||
"--caddy-letsencrypt-email: $(fn-caddy-letsencrypt-email)"
|
||||
"--caddy-letsencrypt-server: $(fn-caddy-letsencrypt-email)"
|
||||
"--caddy-log-level: $(fn-caddy-log-level)"
|
||||
"--caddy-polling-interval: $(fn-caddy-polling-interval)"
|
||||
"--caddy-tls-internal: $(fn-caddy-tls-internal "$APP")"
|
||||
)
|
||||
|
||||
if [[ -z "$INFO_FLAG" ]]; then
|
||||
dokku_log_info2_quiet "${APP} caddy information"
|
||||
for flag in "${flag_map[@]}"; do
|
||||
key="$(echo "${flag#--}" | cut -f1 -d' ' | tr - ' ')"
|
||||
dokku_log_verbose "$(printf "%-30s %-25s" "${key^}" "${flag#*: }")"
|
||||
done
|
||||
else
|
||||
local match=false
|
||||
local value_exists=false
|
||||
for flag in "${flag_map[@]}"; do
|
||||
valid_flags="${valid_flags} $(echo "$flag" | cut -d':' -f1)"
|
||||
if [[ "$flag" == "${INFO_FLAG}:"* ]]; then
|
||||
value=${flag#*: }
|
||||
size="${#value}"
|
||||
if [[ "$size" -ne 0 ]]; then
|
||||
echo "$value" && match=true && value_exists=true
|
||||
else
|
||||
match=true
|
||||
fi
|
||||
fi
|
||||
done
|
||||
[[ "$match" == "true" ]] || dokku_log_fail "Invalid flag passed, valid flags:${valid_flags}"
|
||||
fi
|
||||
}
|
||||
|
||||
cmd-caddy-logs() {
|
||||
declare desc="display caddy logs from command line"
|
||||
declare cmd="caddy:logs"
|
||||
[[ "$1" == "$cmd" ]] && shift 1
|
||||
local NUM="100" TAIL=false
|
||||
|
||||
local TEMP=$(getopt -o htn: --long help,tail,num: -n 'dokku caddy:logs' -- "$@")
|
||||
local EXIT_CODE="$?"
|
||||
if [[ "$EXIT_CODE" != 0 ]]; then
|
||||
fn-caddy-logs-usage >&2
|
||||
exit 1
|
||||
fi
|
||||
eval set -- "$TEMP"
|
||||
|
||||
while true; do
|
||||
case "$1" in
|
||||
-t | --tail)
|
||||
local TAIL=true
|
||||
shift
|
||||
;;
|
||||
-n | --num)
|
||||
local NUM="$2"
|
||||
shift 2
|
||||
;;
|
||||
--)
|
||||
shift
|
||||
break
|
||||
;;
|
||||
*) dokku_log_fail "Internal error" ;;
|
||||
esac
|
||||
done
|
||||
|
||||
fn-caddy-logs "$TAIL" "$NUM"
|
||||
}
|
||||
|
||||
cmd-caddy-show-config() {
|
||||
declare desc="display caddy config"
|
||||
declare cmd="caddy:show-config"
|
||||
[[ "$1" == "$cmd" ]] && shift 1
|
||||
|
||||
local TMP_COMPOSE_FILE=$(mktemp "/tmp/dokku-${DOKKU_PID}-${FUNCNAME[0]}.XXXXXX")
|
||||
trap "rm -rf '$TMP_COMPOSE_FILE' >/dev/null" RETURN INT TERM EXIT
|
||||
|
||||
fn-caddy-template-compose-file "$TMP_COMPOSE_FILE"
|
||||
cat "$TMP_COMPOSE_FILE"
|
||||
}
|
||||
|
||||
cmd-caddy-start() {
|
||||
declare desc="Starts the caddy server"
|
||||
declare cmd="caddy:start"
|
||||
[[ "$1" == "$cmd" ]] && shift 1
|
||||
|
||||
local TMP_COMPOSE_FILE=$(mktemp "/tmp/dokku-${DOKKU_PID}-${FUNCNAME[0]}.XXXXXX")
|
||||
trap "rm -rf '$TMP_COMPOSE_FILE' >/dev/null" RETURN INT TERM EXIT
|
||||
|
||||
fn-caddy-template-compose-file "$TMP_COMPOSE_FILE"
|
||||
"$DOCKER_BIN" compose -f "$TMP_COMPOSE_FILE" -p caddy up -d --quiet-pull
|
||||
}
|
||||
|
||||
cmd-caddy-stop() {
|
||||
declare desc="Starts the caddy server"
|
||||
declare cmd="caddy:start"
|
||||
[[ "$1" == "$cmd" ]] && shift 1
|
||||
|
||||
local TMP_COMPOSE_FILE=$(mktemp "/tmp/dokku-${DOKKU_PID}-${FUNCNAME[0]}.XXXXXX")
|
||||
trap "rm -rf '$TMP_COMPOSE_FILE' >/dev/null" RETURN INT TERM EXIT
|
||||
|
||||
fn-caddy-template-compose-file "$TMP_COMPOSE_FILE"
|
||||
"$DOCKER_BIN" compose -f "$TMP_COMPOSE_FILE" -p caddy down --remove-orphans
|
||||
}
|
||||
15
plugins/caddy-vhosts/commands
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env bash
|
||||
[[ " caddy:help help " == *" $1 "* ]] || exit "$DOKKU_NOT_IMPLEMENTED_EXIT"
|
||||
source "$PLUGIN_AVAILABLE_PATH/caddy-vhosts/help-functions"
|
||||
set -eo pipefail
|
||||
[[ $DOKKU_TRACE ]] && set -x
|
||||
|
||||
case "$1" in
|
||||
help | caddy:help)
|
||||
cmd-caddy-help "$@"
|
||||
;;
|
||||
|
||||
*)
|
||||
exit "$DOKKU_NOT_IMPLEMENTED_EXIT"
|
||||
;;
|
||||
esac
|
||||