Compare commits

...

3547 Commits

Author SHA1 Message Date
Jose Diaz-Gonzalez
767ba96186 Release 0.23.2
Some checks failed
bump-formula / bump-formula (push) Has been cancelled
# History

## 0.23.2

Install/update via the bootstrap script:

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

### Bug Fixes

- #4388: @josegonzalez Do not inject max-size option when not using local or json-file log-drivers
- #4386: @josegonzalez Update to docker-image-labeler that handles in-use images

### New Features

- #4387: @josegonzalez Only warn if the vector container is stopped when fetching logs
- #4372: @josegonzalez Add ability to clear an individual resource
- #4384: @josegonzalez Add support for injected cron entries from external plugins

### Refactors

- #4373: @josegonzalez Do not attempt to extract Procfile in ps:scale

### Documentation

- #4377: @josegonzalez Add note about the dokku user cron being overwritten by Dokku

### Other

- #3757: @pickettd Add provision line to Windows Vagrant box for dokku-installer
2021-02-07 22:33:31 -05:00
Jose Diaz-Gonzalez
55213e1045 Merge pull request #4388 from dokku/4376-handle-log-drivers
Do not inject max-size option when not using local or json-file log-drivers
2021-02-07 22:32:54 -05:00
Jose Diaz-Gonzalez
1843d42e0b Merge pull request #4387 from dokku/4385-warn-if-vector-stopped
Only warn if the vector container is stopped when fetching logs
2021-02-07 22:11:09 -05:00
Jose Diaz-Gonzalez
065f5e5922 fix: do not inject max-size option when not using local or json-file log drivers
Closes #4376
2021-02-07 22:10:06 -05:00
Jose Diaz-Gonzalez
f7beb3d95d Merge pull request #3757 from pickettd/fix-installer-windows-vagrant
Add provision line to Windows Vagrant box for dokku-installer
2021-02-07 21:04:25 -05:00
Jose Diaz-Gonzalez
c09dfb8ec8 feat: only warn if the vector container is stopped when fetching logs
Closes #4385
2021-02-07 21:03:21 -05:00
Jose Diaz-Gonzalez
87b90e96b6 Merge pull request #4372 from dokku/clear-individual-resource
Add ability to clear an individual resource
2021-02-07 20:57:33 -05:00
Jose Diaz-Gonzalez
e556be1a0d feat: add ability to clear an individual resource 2021-02-07 20:32:43 -05:00
Jose Diaz-Gonzalez
88fddf2a6d Merge pull request #4384 from dokku/cron-trigger
Add support for injected cron entries from external plugins
2021-02-07 19:28:16 -05:00
Jose Diaz-Gonzalez
97fe71a829 Merge pull request #4386 from dokku/4371-image-labeling
Update to docker-image-labeler that handles in-use images
2021-02-07 19:18:02 -05:00
Jose Diaz-Gonzalez
988cdbd6bb fix: update to docker-image-labeler that handles in-use images
Also ensure we keep track of previous docker image tags.

Refs #4371
2021-02-07 18:26:39 -05:00
Jose Diaz-Gonzalez
be84325de1 feat: add support for injected cron entries
This allows alternative plugins - such as dokku-letsencrypt - to inject scheduled cron tasks into the cron system used by Dokku. Cron systems can choose to include or not include a cron task based on the specified scheduler, and can also optionally use a third parameter to store arbitrary information.
2021-02-07 16:45:34 -05:00
Jose Diaz-Gonzalez
e7d9d6b19e Merge pull request #4373 from dokku/fast-scale
Do not attempt to extract Procfile in ps:scale
2021-02-03 14:50:04 -05:00
Jose Diaz-Gonzalez
bd378e8a44 Merge pull request #4377 from dokku/josegonzalez-patch-1
Add note about the dokku user cron being overwritten by Dokku
2021-02-03 14:49:38 -05:00
Jose Diaz-Gonzalez
82da43cfba docs: fix reference to dokku user crontab in cron docs
[ci skip]
2021-02-03 14:49:25 -05:00
Jose Diaz-Gonzalez
a96ad0c10c docs: add note about the dokku user cron being overwritten by Dokku
This is a BC-incompatible change introduced by 0.23.0.
2021-02-03 14:45:11 -05:00
Jose Diaz-Gonzalez
670e679a09 refactor: do not attempt to extract Procfile in ps:scale
The Procfile is now extracted in the pre-deploy step for every deploy and otherwise not removed. Thus, it should always exist when necessary - web will be scale to 1 automatically and it won't need to be present on future ps:scale calls since we'll have the scale file - and the command can execute faster.
2021-02-03 03:49:44 -05:00
Jose Diaz-Gonzalez
b03485a85b Release 0.23.1
Some checks failed
bump-formula / bump-formula (push) Has been cancelled
# History

## 0.23.1

Install/update via the bootstrap script:

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

### Bug Fixes

- #4368: @josegonzalez Always report resources

### New Features

- #4369: @josegonzalez Allow formatting :report command output as json

### Documentation

- #4367: @josegonzalez Update deeplink to digitalocean marketplace image on homepage
- #4366: @josegonzalez Update Digitalocean docs
- #4363: @josegonzalez Refer to the monitored slack and github discussions channels in the issue template
- #4359: @josegonzalez Fix command call for set-property
- #4358: @Cellane Update header on cron documentation
- #4357: @Cellane Fix spelling in nginx documentation

### Other

- #4365: @dependabot-preview[bot] chore(deps): bump jinja2 from 2.11.2 to 2.11.3 in /tests/apps/python-flask
2021-02-01 22:46:34 -05:00
Jose Diaz-Gonzalez
aac0408f76 Merge pull request #4369 from dokku/report-json-output
Allow formatting :report command output as json
2021-02-01 22:42:00 -05:00
Jose Diaz-Gonzalez
5b9ed4f373 Merge pull request #4368 from dokku/always-report-resources
Always report resources
2021-02-01 22:26:04 -05:00
Jose Diaz-Gonzalez
033b0952dd feat: allow formatting :report command output as json 2021-02-01 22:23:30 -05:00
Jose Diaz-Gonzalez
12e2686e3f fix: always report resource 2021-02-01 19:57:22 -05:00
Jose Diaz-Gonzalez
cc2f054e6a Merge pull request #4367 from dokku/josegonzalez-patch-1
Update deeplink to digitalocean marketplace image on homepage
2021-02-01 17:38:56 -05:00
Jose Diaz-Gonzalez
a799630fac docs: update deeplink to digitalocean marketplace image on homepage
The images have changed location. Also add a referral code to make it possible to run Dokku tests without breaking the bank.
2021-02-01 17:38:40 -05:00
Jose Diaz-Gonzalez
77f0f55ee7 Merge pull request #4366 from dokku/josegonzalez-patch-1
Update Digitalocean docs
2021-02-01 17:37:51 -05:00
Jose Diaz-Gonzalez
48428ed777 Update digitalocean docs
They were slightly out of date. Also include an updated referral link that deeplinks to the marketplace image.

[ci skip]
2021-02-01 17:37:32 -05:00
Jose Diaz-Gonzalez
0c7afb26b0 Merge pull request #4365 from dokku/dependabot/pip/tests/apps/python-flask/jinja2-2.11.3
chore(deps): bump jinja2 from 2.11.2 to 2.11.3 in /tests/apps/python-flask
2021-02-01 02:52:03 -05:00
dependabot-preview[bot]
4f2c968daa chore(deps): bump jinja2 in /tests/apps/python-flask
Bumps [jinja2](https://github.com/pallets/jinja) from 2.11.2 to 2.11.3.
- [Release notes](https://github.com/pallets/jinja/releases)
- [Changelog](https://github.com/pallets/jinja/blob/master/CHANGES.rst)
- [Commits](https://github.com/pallets/jinja/compare/2.11.2...2.11.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-02-01 06:02:56 +00:00
Jose Diaz-Gonzalez
411f0550e0 Merge pull request #4363 from dokku/josegonzalez-patch-1
Refer to the monitored slack and github discussions channels in the issue template
2021-01-27 16:51:31 -05:00
Jose Diaz-Gonzalez
f9fcad257e docs: refer to the monitored slack and github discussions channels in the issue template
[ci skip]
2021-01-27 16:51:08 -05:00
Jose Diaz-Gonzalez
b0d699f281 Merge pull request #4359 from dokku/josegonzalez-patch-1
Fix command call for set-property
2021-01-25 21:48:05 -05:00
Jose Diaz-Gonzalez
4e8242fe5e docs: fix command call for set-property
[ci skip]
2021-01-25 21:47:54 -05:00
Jose Diaz-Gonzalez
5ceccbdf68 docs: fix command call for set-property
[ci skip]
2021-01-25 21:47:01 -05:00
Jose Diaz-Gonzalez
324c08a8a2 Merge pull request #4358 from Cellane/patch-3
Update header on cron documentation
2021-01-24 20:22:14 -05:00
Milan Vit
103e47b6dd [ci skip] Fix spelling in Cron documentation 2021-01-25 10:09:00 +09:00
Jose Diaz-Gonzalez
09831c3b93 Merge pull request #4357 from Cellane/patch-2
Fix spelling in nginx documentation
2021-01-24 19:55:09 -05:00
Milan Vit
99336870b8 Fix spelling in Nginx documentation 2021-01-25 09:32:15 +09:00
Jose Diaz-Gonzalez
c81e980fcf Release 0.23.0
Some checks failed
bump-formula / bump-formula (push) Has been cancelled
# History

## 0.23.0

Install/update via the bootstrap script:

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

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

### Bug Fixes

- #4356: @josegonzalez Do not retag images unnecessarily
- #4355: @josegonzalez Allow underscores in vector schemes
- #4350: @josegonzalez Add missing trigger to events plugin
- #4348: @josegonzalez Correct app-specific shell handling
- #4333: @josegonzalez Drop tmpdir environment variables when not running as dokku user

### New Features

- #4336: @josegonzalez Add ability to manage stacks on an app or global level …
- #4354: @josegonzalez Log all triggers called by golang in trace output
- #4300: @AubreyHewes allow disabling hsts globally and explicitly enable per app
- #4337: @josegonzalez Add logrotation to container log files
- #4318: @josegonzalez Add ability to set client max body size via nginx:set
- #4343: @josegonzalez feat: add initial scheduled task implementation
- #4297: @josegonzalez Add support for cloning/syncing from a remote repository
- #4340: @bjornpost Allow configuring x-forwarded-* proxy headers via nginx:set

### Refactors

- #4349: @josegonzalez Remove need for internal dokku calls

### Documentation

- #4347: @fomojola Add post-deploy webhook to list of community plugins
- #4342: @AubreyHewes Point to current testing docs
- #4341: @josegonzalez Add testing link to contributing.md

### Tests

- #4352: @josegonzalez Add a test for application renames
- #4351: @josegonzalez Set hostname for CI runs
- #4322: @josegonzalez Switch to Github Actions for CI

### Other

- #4353: @josegonzalez Drop unused flag introduced by logs max-size feature
2021-01-24 02:42:08 -05:00
Jose Diaz-Gonzalez
dbdf2ad55d Merge pull request #4356 from dokku/3931-better-labeling
Do not retag images unnecessarily
2021-01-24 02:36:20 -05:00
Jose Diaz-Gonzalez
9306011f70 fix: do not retag images unnecessarily
This change minimizes the work needed to be done when tagging images. It edits the image manifest directly only when necessary, allowing restarts of an app to avoid having an extra layer.

This also additionally allows to deploy images with ONBUILD directives without running the ONBUILD directives.

Lastly, users building docker images that run Dokku will need to use a new sudoer wrapper for the `docker-image-labeler` binary to work correctly. A reference version has been placed in the `docker` skeleton directory.

Closes #3931
Refs #4226
2021-01-24 02:09:53 -05:00
Jose Diaz-Gonzalez
162abcee4f Merge pull request #4352 from dokku/test-app-renames
Add a test for application renames
2021-01-23 20:58:42 -05:00
Jose Diaz-Gonzalez
c1ff3d4652 tests: add a test for application renames
Also ensure the plugin:trigger calls are issued under the dokku user
2021-01-23 20:10:16 -05:00
Jose Diaz-Gonzalez
f9693e78c8 Merge pull request #4355 from dokku/4346-underscore-in-scheme
Allow underscores in vector schemes
2021-01-23 19:43:30 -05:00
Jose Diaz-Gonzalez
fe549f2fb5 Merge pull request #4336 from dokku/4306-stacks-set
Add ability to manage stacks on an app or global level …
2021-01-23 19:04:15 -05:00
Jose Diaz-Gonzalez
d9300ad210 Merge pull request #4354 from dokku/plugn-debug-triggers
Log all triggers called by golang in trace output
2021-01-23 19:04:03 -05:00
Jose Diaz-Gonzalez
8ddf4888db Merge pull request #4353 from dokku/logs-drop-unused-flag
Drop unused flag introduced by logs max-size feature
2021-01-23 19:03:53 -05:00
Jose Diaz-Gonzalez
bf5fbf4412 fix: add logs-get-property to gitignore 2021-01-23 19:00:46 -05:00
Jose Diaz-Gonzalez
dfc98ecc0f fix: allow underscores in vector schemes
Also unify tests for global and non-global logs:set calls
2021-01-23 19:00:33 -05:00
Jose Diaz-Gonzalez
86e53f96a9 feat: log all triggers called by golang in trace output
Trace mode is useful for shell code, but less so for golang. Adding debug logging in golang for trigger calls makes it a little easier to see what is happening.
2021-01-23 18:30:33 -05:00
Jose Diaz-Gonzalez
3d4205b206 fix: drop unused flag introduced by logs max-size feature 2021-01-23 18:29:11 -05:00
Jose Diaz-Gonzalez
f81c802ecc refactor: rename command to :set-property
This will allow us to set other property values for the buildpacks plugin.
2021-01-23 18:17:40 -05:00
Jose Diaz-Gonzalez
5d9157bc40 feat: add support for specifying stack builders for builder-cnb 2021-01-23 18:06:57 -05:00
Jose Diaz-Gonzalez
6a85d6a58b fix: gitignore buildpack-stack-name trigger 2021-01-23 17:41:06 -05:00
Jose Diaz-Gonzalez
8ddb214b0e feat: clear repo cache on stack change 2021-01-23 17:40:53 -05:00
Jose Diaz-Gonzalez
308927adce refactor: log what stack is being used if it is modified 2021-01-23 17:40:53 -05:00
Jose Diaz-Gonzalez
7caa95b3f3 feat: conditionally execute the post-stack-set call
If the value does not change, then we should not trigger the command
2021-01-23 17:40:53 -05:00
Jose Diaz-Gonzalez
b5c85ad5be chore: rename stacks-set to stack-set
You can only set one stack...
2021-01-23 17:40:50 -05:00
Jose Diaz-Gonzalez
bad90b2b1d feat: add ability to manage stacks on an app or global level
The previous lever for manipulating this was the DOKKU_IMAGE environment variable. While this is all well and good, it only works for CNB and is yet another `DOKKU_*` environment variable that need not exist.

While this does not add support for manipulating the CNB stack just yet, the groundwork is set for the future.

Closes #4306
2021-01-23 16:19:12 -05:00
Jose Diaz-Gonzalez
4c74e0dfba fix: correct docblock 2021-01-23 16:19:12 -05:00
Jose Diaz-Gonzalez
46933051b9 refactor: always return an error from the buildpacks triggers 2021-01-23 16:19:12 -05:00
Jose Diaz-Gonzalez
aeb9241d3b Merge pull request #4300 from AubreyHewes/pr/disable_applying_hsts_global_conf
allow disabling hsts globally and explicitly enable per app
2021-01-23 16:18:28 -05:00
Jose Diaz-Gonzalez
0d9b6b9852 Merge pull request #4350 from dokku/add-missing-trigger-event
Add missing trigger event
2021-01-23 15:50:47 -05:00
Jose Diaz-Gonzalez
5cac43fe55 refactor: fix computation test and remove the app-specific hsts value
The default for an app is empty, meaning it will fallback to the global value (which defaults to true). This will allow users to properly override the global value, regardless of what it is.
2021-01-23 15:49:40 -05:00
Aubrey Hewes
8cc92680c5 feat(nginx-proxy): allow disabling hsts globally and explicitly enabling it per app
https://github.com/dokku/dokku/pull/3843
2021-01-23 15:09:51 -05:00
Jose Diaz-Gonzalez
b583f80221 fix: add missing trigger event 2021-01-23 15:09:26 -05:00
Jose Diaz-Gonzalez
6ab9f28d77 Merge pull request #4349 from dokku/remove-internal-dokku-calls
Remove need for internal dokku calls
2021-01-23 15:03:00 -05:00
Jose Diaz-Gonzalez
67c8af3869 Merge pull request #4351 from dokku/set-ci-hostname
Set hostname for CI runs
2021-01-23 15:02:46 -05:00
Jose Diaz-Gonzalez
12a9bdbf6e feat: set hostname 2021-01-23 14:40:40 -05:00
Jose Diaz-Gonzalez
8c3fd77cfd fix: do not exit if the phase file does not exist 2021-01-23 14:27:16 -05:00
Jose Diaz-Gonzalez
9137be814c refactor: remove need for internal dokku calls
Avoid internal dokku calls will avoid potentially expensive subprocesses - in particular, user-auth will be re-invoked, which can be expensive.
2021-01-23 14:27:16 -05:00
Jose Diaz-Gonzalez
aad7f67f7c Merge pull request #4337 from dokku/4023-logrotate-container-files
Add logrotation to container log files
2021-01-23 14:12:38 -05:00
Jose Diaz-Gonzalez
815b839eeb feat: add trigger for fetching logs properties 2021-01-23 13:39:29 -05:00
Jose Diaz-Gonzalez
608f9d0333 Merge pull request #4348 from dokku/fix-app-specific-shell-specification
Correct app-specific shell handling
2021-01-23 13:32:26 -05:00
Jose Diaz-Gonzalez
ccbe2c719a fix: correct test check 2021-01-23 13:02:37 -05:00
Jose Diaz-Gonzalez
76b36aa3f6 docs: document log retention 2021-01-23 12:45:05 -05:00
Jose Diaz-Gonzalez
8c81d520f6 fix: correct stickler 2021-01-23 12:45:05 -05:00
Jose Diaz-Gonzalez
afe1e8b33c refactor: use log:set for logs and add global support 2021-01-23 12:45:05 -05:00
Jose Diaz-Gonzalez
6eb0bd8c87 chore: sort set properties 2021-01-23 12:45:05 -05:00
Jose Diaz-Gonzalez
f3d53fbba4 feat: add logrotation to container log files
Closes #4023
2021-01-23 12:45:05 -05:00
Jose Diaz-Gonzalez
b7ff627368 fix: correct app-specific shell handling 2021-01-23 12:44:07 -05:00
Jose Diaz-Gonzalez
9ffddf3561 Merge pull request #4347 from fomojola/patch-3
Update plugins.md
2021-01-23 11:44:38 -05:00
fomojola
56ff76584d Update plugins.md
Added a simple deploy-webhook plugin that is configured purely through a config:set
2021-01-23 02:57:50 -05:00
Jose Diaz-Gonzalez
324d98d231 Merge pull request #4318 from dokku/customize-max-body-size
Add ability to set client max body size via nginx:set
2021-01-22 01:18:34 -05:00
Jose Diaz-Gonzalez
277e9691e1 feat: add ability to set client max body size via nginx:set
This simplifies increasing upload size by making it a property, and is backwards compatible with installations that have set that in a custom file.
2021-01-21 01:41:34 -05:00
Jose Diaz-Gonzalez
bce0671057 docs: drop extra text
[ci skip]
2021-01-21 01:34:35 -05:00
Jose Diaz-Gonzalez
ff10ef2c26 fix: drop trailing slash
[ci skip]
2021-01-21 01:32:55 -05:00
Jose Diaz-Gonzalez
1d8a98e5ce Merge pull request #4343 from dokku/4199-scheduled-tasks
feat: add initial scheduled task implementation
2021-01-21 01:31:06 -05:00
Jose Diaz-Gonzalez
cb43d0cc64 chore: update help output for cron:list 2021-01-21 01:30:47 -05:00
Jose Diaz-Gonzalez
065bba5851 docs: refactor process docs
- split out run and enter docs into two different sections
- gather all process related docs into one new section
- add scheduled cron task docs
2021-01-21 01:30:28 -05:00
Jose Diaz-Gonzalez
8efac2923b tests: split tests up 2021-01-21 00:22:49 -05:00
Jose Diaz-Gonzalez
fc8c58a1e6 refactor: ensure crontab files are properly deleted 2021-01-21 00:17:32 -05:00
Jose Diaz-Gonzalez
20b2773ea2 fix: correct help output 2021-01-20 23:21:06 -05:00
Jose Diaz-Gonzalez
0bd7613da4 tests: add test for creation of crontab file 2021-01-20 15:45:48 -05:00
Jose Diaz-Gonzalez
f7ef14d737 feat: add initial scheduled task implementation
This functionality enables users to manage a global crontab for the Dokku user that contains all scheduled tasks across all apps. Alternative schedulers can implement cron tasks as desired.
2021-01-20 14:49:48 -05:00
Jose Diaz-Gonzalez
e00e498e50 chore: remove whitespace 2021-01-20 14:49:48 -05:00
Jose Diaz-Gonzalez
17fb2ace91 chore: fix docblock 2021-01-20 14:49:48 -05:00
Jose Diaz-Gonzalez
2deb575961 Merge pull request #4322 from dokku/github-actions
Switch to Github Actions for CI
2021-01-20 14:26:18 -05:00
Jose Diaz-Gonzalez
a7465f9d81 tests: use github actions instead of circleci for test running 2021-01-20 14:00:07 -05:00
Jose Diaz-Gonzalez
9d55e37687 Merge pull request #4297 from dokku/git-sync
Add support for cloning/syncing from a remote repository
2021-01-20 13:36:15 -05:00
Jose Diaz-Gonzalez
3c5a3fdd7c Merge pull request #4333 from dokku/3149-respect-tmpdir
Drop tmpdir environment variables when not running as dokku user
2021-01-20 13:20:05 -05:00
Jose Diaz-Gonzalez
4477c92df9 Merge pull request #4340 from bjornpost/feature/4339-respect-fwded-for-header
Allow configuring x-forwarded-* proxy headers via nginx:set
2021-01-20 13:19:46 -05:00
Bjorn Post
a6062d4ab4 feat: make feature more generic, also add support for setting -port and -proto values via nginx:set, refs #4339 2021-01-19 21:40:47 +01:00
Jose Diaz-Gonzalez
41f24a58b1 docs: fix link
[ci skip]
2021-01-18 17:28:48 -05:00
Jose Diaz-Gonzalez
352900fcff Merge pull request #4342 from AubreyHewes/pr/contrib-testing-docs
point to current testing docs
2021-01-18 17:24:29 -05:00
Jose Diaz-Gonzalez
62424633fc docs: clarify test running doc a bit more
We should always point at the site, not the internal docs.

[ci skip]
2021-01-18 17:24:13 -05:00
Aubrey Hewes
e2184a6f12 docs(testing): point to current testing docs 2021-01-18 23:22:09 +01:00
Jose Diaz-Gonzalez
755cd909ed Merge pull request #4341 from dokku/josegonzalez-patch-1
Add testing link to contributing.md
2021-01-18 17:18:54 -05:00
Jose Diaz-Gonzalez
6338b368d4 docs: add testing link to contributing.md
[ci skip]
2021-01-18 17:18:34 -05:00
Bjorn Post
ca56fa1b8b fix: revert doc deletion, revert test_helper change, refs #4339 2021-01-18 22:00:13 +01:00
Bjorn Post
7c818eda47 test: add tests for trust-x-forwarded-for, refs #4339 2021-01-18 21:59:36 +01:00
Bjorn Post
bdb160bec1 feat: add trust-x-forwarded-for status in report, refs #4339 2021-01-18 21:58:45 +01:00
Jose Diaz-Gonzalez
25b90d62d2 Release 0.22.9
Some checks failed
bump-formula / bump-formula (push) Has been cancelled
# History

## 0.22.9

Install/update via the bootstrap script:

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

### Bug Fixes

- #4334: @josegonzalez allow git pushes to apps that already exist but have old names
- #4335: @josegonzalez Add error checking to plugin:install and plugin:update
- #4338: @josegonzalez Strip trailing slashes in hostname from web installer
- #4332: @josegonzalez Correct aws release check in release-plugin script
- #4311: @nisseknudsen Allow named volume mounts in regex
- #4320: @josegonzalez Hardcode cnb workdir to /workspace

### New Features

- #4321: @josegonzalez Add git version to output

### Refactors

- #4329: @josegonzalez Standardize apt-get usage

### Documentation

- #4323: @stianlik Fix typo in nginx documentation

### Tests

- #4331: @josegonzalez Switch to upstream bats-core
- #4330: @josegonzalez Switch to using uuidgen for unique app names

### Other

- #4325: @WaviestBalloon Updated bootstrap.sh to not show when $DOKKU_TAG equals nothing
- #4324: @dependabot-preview[bot] chore(deps): bump socket.io from 3.0.5 to 3.1.0 in /tests/apps/.websocket.disabled
- #4319: @josegonzalez Update ruby dependencies in test app
- #4312: @dependabot-preview[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 187 to 188 in /tests/apps/php
2021-01-18 15:46:27 -05:00
Bjorn Post
7cd6f7666c feat: configure trust x-forwarded-for headers via nginx:set iso trust by default, refs #4339 2021-01-18 21:09:00 +01:00
Bjorn Post
2cdfa1cae1 feat: trust proxy_add_x_forwarded_for iso resetting to remote_addr, refs #4339 2021-01-18 20:07:55 +01:00
Jose Diaz-Gonzalez
17d2866153 Merge pull request #4334 from dokku/4308-allow-push-to-invalid-names
allow git pushes to apps that already exist but have old names
2021-01-18 12:38:26 -05:00
Jose Diaz-Gonzalez
d459b4171d Merge pull request #4335 from dokku/4313-plugin-update
Add error checking to plugin:install and plugin:update
2021-01-18 12:38:14 -05:00
Jose Diaz-Gonzalez
e4ec973a6e Merge pull request #4329 from dokku/apt-no-install-recommends
Standardize apt-get usage
2021-01-18 12:12:11 -05:00
Jose Diaz-Gonzalez
3df9a5629f Merge pull request #4331 from dokku/use-upstream-bats-core
Switch to upstream bats-core
2021-01-18 12:11:58 -05:00
Jose Diaz-Gonzalez
02b98e4736 Merge pull request #4338 from dokku/4106-strip-slashes
Strip trailing slashes in hostname from web installer
2021-01-18 12:11:44 -05:00
Jose Diaz-Gonzalez
f45b5bfd5e fix: strip trailing slashes in hostname from web installer
The web installer needs work to add proper validation of input, but for now, this change will ensure folks don't accidentally add an extra slash to the global domain.

Closes #4106

[ci skip]
2021-01-18 00:49:52 -05:00
Jose Diaz-Gonzalez
e39a5663bf fix: add error message for invalid flags
Closes #4193
2021-01-18 00:29:25 -05:00
Jose Diaz-Gonzalez
89cc896c27 fix: add error checking to plugin:update
Closes #4313
2021-01-17 22:23:04 -05:00
Jose Diaz-Gonzalez
be95a619bc fix: allow git pushes to apps that already exist but have old names
Users should still renamed their applications as this workaround will be removed at some point.

Closes #4308
2021-01-17 22:06:30 -05:00
Jose Diaz-Gonzalez
cafbf44e2f fix: drop tmpdir environment variables when not running as dokku user
This ensures that tmpdir (and related calls) respect the system defaults for temporary directory access. Critically, changing user via 'sudo' will leave the root temp directory in place, which causes dokku to have undefined behavior when writing to temporary files under libpam-tmpdir.

This may break cases where users have redefined tmpdir or related variables, but those cases can be remedied by specifying a value for TMPDIR (and related variables) in /etc/default/dokku.

Closes #3149
2021-01-17 21:53:28 -05:00
Jose Diaz-Gonzalez
e64b69248a Merge pull request #4332 from dokku/plugin-release-fix
Correct aws release check in release-plugin script
2021-01-17 21:23:39 -05:00
Jose Diaz-Gonzalez
441ac29c7c fix: correct aws release check in release-plugin script
[ci skip]
2021-01-17 21:21:33 -05:00
Jose Diaz-Gonzalez
ed84f21c08 refactor: standardize apt-get usage
- Always put flags in same location
- Always use apt-get
- Add --no-install-recommends where possible
2021-01-17 20:19:56 -05:00
Jose Diaz-Gonzalez
5884576fc2 Merge pull request #4330 from dokku/uuidgen
Switch to using uuidgen for unique app names
2021-01-17 19:44:32 -05:00
Jose Diaz-Gonzalez
922b6e3722 chore: update plugn
This is necessary as bats-core exports functions and exported functions are not handled properly until plugn 0.6.1.
2021-01-17 19:43:24 -05:00
Jose Diaz-Gonzalez
cca507da6a refactor: avoid pushd/popd to enable commands to pass from root-enabled directories 2021-01-17 19:40:33 -05:00
Jose Diaz-Gonzalez
d58fe853d6 fix: allow updating head 2021-01-17 19:34:07 -05:00
Jose Diaz-Gonzalez
03dc90b4fd chore: re-add output redirection 2021-01-17 19:33:36 -05:00
Jose Diaz-Gonzalez
2a4918c7ce fix: run check-ref-format in the correct directory 2021-01-17 19:23:40 -05:00
Jose Diaz-Gonzalez
7bb130edb7 refactor: use flag instead of environment variable 2021-01-17 19:13:30 -05:00
Jose Diaz-Gonzalez
3af1342a9b fix: expand git-ref to the full commit sha
If using a branch, git commands that interact with worktrees may fail for newer versions of git.
2021-01-17 17:29:21 -05:00
Jose Diaz-Gonzalez
d16ff7fa12 fix: properly report last-updated 2021-01-17 17:19:14 -05:00
Jose Diaz-Gonzalez
d5dbd456ea chore: quiet down git init
The command is louder when running on newer versions of git, and the output isn't useful to end users.
2021-01-17 17:07:10 -05:00
Jose Diaz-Gonzalez
3f25514e1a refactor: combine both clone and sync commands
Using a single command will allow users to not have to worry about the workflow they use to setup or update a given app.
2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
e3d0f693a7 tests: add tests for fetch 2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
97b33a9138 feat: fix: use correct branch for ref updating 2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
f73c927512 fix: do not allow fetch on fresh apps 2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
97750f8b28 chore: minor updates to tests 2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
827dbbc740 fix: delete the deploy branch if its a ref and not tag 2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
89e92749a6 tests: handle non-existent app 2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
e877a996be tests: split out tests and use a slimer smoke-test-app to speed up builds 2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
6bfbe0bb66 fix: create app for build test 2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
d728237697 chore: split tests 2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
279a706f78 feat: add tests for git:clone 2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
dbd48356f5 refactor: properly handle commits and branches
- if it is a commit, we must clone and checkout. `clone --branch` only works for tags and branches
- set the branch as the deploy-branch if detected
2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
6dc55624bd chore: change message 2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
5e645e1489 fix: use correct method to detect if a repo is empty 2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
87a786fec5 fix: get arguments correctly 2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
c9fc203596 fix: properly parse arguments 2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
f87525d8cf refactor: move temp directory to git data directory 2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
df4dbe5d88 chore: reorder properties 2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
31332a5061 fix: move fn-git-create-hook to internal-functions
Its unused elsewhere.
2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
1a66102e30 feat: add tests for allow-host and public-key commands 2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
8c0380beec tests: add missing run statement 2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
a7ef06028e docs: add cavet to git:allow-host command 2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
c80fcf7b8e feat: add support for cloning/syncing from a remote repository
This makes it a bit easier for external projects to implement deploy webhooks by exposing the ability to sync from a git repository/sha.
2021-01-17 17:00:33 -05:00
Jose Diaz-Gonzalez
db5630eb32 Merge pull request #4325 from WaviestBalloon/master
Updated bootstrap.sh to not show when $DOKKU_TAG equals nothing
2021-01-17 16:50:22 -05:00
Jose Diaz-Gonzalez
1dc63eecbd tests: switch to upstream bats-core
Bats core now has junit report formatting, so there is no need to continue using a fork.
2021-01-17 16:18:24 -05:00
Jose Diaz-Gonzalez
530066875d tests: switch to using uuidgen for unique app names
/dev/urandom doesn't work on Github Actions. Prior to moving to github actions, lets ensure tests work on CircleCI as well.
2021-01-17 15:58:59 -05:00
Jose Diaz-Gonzalez
59aef9a408 chore: use -z for checking for empty value 2021-01-17 14:41:49 -05:00
Jose Diaz-Gonzalez
7b51bcd4ac Merge pull request #4324 from dokku/dependabot/npm_and_yarn/tests/apps/dot-websocket.disabled/socket.io-3.1.0
chore(deps): bump socket.io from 3.0.5 to 3.1.0 in /tests/apps/.websocket.disabled
2021-01-17 14:40:57 -05:00
Waviest
80b782e6ed Update bootstrap.sh 2021-01-16 23:56:36 +00:00
Jose Diaz-Gonzalez
c179958afc Merge pull request #4311 from nisseknudsen/pr/allow_named_volume_mounts_in_regex
Allow named volume mounts in regex
2021-01-15 17:53:59 -05:00
nisseknudsen
a3ab4d1b68 Mounting new named volume after unmounting host directory 2021-01-15 22:40:52 +01:00
dependabot-preview[bot]
575ae84e68 chore(deps): bump socket.io in /tests/apps/.websocket.disabled
Bumps [socket.io](https://github.com/socketio/socket.io) from 3.0.5 to 3.1.0.
- [Release notes](https://github.com/socketio/socket.io/releases)
- [Changelog](https://github.com/socketio/socket.io/blob/master/CHANGELOG.md)
- [Commits](https://github.com/socketio/socket.io/compare/3.0.5...3.1.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-01-15 06:56:31 +00:00
Jose Diaz-Gonzalez
102c3b3007 Merge pull request #4323 from stianlik/patch-1
Fix typo in nginx.md
2021-01-14 15:20:30 -05:00
Stian Liknes
18f3b940c3 Fix typo in nginx.md 2021-01-14 20:15:54 +01:00
Jose Diaz-Gonzalez
baa15d7437 Merge pull request #4321 from dokku/report-git-version
Add git version to output
2021-01-14 12:28:20 -05:00
Jose Diaz-Gonzalez
9804d42e67 Merge pull request #4320 from dokku/4317-fix-cnb-workdir
Hardcode cnb workdir to /workspace
2021-01-14 09:57:18 -05:00
Jose Diaz-Gonzalez
0c182415a7 feat: add git version to output 2021-01-14 09:47:06 -05:00
Jose Diaz-Gonzalez
1599120c3e fix: hardcode cnb workdir to /workspace
Closes #4317
2021-01-14 08:33:26 -05:00
Jose Diaz-Gonzalez
a53b5953ea Merge pull request #4319 from dokku/update-dependencies
Update ruby dependencies in test app
2021-01-13 13:49:43 -05:00
Jose Diaz-Gonzalez
0d7c4cd036 feat: update ruby dependencies in test app
These were not auto-upgraded by dependabot because of a hardcoded sinatra version.
2021-01-13 11:45:43 -05:00
Jose Diaz-Gonzalez
e42e26e16b Merge pull request #4312 from dokku/dependabot/composer/tests/apps/php/heroku/heroku-buildpack-php-188
chore(deps-dev): bump heroku/heroku-buildpack-php from 187 to 188 in /tests/apps/php
2021-01-11 07:36:06 -05:00
dependabot-preview[bot]
b35a89c5a9 chore(deps-dev): bump heroku/heroku-buildpack-php in /tests/apps/php
Bumps [heroku/heroku-buildpack-php](https://github.com/heroku/heroku-buildpack-php) from 187 to 188.
- [Release notes](https://github.com/heroku/heroku-buildpack-php/releases)
- [Changelog](https://github.com/heroku/heroku-buildpack-php/blob/main/CHANGELOG.md)
- [Commits](https://github.com/heroku/heroku-buildpack-php/compare/v187...v188)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-01-11 06:54:23 +00:00
nisseknudsen
a1f4a9a386 Checks if passed path starts with / and shoudl be an absolute mount 2021-01-10 19:32:05 +01:00
nisseknudsen
12531dfb3e Regex handles absolute mount path _and_ named volumes 2021-01-10 19:26:16 +01:00
Jose Diaz-Gonzalez
652b90a074 Release 0.22.8
Some checks failed
bump-formula / bump-formula (push) Has been cancelled
# History

## 0.22.8

Install/update via the bootstrap script:

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

### Bug Fixes

- #4309: @josegonzalez Correct issue where verifying an app name would bail early

### Documentation

- #4307: @josegonzalez Specify that the dokku logo is for non-commercial use
2021-01-09 16:33:55 -05:00
Jose Diaz-Gonzalez
bdd7c58a62 Merge pull request #4309 from dokku/4308-app-name-validation
Correct issue where verifying an app name would bail early
2021-01-09 14:28:40 -05:00
Jose Diaz-Gonzalez
3419f18c9f fix: correct issue where verifying an app name would bail early
Refs #4308
2021-01-09 07:40:45 -05:00
Jose Diaz-Gonzalez
87ce52ded1 Merge pull request #4307 from dokku/josegonzalez-patch-1
Specify that the dokku logo is for non-commercial use
2021-01-08 02:47:01 -05:00
Jose Diaz-Gonzalez
1db1411331 docs: specify that the dokku logo is for non-commercial use
There is still no explicit license on the logo, but its certainly not for external commercial use. Please respect that decision.

[ci skip]
2021-01-08 02:14:25 -05:00
Jose Diaz-Gonzalez
e435d01258 Release 0.22.7
Some checks failed
bump-formula / bump-formula (push) Has been cancelled
# History

## 0.22.7

Install/update via the bootstrap script:

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

### Bug Fixes

- #4301: @josegonzalez Ensure vector container starts correctly
2021-01-07 03:07:57 -05:00
Jose Diaz-Gonzalez
793e9d377e Merge pull request #4301 from dokku/4299-vector-fixes
Ensure vector container starts correctly
2021-01-07 03:07:40 -05:00
Jose Diaz-Gonzalez
a57680fbbf feat: test vector commands 2021-01-07 01:54:04 -05:00
Jose Diaz-Gonzalez
eda71e3ffe feat: mirror log tailing support for logs:vector-logs command 2021-01-07 01:43:55 -05:00
Jose Diaz-Gonzalez
b186d9d66c docs: fix help output 2021-01-07 01:42:51 -05:00
Jose Diaz-Gonzalez
f16a211b48 feat: add more tests for the logs plugin 2021-01-07 01:34:19 -05:00
Jose Diaz-Gonzalez
d70a9be97e fix: correct issue where all flags were not shown if an invalid flag was specified 2021-01-07 01:34:05 -05:00
Jose Diaz-Gonzalez
666bb9dfee fix: unscope err for report subcommands 2021-01-07 01:12:50 -05:00
Jose Diaz-Gonzalez
081a44755e docs: fix examples to use correct property key 2021-01-07 01:07:20 -05:00
Jose Diaz-Gonzalez
2eae6c25af tests: add test for logs:help 2021-01-07 00:14:43 -05:00
Jose Diaz-Gonzalez
4bbee232d8 fix: handle error cases in starting a new vector container 2021-01-07 00:12:44 -05:00
Jose Diaz-Gonzalez
441f7ab22a fix: pass 1 to --watch-config flag
Apparently this needs a value...
2021-01-07 00:12:23 -05:00
Jose Diaz-Gonzalez
714b27f8a4 chore: quiet output of starting container
We check if the container is running later, so there isn't a need for us to see the containerID here
2021-01-07 00:08:05 -05:00
Jose Diaz-Gonzalez
2d841f47eb fix: handle case where there are no apps 2021-01-06 22:45:47 -05:00
Jose Diaz-Gonzalez
4c98cd922f Release 0.22.6
Some checks failed
bump-formula / bump-formula (push) Has been cancelled
# History

## 0.22.6

Install/update via the bootstrap script:

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

### Bug Fixes

- #4295: @josegonzalez Update ps subcommands and triggers

### New Features

- #4286: @josegonzalez Add support for templated CHECKS files
- #4294: @josegonzalez Enhance ssh client logging output
- #4291: @josegonzalez Add log aggregation support via Vector
- #4288: @josegonzalez Add the pid of the dokku process to event logs
- #4289: @josegonzalez Clean precheck tmp file on exit

### Refactors

- #4287: @josegonzalez Refactor parallelized goroutines to use error groups

### Documentation

- #4292: @thomasfedb Update docs to note support for Ubuntu 20.04
- #4293: @ltalirz Fix path in persistent storage docs

### Other

- #4290: @josegonzalez Add support for debug logging plugin trigger stderr and stdout
2021-01-05 09:50:19 -05:00
Jose Diaz-Gonzalez
1c3c712629 Merge pull request #4295 from dokku/fix-triggers
Update ps subcommands and triggers
2021-01-05 09:45:59 -05:00
Jose Diaz-Gonzalez
84ec74e97f fix: update ps subcommands and triggers
- There were missing trigger symlinks due to the the rewrite omitting them
- There was an extra symlink for a subcommand that was removed
2021-01-05 03:50:52 -05:00
Jose Diaz-Gonzalez
57cc1c7f8e Merge pull request #4286 from dokku/3974-templated-checks
Add support for templated CHECKS files
2021-01-05 03:15:36 -05:00
Jose Diaz-Gonzalez
0e67ffc41e Merge pull request #4294 from dokku/4278-better-client-logging
Enhance ssh client logging output
2021-01-05 02:21:34 -05:00
Jose Diaz-Gonzalez
f4e0d19d43 fix: correct path for templated checks file 2021-01-05 01:02:39 -05:00
Jose Diaz-Gonzalez
07e7988cdf feat: add sigil templating to CHECKS files
This enables general templating capabilities, in addition to environment variable access.

Closes #3974.
2021-01-05 00:16:55 -05:00
Jose Diaz-Gonzalez
d21aca2c59 chore: remove unnecessary extra logic
This is now performed in copy_from_image for all files.
2021-01-05 00:16:55 -05:00
Jose Diaz-Gonzalez
540e066acf fix: return the failed exit code 2021-01-05 00:10:54 -05:00
Jose Diaz-Gonzalez
a49de4e473 docs: make the header more clear
[ci skip]
2021-01-04 23:00:58 -05:00
Jose Diaz-Gonzalez
4c28ae2630 Merge pull request #4291 from dokku/2268-vector-logging
Add log aggregation support via Vector
2021-01-04 22:56:25 -05:00
Jose Diaz-Gonzalez
2d07d89d60 docs: add new as of banner
[ci skip]
2021-01-04 22:56:03 -05:00
Jose Diaz-Gonzalez
83d8c8448b feat: remind users to check their ssh config in cases of ssh error
Closes #4278
2021-01-04 22:41:04 -05:00
Jose Diaz-Gonzalez
8eccd50ecb chore: standardize logging output
- send errors to stderr
- use proper prefixes on errors
- use correct prefixes on stdout
2021-01-04 22:38:28 -05:00
Jose Diaz-Gonzalez
09ed45534d refactor: always write out the vector configuration 2021-01-04 21:48:38 -05:00
Jose Diaz-Gonzalez
711945147b refactor: use --watch-config instead of signaling the container to reload config 2021-01-04 21:48:28 -05:00
Jose Diaz-Gonzalez
0b3a6687f6 feat: actually mount the apps log dir
Also fix it so that the log directory is mountable from a custom path on the host if running dokku within a container.
2021-01-04 21:45:26 -05:00
Jose Diaz-Gonzalez
1aec869f9e fix: do not delete apps log subdir
This is a new directory introduced for vector logging should not be deleted so vector logging still works.
2021-01-04 21:40:51 -05:00
Jose Diaz-Gonzalez
6f9a6eb294 fix: only check for global properties when appName is --global 2021-01-04 12:43:15 -05:00
Jose Diaz-Gonzalez
96ed840d17 Merge pull request #4292 from thomasfedb/patch-1
Update docs to note support for Ubuntu 20.04
2021-01-04 12:19:39 -05:00
Jose Diaz-Gonzalez
5acdf4a43c Merge pull request #4293 from ltalirz/patch-2
Update persistent-storage.md
2021-01-04 12:19:05 -05:00
Leopold Talirz
6b4c545592 Update persistent-storage.md
add directory to complete path
2021-01-04 16:17:54 +01:00
Thomas Drake-Brockman
dd6cbcf242 Update docs to note support for Ubuntu 20.04 2021-01-04 21:50:02 +08:00
Jose Diaz-Gonzalez
d6acf5530e fix: add some comments 2021-01-04 01:14:40 -05:00
Jose Diaz-Gonzalez
94696e81fa fix: ensure the vector container does not exit when no configured sinks are in place 2021-01-04 01:12:25 -05:00
Jose Diaz-Gonzalez
43d6a2ad94 feat: add ability to set a global vector sink 2021-01-04 01:11:49 -05:00
Jose Diaz-Gonzalez
e1425a85e4 feat: add ability to set global properties
Not all properties can be set globally, and the "appName" in the global case is currently defaulted to `--global`. This is okay because domain label names cannot start with hyphens, and all app names must be valid domain label names.
2021-01-04 00:50:14 -05:00
Jose Diaz-Gonzalez
f5fa94cc9c chore: remove dburl usage
dburl adds aliases for everything, which breaks if two schemes are similar enough (anything with `aws_` as a prefix broke scheme registration). It does not appear to add anything, so we'll drop that dependency.

Also remove go-jsonmerge, as this was refactored to use structs instead of byte manipulation...
2021-01-04 00:42:13 -05:00
Jose Diaz-Gonzalez
fd85b1f605 feat: add vector integration
This currently is missing a few features:

- global sinks
- logrotation

But works fairly well otherwise.
2021-01-04 00:30:22 -05:00
Jose Diaz-Gonzalez
b386783ec8 Merge pull request #4287 from dokku/parallelize-refactor
Refactor parallelized goroutines to use error groups
2021-01-02 23:53:11 -05:00
Jose Diaz-Gonzalez
3b76b81edf fix: set correct variable for app image repo 2021-01-02 18:47:48 -05:00
Jose Diaz-Gonzalez
2eb159b0c3 refactor: use error group for fetching the app shell to use for app-json tasks 2021-01-02 18:45:30 -05:00
Jose Diaz-Gonzalez
596e7b6f24 feat: use error group to fetch the deploying app image
This is a fairly slow operation currently done serially, making ps:scale output brutally slow. Using an error group to parallelize the output is also pleasing to the eyes :)
2021-01-02 18:45:30 -05:00
Jose Diaz-Gonzalez
aa0437bb23 refactor: use an error group to simplify parallel retrieval of scheduler
This makes the code a bit simpler to read and more idiomatic
2021-01-02 18:45:30 -05:00
Jose Diaz-Gonzalez
a6c22a292d Merge pull request #4288 from dokku/pid-log
Add the pid of the dokku process to event logs
2021-01-02 18:40:30 -05:00
Jose Diaz-Gonzalez
0635edba17 Merge pull request #4289 from dokku/clean-on-exit
Clean precheck tmp file on exit
2021-01-02 18:40:23 -05:00
Jose Diaz-Gonzalez
a0491a5ef2 Merge pull request #4290 from dokku/debug-output
Add support for debug logging plugin trigger stderr and stdout
2021-01-02 18:40:15 -05:00
Jose Diaz-Gonzalez
38d172c477 refactor: add support for debug logging plugin trigger stderr and stdout
Previously, this could get a bit hazy when running the command within a goroutine. The new method creates pipes for writing stdout/stderr for each call to PluginTriggerOutput, then debug logs if if trace mode is on.

While it is a bit weird to read, it is more correct and should get rid of any parallel processing issues.
2021-01-02 06:13:48 -05:00
Jose Diaz-Gonzalez
5e4c918d40 feat: trim any extra debug log prefixes 2021-01-02 06:11:51 -05:00
Jose Diaz-Gonzalez
e8aaacff5e refactor: simplify code 2021-01-02 06:11:34 -05:00
Jose Diaz-Gonzalez
21d4d640c2 fix: clean precheck tmp file on exit 2021-01-02 05:23:52 -05:00
Jose Diaz-Gonzalez
b927c1b84d feat: add the pid of the dokku process to event logs 2021-01-02 05:23:12 -05:00
Jose Diaz-Gonzalez
d456a96cb5 Release 0.22.5
Some checks failed
bump-formula / bump-formula (push) Has been cancelled
# History

## 0.22.5

Install/update via the bootstrap script:

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

### Bug Fixes

- #4279: @josegonzalez Allow vmware-based vm to work on big sur

### Refactors

- #4282: @josegonzalez Cleanup brew-bump integration
- #4280: @josegonzalez Parallelize report and scheduler retrieval

### Documentation

- #4285: @josegonzalez Reference official gitlab-ci integration
- #4284: @josegonzalez Drop old doc link to gitlab ci docs
- #4283: @josegonzalez Add CI documentation section for Github Actions and Gitlab
- #4281: @josegonzalez Add forum link to documentation
2020-12-31 18:22:18 -05:00
Jose Diaz-Gonzalez
1964fc6b65 Merge pull request #4285 from dokku/4217-gitlab-ci
Reference official gitlab-ci integration
2020-12-30 04:29:15 -05:00
Jose Diaz-Gonzalez
26e270a49f docs: reference official gitlab-ci integration
Closes #4217
2020-12-30 04:28:45 -05:00
Jose Diaz-Gonzalez
3323623289 Merge pull request #4284 from dokku/josegonzalez-patch-1
Drop old doc link to gitlab ci docs
2020-12-30 03:41:35 -05:00
Jose Diaz-Gonzalez
7a43321d1c docs: drop old doc link to gitlab ci docs
[ci skip]
2020-12-30 03:41:18 -05:00
Jose Diaz-Gonzalez
4a5cc71c3e Merge pull request #4283 from dokku/4151-ci-docs
Add CI documentation section for Github Actions and Gitlab
2020-12-30 03:39:32 -05:00
Jose Diaz-Gonzalez
660ccf876e docs: add documentation for generic ci systems 2020-12-30 03:38:47 -05:00
Jose Diaz-Gonzalez
69dd81860f docs: add github actions documentation 2020-12-30 03:34:01 -05:00
Jose Diaz-Gonzalez
b1c2c026aa docs: split out initial ci section of docs 2020-12-30 03:25:22 -05:00
Jose Diaz-Gonzalez
b7fa97bf9e Merge pull request #4282 from dokku/brew-bump-automation
Cleanup brew-bump integration
2020-12-30 03:18:48 -05:00
Jose Diaz-Gonzalez
1bdaab6d72 Merge pull request #4281 from dokku/forum-link
Add forum link to documentation
2020-12-30 03:17:58 -05:00
Jose Diaz-Gonzalez
3edc14fc97 Merge pull request #4280 from dokku/parallelize-internals
Parallelize report and scheduler retrieval
2020-12-30 03:16:27 -05:00
Jose Diaz-Gonzalez
940d258c5e fix: use authentcated clone for tap url 2020-12-30 03:08:13 -05:00
Jose Diaz-Gonzalez
2500ca5106 chore: use https url brew tap clone 2020-12-30 03:06:16 -05:00
Jose Diaz-Gonzalez
c5a7fd6d43 chore: configure git user info 2020-12-30 03:05:54 -05:00
Jose Diaz-Gonzalez
d424af5b1e docs: add github discussions link and clarify what is monitored and what is not. 2020-12-30 02:50:03 -05:00
Jose Diaz-Gonzalez
ca383739ab docs: add github discussions link to header 2020-12-30 02:44:20 -05:00
Jose Diaz-Gonzalez
0176e888af refactor: only add status flags as necessary 2020-12-30 00:38:07 -05:00
Jose Diaz-Gonzalez
0e320d2832 feat: short-circuit report fetching if only retrieving a single value
This speeds up report output when specifying a flag as extra data that isn't used will not be fetched unnecessarily.
2020-12-30 00:37:43 -05:00
Jose Diaz-Gonzalez
38b96c1e27 fix: add comments 2020-12-30 00:28:59 -05:00
Jose Diaz-Gonzalez
5da5a6fe5f refactor: collect process status in parallel
This speeds up ps:report for apps that have more than 1 running container.
2020-12-30 00:21:09 -05:00
Jose Diaz-Gonzalez
28c9f42a25 refactor: parallelize report commands
This will make reports a bit faster to run, and is safe to do as reports should not change app state.
2020-12-29 23:56:10 -05:00
Jose Diaz-Gonzalez
44461e21df refactor: parallelize scheduler retrieval
In many cases, a user may only set a global scheduler, and as such we waste the initial call to get the app scheduler. Parallelizing the fetch increases the speed at which we can check for the scheduler.
2020-12-29 23:55:13 -05:00
Jose Diaz-Gonzalez
164c4eefa7 Merge pull request #4279 from dokku/vagrant-big-sur
Allow vmware-based vm to work on big sur
2020-12-29 16:27:58 -05:00
Jose Diaz-Gonzalez
ee6c034baa fix: allow vmware-based vm to work on big sur
There seems to be an issue in Vmware that causes SSH to fail for new VMs.

https://github.com/hashicorp/vagrant/issues/12045
2020-12-29 16:27:29 -05:00
Jose Diaz-Gonzalez
4b399df541 Release 0.22.4
Some checks failed
bump-formula / bump-formula (push) Has been cancelled
# History

## 0.22.4

Install/update via the bootstrap script:

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

### Bug Fixes

- #4274: @josegonzalez Use correct warning message for deprecated code

### New Features

- #4273: @josegonzalez Upgrade to golang 1.15

### Refactors

- #4275: @josegonzalez Add calls to verify app name in subcommands

### Documentation

- #4272: @josegonzalez Correct help output for ssh-keys command

### Tests

- #4276: @josegonzalez Upgrade version of plugn used in tests
2020-12-29 16:07:18 -05:00
Jose Diaz-Gonzalez
f1c7e1113f Merge pull request #4275 from dokku/verify-app-name
Add calls to verify app name in subcommands
2020-12-29 04:56:15 -05:00
Jose Diaz-Gonzalez
90c68ba02f fix: correct position of app name check for nginx:validate-config 2020-12-29 02:46:18 -05:00
Jose Diaz-Gonzalez
7f2180b47b fix: git config can be set globally 2020-12-27 15:27:46 -05:00
Jose Diaz-Gonzalez
21ff68f624 fix: correct unit test 2020-12-27 15:20:32 -05:00
Jose Diaz-Gonzalez
fd162f8895 feat: add verify_app_name calls to all shell subcommands
Without this, folks could potentially run commands against invalid applications.
2020-12-27 15:14:11 -05:00
Jose Diaz-Gonzalez
03e80a76b6 fix: add missing argument.. 2020-12-27 15:14:11 -05:00
Jose Diaz-Gonzalez
08fdfd1e38 feat: drop internal calls to verify_app_name 2020-12-27 15:14:11 -05:00
Jose Diaz-Gonzalez
2a6c411edf docs: remove extra verify_app_name call in documentation 2020-12-27 15:14:11 -05:00
Jose Diaz-Gonzalez
65d7fd9cce refactor: drop extra internal calls to VerifyAppName
These are duplicative of the checks that happen at the subcommand level.
2020-12-27 15:14:11 -05:00
Jose Diaz-Gonzalez
e0570be562 refactor: use common.VerifyAppName for appExists
The duplicative logic didn't make much sense.
2020-12-27 15:14:11 -05:00
Jose Diaz-Gonzalez
ffa303092f feat: add app name verification to all golang plugins
Moving verification of input to the earliest place is the best way to decrease the need to validate this further downstream.

Additionally, some of the existing checks were.... lacking :)
2020-12-27 15:14:11 -05:00
Jose Diaz-Gonzalez
382dc01b33 Merge pull request #4276 from dokku/josegonzalez-patch-1
Upgrade version of plugn used in tests
2020-12-27 15:13:37 -05:00
Jose Diaz-Gonzalez
7f02155ce1 tests: upgrade version of plugn used in tests 2020-12-25 03:08:08 -05:00
Jose Diaz-Gonzalez
8c17a70dc1 Merge pull request #4274 from dokku/josegonzalez-patch-1
Use correct warning message for deprecated code
2020-12-25 03:05:49 -05:00
Jose Diaz-Gonzalez
b39623ab2b Merge pull request #4273 from dokku/upgrade-golang
Upgrade to golang 1.15
2020-12-25 03:05:19 -05:00
Jose Diaz-Gonzalez
98e57287e3 Merge pull request #4272 from dokku/fix-ssh-keys-help
Correct help output for ssh-keys command
2020-12-25 01:44:39 -05:00
Jose Diaz-Gonzalez
68047866be fix: use correct warning message for deprecated code 2020-12-25 00:01:43 -05:00
Jose Diaz-Gonzalez
bacc5cbcab feat: upgrade to golang 1.15
This is what is used for local development.
2020-12-24 23:46:27 -05:00
Jose Diaz-Gonzalez
549280e2b6 docs: correct help output for ssh-keys command
The recent update did not include the new flags.
2020-12-24 23:32:31 -05:00
Jose Diaz-Gonzalez
61af5971d5 Release 0.22.3
Some checks failed
bump-formula / bump-formula (push) Has been cancelled
# History

## 0.22.3

Install/update via the bootstrap script:

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

### Bug Fixes

- #4268: @josegonzalez Properly parse flags for logs command
- #4264: @josegonzalez Correct argument handling when setting the `--app` flag
- #4252: @magikid Allow symbolic links for certificate and key files

### New Features

- #4270: @josegonzalez Allow renaming old applications to new format
- #4261: @josegonzalez Add remove by fingerprint and json format output to ssh-keys plugin
- #4262: @josegonzalez Improve ps:restore logging
- #4263: @josegonzalez Bump the dokku client formula on release

### Documentation

- #4253: @guettli Highlight the default build method used by Dokku
- #4250: @rlnd1 Update upgrading.md
- #4249: @guettli Fix typo in zero downtime docs
- #4247: @josegonzalez Clarify the domain name setting in the docs

### Tests

- #4269: @josegonzalez Rename duplicate test
- #4266: @josegonzalez Update junit test files when a bats retry is successful
- #4265: @josegonzalez Retry failing and skipped tests once
2020-12-23 02:35:25 -05:00
Jose Diaz-Gonzalez
acc206fca7 Merge pull request #4270 from dokku/4267-fix-app-name-verification
Allow renaming old applications to new format
2020-12-23 02:32:10 -05:00
Jose Diaz-Gonzalez
59a81ad3be fix: cleanup apps and containers before each test
- remove all nginx configurations since they may be faulty
- move cleanup commands to helper functions
- fix a few shellcheck violations
2020-12-22 13:29:32 -05:00
Jose Diaz-Gonzalez
d7b23b84f0 fix: allow renaming old applications to new format
0.22.0 changed allowed values for app names, making it more difficult for users to fix their app names - you need to either downgrade+rename or recreate the app. The `apps:rename`  command can now rename these old applications to the new standard.

Also drop some app name verification from internal commands. Duplicate verification doesn't help much, and though it isn't excessively slow, it does prevent us from running commands against old apps that exist.

Refs #4267
2020-12-22 13:29:32 -05:00
Jose Diaz-Gonzalez
3d77de20cc Merge pull request #4269 from dokku/josegonzalez-patch-1
Rename duplicate test
2020-12-22 13:28:33 -05:00
Jose Diaz-Gonzalez
365356eb5f fix: output is expected twice 2020-12-22 11:52:02 -05:00
Jose Diaz-Gonzalez
044cc4a618 fix: rename duplicate test 2020-12-22 01:30:16 -05:00
Jose Diaz-Gonzalez
09541f8aac Merge pull request #4268 from dokku/4256-fix-logs-arguments
Properly parse flags for logs command
2020-12-21 18:29:04 -05:00
Jose Diaz-Gonzalez
4d0979bbcd fix: properly parse flags for logs command
Closes #4256
2020-12-21 16:50:34 -05:00
Jose Diaz-Gonzalez
dba4bb9c2c Merge pull request #4264 from dokku/4255-client-parsing
Correct argument handling when setting the `--app` flag
2020-12-21 15:55:27 -05:00
Jose Diaz-Gonzalez
2e4c886ab2 fix: correct app arg parsing and new test 2020-12-21 13:36:04 -05:00
Jose Diaz-Gonzalez
dd1962f92d fix: add missing docblock 2020-12-21 01:40:40 -05:00
Jose Diaz-Gonzalez
1439e8b30b hack: parse out the info flags for report subcommands separately
pflag doesn't ignore unspecified arguments, so they must be parsed out separately first.
2020-12-21 01:36:59 -05:00
Jose Diaz-Gonzalez
8240790381 fix: correct argument handling when setting the --app flag
When setting the `--app` flag, there was a special case for the config plugin. This plugin used to take the `--no-restart` flag as the first argument - and still did until this change - resulting in an invalid call to the plugin subcommands. What is worse is that this functionality carried over to all other plugins as they were rewritten in golang, and thus the issue spread without us knowing.

The fix is to support GNU flag parsing rules, which Golang does not do by default (Because Of Reasons™). Switching to `github.com/spf13/pflag` fixes this issue, and also allows positional arguments to be placed wherever, even in the middle of flags.

Closes #4255
2020-12-20 22:06:33 -05:00
Jose Diaz-Gonzalez
0050aa6b92 Merge pull request #4266 from dokku/better-bats-retry
Update junit test files when a bats retry is successful
2020-12-20 22:06:03 -05:00
Jose Diaz-Gonzalez
f53b26f3f0 tests: update junit test files when a bats retry is successful 2020-12-20 17:26:27 -05:00
Jose Diaz-Gonzalez
57a9a11ab3 Merge pull request #4261 from dokku/ssh-keys-commands
Add remove by fingerprint and json format output to ssh-keys plugin
2020-12-20 13:52:11 -05:00
Jose Diaz-Gonzalez
a6a0e033a7 Merge pull request #4262 from dokku/4259-better-restore-logging
Improve ps:restore logging
2020-12-20 13:51:10 -05:00
Jose Diaz-Gonzalez
18492ac83c feat: add json format support to ssh-keys:list 2020-12-20 04:15:53 -05:00
Jose Diaz-Gonzalez
13dd8aa224 feat: add ability to remove an ssh key by fingerprint
- add tests for ssh-keys:remove
- upgrade sshcommand
2020-12-20 04:15:53 -05:00
Jose Diaz-Gonzalez
574304486a chore: make the structs internal
They don't need to be exported as they are only used within this plugin.
2020-12-20 04:15:42 -05:00
Jose Diaz-Gonzalez
90feb8dc96 chore: remove unused file
This was forgotten in the ps plugin rewrite.
2020-12-20 04:15:42 -05:00
Jose Diaz-Gonzalez
7bc241dd48 feat: suppress output for nginx init commands
It's not super useful most of the time.
2020-12-20 04:15:42 -05:00
Jose Diaz-Gonzalez
57b884e7c7 feat: enhance logging for parallel commands
This logging change makes it easier to figure out what is breaking where when running commands in parallel.
2020-12-20 04:15:42 -05:00
Jose Diaz-Gonzalez
3ba775d4b3 feat: add better logging to ps:restore output
Without the logging additions, it's a bit more difficult to figure out why a ps:restore is skipping the restore of an app.
2020-12-20 04:15:42 -05:00
Jose Diaz-Gonzalez
89d6f0eb6e Merge pull request #4265 from dokku/bats-retry
Retry failing and skipped tests once
2020-12-20 04:15:09 -05:00
Jose Diaz-Gonzalez
465e220315 feat: retry failing and skipped tests once
Plugn is fairly brittle since the upgrade to bash 5, so this might help decrease the need to retry the whole circleci job.
2020-12-20 02:42:37 -05:00
Jose Diaz-Gonzalez
1b767e7632 Merge pull request #4263 from dokku/bump-formula
Bump the dokku client formula on release
2020-12-19 19:17:31 -05:00
Jose Diaz-Gonzalez
b3304337ca feat: bump the dokku client formula on release
This ensures we always have an up to date version :)
2020-12-19 19:16:37 -05:00
Jose Diaz-Gonzalez
40e7f6d15b Merge pull request #4252 from magikid/fix-symbolic-link-certs
Allow symbolic links for certificate and key files
2020-12-18 12:13:42 -05:00
Jose Diaz-Gonzalez
c95659d57d Merge pull request #4253 from guettli/patch-2
Highlight the default build method used by Dokku
2020-12-18 12:13:30 -05:00
Jose Diaz-Gonzalez
a1e7b99b26 docs: merge note into list
Makes it a little cleaner (though not by much).

[ci skip]
2020-12-18 12:12:59 -05:00
Thomas Güttler
52f1f2495c If unsure use "Heroku buildpacks via Herokuish".
I guess this is the current sane default. Correct me, if I am wrong.
2020-12-17 21:44:10 +01:00
Chris W Jones
112ee88fe9 Allow symbolic links for certificate and key files
This corrects an issue where if a symbolic link was given to the
`certs:add` command, an error would be thrown even though the file was
valid.

Issue: #4251
2020-12-17 15:35:52 -05:00
Jose Diaz-Gonzalez
2ff06ff4c7 Merge pull request #4250 from rlnd1/patch-1
Update upgrading.md
2020-12-17 11:53:44 -05:00
rlnd1
df289be994 Update upgrading.md
Add command for versions 0.22 and higher
2020-12-17 17:15:15 +01:00
Jose Diaz-Gonzalez
ae76e8784c Merge pull request #4249 from guettli/patch-1
Fix typo in zero downtime docs
2020-12-16 17:09:45 -05:00
Thomas Güttler
d537cb70cd typo "by for" 2020-12-16 23:07:02 +01:00
Jose Diaz-Gonzalez
4a70f0bea2 Merge pull request #4247 from dokku/josegonzalez-patch-1
Clarify the domain name setting in the docs
2020-12-16 16:08:21 -05:00
Jose Diaz-Gonzalez
e51165d915 docs: clarify the domain name setting in the docs
No need to mention the vagrant.

Closes #4246

[ci skip]
2020-12-16 16:07:13 -05:00
Jose Diaz-Gonzalez
d10d4cc55c Release 0.22.2
# History

## 0.22.2

Install/update via the bootstrap script:

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

### Bug Fixes

- #4243: @josegonzalez Do not delete app when the app name is invalid

### New Features

- #4141: @josegonzalez Always initialize git repository

### Other

- #4244: @dependabot-preview[bot] chore(deps): bump monolog/monolog from 1.25.5 to 1.26.0 in /tests/apps/php
2020-12-15 19:14:31 -05:00
Jose Diaz-Gonzalez
2301efa460 Merge pull request #4244 from dokku/dependabot/composer/tests/apps/php/monolog/monolog-1.26.0
chore(deps): bump monolog/monolog from 1.25.5 to 1.26.0 in /tests/apps/php
2020-12-15 14:04:14 -05:00
Jose Diaz-Gonzalez
d00284166f Merge pull request #4141 from dokku/always-initialize-repo
feat: always initialize git repository
2020-12-15 14:01:09 -05:00
Jose Diaz-Gonzalez
f279ce44b2 Merge pull request #4243 from dokku/4129-avoid-deletion
Do not delete app when the app name is invalid
2020-12-15 03:28:52 -05:00
Jose Diaz-Gonzalez
36215828f1 feat: always initialize git repository
This fixes issues where alternative tools that don't trigger the init via sshcommand - such as git-http-backend - are not able to setup applications correctly.

Note that those apps could always manually trigger git:initialize if desired, but if the app already exists, then this should already _just work_ without that extra initialization.
2020-12-15 01:42:10 -05:00
dependabot-preview[bot]
0623af86d6 chore(deps): bump monolog/monolog in /tests/apps/php
Bumps [monolog/monolog](https://github.com/Seldaek/monolog) from 1.25.5 to 1.26.0.
- [Release notes](https://github.com/Seldaek/monolog/releases)
- [Changelog](https://github.com/Seldaek/monolog/blob/main/CHANGELOG.md)
- [Commits](https://github.com/Seldaek/monolog/compare/1.25.5...1.26.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-15 06:30:16 +00:00
Jose Diaz-Gonzalez
c6976499ad fix: do not delete app when the app name is invalid
Let folks call apps:destroy instead.

Refs #4129
2020-12-15 01:14:30 -05:00
Jose Diaz-Gonzalez
01bd69100c Release 0.22.1
# History

## 0.22.1

Install/update via the bootstrap script:

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

### Bug Fixes

- #4238: @josegonzalez Ensure dead files are created for docker object retirement
- #4239: @josegonzalez Ensure all byte output is trimmed of whitespace
- #4228: @Cellane Fix tags:deploy command for images that contain ONBUILD directive
- #4233: @josegonzalez Properly parse releease command when there is an entrypoint
- #4215: @josegonzalez Implement missing cleanup routines
- #4212: @josegonzalez Cleanup docker options during post-delete
- #4211: @ml-milan-vit Make the dokku-update command compatible with Dokku 0.22+

### New Features

- #4242: @josegonzalez Remove reference to 'whitelist'
- #4220: @josegonzalez Update plugn from 0.5.0 to 0.5.1
- #4241: @josegonzalez Properly handle stdout when capturing plugn output
- #4237: @josegonzalez Release dokku-update 0.2.0
- #4225: @znz Accept first pushed branch as deploy-branch

### Documentation

- #4236: @josegonzalez Remove note regarding not having an official client
- #4234: @josegonzalez Switch to bats --filter for running a single test
- #4222: @leopolicastro Fix typo in deployment tasks documentation
- #4221: @srr013 Updating readme for clarity on git push step
- #4214: @josegonzalez Expand backup and restore documentation
- #4213: @josegonzalez Enhance the 'plugin' plugin documentation

### Tests

- #4218: @josegonzalez Enable compilation cache

### Other

- #4230: @dependabot-preview[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 186 to 187 in /tests/apps/php
- #4223: @dependabot-preview[bot] chore(deps): bump jetty-servlet from 9.4.35.v20201120 to 11.0.0 in /tests/apps/java
- #4224: @dependabot-preview[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 185 to 186 in /tests/apps/php
2020-12-13 22:04:14 -05:00
Jose Diaz-Gonzalez
541d73ad93 Merge pull request #4238 from dokku/ensure-dead-files
Ensure dead files are created for docker object retirement
2020-12-13 21:59:47 -05:00
Jose Diaz-Gonzalez
6b159c32cf Merge pull request #4239 from dokku/4229-trim-whitespace
Ensure all byte output is trimmed of whitespace
2020-12-13 21:59:23 -05:00
Jose Diaz-Gonzalez
5f2968d1b0 Merge pull request #4242 from dokku/remove-whitelist-word
Remove reference to 'whitelist'
2020-12-13 21:58:37 -05:00
Jose Diaz-Gonzalez
0e768d107a Merge pull request #4218 from dokku/faster-compiles
Enable compilation cache
2020-12-13 15:39:29 -05:00
Jose Diaz-Gonzalez
3557ff16dc Merge pull request #4220 from dokku/update-plugn
Update plugn from 0.5.0 to 0.5.1
2020-12-13 15:23:35 -05:00
Jose Diaz-Gonzalez
30131ef363 Merge pull request #4241 from dokku/quieter-plugn-capture
Properly handle stdout when capturing plugn output
2020-12-13 15:15:48 -05:00
Jose Diaz-Gonzalez
946c424734 Merge pull request #4228 from Cellane/patch-1
Fix tags:deploy command for images that contain ONBUILD directive
2020-12-13 03:14:03 -05:00
Jose Diaz-Gonzalez
f42b293836 feat: remove reference to 'whitelist'
The term doesn't even 'make sense' in this context. 'allowed_prefixes' is a much better variable name.
2020-12-13 02:10:52 -05:00
Jose Diaz-Gonzalez
b691c0affc feat: properly handle stdout when capturing plugn output
The previous output would also include a message like `exit status 1`. This allows us to silence that output and instead only capture that which was return from the subprocess.
2020-12-13 02:08:44 -05:00
Jose Diaz-Gonzalez
48fa04a05b fix: ensure dead files are created for docker object retirement 2020-12-13 02:05:30 -05:00
Jose Diaz-Gonzalez
8c14bb9aeb fix: ensure all byte output is trimmed of whitespace
This otherwise causes issues when interpreting the output as part of a variable, such as when constructing the deploying app image.

Closes #4229
2020-12-13 02:04:35 -05:00
Jose Diaz-Gonzalez
ca2de6a4a3 Merge pull request #4237 from dokku/update-dokku-update
Release dokku-update 0.2.0
2020-12-12 23:11:03 -05:00
Jose Diaz-Gonzalez
755499797e feat: release dokku-update 0.2.0 2020-12-12 23:10:21 -05:00
Jose Diaz-Gonzalez
f2a3cfc0b4 tests: add unit test for label skipping 2020-12-12 16:33:39 -05:00
Milan Vit
a42786a465 Fixes tags:deploy command for images that contain ONBUILD directive
Fixes #4226
2020-12-12 16:07:31 -05:00
Jose Diaz-Gonzalez
de0a467c97 Merge pull request #4233 from dokku/4232-fix-release-command
Properly parse releease command when there is an entrypoint
2020-12-12 15:57:38 -05:00
Jose Diaz-Gonzalez
ab23a4b6f1 Merge pull request #4236 from dokku/josegonzalez-patch-1
Remove note regarding not having an official client
2020-12-12 15:56:11 -05:00
Jose Diaz-Gonzalez
87aed0eadf docs: remove note regarding not having an official client
Closes #4235

[ci skip]
2020-12-12 15:55:38 -05:00
Jose Diaz-Gonzalez
9a86549359 chore: fix mispelling
[ci skip]
2020-12-11 14:19:44 -05:00
Jose Diaz-Gonzalez
2eeb0069d5 Merge pull request #4234 from dokku/use-bats-filter
Switch to bats --filter for running a single test
2020-12-11 14:14:51 -05:00
Jose Diaz-Gonzalez
f536a05e06 fix: switch to bats --filter for running a single test 2020-12-11 11:45:15 -05:00
Jose Diaz-Gonzalez
26b95854d4 fix: properly parse releease command when there is an entrypoint
Closes #4232
2020-12-11 11:44:13 -05:00
Jose Diaz-Gonzalez
775432c73f Merge pull request #4230 from dokku/dependabot/composer/tests/apps/php/heroku/heroku-buildpack-php-187
chore(deps-dev): bump heroku/heroku-buildpack-php from 186 to 187 in /tests/apps/php
2020-12-10 11:00:36 -05:00
dependabot-preview[bot]
84ee5995f4 chore(deps-dev): bump heroku/heroku-buildpack-php in /tests/apps/php
Bumps [heroku/heroku-buildpack-php](https://github.com/heroku/heroku-buildpack-php) from 186 to 187.
- [Release notes](https://github.com/heroku/heroku-buildpack-php/releases)
- [Changelog](https://github.com/heroku/heroku-buildpack-php/blob/main/CHANGELOG.md)
- [Commits](https://github.com/heroku/heroku-buildpack-php/compare/v186...v187)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-10 06:21:51 +00:00
Jose Diaz-Gonzalez
91e9bb9670 Merge pull request #4225 from znz/accept-first-pushed-branch-as-deploy-branch
Accept first pushed branch as deploy-branch
2020-12-08 16:04:05 -05:00
Jose Diaz-Gonzalez
c6a8bd669f Merge pull request #4223 from dokku/dependabot/maven/tests/apps/java/org.eclipse.jetty-jetty-servlet-11.0.0
chore(deps): bump jetty-servlet from 9.4.35.v20201120 to 11.0.0 in /tests/apps/java
2020-12-08 14:08:26 -05:00
Jose Diaz-Gonzalez
d9d0a932b0 Merge pull request #4224 from dokku/dependabot/composer/tests/apps/php/heroku/heroku-buildpack-php-186
chore(deps-dev): bump heroku/heroku-buildpack-php from 185 to 186 in /tests/apps/php
2020-12-08 12:54:04 -05:00
Jose Diaz-Gonzalez
a91d45c397 Merge pull request #4222 from leopolicastro/patch-1
Fix typo
2020-12-08 10:50:54 -05:00
Kazuhiro NISHIYAMA
98c81513aa Accept first pushed branch as deploy-branch
And set to DOKKU_DEPLOY_BRANCH.

Idea from https://github.com/dokku/dokku/pull/4167#issuecomment-717607136
2020-12-08 23:15:11 +09:00
dependabot-preview[bot]
a7e5f2abdc chore(deps-dev): bump heroku/heroku-buildpack-php in /tests/apps/php
Bumps [heroku/heroku-buildpack-php](https://github.com/heroku/heroku-buildpack-php) from 185 to 186.
- [Release notes](https://github.com/heroku/heroku-buildpack-php/releases)
- [Changelog](https://github.com/heroku/heroku-buildpack-php/blob/main/CHANGELOG.md)
- [Commits](https://github.com/heroku/heroku-buildpack-php/compare/v185...v186)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-08 07:14:57 +00:00
dependabot-preview[bot]
0aa0c884d3 chore(deps): bump jetty-servlet in /tests/apps/java
Bumps [jetty-servlet](https://github.com/eclipse/jetty.project) from 9.4.35.v20201120 to 11.0.0.
- [Release notes](https://github.com/eclipse/jetty.project/releases)
- [Commits](https://github.com/eclipse/jetty.project/compare/jetty-9.4.35.v20201120...jetty-11.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-12-08 05:54:29 +00:00
Leo Policastro
dfa39fc590 Fix typo 2020-12-07 22:03:11 -05:00
Jose Diaz-Gonzalez
cbd442fc2e Merge pull request #4221 from srr013/patch-1
Updating readme for clarity on git push step
2020-12-05 15:07:48 -05:00
Scott Rossignol
ebd2778f5b Updating readme for clarity on git push step
https://www.digitalocean.com/community/questions/refactorin-git-remote-add-dokku-dokku-dokku-me-ruby-rails-sample
2020-12-05 10:17:11 -05:00
Jose Diaz-Gonzalez
5887d4ddfa Update plugn from 0.5.0 to 0.5.1 2020-12-05 02:32:15 -05:00
Jose Diaz-Gonzalez
36e9b4b2ae feat: enable compilation cache
Not sure why it was disabled but lets see if tests fail?
2020-12-04 16:58:45 -05:00
Jose Diaz-Gonzalez
81d31c9934 Merge pull request #4215 from dokku/plugin-cleanup
Implement missing cleanup routines
2020-12-02 14:19:07 -05:00
Jose Diaz-Gonzalez
4aaefb0c4c fix: implement missing cleanup routines
Without these, there was potential for configuration for certain plugins to continue to exist after an app was deleted.
2020-12-02 03:27:06 -05:00
Jose Diaz-Gonzalez
6aac1ea0d1 Merge pull request #4214 from dokku/4180-backup-docs
Expand backup and restore documentation
2020-12-02 02:54:48 -05:00
Jose Diaz-Gonzalez
bd275d9b5d docs: expand backup and restore documentation
This documentation should fill the need for users that wish to backup and restore their installations. While there are certainly other methods to trigger this process - and many caveats - this should give users more confidence as to how to approach the general problem.

Closes #4180
2020-12-02 02:54:07 -05:00
Jose Diaz-Gonzalez
8c0dbc7d6a Merge pull request #4213 from dokku/4192-plugin-docs
Enhance the 'plugin' plugin documentation
2020-12-02 01:30:49 -05:00
Jose Diaz-Gonzalez
07194ca17f docs: add documentation to the plugin plugin
These plugin docs will be good enough to tide end-users over until the 'plugin' plugin can be rewritten in golang.

Closes #4192
2020-12-02 01:30:12 -05:00
Jose Diaz-Gonzalez
325c6d44dd Merge pull request #4212 from dokku/cleanup-options
Cleanup docker options during post-delete
2020-12-02 00:14:02 -05:00
Jose Diaz-Gonzalez
168ed1716c fix: cleanup docker options during post-delete
While the directory removal should be enough, we should also force-clean just to be sure.
2020-12-01 22:38:20 -05:00
Jose Diaz-Gonzalez
3de8c3002a Merge pull request #4211 from ml-milan-vit/patch-1
🐛 Make the dokku-update command compatible with Dokku 0.22+
2020-12-01 18:41:22 -05:00
Milan Vit
1cbbfb195f 🐛 Make the dokku-update command compatible with Dokku 0.22+ 2020-12-02 08:39:21 +09:00
Jose Diaz-Gonzalez
dceaef20ed Release 0.22.0
# History

## 0.22.0

Install/update via the bootstrap script:

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

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

### Bug Fixes

- #4204: @josegonzalez Ensure the image is not an empty string
- #4198: @josegonzalez Reference extracted Procfile
- #4194: @josegonzalez Drop appName check in apps:report
- #4183: @josegonzalez Embed pb.UnimplementedGreeterServer to avoid linting issues
- #4182: @josegonzalez Upgrade herokuish to fix nodejs tests
- #4173: @karimsan Add build-essential to Vagrant provision
- #4181: @josegonzalez Conditionally mount the dokku-arch folder if it exists
- #4130: @josegonzalez Clear proxy configs on boot
- #4131: @josegonzalez Bump minimum docker version
- #4123: @fomojola Support for expected CHECKS text with special characters
- #4115: @josegonzalez Add missing labels to built images
- #4116: @Schlepptop Ensure config:clear an be called

### New Features

- #4209: @josegonzalez Add experimental support for Cloud Native Buildpacks (CNB)
- #4210: @josegonzalez Add migration guide link to release notes
- #4203: @josegonzalez Cleanup log output for failure case
- #4208: @ankane Add ability to change the access log format
- #4202: @josegonzalez Schedule related images for cleanup when retiring containers
- #4197: @josegonzalez Retire intermediate containers after use
- #4128: @fomojola Added the container index to the network-compute-ports trigger
- #4191: @josegonzalez Create codeql-analysis.yml
- #4139: @Yihao-G Allow controlling Nginx proxy-buffer-size, proxy-buffering, proxy-buffers, proxy-busy-buffers-size
- #4156: @ltalirz When `cert:add` remove previous cert before copying the new cert
- #4129: @josegonzalez Prohibit non-dns names for apps and process types
- #4125: @josegonzalez Allow customizing the various nginx templates
- #4121: @josegonzalez Add ability to disable custom ninx.conf.sigil extraction

### Refactors

- #4160: @nerg4l Rewrite logs plugin in Go
- #4149: @josegonzalez Rewrite ps plugin in golang
- #4080: @hugopeixoto Stop using VHOST when listing app domains and urls
- #4117: @josegonzalez Rewrite app-json plugin in golang
- #4113: @josegonzalez Drop herokuish release code

### Documentation

- #4196: @josegonzalez Correctly doc apps:report output
- #4195: @luizpicolo Fix whitespace in process-management docs
- #4184: @badsyntax Add note regarding using plugin triggers instead of sourcing functions
- #4188: @fomojola Added the autosync community plugin
- #4187: @nahtnam Add `-p` flag to "Run on External Volume" tutorial
- #4186: @badsyntax Add dokku-discourse to community plugins list
- #4170: @chrisjsimpson Add note on how to enable buildkit usage
- #4168: @josegonzalez Revert "The default branch for ruby-getting-started is 'main', not 'master"
- #4167: @nateww The default branch for ruby-getting-started is 'main', not 'master
- #4135: @znz Fix broken table
- #4140: @swrobel Note Ubuntu 20.04 support in README
- #4136: @hugopeixoto Update push command for sample app in docs
- #4124: @josegonzalez Note that docker options require app rebuilds
- #4098: @carlosgeos Add a note on how nginx handles load balancing
- #4111: @josegonzalez Add large version of dokku image
- #4100: @turicas Fix markdown syntax in nginx docs

### Other

- #4201: @dependabot-preview[bot] chore(deps): bump jetty-servlet from 9.4.34.v20201102 to 9.4.35.v20201120 in /tests/apps/java
- #4200: @dependabot-preview[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 183 to 185 in /tests/apps/php
- #4189: @dependabot-preview[bot] chore(deps): bump thin from 1.7.2 to 1.8.0 in /tests/apps/ruby
- #4175: @dependabot-preview[bot] chore(deps): bump jetty-servlet from 9.4.33.v20201020 to 9.4.34.v20201102 in /tests/apps/java
- #4172: @dependabot-preview[bot] chore(deps): bump github.com/golang/protobuf from 1.4.2 to 1.4.3 in /tests/apps/gogrpc
- #4185: @dependabot-preview[bot] chore(deps): bump socket.io from 2.3.0 to 3.0.1 in /tests/apps/.websocket.disabled
- #4190: @dependabot-preview[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 182 to 183 in /tests/apps/php
- #4165: @dependabot-preview[bot] chore(deps): bump jetty-servlet from 9.4.31.v20200723 to 9.4.33.v20201020 in /tests/apps/java
- #4153: @dependabot-preview[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 181 to 182 in /tests/apps/php
- #4144: @dependabot-preview[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 180 to 181 in /tests/apps/php
- #4137: @dependabot-preview[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 179 to 180 in /tests/apps/php
- #4118: @dependabot[bot] chore(deps): bump django from 3.0.2 to 3.0.7 in /tests/apps/dockerfile-release
- #4103: @dependabot-preview[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 178 to 179 in /tests/apps/php
- #4091: @dependabot-preview[bot] chore(deps): bump jetty-servlet from 9.4.30.v20200611 to 9.4.31.v20200723 in /tests/apps/java
2020-12-01 16:23:05 -05:00
Jose Diaz-Gonzalez
ebbbcb99f2 Merge pull request #4209 from dokku/cnb-support
Add experimental support for Cloud Native Buildpacks (CNB)
2020-12-01 16:21:08 -05:00
Jose Diaz-Gonzalez
3e70dbb836 Merge pull request #4210 from dokku/josegonzalez-patch-1
Add migration guide link to release notes
2020-12-01 15:36:12 -05:00
Jose Diaz-Gonzalez
f1c74b08cb feat: add migration guide link to release notes
While they are otherwise available on the upgrading page, they might be missed if perusing the changelog before an upgrade.

[ci skip]
2020-12-01 15:35:55 -05:00
Jose Diaz-Gonzalez
451abcf8f3 feat: add initial support for cloud native buildpacks
This change adds a new builder - builder-cnb - via the 'DOKKU_CNB_EXPERIMENTAL' environment variable. While support for customizing pack builds is not currently implemented and there may be other missing functionality, this initial implementation allows folks to start playing with CNB.

Future releases of Dokku will provide tighter CNB integration and eventually switch to CNB for default building, as well as allow users to better select builders needed for their applications.

All new code for CNB support should be considered experimental and subject to change as the support evolves over time.
2020-12-01 14:50:27 -05:00
Jose Diaz-Gonzalez
98f03c249b Merge pull request #4203 from dokku/minor-logging-changes
Cleanup log output for failure case
2020-12-01 11:21:57 -05:00
Jose Diaz-Gonzalez
4c4248d65b Merge pull request #4208 from ankane/access-log-format
feat: add ability to change the access log format
2020-12-01 11:14:18 -05:00
Jose Diaz-Gonzalez
889c11d84b docs: use correct version
[ci skip]
2020-12-01 11:08:21 -05:00
Andrew Kane
c0581a0e37 feat: add ability to change the access log format 2020-11-30 21:59:36 -08:00
Jose Diaz-Gonzalez
7e45f1173f fix: update tests for new logging output 2020-11-28 19:14:17 -05:00
Jose Diaz-Gonzalez
21a94b6dca Merge pull request #4204 from dokku/missing-image
Ensure the image is not an empty string
2020-11-28 18:48:33 -05:00
Jose Diaz-Gonzalez
6cd50cb372 fix: ensure the image is not an empty string 2020-11-28 18:46:37 -05:00
Jose Diaz-Gonzalez
bde77dbf78 feat: cleanup log output for failure case
Also mark DOKKU_DISABLE_ANSI_PREFIX_REMOVAL as deprecated (it will be removed in 0.23.0 and no prefixes will be removed at that time).
2020-11-28 03:32:11 -05:00
Jose Diaz-Gonzalez
bd261e6847 Merge pull request #4202 from dokku/4104-aggressive-dangling-clean
Schedule related images for cleanup when retiring containers
2020-11-28 02:15:27 -05:00
Jose Diaz-Gonzalez
f7863c8391 fix: handle clone and rename properly 2020-11-28 00:39:28 -05:00
Jose Diaz-Gonzalez
e8a532645f fix: handle case where container does not exist during retire step
This ma happen during app renames, as the old versions of the containers will no longer be running.
2020-11-28 00:38:28 -05:00
Jose Diaz-Gonzalez
af0d2e6f7a Merge pull request #4160 from nerg4l/go-logs-plugin
Rewrite logs plugin in Go
2020-11-26 04:58:51 -05:00
Jose Diaz-Gonzalez
0786954d34 feat: schedule related images for cleanup when retiring containers
If the containers no longer exist and the images are unused, we should remove the images as well.

Note that images may sometimes stick around for a little while, depending on the retire schedule and the wait time specified for the container.

Closes #4104
2020-11-26 03:21:45 -05:00
Jose Diaz-Gonzalez
a662046f95 Merge pull request #4201 from dokku/dependabot/maven/tests/apps/java/org.eclipse.jetty-jetty-servlet-9.4.35.v20201120
chore(deps): bump jetty-servlet from 9.4.34.v20201102 to 9.4.35.v20201120 in /tests/apps/java
2020-11-24 11:25:36 -05:00
dependabot-preview[bot]
77d7f63857 chore(deps): bump jetty-servlet in /tests/apps/java
Bumps [jetty-servlet](https://github.com/eclipse/jetty.project) from 9.4.34.v20201102 to 9.4.35.v20201120.
- [Release notes](https://github.com/eclipse/jetty.project/releases)
- [Commits](https://github.com/eclipse/jetty.project/compare/jetty-9.4.34.v20201102...jetty-9.4.35.v20201120)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-24 05:47:30 +00:00
Jose Diaz-Gonzalez
73814a5b65 Merge pull request #4200 from dokku/dependabot/composer/tests/apps/php/heroku/heroku-buildpack-php-185
chore(deps-dev): bump heroku/heroku-buildpack-php from 183 to 185 in /tests/apps/php
2020-11-23 10:10:50 -05:00
dependabot-preview[bot]
4ba7d4ea10 chore(deps-dev): bump heroku/heroku-buildpack-php in /tests/apps/php
Bumps [heroku/heroku-buildpack-php](https://github.com/heroku/heroku-buildpack-php) from 183 to 185.
- [Release notes](https://github.com/heroku/heroku-buildpack-php/releases)
- [Changelog](https://github.com/heroku/heroku-buildpack-php/blob/main/CHANGELOG.md)
- [Commits](https://github.com/heroku/heroku-buildpack-php/compare/v183...v185)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-23 06:49:27 +00:00
Jose Diaz-Gonzalez
c343316864 Merge pull request #4198 from dokku/4083-fewer-extracts
Reference extracted Procfile
2020-11-23 01:36:53 -05:00
Jose Diaz-Gonzalez
aa6abe0fd3 Merge pull request #4197 from dokku/retire-containers
Retire intermediate containers after use
2020-11-23 00:45:42 -05:00
Jose Diaz-Gonzalez
bf17023639 refactor: simplify ps:scale setup 2020-11-23 00:11:10 -05:00
Jose Diaz-Gonzalez
97513dee91 fix: handle case where deploying app image does not exist
This happens if ps:scale is called before a deploy.

Also refactor GetDeployingAppImageName() to return an error as the second return parameter.
2020-11-23 00:11:00 -05:00
Jose Diaz-Gonzalez
fceb412fb1 fix: reference extracted Procfile
Rather than attempting to always extract the Procfile, reference the one that was extracted by the last deploy. This fixes issues where 'docker container cp' may fail intermittently for lord knows what reason.

Closes #4083
2020-11-22 17:14:18 -05:00
Jose Diaz-Gonzalez
ef490f0a05 feat: retire intermediate containers after use
Rather than waiting for the next deploy, take advantage of the retire system to retire these containers immediately.

Note that since the retire process happens out of band, the containers may stick around for up to 5 minutes, after which point they will be removed.

Customization of the wait time to retire - currently 60 seconds - is up for future debate. The containers ultimately haven't been useful for debugging, so keeping them around for longer won't help in most cases, and folks can disable the dokku-retire service (or cron) if that is desired.
2020-11-22 16:57:39 -05:00
Jose Diaz-Gonzalez
e0127250ae Merge pull request #4196 from dokku/4134-is-deployed
Correctly doc apps:report output
2020-11-22 16:01:35 -05:00
Jose Diaz-Gonzalez
fcebbd67df docs: correctly doc apps:report output
The `not deployed` message was removed in 0.20.0, and that state can be queried via `ps:report` now.

Closes #4134
2020-11-22 16:00:58 -05:00
Jose Diaz-Gonzalez
d97fc1cfb8 fix: drop extra appname verification 2020-11-22 15:01:36 -05:00
Jose Diaz-Gonzalez
9dba48fc19 feat: deprecate logs:failed without an argument or flag 2020-11-22 15:01:36 -05:00
Jose Diaz-Gonzalez
b6db484393 fix: correct stickler-ci issues 2020-11-22 15:01:36 -05:00
Jose Diaz-Gonzalez
7cdc68a007 refactor: use framework for running function against all apps 2020-11-22 15:01:36 -05:00
Jose Diaz-Gonzalez
1d93246af8 chore: formatting 2020-11-22 15:01:36 -05:00
Jose Diaz-Gonzalez
abce952d0f fix: correct help output 2020-11-22 15:01:36 -05:00
Jose Diaz-Gonzalez
0b30bc8034 chore: formatting 2020-11-22 15:01:36 -05:00
Jose Diaz-Gonzalez
9882c94eec fix: add missing help output 2020-11-22 15:01:36 -05:00
László Görög
9a02f3f1dc refactor: transition logs plugin to go 2020-11-22 15:01:36 -05:00
Jose Diaz-Gonzalez
5f1dc46392 Merge pull request #4195 from luizpicolo/correction-of-the-comments-list
Update process-management.md
2020-11-22 15:00:08 -05:00
Luiz Picolo ツ
c4462c4da4 Update process-management.md 2020-11-22 11:05:49 -04:00
Jose Diaz-Gonzalez
f708964c5f Merge pull request #4194 from dokku/4133-fix-apps-report
Drop appName check in apps:report
2020-11-22 02:29:12 -05:00
Jose Diaz-Gonzalez
d514ca0bb5 fix: drop appName check in apps:report
Closes #4133
2020-11-22 00:07:36 -05:00
Jose Diaz-Gonzalez
5b21cabff3 Merge pull request #4128 from mailformfemi/master
Added the container index to the network-compute-ports trigger
2020-11-21 23:08:06 -05:00
Jose Diaz-Gonzalez
6e36f95bab Merge pull request #4149 from dokku/go-ps-plugin
Rewrite ps plugin in golang
2020-11-21 23:03:36 -05:00
Jose Diaz-Gonzalez
ae1b1c7274 chore: move function to internal 2020-11-21 21:07:20 -05:00
Jose Diaz-Gonzalez
53a76b1353 feat: implement ps:retire 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
5fd1772c3a chore: drop implemented function 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
ab0cc6c444 fix: implement ps:restore
Also add all the niceties around parallelism that were introduced for the other commands.
2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
8ae597ad1d fix: correct help output 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
024ff6e489 chore: remove todone :) 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
246a50a592 docs: cleanup process management docs to make usage more clear. 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
6d514e72fa docs: cleanup headings in nginx plugin 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
e6e5ede436 refactor: make parallel commands available to all of Dokku
There are other places in the codebase that currently act on all apps or could benefit from being able to do so. Being able to run `common.RunCommandAgainstAllApps()` and get that for free will be a boon to implementing this functionality elsewhere.
2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
a19efc1cfa chore: drop all references to all commands where possible. 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
28a36c4908 feat: add proper parallel support 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
ef083e6289 tests: add output and status 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
6e0c376b62 fix: correctly handle property and data perms 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
c9a0f88bf1 fix: correct a few stickler errors 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
f558008574 fix: correct a few stickler errors 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
b44bc686a1 docs: update docs for ps commands 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
037b99865d fix: use CamelCase for constants 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
72ed9dbcce fix: only clean things that were built
This otherwise break non-golang plugins.
2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
5d7b2a84f4 fix: set DATABASE_URL so dj-database-url properly configures a database config 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
1b50b4ab0a fix: ensure the scale file has correct processes when it exists 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
bc9a60f696 feat: switch to updateScalefile from generateScalefile
The process is the same.
2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
44ce5c76ae fix: move log message to correct location 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
702e9cf66c fix: zero out entries that don't exist in the scale file 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
be26f45b5a fix: use correct plugin trigger 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
f13ee16ab8 feat: add support for process state in ps:report output 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
36dc98452d feat: add function for listing files within a directory by prefix 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
82f13af166 chore: return early 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
23ad4bb230 refactor: add ability to skip deploys and fix process scaling 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
a8ccc7d2a7 feat: generate the scale file after app creation
The web process always starts off at `1`, so this is relatively benign.
2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
0a533c754f refactor: split ps:scale func into different functions 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
f6efb53491 fix: reference image instead of imageTag 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
cf4a533f2f feat: add common.CatFile() 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
b4552237b6 feat: add ability to specify a plugin build target
This speeds up development as it allows us to compile the exact binary needed as opposed to the entire plugin.
2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
e8d0965a33 feat: implement all of ps:report 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
bb9f764b9f fix: sync code to bash implementation 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
9193b68854 hack: enable debug 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
db435c40e5 fix: do not delete the destination scale file if it was not extracted previously 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
bf84405b43 fix: handle scaling properly when there is no procfile 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
833a64cc0e fix: check if it can scale by checking for an extracted file 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
54fb2b5d75 feat: suppress output when not necessary 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
85fafcf170 tests: update tests for new Procfile path 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
815cd530c8 chore: remove functions 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
ebdf38e136 refactor: use procfile-get-command plugin trigger instead of direct ps function calls 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
a93f504d45 chore: short-circuit procfile command fetching if there is no procfile 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
cae561f7b9 feat: extract procfile when fetching command as necessary 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
f9969a0e61 refactor: drop extra args from procfile-extract
They were not necessary.
2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
06ce3dfadb fix: remove unused variable 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
ab1d15216c refactor: drop the last argument from procfile-get-command
No external plugin should need to know the internals of where processes are.
2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
e8cfbfad36 fix: drop todos 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
70de587f6c feat: upgrade procfile-util to avoid errors in parsing 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
e7ee7a1781 refactor: implement most of ps plugin in golang 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
c72bbf41ea chore: use helper method 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
34343a846d chore: drop alias 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
e0a70411dd fix: create the file if it does not exist 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
947b2d4db6 fix: add missing comment 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
3714a231a9 chore: drop unused code 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
39984980fb fix: correct io tests 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
c7becc6cad refactor: move all subprocess-related code to new file 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
74f27480fc refactor: move all docker-related functions to new file 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
33d3722060 refactor: move common io-related functions into new file 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
696df45306 refactor: extract release_and_deploy calls to a plugin trigger
Better would be to separate the release and deploy aspects into distinct triggers - as well as have it release a specific image - but this is a good first pass.
2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
1b4559c4a4 chore: drop unused ps import 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
bd132ed7c6 feat: implement helper functions for dockeroptions 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
66696d0b46 refactor: export SetPermissions function 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
943e032d12 refactor: use path/filepath instead of path for joining path parts 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
ff7429fd00 feat: upgrade go-procfile-util
We should ensure we are usinng a new version of it to enable better handling of errors in the Procfile.
2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
236a279793 chore: add todos 2020-11-21 20:57:33 -05:00
Jose Diaz-Gonzalez
7e206b3ba0 Merge pull request #4191 from dokku/josegonzalez-patch-1
Create codeql-analysis.yml
2020-11-21 02:18:36 -05:00
Jose Diaz-Gonzalez
f612709d7d chore: drop languages
Only go and shell are written in dokku...
2020-11-18 14:35:52 -05:00
Jose Diaz-Gonzalez
76412f6ade Create codeql-analysis.yml 2020-11-18 14:33:28 -05:00
Jose Diaz-Gonzalez
45c7cd6e8b Merge pull request #4189 from dokku/dependabot/bundler/tests/apps/ruby/thin-1.8.0
chore(deps): bump thin from 1.7.2 to 1.8.0 in /tests/apps/ruby
2020-11-17 03:45:48 -05:00
Jose Diaz-Gonzalez
67192cf664 Merge pull request #4139 from Yihao-G/master
Allow controlling Nginx proxy-buffer-size, proxy-buffering, proxy-buffers, proxy-busy-buffers-size
2020-11-17 03:16:09 -05:00
Jose Diaz-Gonzalez
3a77c38a2d Merge pull request #4175 from dokku/dependabot/maven/tests/apps/java/org.eclipse.jetty-jetty-servlet-9.4.34.v20201102
chore(deps): bump jetty-servlet from 9.4.33.v20201020 to 9.4.34.v20201102 in /tests/apps/java
2020-11-17 03:14:34 -05:00
Jose Diaz-Gonzalez
810892bf40 Merge pull request #4184 from badsyntax/patch-1
Add note regarding using plugin triggers instead of sourcing functions
2020-11-16 13:04:07 -05:00
Jose Diaz-Gonzalez
4b7384fc98 Merge pull request #4188 from fomojola/patch-2
Added the autosync community plugin
2020-11-16 12:44:10 -05:00
dependabot-preview[bot]
1bdcdc397e chore(deps): bump jetty-servlet in /tests/apps/java
Bumps [jetty-servlet](https://github.com/eclipse/jetty.project) from 9.4.33.v20201020 to 9.4.34.v20201102.
- [Release notes](https://github.com/eclipse/jetty.project/releases)
- [Commits](https://github.com/eclipse/jetty.project/compare/jetty-9.4.33.v20201020...jetty-9.4.34.v20201102)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-16 17:32:13 +00:00
Jose Diaz-Gonzalez
61855fd14b Merge pull request #4172 from dokku/dependabot/go_modules/tests/apps/gogrpc/github.com/golang/protobuf-1.4.3
chore(deps): bump github.com/golang/protobuf from 1.4.2 to 1.4.3 in /tests/apps/gogrpc
2020-11-16 12:30:26 -05:00
Jose Diaz-Gonzalez
4a9ac117e0 Merge pull request #4185 from dokku/dependabot/npm_and_yarn/tests/apps/dot-websocket.disabled/socket.io-3.0.1
chore(deps): bump socket.io from 2.3.0 to 3.0.1 in /tests/apps/.websocket.disabled
2020-11-16 12:29:24 -05:00
Jose Diaz-Gonzalez
0d06903b89 Merge pull request #4190 from dokku/dependabot/composer/tests/apps/php/heroku/heroku-buildpack-php-183
chore(deps-dev): bump heroku/heroku-buildpack-php from 182 to 183 in /tests/apps/php
2020-11-16 11:27:27 -05:00
dependabot-preview[bot]
a70217b791 chore(deps-dev): bump heroku/heroku-buildpack-php in /tests/apps/php
Bumps [heroku/heroku-buildpack-php](https://github.com/heroku/heroku-buildpack-php) from 182 to 183.
- [Release notes](https://github.com/heroku/heroku-buildpack-php/releases)
- [Changelog](https://github.com/heroku/heroku-buildpack-php/blob/main/CHANGELOG.md)
- [Commits](https://github.com/heroku/heroku-buildpack-php/compare/v182...v183)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-16 06:35:26 +00:00
dependabot-preview[bot]
71c698f6b1 chore(deps): bump thin from 1.7.2 to 1.8.0 in /tests/apps/ruby
Bumps [thin](https://github.com/macournoyer/thin) from 1.7.2 to 1.8.0.
- [Release notes](https://github.com/macournoyer/thin/releases)
- [Changelog](https://github.com/macournoyer/thin/blob/master/CHANGELOG)
- [Commits](https://github.com/macournoyer/thin/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-16 05:57:44 +00:00
Jose Diaz-Gonzalez
eec0e5df01 Merge pull request #4183 from dokku/fix-greeter
Embed pb.UnimplementedGreeterServer to avoid linting issues
2020-11-13 11:50:29 -05:00
fomojola
f5020659f3 Added the autosync plugin 2020-11-11 23:41:15 -05:00
Jose Diaz-Gonzalez
e26c5a7970 Merge pull request #4187 from nahtnam/master
Add `-p` flag to "Run on External Volume" tutorial
2020-11-11 22:08:18 -05:00
Manthan Mallikarjun
8b697920e2 Add -p flag to "Run on External Volume" tutorial 2020-11-11 19:03:44 -08:00
Jose Diaz-Gonzalez
415b38bd64 Merge pull request #4186 from badsyntax/patch-2
Add dokku-discourse to community plugins list
2020-11-10 15:32:32 -05:00
Richard Willis
5eb69d33d1 Update plugins.md 2020-11-10 20:06:51 +00:00
Richard Willis
7c44fb8d50 Add dokku-discourse to community plugins list 2020-11-10 20:04:14 +00:00
dependabot-preview[bot]
9a9aec31b7 chore(deps): bump socket.io in /tests/apps/.websocket.disabled
Bumps [socket.io](https://github.com/socketio/socket.io) from 2.3.0 to 3.0.1.
- [Release notes](https://github.com/socketio/socket.io/releases)
- [Changelog](https://github.com/socketio/socket.io/blob/master/CHANGELOG.md)
- [Commits](https://github.com/socketio/socket.io/compare/2.3.0...3.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-10 06:27:04 +00:00
Richard Willis
26e77a693a Update plugin-creation.md
Add info on using plugin triggers instead of sourcing plugin functions
2020-11-09 08:42:59 +00:00
dependabot-preview[bot]
29ff230084 chore(deps): bump github.com/golang/protobuf in /tests/apps/gogrpc
Bumps [github.com/golang/protobuf](https://github.com/golang/protobuf) from 1.4.2 to 1.4.3.
- [Release notes](https://github.com/golang/protobuf/releases)
- [Commits](https://github.com/golang/protobuf/compare/v1.4.2...v1.4.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-11-09 02:14:40 +00:00
Jose Diaz-Gonzalez
21ed81d39e fix: embed pb.UnimplementedGreeterServer to avoid linting issues 2020-11-08 21:11:01 -05:00
Jose Diaz-Gonzalez
77d53b1009 Merge pull request #4182 from dokku/upgrade-herokuish
Upgrade herokuish to fix nodejs tests
2020-11-08 21:07:33 -05:00
Jose Diaz-Gonzalez
664683c6e4 Merge pull request #4173 from karimsan/vagrant-build-essential
Add build-essential to Vagrant provision
2020-11-08 18:45:05 -05:00
Jose Diaz-Gonzalez
361ee01ab0 feat: Upgrade herokuish to fix nodejs tests 2020-11-08 18:40:31 -05:00
Jose Diaz-Gonzalez
6889e65077 Merge pull request #4181 from dokku/4158-conditional-mount
Conditionally mount the dokku-arch folder if it exists
2020-11-08 18:17:21 -05:00
Jose Diaz-Gonzalez
bd9d9fb5b9 fix: conditionally mount the dokku-arch folder if it exists
Closes #4158
2020-11-08 18:16:55 -05:00
Karim Sakhibgareev
231435001c Add build-essential to Vagrant provision 2020-11-02 11:14:37 +00:00
Jose Diaz-Gonzalez
05bf72e0d8 Merge pull request #4156 from ltalirz/fix_dokku_global_cert_4
When `cert:add` remove previous cert before copying the new cert
2020-10-31 22:15:26 -04:00
Jose Diaz-Gonzalez
4b70aaa038 Merge pull request #4165 from dokku/dependabot/maven/tests/apps/java/org.eclipse.jetty-jetty-servlet-9.4.33.v20201020
chore(deps): bump jetty-servlet from 9.4.31.v20200723 to 9.4.33.v20201020 in /tests/apps/java
2020-10-31 20:47:05 -04:00
Jose Diaz-Gonzalez
d52f676a84 Merge pull request #4153 from dokku/dependabot/composer/tests/apps/php/heroku/heroku-buildpack-php-182
chore(deps-dev): bump heroku/heroku-buildpack-php from 181 to 182 in /tests/apps/php
2020-10-31 15:50:07 -04:00
Jose Diaz-Gonzalez
4a1717e837 Merge pull request #4170 from chrisjsimpson/patch-1
Add note on how to enable buildkit usage
2020-10-31 15:30:17 -04:00
chrisjsimpson
5aaa88f41e dockerfiles.md how to enable docker buildkit 2020-10-28 18:05:54 +00:00
Jose Diaz-Gonzalez
8300f433e9 Merge pull request #4168 from dokku/revert-4167-patch-1
Revert "The default branch for ruby-getting-started is 'main', not 'master"
2020-10-27 19:17:19 -04:00
Jose Diaz-Gonzalez
bd2867b846 Revert "The default branch for ruby-getting-started is 'main', not 'master" 2020-10-27 19:17:08 -04:00
Jose Diaz-Gonzalez
da1a47b57d Merge pull request #4167 from nateww/patch-1
The default branch for ruby-getting-started is 'main', not 'master
2020-10-27 19:16:12 -04:00
Nate
75bb83bdec The default branch for ruby-getting-started is 'main', not 'master
- Ensure the user is using the master branch to match later instructions to do a git push master.
2020-10-27 17:11:28 -06:00
dependabot-preview[bot]
5bca600894 chore(deps): bump jetty-servlet in /tests/apps/java
Bumps [jetty-servlet](https://github.com/eclipse/jetty.project) from 9.4.31.v20200723 to 9.4.33.v20201020.
- [Release notes](https://github.com/eclipse/jetty.project/releases)
- [Commits](https://github.com/eclipse/jetty.project/compare/jetty-9.4.31.v20200723...jetty-9.4.33.v20201020)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-10-23 05:47:49 +00:00
Aubrey Hewes
607b11ab6b fixed: when adding a cert remove previous cert before copying the new one
This fixes when a user (or plugin) has replaced the cert with a symlink; else the symlinked file would be overwritten.

This mainly is in the case of a global-cert (plugin) wildcard cert
2020-10-15 13:32:56 +02:00
dependabot-preview[bot]
6543647b3c chore(deps-dev): bump heroku/heroku-buildpack-php in /tests/apps/php
Bumps [heroku/heroku-buildpack-php](https://github.com/heroku/heroku-buildpack-php) from 181 to 182.
- [Release notes](https://github.com/heroku/heroku-buildpack-php/releases)
- [Changelog](https://github.com/heroku/heroku-buildpack-php/blob/main/CHANGELOG.md)
- [Commits](https://github.com/heroku/heroku-buildpack-php/compare/v181...v182)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-10-14 00:20:21 +00:00
Jose Diaz-Gonzalez
57b317b0a4 Merge pull request #4144 from dokku/dependabot/composer/tests/apps/php/heroku/heroku-buildpack-php-181 2020-10-10 20:44:47 -04:00
dependabot-preview[bot]
d5cc136df2 chore(deps-dev): bump heroku/heroku-buildpack-php in /tests/apps/php
Bumps [heroku/heroku-buildpack-php](https://github.com/heroku/heroku-buildpack-php) from 180 to 181.
- [Release notes](https://github.com/heroku/heroku-buildpack-php/releases)
- [Changelog](https://github.com/heroku/heroku-buildpack-php/blob/main/CHANGELOG.md)
- [Commits](https://github.com/heroku/heroku-buildpack-php/compare/v180...v181)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-10-02 04:50:32 +00:00
Jose Diaz-Gonzalez
0731616ebf Merge pull request #4135 from znz/fix-broken-table
Fix broken table
2020-09-23 00:47:02 -04:00
Jose Diaz-Gonzalez
6957a33ec7 Merge pull request #4137 from dokku/dependabot/composer/tests/apps/php/heroku/heroku-buildpack-php-180
chore(deps-dev): bump heroku/heroku-buildpack-php from 179 to 180 in /tests/apps/php
2020-09-23 00:46:47 -04:00
Jose Diaz-Gonzalez
46c274dcf2 Merge pull request #4140 from swrobel/patch-2
Note Ubuntu 20.04 support in README
2020-09-23 00:46:10 -04:00
Stefan Wrobel
ae21056401 Note Ubuntu 20.04 support in README 2020-09-21 17:57:32 -07:00
Yihao
30414cbd0c feat: Allow controlling nginx proxy-buffer-size, proxy-buffering, proxy-buffers, proxy-busy-buffers-size 2020-09-19 09:51:55 +09:30
dependabot-preview[bot]
87574f7d76 chore(deps-dev): bump heroku/heroku-buildpack-php in /tests/apps/php
Bumps [heroku/heroku-buildpack-php](https://github.com/heroku/heroku-buildpack-php) from 179 to 180.
- [Release notes](https://github.com/heroku/heroku-buildpack-php/releases)
- [Changelog](https://github.com/heroku/heroku-buildpack-php/blob/main/CHANGELOG.md)
- [Commits](https://github.com/heroku/heroku-buildpack-php/compare/v179...v180)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-09-16 00:54:01 +00:00
Jose Diaz-Gonzalez
30d8ebffb9 Merge pull request #4136 from hugopeixoto/docs/ruby-getting-started-uses-main-instead-of-master
Use git push main:master in docs
2020-09-14 16:23:00 -04:00
Hugo Peixoto
71876756a4 Use git push main:master in docs
Heroku's ruby project changed its default branch from master to main.
This broke the examples in the documentation. This change explicitly
names main and master.
2020-09-14 20:23:35 +01:00
Kazuhiro NISHIYAMA
b1b85b4106 Fix broken table
[ci skip]
2020-09-13 12:46:46 +09:00
Jose Diaz-Gonzalez
196b5d08eb Merge pull request #4130 from dokku/3932-clear-proxy-on-boot
Clear proxy configs on boot
2020-09-10 12:24:27 -04:00
Jose Diaz-Gonzalez
2026a2731d Merge pull request #4131 from dokku/4088-bump-docker
Bump minimum docker version
2020-09-10 10:56:21 -04:00
Jose Diaz-Gonzalez
c8d932f768 fix: bump minimum docker version
This is necessary in order to properly support image filtering during 'dokku cleanup' calls.

Closes #4088
2020-09-10 02:00:57 -04:00
Jose Diaz-Gonzalez
752a0cacd9 fix: clear proxy configs on boot
Unfortunately, Docker does not persist container IPs on boot, so containers may come up with the wrong IP, resulting in proxying to the incorrect app after a server restart. Instead, we should delete the configs and let ps:restore rebuild the proxy config correctly.

Closes #3932
2020-09-10 01:58:45 -04:00
Jose Diaz-Gonzalez
ecc6c9e01d Merge pull request #4129 from dokku/4102-prohibit-non-dns-names
Prohibit non-dns names for apps and process types
2020-09-09 23:39:27 -04:00
Jose Diaz-Gonzalez
7e9f98b513 Merge pull request #4080 from hugopeixoto/fix/app-vhost-usage 2020-09-09 21:23:15 -04:00
Jose Diaz-Gonzalez
0f514f300e feat: prohibit non-dns names for apps and process types
This is necessary for ensuring ssl certificates can be auto-retrieved for apps, and also easing integration into schedulers that use names and process types as part of DNS records.

As well, this fixes an issue where we may potentially have invalid DNS entries when adding apps to custom networks.

Closes #4102
Closes #4114
2020-09-09 20:07:50 -04:00
Jose Diaz-Gonzalez
017cfef6a2 Merge pull request #4125 from dokku/4086-custom-nginx-app-conf-location
Allow customizing the various nginx templates
2020-09-09 19:51:33 -04:00
Femi Omojola
81512504a7 Added the container index to the network-compute-ports trigger: useful for alternative proxy implementations. Updated the documentation for the network-compute-ports trigger to clarify the arguments 2020-09-08 09:26:35 -04:00
Jose Diaz-Gonzalez
becf7c1f86 feat: allow customizing the various nginx templates
This will let custom distributions of Dokku to override the internal templates without needing to repackage Dokku or overwrite core files.
2020-09-06 13:57:35 -04:00
Jose Diaz-Gonzalez
9e6c89428e Merge pull request #4124 from dokku/4101-docker-options-docs 2020-09-06 13:21:30 -04:00
Jose Diaz-Gonzalez
8d96be73b7 docs: note that docker options require app rebuilds
Closes #4101
2020-09-06 13:20:34 -04:00
Jose Diaz-Gonzalez
21c8639397 docs: drop advanced usage
Dokku internals shouldn't be exposed in docs. Additionally, the internals here are likely to change in the future as this moves to the upcoming prop binary, so having incorrect docs will hinder that move.
2020-09-06 13:18:34 -04:00
Jose Diaz-Gonzalez
1699c6f3a3 Merge pull request #4118 from dokku/dependabot/pip/tests/apps/dockerfile-release/django-3.0.7
chore(deps): bump django from 3.0.2 to 3.0.7 in /tests/apps/dockerfile-release
2020-09-06 12:56:59 -04:00
Jose Diaz-Gonzalez
70c947289f Merge pull request #4121 from dokku/4087-nginx-extract-disable
Add ability to disable custom ninx.conf.sigil extraction
2020-09-05 11:48:57 -04:00
Jose Diaz-Gonzalez
a4e54b6d00 Merge pull request #4123 from fomojola/patch-1
Support for expected CHECKS text with special characters
2020-09-04 19:12:16 -04:00
fomojola
ab9780d971 Support for expected text with special characters
Added a quote around the "$EXPECTED" to deal with text with restricted characters. While deploying a Spring Boot application, the content of the built-in health check is {"status":"UP"}. Unfortunately all my checks failed, because for some reason the comparison didn't like this content.

remote:  !     http://localhost/actuator/health: expected to but did not find: "{"status":"UP"}"
remote:  !     Check attempt 7/10 failed.

After making this change, it works: I'm assuming the difference is that the presence of the quote characters in the content.
2020-09-04 16:49:47 -04:00
Jose Diaz-Gonzalez
f5ba843cf3 feat: add ability to disable custom ninx.conf.sigil extraction
Closes #4087
2020-09-04 11:29:23 -04:00
Jose Diaz-Gonzalez
052f2a5868 Merge pull request #4115 from dokku/4099-image-cleanup
Add missing labels to built images
2020-08-31 21:25:55 -04:00
dependabot[bot]
893df14c3e chore(deps): bump django in /tests/apps/dockerfile-release
Bumps [django](https://github.com/django/django) from 3.0.2 to 3.0.7.
- [Release notes](https://github.com/django/django/releases)
- [Commits](https://github.com/django/django/compare/3.0.2...3.0.7)

Signed-off-by: dependabot[bot] <support@github.com>
2020-09-01 01:23:13 +00:00
Jose Diaz-Gonzalez
43c521c193 Merge pull request #4117 from dokku/go-app-json 2020-08-31 21:22:21 -04:00
Jose Diaz-Gonzalez
2a1d3877f1 fix: add docblock 2020-08-31 21:03:16 -04:00
Jose Diaz-Gonzalez
4d735b4d88 fix: do not output error on checking for process type existence 2020-08-31 18:55:39 -04:00
Jose Diaz-Gonzalez
b8b6d64f75 fix: correct stickler-ci errors and remove unused code 2020-08-31 18:44:00 -04:00
Jose Diaz-Gonzalez
2b65def123 fix: pass command directly to entrypoint
Closes #3706
2020-08-31 18:36:07 -04:00
Jose Diaz-Gonzalez
7fe69fa269 fix: add missing hook 2020-08-31 18:26:36 -04:00
Jose Diaz-Gonzalez
84367e1c16 fix: correctly handle injecting environment variables to deployment tasks
Also test that release tasks are invoked the correct environment.

Closes #3817
2020-08-31 15:01:14 -04:00
Jose Diaz-Gonzalez
0faf305f28 Merge pull request #4116 from Schlepptop/config-clear-fix 2020-08-31 14:04:27 -04:00
Michael Chen
e64f7b34ff Add unit test for config:clear 2020-08-31 18:48:36 +02:00
Michael Chen
5ea4c9a73d 🐛 Whitelist config:clear command in Makefile 2020-08-31 18:28:59 +02:00
Jose Diaz-Gonzalez
7e7931f1ce fix: add run prefix to deploy_app calls 2020-08-31 04:52:44 -04:00
Jose Diaz-Gonzalez
428beb3413 fix: pass in correct image variable 2020-08-31 04:23:10 -04:00
Jose Diaz-Gonzalez
9aab7dce7d feat: create ps directory on app create 2020-08-31 04:22:40 -04:00
Jose Diaz-Gonzalez
2478556df1 fix: ensure the base directory exists before extracting the file 2020-08-31 04:22:27 -04:00
Jose Diaz-Gonzalez
a2d4ba4689 fix: set correct args for fn-procfile-extract 2020-08-31 04:21:59 -04:00
Jose Diaz-Gonzalez
4ab9632526 fix: handle case where there is no app.json
Somehow, an empty file may get copied over...
2020-08-31 02:56:50 -04:00
Jose Diaz-Gonzalez
baa819c2a5 fix: add missing labels to built images
This fixes an issue where disk space is not recouped after deploys unless 'dokku cleanup' without arguments is called.

Also injects the label-schema labels as necessary.

Refs #4099
2020-08-31 02:37:04 -04:00
Jose Diaz-Gonzalez
aaf8bc811a chore: drop now unused internal-functions file 2020-08-31 02:33:07 -04:00
Jose Diaz-Gonzalez
53dabf7fd0 refactor: fix handling of string andd array CMD and ENTRYPOINT values
Previous versions extracted the values as strings, prefixing the values with `/bin/sh -c '$CMD'` unnecessarily. This caused issues where we would incorrectly overrride these values when an app had a predeploy script.

Closes #3143
2020-08-31 02:31:36 -04:00
Jose Diaz-Gonzalez
7ca4cba8ec chore: drop extra quotes 2020-08-31 02:06:24 -04:00
Jose Diaz-Gonzalez
5965b70b39 fix: do not log empty messages 2020-08-31 02:05:21 -04:00
Jose Diaz-Gonzalez
23db07ed4e chore: remove extra LogDebug call 2020-08-31 02:05:03 -04:00
Jose Diaz-Gonzalez
53e75e7898 chore: rewrite log message
This change makes it more clear as to what is being executed.
2020-08-31 02:04:51 -04:00
Jose Diaz-Gonzalez
16d15ae9bf Merge pull request #4113 from dokku/remove-herokuish-release
Drop herokuish release code
2020-08-30 17:01:40 -04:00
Jose Diaz-Gonzalez
3def0ae036 Merge pull request #4103 from dokku/dependabot/composer/tests/apps/php/heroku/heroku-buildpack-php-179
chore(deps-dev): bump heroku/heroku-buildpack-php from 178 to 179 in /tests/apps/php
2020-08-30 17:01:29 -04:00
Jose Diaz-Gonzalez
31ab2f97f6 fix: split arguments to ensure they get parsed properly 2020-08-30 16:05:10 -04:00
Jose Diaz-Gonzalez
8126c63d6e fix: properly handle return from PluginTriggerOutput 2020-08-30 14:51:25 -04:00
Jose Diaz-Gonzalez
beb42b53b2 tests: ensure the deploy succeeeds 2020-08-30 14:51:02 -04:00
Jose Diaz-Gonzalez
6df38a56d1 fix: properly set property... 2020-08-30 14:22:55 -04:00
Jose Diaz-Gonzalez
68debb44f7 refactor: use plugin trigger to delete procfile 2020-08-30 14:22:47 -04:00
Jose Diaz-Gonzalez
f27096f235 refactor: implement appjson in golang 2020-08-30 13:41:15 -04:00
Jose Diaz-Gonzalez
f2a623fde0 fix: trim whitespace to ensure container ID is valid 2020-08-30 13:41:15 -04:00
Jose Diaz-Gonzalez
7ee26d41f7 fix: correct doc 2020-08-30 13:41:15 -04:00
Jose Diaz-Gonzalez
55c77773ab fix: read input correct as string 2020-08-30 13:41:15 -04:00
Jose Diaz-Gonzalez
147abc5c6b feat: add LogDebug 2020-08-30 13:41:15 -04:00
Jose Diaz-Gonzalez
e6f2ee6499 fix: handle edge cases during procfile removal 2020-08-30 13:41:15 -04:00
Jose Diaz-Gonzalez
8f671b43ae feat: add helper functions for getting global config 2020-08-30 13:41:14 -04:00
Jose Diaz-Gonzalez
617ca885f1 fix: run release during predeploy 2020-08-30 13:41:14 -04:00
Jose Diaz-Gonzalez
1813317e86 fix: execute correct script 2020-08-30 13:41:14 -04:00
Jose Diaz-Gonzalez
9bf7ddc258 fix: correct module name 2020-08-30 13:41:14 -04:00
Jose Diaz-Gonzalez
77f211c372 feat: add command for logging container output 2020-08-30 13:41:14 -04:00
Jose Diaz-Gonzalez
939cb67daa fix: remove container after use 2020-08-30 13:41:14 -04:00
Jose Diaz-Gonzalez
1ea60a16e5 refactor: move external procfile manipulation into triggers
This also cleans up the internal APIs a bit.
2020-08-30 13:41:14 -04:00
Jose Diaz-Gonzalez
98bc513336 feat: implement getPhaseScript and scaffold out plugin triggers 2020-08-30 13:41:14 -04:00
Jose Diaz-Gonzalez
b6d5d291b0 feat: template out app.json plugin
Note: this won't compile as the triggers themselves aren't implemented just yet.
2020-08-30 13:41:14 -04:00
Jose Diaz-Gonzalez
6f6fa709ec feat: implement common.CopyFromImage 2020-08-30 13:41:14 -04:00
Jose Diaz-Gonzalez
82a6dbf887 fix: correct variable declaration 2020-08-30 13:41:14 -04:00
Jose Diaz-Gonzalez
dee879538c feat; add common.LogExclaim() 2020-08-30 13:41:14 -04:00
Jose Diaz-Gonzalez
0351bf73b0 fix: update deprecated function name 2020-08-30 13:41:14 -04:00
Jose Diaz-Gonzalez
5d08964699 feat: add AppHostRoot() function
This makes it a bit easier to fetch files from the host path
2020-08-30 13:41:14 -04:00
Jose Diaz-Gonzalez
96b4ffbf5b chore: drop herokuish release code
This is now done upstream in the herokuish project.
2020-08-29 15:54:49 -04:00
dependabot-preview[bot]
7ad723f23d chore(deps-dev): bump heroku/heroku-buildpack-php in /tests/apps/php
Bumps [heroku/heroku-buildpack-php](https://github.com/heroku/heroku-buildpack-php) from 178 to 179.
- [Release notes](https://github.com/heroku/heroku-buildpack-php/releases)
- [Changelog](https://github.com/heroku/heroku-buildpack-php/blob/master/CHANGELOG.md)
- [Commits](https://github.com/heroku/heroku-buildpack-php/compare/v178...v179)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-08-28 06:10:42 +00:00
Jose Diaz-Gonzalez
a97f1d02cf Merge pull request #4091 from dokku/dependabot/maven/tests/apps/java/org.eclipse.jetty-jetty-servlet-9.4.31.v20200723
chore(deps): bump jetty-servlet from 9.4.30.v20200611 to 9.4.31.v20200723 in /tests/apps/java
2020-08-28 01:22:02 -04:00
Jose Diaz-Gonzalez
fe8e97b7cb Merge pull request #4098 from carlosgeos/master
Add a note on how nginx handles load balancing
2020-08-28 01:21:42 -04:00
Jose Diaz-Gonzalez
b13de85477 Merge pull request #4111 from dokku/josegonzalez-patch-2 2020-08-27 22:54:43 -04:00
Jose Diaz-Gonzalez
ced920eb74 docs: add large version of dokku image
No license is explicitly stated.

[ci skip]
2020-08-27 22:54:05 -04:00
Jose Diaz-Gonzalez
eded6cffe0 Merge pull request #4100 from turicas/fix/docs
Fix markdown syntax in nginx docs
2020-08-03 18:53:54 -04:00
Álvaro Justen (@turicas)
9d7a67ae7f Fix markdown syntax in docs 2020-08-03 19:52:12 -03:00
Carlos Requena López
638807685a docs: add a note on how nginx handles load balancing
[ci skip] when the web proctype is scaled
2020-08-02 19:50:54 +02:00
Jose Diaz-Gonzalez
529289f364 Release 0.21.4
# History

## 0.21.4

Install/update via the bootstrap script:

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

### Bug Fixes

- #4092: @Yihao-G Fix nginx proxy-read-timeout not set for HTTPS
- #4095: @GennadySpb Fix application removal during uninstallation

### New Features

- #4097: @josegonzalez Update herokuish

### Documentation

- #4096: @josegonzalez Clarify that special config variables are not exposed to applications
- #4007: @turicas Clarify nginx.conf.sigil path in image when deploying non-buildpack apps
- #4078: @gurpreetatwal Add more details to `nginx-dokku-template-source` trigger
- #4090: @ankane Official plugins no longer in beta
- #4085: @josegonzalez Set warning on resource type as an actual warning

### Other

- #4082: @dependabot-preview[bot] chore(deps): bump monolog/monolog from 1.25.4 to 1.25.5 in /tests/apps/php
2020-08-01 23:53:44 -04:00
Jose Diaz-Gonzalez
2fdd261961 Merge pull request #4097 from dokku/update-herokuish
Update herokuish
2020-08-01 21:43:01 -04:00
Jose Diaz-Gonzalez
0bce73d690 feat: update herokuish 2020-08-01 21:42:33 -04:00
Jose Diaz-Gonzalez
0107909a85 Merge pull request #4096 from dokku/josegonzalez-patch-2
Clarify that special config variables are not exposed to applications
2020-08-01 20:43:56 -04:00
Jose Diaz-Gonzalez
d41a53d9db docs: clarify that special config variables are not exposed to applications
Closes #4093

[ci skip]
2020-08-01 20:43:36 -04:00
Jose Diaz-Gonzalez
af0fb558f6 Merge pull request #4007 from turicas/fix/docs-custom-nginx-conf 2020-08-01 20:39:15 -04:00
Jose Diaz-Gonzalez
1452e88248 docs: further clarify how we handle image copies
[ci skip]
2020-08-01 20:38:37 -04:00
Jose Diaz-Gonzalez
d1b848e3eb Merge pull request #4078 from gurpreetatwal/docs-nginx-dokku-template-source 2020-08-01 20:31:48 -04:00
Jose Diaz-Gonzalez
d6273b4751 Merge pull request #4092 from Yihao-G/master
Fix nginx proxy-read-timeout not set for HTTPS
2020-08-01 20:30:47 -04:00
Jose Diaz-Gonzalez
5bd5e6249b Merge pull request #4095 from GennadySpb/fix-deb-prerm
Fix application removal during uninstallation
2020-08-01 20:30:22 -04:00
Gennady Lipenkov
4033266664 Fix application list command 2020-08-02 02:40:11 +03:00
Yihao
9cbe771123 Fix proxy-read-timeout is not set for HTTPS 2020-07-30 18:39:23 +09:30
dependabot-preview[bot]
a545585ea1 chore(deps): bump jetty-servlet in /tests/apps/java
Bumps [jetty-servlet](https://github.com/eclipse/jetty.project) from 9.4.30.v20200611 to 9.4.31.v20200723.
- [Release notes](https://github.com/eclipse/jetty.project/releases)
- [Commits](https://github.com/eclipse/jetty.project/compare/jetty-9.4.30.v20200611...jetty-9.4.31.v20200723)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-30 06:48:16 +00:00
Jose Diaz-Gonzalez
2efa8483e2 Merge pull request #4090 from ankane/plugins
Official plugins no longer in beta starting with 0.21.2 release
2020-07-30 01:56:47 -04:00
Andrew Kane
a3961e40ee Official plugins no longer in beta starting with 0.21.2 release 2020-07-29 22:54:06 -07:00
Jose Diaz-Gonzalez
f9b1a74edf docs: expand docs around herokuish upgrades
Refs https://github.com/dokku/dokku/pull/4063#discussion_r460257032

[ci skip]
2020-07-28 15:12:51 -04:00
Jose Diaz-Gonzalez
e1753bbac4 Merge pull request #4085 from dokku/josegonzalez-patch-2
Set warning on resource type as an actual warning
2020-07-25 19:17:11 -04:00
Jose Diaz-Gonzalez
13392dcf5b docs: set warning on resource type as an actual warning
[ci skip]
2020-07-25 19:15:35 -04:00
Jose Diaz-Gonzalez
879d47b30d Merge pull request #4082 from dokku/dependabot/composer/tests/apps/php/monolog/monolog-1.25.5
chore(deps): bump monolog/monolog from 1.25.4 to 1.25.5 in /tests/apps/php
2020-07-24 11:23:44 -04:00
dependabot-preview[bot]
bb61aaa85c chore(deps): bump monolog/monolog in /tests/apps/php
Bumps [monolog/monolog](https://github.com/Seldaek/monolog) from 1.25.4 to 1.25.5.
- [Release notes](https://github.com/Seldaek/monolog/releases)
- [Changelog](https://github.com/Seldaek/monolog/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Seldaek/monolog/compare/1.25.4...1.25.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-24 09:28:07 +00:00
Hugo Peixoto
d5b2d0d98e Stop using VHOST when listing app domains and urls 2020-07-19 16:29:35 +01:00
Hugo Peixoto
1b7761ce8d Refactor domain add functions 2020-07-19 16:29:11 +01:00
Gurpreet Atwal
8ab1342110 docs: add more details to nginx-dokku-template-source trigger
[ci skip]
2020-07-18 13:26:17 -07:00
Jose Diaz-Gonzalez
7c0eb20de8 Release 0.21.3
# History

## 0.21.3

Install/update via the bootstrap script:

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

### Bug Fixes

- #4077: @Schlepptop Fix config_all bug introduced in 0.21.2
- #4074: @josegonzalez Force set all plugin permissions on plugin:install/update

### Documentation

- #4073: @josegonzalez Document the official shell client
2020-07-18 13:34:29 -04:00
Jose Diaz-Gonzalez
c26258bd2b Merge pull request #4077 from Schlepptop/master
Fix config_all bug introduced in 0.21.2
2020-07-18 13:32:00 -04:00
schlepptop
d04c04ac17 Fix deprecation warning in config_all but actually don't break the thing in the process 2020-07-18 16:20:00 +02:00
Jose Diaz-Gonzalez
c5b53afd8b Merge pull request #4074 from dokku/4027-plugin-force-permissions
Force set all plugin permissions on plugin:install/update
2020-07-17 17:08:21 -04:00
Jose Diaz-Gonzalez
9ac7b00718 fix: force set all plugin permissions on plugin:install/update
Closes #4027
2020-07-17 15:55:50 -04:00
Jose Diaz-Gonzalez
59f815962d Merge pull request #4073 from dokku/3963-document-shell-client
Document the official shell client
2020-07-17 14:07:29 -04:00
Jose Diaz-Gonzalez
bb33a2fe27 docs: document the official shell client
Closes #3963

[ci skip]
2020-07-17 14:07:00 -04:00
Jose Diaz-Gonzalez
5e2bd55fb5 Release 0.21.2
# History

## 0.21.2

Install/update via the bootstrap script:

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

### Bug Fixes

- #4072: @Schlepptop Fix deprecation warning in config_all

### New Features

- #4061: @josegonzalez Drop go sum and mod files from releases

### Refactors

- #4064: @hugopeixoto Use *_PATH consistently

### Documentation

- #4069: @josegonzalez Scheduler plugins are no longer beta
- #4068: @josegonzalez Official plugins are no longer in beta
- #4066: @ltalirz Add ansible as installation route
- #4063: @josegonzalez Clarify why we stop/rebuild apps during upgrade
- #4040: @fonsp Added link to the buildpack plugin docs
- #4062: @hugopeixoto Rewrite upgrade instructions
2020-07-17 11:41:17 -04:00
Jose Diaz-Gonzalez
4b36e2f3b7 Merge pull request #4072 from Schlepptop/master 2020-07-17 11:40:58 -04:00
schlepptop
ed94d326d4 Fix deprecation warning in config_all but don't break the thing in the process 2020-07-17 16:11:29 +02:00
schlepptop
17be38e532 Fix deprecation warning in config_all 2020-07-17 16:03:12 +02:00
Jose Diaz-Gonzalez
3f09c82379 Merge pull request #4069 from dokku/josegonzalez-patch-2
Scheduler plugins are no longer beta
2020-07-16 13:40:39 -04:00
Jose Diaz-Gonzalez
c2cb0486f4 docs: scheduler plugins are no longer beta
[ci skip]
2020-07-16 13:40:21 -04:00
Jose Diaz-Gonzalez
b1b5a7fa11 Merge pull request #4068 from dokku/josegonzalez-patch-2
Official plugins are no longer in beta
2020-07-16 13:38:35 -04:00
Jose Diaz-Gonzalez
3a9d88d175 docs: official plugins are no longer in beta
[ci skip]
2020-07-16 13:38:08 -04:00
Jose Diaz-Gonzalez
a422c64153 Merge pull request #4066 from ltalirz/add-ansible-role
add ansible as installation route
2020-07-16 10:44:00 -04:00
Jose Diaz-Gonzalez
c01767fade Merge pull request #4064 from hugopeixoto/fix/normalize-path-file-variable-names 2020-07-16 10:40:08 -04:00
Leopold Talirz
f59dbe4f63 add ansible as installation route 2020-07-16 11:46:11 +02:00
Hugo Peixoto
2160a8b64e Use *_PATH consistently
GLOBAL_VHOST_PATH and GLOBAL_VHOST_FILE were used to represent the same
thing. Same for APP_URLS_PATH and APP_VHOST_PATH.

This normalizes all of those to _PATH.
2020-07-16 05:40:56 +01:00
Jose Diaz-Gonzalez
c66c85429e Merge pull request #4063 from dokku/josegonzalez-patch-2
Clarify why we stop/rebuild apps during upgrade
2020-07-14 19:48:34 -04:00
Jose Diaz-Gonzalez
520bc94357 docs: clarify why we stop/rebuild apps during upgrade
[ci skip]
2020-07-14 19:48:10 -04:00
Jose Diaz-Gonzalez
dea4251b2c Merge pull request #4040 from fonsp/patch-1
Added link to the buildpack plugin docs
2020-07-14 19:33:01 -04:00
Jose Diaz-Gonzalez
7f64bb1255 docs: re-add dockerfile reference
Also add docker image note.
2020-07-14 19:32:52 -04:00
Jose Diaz-Gonzalez
831600d8c9 Merge pull request #4061 from dokku/clean-go-files
Drop go sum and mod files from releases
2020-07-14 18:19:05 -04:00
Jose Diaz-Gonzalez
d42b046177 Merge pull request #4062 from hugopeixoto/docs/upgrade-instructions
Rewrite upgrade instructions
2020-07-14 18:18:05 -04:00
Jose Diaz-Gonzalez
738bfb7446 docs: add 0.21.0 migration guide
[ci skip]
2020-07-14 15:08:33 -04:00
Hugo Peixoto
a72c04ed65 Rewrite upgrade instructions 2020-07-14 19:36:55 +01:00
Jose Diaz-Gonzalez
3921cab2df fix: drop go sum and mod files from releases
These aren't necessary and only bloat the package.
2020-07-14 12:47:26 -04:00
Jose Diaz-Gonzalez
a52dbafc5f Release 0.21.1
# History

## 0.21.1

Install/update via the bootstrap script:

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

### Documentation

- #4060: @josegonzalez Add warning about the 0.21.0 release
2020-07-14 11:44:38 -04:00
Jose Diaz-Gonzalez
d26eadfa21 Merge pull request #4060 from dokku/josegonzalez-patch-2
Add warning about the 0.21.0 release
2020-07-14 11:43:20 -04:00
Jose Diaz-Gonzalez
321a310fe5 docs: add warning about the 0.21.0 release
Refs #4059
2020-07-14 11:43:02 -04:00
Jose Diaz-Gonzalez
772f9d1b6a Release 0.21.0
# History

## 0.21.0

Install/update via the bootstrap script:

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

### Bug Fixes

- #4058: @hugopeixoto Ensure web installer creates files with correct permissions
- #4055: @hugopeixoto Delete dokkurc recursively during uninstall
- #4057: @hugopeixoto Install sudo when installing from source
- #4045: @josegonzalez Filter gpus instead of nvidia-gpus from resource arguments
- #4029: @josegonzalez Filter args _after_ docker-args-process-deploy
- #4026: @josegonzalez Filter resource args from deploy tasks
- #4022: @josegonzalez Do not allow slashes in app names
- #4020: @josegonzalez Properly handle multiple containers in ps:inspect
- #3989: @josegonzalez Correct entering running containers
- #3977: @josegonzalez Set default port for all run commands
- #3969: @josegonzalez Do not logrotate all services files
- #3964: @josegonzalez Remove all --force-yes usage throughout the codebase
- #3955: @benwh Fix missing 502 error page
- #3953: @josegonzalez Use correct function name for cmd-tar-in and update migration guide

### New Features

- #4041: @rvanlaar feat: Add download option to the certs plugin
- #4043: @josegonzalez Allow controlling nginx proxy-read-timeout
- #4038: @josegonzalez Create proxy:build-config command
- #4021: @josegonzalez Depend on python3 binary for CentOS 8 support
- #4004: @josegonzalez Add support for moby-engine
- #3967: @josegonzalez Add Ubuntu 20.04 support
- #3988: @josegonzalez Upgrade plugn to 0.5.0
- #3987: @josegonzalez Upgrade sigil to 0.6.0
- #3986: @josegonzalez Upgrade sshcommand to 0.11.0
- #3985: @josegonzalez Upgrade go-procfile-util to 0.8.2
- #3982: @josegonzalez Allow apps named tls
- #3979: @josegonzalez Upgrade herokuish
- #3971: @josegonzalez feat: allow users to customize the source of the dokku.conf nginx template
- #3966: @josegonzalez Move domain manipulation into triggers
- #3965: @josegonzalez Drop dokku references in logging output
- #3954: @josegonzalez feat: upgrade herokuish to 0.5.12
- #3940: @josegonzalez Expose last updated time in git:report
- #3939: @josegonzalez Add support for outputting the last visited time

### Refactors

- #4035: @josegonzalez Switch to go mod
- #4008: @josegonzalez Standardize golang command code

### Documentation

- #4056: @swrobel Remove invalid help entry for dokku ps commmand
- #4039: @josegonzalez Break out bc-break and refactors in changelog
- #4025: @alexjj Switch AUR helper to yay
- #4019: @tdak Added one possible solution to an error
- #4014: @rvanlaar Update dreamhost cloudinit script
- #4003: @josegonzalez Add dokku.ai asset
- #3999: @DavidLemayian Update URL for less than 1gb memory in bootstrap.sh [ci skip]
- #3998: @josegonzalez Document the #dokku channel on slack
- #3996: @josegonzalez Clarify network aliases and add section on tld management
- #3980: @josegonzalez Clarify that the web installer is not supported in docker-based installs
- #3970: @josegonzalez Clarify the 'see the docs' internal links
- #3968: @josegonzalez Document access.conf issue
- #3957: @swrobel Add official registry plugin
- #3942: @scowalt Fix grammar in environment variables documentation

### Tests

- #4046: @rvanlaar Make `make test` pass on linting
- #4037: @josegonzalez Try to output oomkill information
- #4036: @josegonzalez Store the deb and rpm artifacts
- #4034: @josegonzalez Teardown apps and containers in global teardown
- #4031: @josegonzalez Delete old apps and ensure the test helper is quieter
- #4030: @josegonzalez Update circleci workflow
- #3947: @jayjun Scope init tests to container processes only

### Other

- #4051: @dependabot-preview[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 177 to 178 in /tests/apps/php
- #4028: @dependabot-preview[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 176 to 177 in /tests/apps/php
- #4016: @dependabot-preview[bot] chore(deps): bump jetty-servlet from 9.4.29.v20200521 to 9.4.30.v20200611 in /tests/apps/java
- #4006: @dependabot-preview[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 174 to 176 in /tests/apps/php
- #4001: @dependabot-preview[bot] chore(deps): bump jetty-servlet from 9.4.28.v20200408 to 9.4.29.v20200521 in /tests/apps/java
- #4002: @dependabot-preview[bot] chore(deps): bump monolog/monolog from 1.25.3 to 1.25.4 in /tests/apps/php
- #3993: @dependabot-preview[bot] chore(deps): bump github.com/golang/protobuf from 1.4.1 to 1.4.2 in /tests/apps/gogrpc
- #3962: @dependabot-preview[bot] chore(deps): bump github.com/golang/protobuf from 1.4.0 to 1.4.1 in /tests/apps/gogrpc
- #3959: @dependabot-preview[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 173 to 174 in /tests/apps/php
- #3950: @dependabot-preview[bot] chore(deps): bump google.golang.org/grpc from 1.29.0 to 1.29.1 in /tests/apps/gogrpc
- #3946: @dependabot-preview[bot] chore(deps): bump google.golang.org/grpc from 1.28.1 to 1.29.0 in /tests/apps/gogrpc
2020-07-13 21:10:03 -04:00
Jose Diaz-Gonzalez
613dd3d1c4 Merge pull request #4058 from hugopeixoto/fix/chown-vhost 2020-07-13 21:09:39 -04:00
Jose Diaz-Gonzalez
aba5d03632 Set correct ownership on HOSTNAME file 2020-07-13 21:08:47 -04:00
Jose Diaz-Gonzalez
0403978ade Merge pull request #4056 from swrobel/patch-1
Remove help entry for dokku ps commmand
2020-07-13 19:08:19 -04:00
Hugo Peixoto
da12a8c835 chown VHOST file in dokku-installer.py 2020-07-14 00:01:40 +01:00
Jose Diaz-Gonzalez
fc24ad965e Merge pull request #4055 from hugopeixoto/fix/uninstall-on-debian
Delete dokkurc recursively during uninstall
2020-07-13 17:40:00 -04:00
Jose Diaz-Gonzalez
736aa4c48d Merge pull request #4057 from hugopeixoto/fix/install-sudo
Install sudo when installing from source
2020-07-13 17:39:09 -04:00
Hugo Peixoto
1de3651774 Install sudo when installing from source 2020-07-13 02:51:00 +01:00
Stefan Wrobel
c4c0488339 Remove help entry for dokku ps commmand
`dokku ps <app>` just seems to print the help content, not "List processes running in app container(s)" as specified
2020-07-12 10:23:42 -07:00
Hugo Peixoto
bb05787ea7 Delete dokkurc recursively during uninstall 2020-07-12 14:21:43 +01:00
Jose Diaz-Gonzalez
d92502107e Merge pull request #4051 from dokku/dependabot/composer/tests/apps/php/heroku/heroku-buildpack-php-178
chore(deps-dev): bump heroku/heroku-buildpack-php from 177 to 178 in /tests/apps/php
2020-07-10 09:56:13 -04:00
dependabot-preview[bot]
9ab224f3ce chore(deps-dev): bump heroku/heroku-buildpack-php in /tests/apps/php
Bumps [heroku/heroku-buildpack-php](https://github.com/heroku/heroku-buildpack-php) from 177 to 178.
- [Release notes](https://github.com/heroku/heroku-buildpack-php/releases)
- [Changelog](https://github.com/heroku/heroku-buildpack-php/blob/master/CHANGELOG.md)
- [Commits](https://github.com/heroku/heroku-buildpack-php/compare/v177...v178)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-07-10 08:36:17 +00:00
Jose Diaz-Gonzalez
8bf5f398b1 Merge pull request #4041 from rvanlaar/certdownload
feat: Add download option to the certs plugin
2020-07-04 11:51:59 -04:00
Roland van Laar
be0ba28570 feat: Add show option to the certs plugin
The 'server.key' and 'server.crt' can printed to stdin.
The two options are:
    `dokku certs:show <app> key > server.key`
    `dokku certs:show <app> crt > server.crt`
This will create two files, `server.key` and `server.crt`.
Those files contain the private key and the certificate.

Includes tests.
2020-07-04 13:14:02 +02:00
Jose Diaz-Gonzalez
dbd86ad7a2 Merge pull request #4046 from rvanlaar/lint-fixes
Make `make test` pass on linting
2020-07-03 18:45:51 -04:00
Roland van Laar
5f312d7347 Make make test pass on linting 2020-07-04 00:08:44 +02:00
Jose Diaz-Gonzalez
6e9f21b1d5 Merge pull request #4045 from dokku/josegonzalez-patch-1
Filter gpus instead of nvidia-gpus from resource arguments
2020-07-02 14:53:22 -04:00
Jose Diaz-Gonzalez
a631505cd6 Filter gpus instead of nvidia-gpus from resource arguments
We transform the argument here: https://github.com/dokku/dokku/blob/master/plugins/resource/triggers.go#L58
2020-07-02 12:10:08 -04:00
Jose Diaz-Gonzalez
f36701206c Merge pull request #4043 from dokku/4042-proxy-read-timeout 2020-07-01 20:24:25 -04:00
Jose Diaz-Gonzalez
42122a7540 feat: allow controlling proxy-read-timeout
Closes #4042
2020-07-01 19:08:15 -04:00
Fons van der Plas
996e2c7d92 Added link to the buildpack plugin docs 2020-07-01 12:33:52 +02:00
Jose Diaz-Gonzalez
64993a57eb Merge pull request #4038 from dokku/4024-proxy-build-config
Create proxy:build-config command
2020-06-29 22:37:29 -04:00
Jose Diaz-Gonzalez
eaf0d9af55 feat: create proxy:build-config command
Closes #4024
2020-06-29 20:51:12 -04:00
Jose Diaz-Gonzalez
0c44656acf Merge pull request #4039 from dokku/changelog-updates
Break out bc-break and refactors in changelog
2020-06-29 20:22:14 -04:00
Jose Diaz-Gonzalez
0d749b3e7a docs: break out bc-break and refactors in changelog
[ci skip]
2020-06-29 20:21:19 -04:00
Jose Diaz-Gonzalez
90b3528f6b Merge pull request #4037 from dokku/oomkill-check
Try to output oomkill information
2020-06-28 17:46:37 -04:00
Jose Diaz-Gonzalez
07f0bf3a50 tests: try to output oomkill information
This should help identify if a failure is caused by oomkill or just bad code.
2020-06-28 16:05:15 -04:00
Jose Diaz-Gonzalez
bcfa530056 Merge pull request #4035 from dokku/build-cleanup 2020-06-28 15:45:10 -04:00
Jose Diaz-Gonzalez
3f4b0eccd8 refactor: call tests while in directories
They fail to be listed in go list after the gomodules move.
2020-06-28 13:59:08 -04:00
Jose Diaz-Gonzalez
591ecff646 chore: drop unused imports and pin godotenv 2020-06-28 04:08:19 -04:00
Jose Diaz-Gonzalez
7481943a9b Merge pull request #4036 from dokku/store-build-artifact
Store the deb and rpm artifacts
2020-06-28 03:03:26 -04:00
Jose Diaz-Gonzalez
16241b4ce1 Merge pull request #4034 from dokku/quieter-test-helper
Teardown apps and containers in global teardown
2020-06-28 02:28:33 -04:00
Jose Diaz-Gonzalez
9dbc352006 chore: turn on go mod 2020-06-28 01:42:09 -04:00
Jose Diaz-Gonzalez
1a0c123823 tests: store the deb and rpm artifacts 2020-06-28 01:21:40 -04:00
Jose Diaz-Gonzalez
45e3623ffd refactor: switch to go mod
This hopefully makes it a little easier to work with as the tooling is now based on something in golang core.

- move columnize usage to common plugin
- remove old vendor files
2020-06-28 01:11:28 -04:00
Jose Diaz-Gonzalez
1eaa98d3e6 Merge pull request #4031 from dokku/quieter-test-helper
Delete old apps and ensure the test helper is quieter
2020-06-22 13:58:17 -04:00
Jose Diaz-Gonzalez
e75aadff15 fix: teardown apps and containers in global teardown 2020-06-21 17:12:24 -04:00
Jose Diaz-Gonzalez
d8cd5250a2 tests: delete old apps and ensure the test helper is quieter 2020-06-21 15:33:10 -04:00
Jose Diaz-Gonzalez
9e7b31b4e8 Merge pull request #4030 from dokku/circleci-workflow 2020-06-20 22:09:01 -04:00
Jose Diaz-Gonzalez
726d55f771 fix: get rid of circular dependency 2020-06-20 21:01:33 -04:00
Jose Diaz-Gonzalez
a4c67d50ee chore: switch back to normal parallelism
This brings us back full-circle, but with a better understanding of the underlying test suite.
2020-06-20 21:00:18 -04:00
Jose Diaz-Gonzalez
564de7434b fix: update tests for non-cache using app 2020-06-20 20:48:16 -04:00
Jose Diaz-Gonzalez
59f1ba20db fix: switch to binary 2020-06-20 20:37:01 -04:00
Jose Diaz-Gonzalez
5ad7ece8d3 chore: split out nginx-vhosts tests 2020-06-20 20:35:11 -04:00
Jose Diaz-Gonzalez
dabe90a0de fix: properly handle new default app 2020-06-20 19:01:59 -04:00
Jose Diaz-Gonzalez
1ecb9585ef fix: correct test for new null buildpack 2020-06-20 18:35:29 -04:00
Jose Diaz-Gonzalez
36ceca7a94 feat: split tests out even more and start deploy tests in parallel 2020-06-20 18:08:00 -04:00
Jose Diaz-Gonzalez
42a46df51f chore: group tests and adjust parallelism 2020-06-20 17:03:49 -04:00
Jose Diaz-Gonzalez
008b362751 feat: switch to null buildpack for performance 2020-06-20 17:02:27 -04:00
Jose Diaz-Gonzalez
81717f67f3 tests: drop loading of image from cache
It is slower than hitting the network...
2020-06-20 14:31:25 -04:00
Jose Diaz-Gonzalez
b6bf22812b fix: add bash
This is preferable to having a very large image that is based on debian/ubuntu.
2020-06-20 13:53:46 -04:00
Jose Diaz-Gonzalez
8557ec1226 chore: rename unit-tests to test
Looks nicer in the ui.
2020-06-20 13:28:30 -04:00
Jose Diaz-Gonzalez
570fcce2ee fix: use string 2020-06-20 13:25:01 -04:00
Jose Diaz-Gonzalez
ef5a4b08d6 tests: time the docker load calls 2020-06-20 13:24:03 -04:00
Jose Diaz-Gonzalez
5fd04001d8 feat: split out test files and execute them manually
This breaks the old grouping mechanism, but honestly that was a weird way of doing it.
2020-06-20 13:22:47 -04:00
Jose Diaz-Gonzalez
fb7bac4652 tests: split out tests more 2020-06-20 13:05:31 -04:00
Jose Diaz-Gonzalez
ef46db5d6b chore: switch to node:4-alpine
This is a smaller image that should speed up tests...
2020-06-20 13:04:04 -04:00
Jose Diaz-Gonzalez
a9e130b090 fix: here too 2020-06-20 02:17:59 -04:00
Jose Diaz-Gonzalez
f23413742a fix: use correct tag 2020-06-20 02:07:16 -04:00
Jose Diaz-Gonzalez
7ffe0c3b58 fix: pull the docker image down 2020-06-20 01:57:52 -04:00
Jose Diaz-Gonzalez
62e0ba6952 fix: remove extra variable 2020-06-20 01:45:51 -04:00
Jose Diaz-Gonzalez
59910749b7 feat: persist images through workspace 2020-06-20 01:31:52 -04:00
Jose Diaz-Gonzalez
a5d53711ee fix: run tests as root 2020-06-20 01:10:07 -04:00
Jose Diaz-Gonzalez
9d747b7c82 chore: drop check 2020-06-20 01:09:52 -04:00
Jose Diaz-Gonzalez
3084ac098e fix: correct quiet flag 2020-06-20 00:48:11 -04:00
Jose Diaz-Gonzalez
f083561ee7 feat: add test for remote ssh during deploy_app 2020-06-20 00:32:42 -04:00
Jose Diaz-Gonzalez
ae67f14f9b chore: quieter test output 2020-06-20 00:29:58 -04:00
Jose Diaz-Gonzalez
9d6746001e chore: revert 2020-06-20 00:28:30 -04:00
Jose Diaz-Gonzalez
c632b6b358 tests: fix cd calls 2020-06-20 00:04:54 -04:00
Jose Diaz-Gonzalez
9c300dc14b feat: add build cache 2020-06-20 00:04:27 -04:00
Jose Diaz-Gonzalez
02d9c53520 tests: fix syntax 2020-06-19 23:53:43 -04:00
Jose Diaz-Gonzalez
ca5c9d6c45 tests: fix syntax 2020-06-19 23:41:19 -04:00
Jose Diaz-Gonzalez
90a5391252 tests: split out core, nginx and ps tests 2020-06-19 23:29:25 -04:00
Jose Diaz-Gonzalez
cf113ecda2 chore: move apps tests to 60_
They take ~12 minutes on their own...
2020-06-19 23:25:08 -04:00
Jose Diaz-Gonzalez
0b9cecef4d tests: move testing command into config 2020-06-19 23:24:03 -04:00
Jose Diaz-Gonzalez
52ea598ba4 chore: drop bad github-actions code 2020-06-19 23:21:31 -04:00
Jose Diaz-Gonzalez
f4bec4a1c8 fix: use ens4 for circleci 2020-06-19 22:58:00 -04:00
Jose Diaz-Gonzalez
293d7efe07 Merge pull request #4028 from dokku/dependabot/composer/tests/apps/php/heroku/heroku-buildpack-php-177
chore(deps-dev): bump heroku/heroku-buildpack-php from 176 to 177 in /tests/apps/php
2020-06-19 22:44:52 -04:00
Jose Diaz-Gonzalez
c9e24a055c feat: adjust for usage with circleci workflows 2020-06-19 22:44:01 -04:00
Jose Diaz-Gonzalez
e9ecc98b3d chore: add report 2020-06-19 22:02:48 -04:00
Jose Diaz-Gonzalez
0932fd7f7c tests: skip pull_request trigger 2020-06-19 22:01:13 -04:00
Jose Diaz-Gonzalez
9ded7e176f tests: simplify step 2020-06-19 22:01:13 -04:00
Jose Diaz-Gonzalez
1738009f6b fix: set timeout 2020-06-19 22:01:13 -04:00
Jose Diaz-Gonzalez
bd3d8a54ad fix: correct matrix value 2020-06-19 22:01:13 -04:00
Jose Diaz-Gonzalez
c97fd92fcf fix: correct test naming 2020-06-19 22:01:13 -04:00
Jose Diaz-Gonzalez
6d4d8a89ed fix: correct test logging output 2020-06-19 22:01:13 -04:00
Jose Diaz-Gonzalez
7f9f289bd6 tests: drop extra unused matrix index 2020-06-19 22:01:13 -04:00
Jose Diaz-Gonzalez
3c56a0c323 tests: modify to allow better running under github actions 2020-06-19 22:01:13 -04:00
Jose Diaz-Gonzalez
401ec40566 fix: intsall ci dependencies in correct job 2020-06-19 22:01:13 -04:00
Jose Diaz-Gonzalez
edf5d29213 tests: set correct user on github actions 2020-06-19 22:01:13 -04:00
Jose Diaz-Gonzalez
03f8922ffd chore: remove all debugging code 2020-06-19 22:01:12 -04:00
Jose Diaz-Gonzalez
b9cc89e4d2 fix: set correct perms on files 2020-06-19 22:01:12 -04:00
Jose Diaz-Gonzalez
fb4a232537 debug: exit separately 2020-06-19 22:01:12 -04:00
Jose Diaz-Gonzalez
cf35cedd1e debug: show auth log 2020-06-19 22:01:12 -04:00
Jose Diaz-Gonzalez
2919415d7e fix: set correct perms for ssh key files 2020-06-19 22:01:12 -04:00
Jose Diaz-Gonzalez
ee083eb3c3 debug: list file permissions 2020-06-19 22:01:12 -04:00
Jose Diaz-Gonzalez
ca1e188e9a fix: use eth0 instead of ens4
The value is different for whatever reason on GH hardware...
2020-06-19 22:01:12 -04:00
Jose Diaz-Gonzalez
ef4fe2dbf9 debug: show devices and use long-form for ip command 2020-06-19 22:01:12 -04:00
Jose Diaz-Gonzalez
6e7e7d35cc fix: resolve dokku.me locally 2020-06-19 22:01:12 -04:00
Jose Diaz-Gonzalez
88e01d8a4b debug: more logging 2020-06-19 22:01:12 -04:00
Jose Diaz-Gonzalez
a8fd8d1b19 debug: more logging 2020-06-19 22:01:12 -04:00
Jose Diaz-Gonzalez
f47a267917 debug: echo empty 2020-06-19 22:01:12 -04:00
Jose Diaz-Gonzalez
bf7e86fb13 fix: drop existing key 2020-06-19 22:01:12 -04:00
Jose Diaz-Gonzalez
1cab6acf69 fix: drop unnecessary cat 2020-06-19 22:01:12 -04:00
Jose Diaz-Gonzalez
75a2d3a1ba debug: more test logging 2020-06-19 22:01:12 -04:00
Jose Diaz-Gonzalez
ca248a62ec debug: more logging 2020-06-19 22:01:12 -04:00
Jose Diaz-Gonzalez
b50590e2ad debug: fix debug statements 2020-06-19 22:01:12 -04:00
Jose Diaz-Gonzalez
db253c15cc feat: cat the contents 2020-06-19 22:01:12 -04:00
Jose Diaz-Gonzalez
d60140dad8 debug: check if there is extra output 2020-06-19 22:01:12 -04:00
Jose Diaz-Gonzalez
5c17bcc710 chore: minor test fixes 2020-06-19 22:01:12 -04:00
Jose Diaz-Gonzalez
d682bd52ff feat: only build image for non-build releases 2020-06-19 22:01:12 -04:00
Jose Diaz-Gonzalez
1ba874ea62 fix: add runs-on 2020-06-19 22:01:12 -04:00
Jose Diaz-Gonzalez
614ba66450 tests: enable on pull_request 2020-06-19 22:01:12 -04:00
Jose Diaz-Gonzalez
9451216606 refactor: build the package separately from running ci 2020-06-19 22:01:12 -04:00
Jose Diaz-Gonzalez
ef91685596 tests: disable on pull_request for now 2020-06-19 22:01:12 -04:00
Jose Diaz-Gonzalez
dfaa20e449 feat: upgrade herokuish
This enables herokuish to be installed when moby-engine is the docker-engine that is available.
2020-06-19 22:01:12 -04:00
Jose Diaz-Gonzalez
d7b0d2a4d9 feat: add github-based ci config 2020-06-19 22:01:12 -04:00
Jose Diaz-Gonzalez
2b9e5bbaea Merge pull request #4029 from dokku/filter-hook-args
Filter args _after_ docker-args-process-deploy
2020-06-19 21:53:34 -04:00
Jose Diaz-Gonzalez
8e0d288b2e fix: filter args _after_ docker-args-process-deploy
The new hook is what is used to expose resource limits/reservations by the resource plugin.
2020-06-19 21:52:59 -04:00
Jose Diaz-Gonzalez
75cdc585b6 Merge pull request #4026 from dokku/filter-hook-args 2020-06-19 21:36:04 -04:00
Jose Diaz-Gonzalez
a9d2610e34 fix: update filtered args 2020-06-19 12:28:31 -04:00
dependabot-preview[bot]
e2eceb49ca chore(deps-dev): bump heroku/heroku-buildpack-php in /tests/apps/php
Bumps [heroku/heroku-buildpack-php](https://github.com/heroku/heroku-buildpack-php) from 176 to 177.
- [Release notes](https://github.com/heroku/heroku-buildpack-php/releases)
- [Changelog](https://github.com/heroku/heroku-buildpack-php/blob/master/CHANGELOG.md)
- [Commits](https://github.com/heroku/heroku-buildpack-php/compare/v176...v177)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-19 08:59:30 +00:00
Jose Diaz-Gonzalez
e8eba15e49 Merge pull request #4022 from dokku/4013-slashes-in-app-names
Do not allow slashes in app names
2020-06-18 12:15:27 -04:00
Jose Diaz-Gonzalez
4a8ebd8dee Merge pull request #4025 from alexjj/master
Switch AUR helper to yay
2020-06-18 11:20:03 -04:00
Jose Diaz-Gonzalez
9dcf17be69 fix: filter resource args from deploy tasks
As specified in the docs, the build process should not be impacted by resource constraints.
2020-06-18 11:14:41 -04:00
Jose Diaz-Gonzalez
4aae0f1a1d fix: do not allow slashes in app names
There is likely a better regex for the actually allowed names, but this will suffice for ensuring folks don't do weird things with their folder structures...

Closes #4013
2020-06-18 11:13:11 -04:00
Alex Johnstone
f6a193935d Switch AUR helper to yay 2020-06-18 08:34:24 +01:00
Jose Diaz-Gonzalez
46d4de261c Merge pull request #4021 from dokku/4010-centos-8
Depend on python3 binary for CentOS 8 support
2020-06-17 20:37:16 -04:00
Jose Diaz-Gonzalez
b4b2c4301f Merge pull request #4020 from dokku/4015-fix-ps-inspect
Properly handle multiple containers in ps:inspect
2020-06-17 20:05:14 -04:00
Jose Diaz-Gonzalez
bb2265a3c9 fix: depend on python3 binary
This will fix compatibility with CentOS 8 by requiring a binary path that can be fulfilled by the python3 package.

Closes #4010
2020-06-17 01:20:15 -04:00
Jose Diaz-Gonzalez
484f61fdd5 fix: properly handle multiple containers in ps:inspect
Closes #4015
2020-06-17 01:13:47 -04:00
Jose Diaz-Gonzalez
5aae49f1a0 Merge pull request #4019 from tdak/patch-1
Added one possible solution to an error
2020-06-16 18:12:19 -04:00
tdak
ee7abe3098 Added one possible solution to an error
The solution is for this error

 [remote rejected] master -> master (pre-receive hook declined)
2020-06-16 18:02:17 -04:00
Jose Diaz-Gonzalez
981c5e1dd6 Merge pull request #4016 from dokku/dependabot/maven/tests/apps/java/org.eclipse.jetty-jetty-servlet-9.4.30.v20200611
chore(deps): bump jetty-servlet from 9.4.29.v20200521 to 9.4.30.v20200611 in /tests/apps/java
2020-06-16 12:53:53 -04:00
dependabot-preview[bot]
d9868a3862 chore(deps): bump jetty-servlet in /tests/apps/java
Bumps [jetty-servlet](https://github.com/eclipse/jetty.project) from 9.4.29.v20200521 to 9.4.30.v20200611.
- [Release notes](https://github.com/eclipse/jetty.project/releases)
- [Commits](https://github.com/eclipse/jetty.project/compare/jetty-9.4.29.v20200521...jetty-9.4.30.v20200611)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-06-15 07:07:29 +00:00
Jose Diaz-Gonzalez
c8edeb01e6 Merge pull request #4014 from rvanlaar/patch-1
Update cloudinit script
2020-06-13 19:48:24 -04:00
Roland van Laar
12e2b22ea8 Update cloudinit.sh file to cloudinit 20.X
Bring configuration in line with the latest Cloud init verison. Tested under 20.1.

Mainly done due to `debconf_selections` not working with the old syntac.
See the `debconf_selections` item under https://cloudinit.readthedocs.io/en/latest/topics/modules.html#apt-configure

Changes include:
- reboot when apt deems it necessary,
- define update and upgrade with the package syntax,
- bring apt sources and keys inline with apt syntax and
- dynamically get the right release by using the var '$RELEASE'.

[ci skip]
2020-06-14 00:38:08 +02:00
Roland van Laar
a8008b8d33 Update cloudinit script
This cloudinit script had become outdated.

Changed 4 things:
- docker repository had moved
- use current docker gpg key
- use current dokku gpg key
- move over to ubuntu focal LTS 20.20
2020-06-13 16:39:00 +02:00
Jose Diaz-Gonzalez
7d539e5b03 Merge pull request #4008 from dokku/standardize-golang-commands
Standardize golang command code
2020-06-02 12:36:47 -04:00
Jose Diaz-Gonzalez
2e2320ec73 fix: correct comment 2020-06-02 00:51:45 -04:00
Jose Diaz-Gonzalez
676027caf6 debug: force container removal 2020-06-01 23:46:35 -04:00
Jose Diaz-Gonzalez
2588bedcfe debug: delete all existing containers 2020-06-01 22:44:33 -04:00
Jose Diaz-Gonzalez
272c96b171 debug: check free memory 2020-06-01 22:43:26 -04:00
Jose Diaz-Gonzalez
a1935687a2 debug: output container ls to stdout
This will let us know if other containers are somehow leaking during test runs...
2020-05-30 02:08:08 -04:00
Jose Diaz-Gonzalez
6b25ab16b7 fix: drop deprecation warning on undeprecated command 2020-05-29 18:50:24 -04:00
Jose Diaz-Gonzalez
6b6518c699 tests: use assert_failure instead of test 2020-05-29 14:51:04 -04:00
Jose Diaz-Gonzalez
88f661b6e7 fix: properly fetch keys for config command 2020-05-29 14:50:17 -04:00
Jose Diaz-Gonzalez
aff0c1fc40 fix: check if the property exists before returning an error 2020-05-29 14:42:30 -04:00
Jose Diaz-Gonzalez
aa63e79aec Merge pull request #4006 from dokku/dependabot/composer/tests/apps/php/heroku/heroku-buildpack-php-176
chore(deps-dev): bump heroku/heroku-buildpack-php from 174 to 176 in /tests/apps/php
2020-05-29 14:05:54 -04:00
Jose Diaz-Gonzalez
a0cb7c560e tests: fix issues with fetching config 2020-05-29 04:22:14 -04:00
Jose Diaz-Gonzalez
68d1a04215 chore: drop redundant return statement 2020-05-29 02:04:58 -04:00
Jose Diaz-Gonzalez
a4da6f67cc chore: remove unused code 2020-05-29 02:04:21 -04:00
Jose Diaz-Gonzalez
a93cec63be feat: simplify flag parsing in config plugin
Commands should be written such that they take arguments as is.
2020-05-29 01:59:50 -04:00
Jose Diaz-Gonzalez
c22f78c913 feat: simplify flag parsing in proxy plugin
Commands should be written such that they take arguments as is.
2020-05-29 01:59:50 -04:00
Jose Diaz-Gonzalez
a60467cb2d feat: simplify flag parsing in repo plugin
Commands should be written such that they take arguments as is.
2020-05-29 01:59:50 -04:00
Jose Diaz-Gonzalez
91a668ee8f feat: simplify flag parsing in network plugin
Commands should be written such that they take arguments as is.
2020-05-29 01:59:50 -04:00
Jose Diaz-Gonzalez
94aa67d494 feat: simplify flag parsing in resource plugin
Commands should be written such that they take arguments as is.
2020-05-29 01:59:50 -04:00
Jose Diaz-Gonzalez
6636c48838 feat: simplify flag parsing in buildpacks plugin
Commands should be written such that they take arguments as is.
2020-05-29 01:59:50 -04:00
Jose Diaz-Gonzalez
ce154aff09 feat: simplify flag parsing in apps plugin
Commands should be written such that they take arguments as is.
2020-05-29 01:59:50 -04:00
Jose Diaz-Gonzalez
6a8783e357 Merge pull request #4001 from dokku/dependabot/maven/tests/apps/java/org.eclipse.jetty-jetty-servlet-9.4.29.v20200521 2020-05-28 19:27:46 -04:00
Álvaro Justen (@turicas)
914f695eab Fix doc about custom nginx config for Dockerfile 2020-05-27 16:29:33 -03:00
dependabot-preview[bot]
d6510ad936 chore(deps-dev): bump heroku/heroku-buildpack-php in /tests/apps/php
Bumps [heroku/heroku-buildpack-php](https://github.com/heroku/heroku-buildpack-php) from 174 to 176.
- [Release notes](https://github.com/heroku/heroku-buildpack-php/releases)
- [Changelog](https://github.com/heroku/heroku-buildpack-php/blob/master/CHANGELOG.md)
- [Commits](https://github.com/heroku/heroku-buildpack-php/compare/v174...v176)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-27 08:38:38 +00:00
Jose Diaz-Gonzalez
c2c9671061 Merge pull request #4004 from dokku/moby-engine-support 2020-05-23 13:11:29 -04:00
Jose Diaz-Gonzalez
def0a2c0ee feat: add support for moby-engine
The moby packages provide dockere on certain Azure VMs, and this package conflicts with docker.
2020-05-22 22:21:23 -04:00
Jose Diaz-Gonzalez
995ca5902f Merge pull request #4003 from dokku/josegonzalez-patch-1
Add dokku.ai asset
2020-05-22 15:48:43 -04:00
Jose Diaz-Gonzalez
10d959501d docs: add dokku.ai asset
There is no explicit license on this file, and it may not be used without express permission of the project maintainers.
2020-05-22 15:47:37 -04:00
Jose Diaz-Gonzalez
d8cff6566e Merge pull request #4002 from dokku/dependabot/composer/tests/apps/php/monolog/monolog-1.25.4
chore(deps): bump monolog/monolog from 1.25.3 to 1.25.4 in /tests/apps/php
2020-05-22 15:44:35 -04:00
dependabot-preview[bot]
a5a06196b1 chore(deps): bump monolog/monolog in /tests/apps/php
Bumps [monolog/monolog](https://github.com/Seldaek/monolog) from 1.25.3 to 1.25.4.
- [Release notes](https://github.com/Seldaek/monolog/releases)
- [Changelog](https://github.com/Seldaek/monolog/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Seldaek/monolog/compare/1.25.3...1.25.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-22 08:50:46 +00:00
dependabot-preview[bot]
0f6d809aff chore(deps): bump jetty-servlet in /tests/apps/java
Bumps [jetty-servlet](https://github.com/eclipse/jetty.project) from 9.4.28.v20200408 to 9.4.29.v20200521.
- [Release notes](https://github.com/eclipse/jetty.project/releases)
- [Commits](https://github.com/eclipse/jetty.project/compare/jetty-9.4.28.v20200408...jetty-9.4.29.v20200521)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-22 06:39:44 +00:00
Jose Diaz-Gonzalez
2cbc850df3 Merge pull request #3999 from DavidLemayian/patch-1
Update URL for less than 1gb memory in bootstrap.sh [ci skip]
2020-05-19 17:06:12 -04:00
David Lemayian
7509c7adbf Update URL for less than 1gb memory in bootstrap.sh
In bootstrap.sh, there is a slight tweak for the URL to information about advanced installation in VMs with less 1GB of memory.
2020-05-20 00:04:25 +03:00
Jose Diaz-Gonzalez
b1ac99c616 Merge pull request #3998 from dokku/josegonzalez-patch-1
Document the #dokku channel on slack
2020-05-19 12:30:36 -04:00
Jose Diaz-Gonzalez
0c7ef180d0 docs: Document the #dokku channel on slack
[ci skip]
2020-05-19 12:27:12 -04:00
Jose Diaz-Gonzalez
4c59dcaea6 Merge pull request #3996 from dokku/josegonzalez-patch-1
Clarify network aliases and add section on tld management
2020-05-19 11:34:33 -04:00
Jose Diaz-Gonzalez
08b3a4b7a7 docs: clarify network aliases and add section on tld management
Closes #3995

[ci skip]
2020-05-19 11:33:52 -04:00
Jose Diaz-Gonzalez
125c093ba5 Merge pull request #3967 from dokku/3961-focal-support
Add Ubuntu 20.04 support
2020-05-15 12:40:27 -04:00
Jose Diaz-Gonzalez
891c3e5e59 Merge pull request #3993 from dokku/dependabot/go_modules/tests/apps/gogrpc/github.com/golang/protobuf-1.4.2
chore(deps): bump github.com/golang/protobuf from 1.4.1 to 1.4.2 in /tests/apps/gogrpc
2020-05-15 10:18:24 -04:00
dependabot-preview[bot]
ba9fa1d0b7 chore(deps): bump github.com/golang/protobuf in /tests/apps/gogrpc
Bumps [github.com/golang/protobuf](https://github.com/golang/protobuf) from 1.4.1 to 1.4.2.
- [Release notes](https://github.com/golang/protobuf/releases)
- [Commits](https://github.com/golang/protobuf/compare/v1.4.1...v1.4.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-15 06:39:18 +00:00
Jose Diaz-Gonzalez
830c9006ca Merge pull request #3989 from dokku/3972-fix-enter
Correct entering running containers
2020-05-13 00:04:46 -04:00
Jose Diaz-Gonzalez
ec16aa92ac Merge pull request #3988 from dokku/upgrade-plugn
Upgrade plugn to 0.5.0
2020-05-12 23:08:36 -04:00
Jose Diaz-Gonzalez
2dfb0ef3e6 fix: correct entering running containers
This functionality was broken due to a refactor of argument handling in a previous release.

In addition to the fix, all the functionality was moved to scheduler-enter, which allows scheduler plugins to implement ways of entering containers in the relevant scheduler.

Closes #3972
2020-05-12 23:06:10 -04:00
Jose Diaz-Gonzalez
03daa33d83 feat: upgrade plugn 2020-05-12 22:01:55 -04:00
Jose Diaz-Gonzalez
883bcd897f Merge pull request #3987 from dokku/upgrade-sigil
Upgrade sigil to 0.6.0
2020-05-12 14:10:10 -04:00
Jose Diaz-Gonzalez
ba6cca4093 feat: upgrade sigil 2020-05-12 11:13:01 -04:00
Jose Diaz-Gonzalez
a1581bc963 Merge pull request #3986 from dokku/upgrade-sshcommand
Upgrade sshcommand to 0.11.0
2020-05-12 11:12:07 -04:00
Jose Diaz-Gonzalez
2a26cd9d5a Merge pull request #3985 from dokku/upgrade-procfile-util
Upgrade go-procfile-util to 0.8.2
2020-05-12 11:11:13 -04:00
Jose Diaz-Gonzalez
46eb092006 feat: upgrade sshcommand 2020-05-12 00:58:40 -04:00
Jose Diaz-Gonzalez
87dc7e39e6 feat: upgrade go-procfile-util 2020-05-12 00:56:44 -04:00
Jose Diaz-Gonzalez
9ed77ab6c1 Merge pull request #3982 from dokku/allow-apps-named-tls
Allow apps named tls
2020-05-09 03:34:03 -04:00
Jose Diaz-Gonzalez
46287cac0f feat: allow apps named tls
The `tls` name is no longer a reserved app name, and can be used by applications. This was previously a reserved app name due to it's use as a place for global SSL certificate files; Dokku has not supported global SSL certificates for many releases, and thus there is no need to reserve the name.
2020-05-08 23:58:06 -04:00
Jose Diaz-Gonzalez
b011a3a558 Merge pull request #3980 from dokku/josegonzalez-patch-1
Clarify that the web installer is not supported in docker-based installs
2020-05-08 11:37:06 -04:00
Jose Diaz-Gonzalez
e3e430f4d7 docs: Clarify that the web installer is not supported in docker-based installs
This is by design.

[ci skip]
2020-05-08 11:36:41 -04:00
Jose Diaz-Gonzalez
b63a40d4fe fix: add 20.04 to supported versions 2020-05-08 10:25:36 -04:00
Jose Diaz-Gonzalez
41bc54879d Merge pull request #3979 from dokku/upgrade-herokuish
Upgrade herokuish
2020-05-07 18:02:45 -04:00
Jose Diaz-Gonzalez
269a254425 feat: upgrade herokuish 2020-05-07 13:26:49 -04:00
Jose Diaz-Gonzalez
4c748f2b36 Merge pull request #3977 from dokku/3976-fix-run-commands
Set default port for all run commands
2020-05-07 13:11:50 -04:00
Jose Diaz-Gonzalez
ee7d7f164f fix: set default port for all run commands
Closes #3976
2020-05-07 12:01:54 -04:00
Jose Diaz-Gonzalez
962aa66965 Merge pull request #3971 from dokku/3674-customize-dokku-conf
feat: allow users to customize the source of the dokku.conf nginx template
2020-05-06 19:57:12 -04:00
Jose Diaz-Gonzalez
92621a3187 Merge pull request #3966 from dokku/domains-triggers
Move domain manipulation into triggers
2020-05-06 14:21:06 -04:00
Jose Diaz-Gonzalez
04b32efd54 Merge pull request #3969 from dokku/3929-logrotate-fix
Do not logrotate all services files
2020-05-06 14:20:37 -04:00
Jose Diaz-Gonzalez
0931d655f7 fix: use correct syntax... 2020-05-06 13:09:26 -04:00
Jose Diaz-Gonzalez
480425bfb9 Merge pull request #3965 from dokku/less-branding
Drop dokku references in logging output
2020-05-06 01:43:54 -04:00
Jose Diaz-Gonzalez
49351227d1 Merge pull request #3964 from dokku/3949-remove-force-yes
Remove all --force-yes usage throughout the codebase
2020-05-06 01:43:42 -04:00
Jose Diaz-Gonzalez
d3263a45c3 feat: allow users to customize the source of the dokku.conf nginx template
Closes #3674
2020-05-06 01:38:43 -04:00
Jose Diaz-Gonzalez
4f77c88e0b Merge pull request #3970 from dokku/3927-clarify-see-more-descriptions
Clarify the 'see the docs' internal links
2020-05-06 01:24:07 -04:00
Jose Diaz-Gonzalez
722390475b docs: Clarify the 'see the docs' internal links
These are usually not optional and actually explain what a user is interested in. As we don't have documentation partials, duplication isn't in favor of the project maintainer's benefit.

Closes #3927
2020-05-06 01:23:36 -04:00
Jose Diaz-Gonzalez
3b248de306 fix: do not logrotate all services files
Closes #3929
2020-05-06 00:59:37 -04:00
Jose Diaz-Gonzalez
7ff5e56dc7 Merge pull request #3968 from dokku/3945-document-access-issue
Document access.conf issue
2020-05-06 00:45:16 -04:00
Jose Diaz-Gonzalez
67f113a818 docs: document access.conf issue
Closes #3945
2020-05-06 00:42:56 -04:00
Jose Diaz-Gonzalez
4136f0274a feat: add Ubuntu 20.04 support
Will still need package releases, but everything should be ready for 0.21.0.

Closes #3961
2020-05-06 00:36:22 -04:00
Jose Diaz-Gonzalez
61a306664f refactor: move domain manipulation into triggers
This allows other plugins to avoid understanding the underlying details of how domains might be integrated with.
2020-05-06 00:16:51 -04:00
Jose Diaz-Gonzalez
d35576302d chore: drop dokku references in logging output
This isn't super useful outside of branding. Users that rely on this information may wish to turn on event logging to trace output that way.
2020-05-05 23:39:38 -04:00
Jose Diaz-Gonzalez
cca008f140 feat: remove all --force-yes usage throughout the codebase
It was deprecated in a recent apt release and shouldn't be necessary for anything any longer.

Closes #3949
2020-05-05 23:34:30 -04:00
Jose Diaz-Gonzalez
5458d5b341 Merge pull request #3962 from dokku/dependabot/go_modules/tests/apps/gogrpc/github.com/golang/protobuf-1.4.1
chore(deps): bump github.com/golang/protobuf from 1.4.0 to 1.4.1 in /tests/apps/gogrpc
2020-05-05 16:23:05 -04:00
dependabot-preview[bot]
42db45d6f4 chore(deps): bump github.com/golang/protobuf in /tests/apps/gogrpc
Bumps [github.com/golang/protobuf](https://github.com/golang/protobuf) from 1.4.0 to 1.4.1.
- [Release notes](https://github.com/golang/protobuf/releases)
- [Commits](https://github.com/golang/protobuf/compare/v1.4.0...v1.4.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-05 06:45:31 +00:00
Jose Diaz-Gonzalez
2c3cbc1708 Merge pull request #3959 from dokku/dependabot/composer/tests/apps/php/heroku/heroku-buildpack-php-174
chore(deps-dev): bump heroku/heroku-buildpack-php from 173 to 174 in /tests/apps/php
2020-05-01 13:34:15 -04:00
dependabot-preview[bot]
5e065e71c7 chore(deps-dev): bump heroku/heroku-buildpack-php in /tests/apps/php
Bumps [heroku/heroku-buildpack-php](https://github.com/heroku/heroku-buildpack-php) from 173 to 174.
- [Release notes](https://github.com/heroku/heroku-buildpack-php/releases)
- [Changelog](https://github.com/heroku/heroku-buildpack-php/blob/master/CHANGELOG.md)
- [Commits](https://github.com/heroku/heroku-buildpack-php/compare/v173...v174)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-05-01 09:20:19 +00:00
Jose Diaz-Gonzalez
50705890d8 Merge pull request #3957 from swrobel/patch-1
Add official registry plugin
2020-04-30 14:47:54 -04:00
Stefan Wrobel
c33b58a3e0 Add official registry plugin 2020-04-30 11:45:41 -07:00
Jose Diaz-Gonzalez
4d4971b171 Merge pull request #3955 from benwh/fix-nginx-502-page
Fix missing 502 error page
2020-04-26 15:55:11 -04:00
Ben Wheatley
05513ad75a Fix missing 502 error page
In dokku/dokku#3602 a new error page for the 502 status code was
introduced.

However, this error page is not currently being used, and results in a
404 error being served instead, because nginx is trying to load a
non-existent file:

```
open() "/var/lib/dokku/data/nginx-vhosts/dokku-errors/502-error.html" failed (2: No such file or directory)
```

Fix this by copying the `502-error.html` file into the `dokku-errors`
directory upon installation.
2020-04-26 15:08:37 +01:00
Jose Diaz-Gonzalez
ee69e1ee4a Merge pull request #3954 from dokku/upgrade-herokuish
feat: upgrade herokuish to 0.5.12
2020-04-26 04:58:53 -04:00
Jose Diaz-Gonzalez
88bc04797f feat: upgrade herokuish to 0.5.12 2020-04-26 03:17:21 -04:00
Jose Diaz-Gonzalez
c06644af62 Merge pull request #3953 from dokku/3952-tar-fix
Use correct function name for cmd-tar-in and update migration guide
2020-04-25 16:46:58 -04:00
Jose Diaz-Gonzalez
89787173af fix: use correct function name for cmd-tar-in and update migration guide
Closes #3952
2020-04-25 15:49:03 -04:00
Jose Diaz-Gonzalez
65403d1cf7 Merge pull request #3950 from dokku/dependabot/go_modules/tests/apps/gogrpc/google.golang.org/grpc-1.29.1
chore(deps): bump google.golang.org/grpc from 1.29.0 to 1.29.1 in /tests/apps/gogrpc
2020-04-24 09:54:01 -04:00
dependabot-preview[bot]
e56c69494a chore(deps): bump google.golang.org/grpc in /tests/apps/gogrpc
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.29.0 to 1.29.1.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.29.0...v1.29.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-24 06:58:35 +00:00
Jose Diaz-Gonzalez
9e9aa75fbb Merge pull request #3947 from jayjun/tests
fix: scope init tests to container processes only
2020-04-22 14:53:59 -04:00
Tan Jay Jun
14934a9479 fix: scope init tests to container processes only 2020-04-23 01:33:30 +08:00
Jose Diaz-Gonzalez
9b48a386fc Merge pull request #3946 from dokku/dependabot/go_modules/tests/apps/gogrpc/google.golang.org/grpc-1.29.0
chore(deps): bump google.golang.org/grpc from 1.28.1 to 1.29.0 in /tests/apps/gogrpc
2020-04-22 11:42:28 -04:00
dependabot-preview[bot]
9d60b487e6 chore(deps): bump google.golang.org/grpc in /tests/apps/gogrpc
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.28.1 to 1.29.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.28.1...v1.29.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-22 06:54:21 +00:00
Jose Diaz-Gonzalez
3e83b2836c fix: add missing git-deploy-branch hook 2020-04-19 11:04:53 -04:00
Jose Diaz-Gonzalez
72425cff84 Merge pull request #3940 from dokku/git-last-updated-time
Expose last updated time in git:report
2020-04-19 11:00:30 -04:00
Jose Diaz-Gonzalez
3ae68213ff Merge pull request #3942 from scowalt/patch-1
Update environment-variables.md
2020-04-19 11:00:04 -04:00
Scott Walters
a9ff33f9a5 Update environment-variables.md
Small grammar fix.
2020-04-19 06:58:12 -07:00
Jose Diaz-Gonzalez
f6a6444e66 Merge pull request #3939 from dokku/nginx-last-visited-time
Add support for outputting the last visited time
2020-04-18 23:47:01 -04:00
Jose Diaz-Gonzalez
6901e9658f feat: expose last-updated-at in git:report 2020-04-18 18:21:54 -04:00
Jose Diaz-Gonzalez
a8a6d0595b refactor: deprecate git_deploy_branch in favor of plugn trigger 2020-04-18 18:21:46 -04:00
Jose Diaz-Gonzalez
ee786e1962 feat: add support for outputting the last visited time
This checks the ctime of the log file if available, otherwise returns empty string
2020-04-18 18:15:20 -04:00
Jose Diaz-Gonzalez
74e147005b Release 0.20.4
# History

## 0.20.4

Install/update via the bootstrap script:

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

### New Features

- #3936: @josegonzalez Enable limiting and reserving gpu resources

### Documentation

- #3937: @josegonzalez Add minor documentation for the kubernetes and nomad schedulers

### Other

- #3935: @dependabot-preview[bot] chore(deps): bump jinja2 from 2.11.1 to 2.11.2 in /tests/apps/python-flask
- #3934: @dependabot-preview[bot] chore(deps): bump github.com/golang/protobuf from 1.3.5 to 1.4.0 in /tests/apps/gogrpc
- #3933: @dependabot-preview[bot] chore(deps): bump jetty-servlet from 9.4.27.v20200227 to 9.4.28.v20200408 in /tests/apps/java
2020-04-14 23:53:35 -04:00
Jose Diaz-Gonzalez
3e442e551d Merge pull request #3937 from dokku/scheduler-docs
Add minor documentation for the kubernetes and nomad schedulers
2020-04-14 23:53:03 -04:00
Jose Diaz-Gonzalez
2628df06a3 Merge pull request #3936 from dokku/gpu-support
Enable limiting and reserving gpu resources
2020-04-14 23:50:47 -04:00
Jose Diaz-Gonzalez
ba8eb6f2e5 docs: add minor documentation for the kubernetes and nomad schedulers 2020-04-14 19:17:59 -04:00
Jose Diaz-Gonzalez
8a380e52c4 feat: enable limiting and reserving gpu resources 2020-04-14 19:03:27 -04:00
Jose Diaz-Gonzalez
aa94dc7a7b Merge pull request #3935 from dokku/dependabot/pip/tests/apps/python-flask/jinja2-2.11.2
chore(deps): bump jinja2 from 2.11.1 to 2.11.2 in /tests/apps/python-flask
2020-04-14 14:26:21 -04:00
dependabot-preview[bot]
a42261b2b3 chore(deps): bump jinja2 in /tests/apps/python-flask
Bumps [jinja2](https://github.com/pallets/jinja) from 2.11.1 to 2.11.2.
- [Release notes](https://github.com/pallets/jinja/releases)
- [Changelog](https://github.com/pallets/jinja/blob/master/CHANGES.rst)
- [Commits](https://github.com/pallets/jinja/compare/2.11.1...2.11.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-14 16:42:19 +00:00
Jose Diaz-Gonzalez
7482762592 Merge pull request #3934 from dokku/dependabot/go_modules/tests/apps/gogrpc/github.com/golang/protobuf-1.4.0
chore(deps): bump github.com/golang/protobuf from 1.3.5 to 1.4.0 in /tests/apps/gogrpc
2020-04-14 12:40:50 -04:00
dependabot-preview[bot]
fffc283459 chore(deps): bump github.com/golang/protobuf in /tests/apps/gogrpc
Bumps [github.com/golang/protobuf](https://github.com/golang/protobuf) from 1.3.5 to 1.4.0.
- [Release notes](https://github.com/golang/protobuf/releases)
- [Commits](https://github.com/golang/protobuf/compare/v1.3.5...v1.4.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-14 06:46:53 +00:00
Jose Diaz-Gonzalez
7e6107fd04 Merge pull request #3933 from dokku/dependabot/maven/tests/apps/java/org.eclipse.jetty-jetty-servlet-9.4.28.v20200408
chore(deps): bump jetty-servlet from 9.4.27.v20200227 to 9.4.28.v20200408 in /tests/apps/java
2020-04-13 12:39:35 -04:00
dependabot-preview[bot]
65897ca4cd chore(deps): bump jetty-servlet in /tests/apps/java
Bumps [jetty-servlet](https://github.com/eclipse/jetty.project) from 9.4.27.v20200227 to 9.4.28.v20200408.
- [Release notes](https://github.com/eclipse/jetty.project/releases)
- [Commits](https://github.com/eclipse/jetty.project/compare/jetty-9.4.27.v20200227...jetty-9.4.28.v20200408)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-13 06:53:32 +00:00
Jose Diaz-Gonzalez
7bc6767ab7 Release 0.20.3
# History

## 0.20.3

Install/update via the bootstrap script:

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

### New Features

- #3926: @josegonzalez Add proper support for various buildpack urls

### Other

- #3928: @dependabot-preview[bot] chore(deps): bump google.golang.org/grpc from 1.28.0 to 1.28.1 in /tests/apps/gogrpc
- #3925: @dependabot-preview[bot] chore(deps): bump flask from 1.1.1 to 1.1.2 in /tests/apps/python-flask
- #3924: @dependabot-preview[bot] chore(deps): bump flask from 1.1.1 to 1.1.2 in /tests/apps/multi
2020-04-07 20:44:53 -04:00
Jose Diaz-Gonzalez
917983f61d Merge pull request #3928 from dokku/dependabot/go_modules/tests/apps/gogrpc/google.golang.org/grpc-1.28.1
chore(deps): bump google.golang.org/grpc from 1.28.0 to 1.28.1 in /tests/apps/gogrpc
2020-04-07 20:43:45 -04:00
dependabot-preview[bot]
ea76530ab1 chore(deps): bump google.golang.org/grpc in /tests/apps/gogrpc
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.28.0 to 1.28.1.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.28.0...v1.28.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-07 06:50:52 +00:00
Jose Diaz-Gonzalez
12dfa33680 Merge pull request #3926 from dokku/3923-validate-buildpack-url
Add proper support for various buildpack urls
2020-04-07 01:21:06 -04:00
Jose Diaz-Gonzalez
93225ada48 feat: add proper support for various buildpack urls
Transform the urls to the correct values when necessary, and validate them otherwise.

Closes #3923
2020-04-07 00:17:03 -04:00
Jose Diaz-Gonzalez
5917105e4e Merge pull request #3925 from dokku/dependabot/pip/tests/apps/python-flask/flask-1.1.2
chore(deps): bump flask from 1.1.1 to 1.1.2 in /tests/apps/python-flask
2020-04-06 05:05:21 -04:00
Jose Diaz-Gonzalez
1ddf0e9756 Merge pull request #3924 from dokku/dependabot/pip/tests/apps/multi/flask-1.1.2
chore(deps): bump flask from 1.1.1 to 1.1.2 in /tests/apps/multi
2020-04-06 05:05:07 -04:00
dependabot-preview[bot]
dc039d4674 chore(deps): bump flask from 1.1.1 to 1.1.2 in /tests/apps/python-flask
Bumps [flask](https://github.com/pallets/flask) from 1.1.1 to 1.1.2.
- [Release notes](https://github.com/pallets/flask/releases)
- [Changelog](https://github.com/pallets/flask/blob/master/CHANGES.rst)
- [Commits](https://github.com/pallets/flask/compare/1.1.1...1.1.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-06 07:16:50 +00:00
dependabot-preview[bot]
315422e017 chore(deps): bump flask from 1.1.1 to 1.1.2 in /tests/apps/multi
Bumps [flask](https://github.com/pallets/flask) from 1.1.1 to 1.1.2.
- [Release notes](https://github.com/pallets/flask/releases)
- [Changelog](https://github.com/pallets/flask/blob/master/CHANGES.rst)
- [Commits](https://github.com/pallets/flask/compare/1.1.1...1.1.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-06 07:14:12 +00:00
Jose Diaz-Gonzalez
e11499e676 Release 0.20.2
# History

## 0.20.2

Install/update via the bootstrap script:

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

### Bug Fixes

- #3921: @josegonzalez Correct container_type handling when entering containers
- #3919: @josegonzalez Fix bug with restarting containers not being routed to because of changing IP addresses

### New Features

- #3920: @josegonzalez Add the ability to list ssh keys for a specific user
2020-04-04 13:58:39 -04:00
Jose Diaz-Gonzalez
a56f173568 Merge pull request #3921 from dokku/fix-container-type-enter
Correct container_type handling when entering containers
2020-04-04 13:55:41 -04:00
Jose Diaz-Gonzalez
cae35e6701 fix: correct container_type handling when entering containers 2020-04-04 13:54:52 -04:00
Jose Diaz-Gonzalez
66a772b8c7 Merge pull request #3920 from dokku/ssh-keys-user-list
Add the ability to list ssh keys for a specific user
2020-04-04 03:47:37 -04:00
Jose Diaz-Gonzalez
c91a6d1a55 feat: add the ability to list ssh keys for a specific user
Also upgrade the version of sshcommand used within the vagrant vm
2020-04-04 02:23:38 -04:00
Jose Diaz-Gonzalez
e86f49e64a Merge pull request #3919 from dokku/3152-dokku-event-listener
Fix bug with restarting containers not being routed to because of changing IP addresses
2020-04-03 15:59:57 -04:00
Jose Diaz-Gonzalez
cb5a782f92 feat: recommend installation of the dokku-event-installer
Closes #3152
2020-04-03 14:55:29 -04:00
Jose Diaz-Gonzalez
610a2ca477 Release 0.20.1
# History

## 0.20.1

Install/update via the bootstrap script:

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

### Bug Fixes

- #3916: @josegonzalez Change error exit to warning when no apps exist

### New Features

- #3918: @josegonzalez Upgrade herokuish to 0.5.11
- #3915: @josegonzalez Add ability to check if a plugin has been installed
- #3914: @josegonzalez Add ability to change or disable the access/error log path
- #3913: @josegonzalez Upgrade herokuish

### Documentation

- #3907: @josegonzalez Add sponsoring link to issue template
- #3904: @jazzzz Update dokku-apt entry
- #3902: @josegonzalez Remove extra commas from network docs

### Other

- #3909: @dependabot-preview[bot] chore(deps): bump werkzeug from 1.0.0 to 1.0.1 in /tests/apps/python-flask
- #3903: @dependabot-preview[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 172 to 173 in /tests/apps/php
2020-04-03 09:46:52 -04:00
Jose Diaz-Gonzalez
234969866e Merge pull request #3918 from dokku/upgrade-herokuish
Upgrade herokuish to 0.5.11
2020-04-03 09:43:24 -04:00
Jose Diaz-Gonzalez
9cf8e7b0bb feat: upgrade herokuish to 0.5.11 2020-04-03 09:42:55 -04:00
Jose Diaz-Gonzalez
4da5f5e7ac Merge pull request #3916 from dokku/apps-list-warning
Change error exit to warning when no apps exist
2020-04-02 19:28:32 -04:00
Jose Diaz-Gonzalez
72a4637beb fix: change error exit to warning when no apps exist
This was a regression introduced in 0.20.0 when the plugin was converted to golang.
2020-04-02 15:59:54 -04:00
Jose Diaz-Gonzalez
ea1316fdfc Merge pull request #3915 from dokku/plugin-installed
Add ability to check if a plugin has been installed
2020-04-01 20:07:00 -04:00
Jose Diaz-Gonzalez
18deebaea2 Merge pull request #3914 from dokku/3911-nginx-log-path
Add ability to change or disable the access/error log path
2020-04-01 20:06:50 -04:00
Jose Diaz-Gonzalez
57da0e1ff0 docs: add "new as of" blockquote
[ci skip]
2020-04-01 20:06:37 -04:00
Jose Diaz-Gonzalez
908d203a64 Update docs/configuration/nginx.md
Co-Authored-By: decentral1se <lukewm@riseup.net>
2020-04-01 15:58:01 -04:00
Jose Diaz-Gonzalez
88631483b4 Update docs/configuration/nginx.md
Co-Authored-By: decentral1se <lukewm@riseup.net>
2020-04-01 15:57:54 -04:00
Jose Diaz-Gonzalez
cef73e7872 fix: build config after nginx:set 2020-04-01 15:27:17 -04:00
Jose Diaz-Gonzalez
583fb52f8d Update docs/advanced-usage/plugin-management.md
Co-Authored-By: decentral1se <lukewm@riseup.net>
2020-04-01 14:47:41 -04:00
Jose Diaz-Gonzalez
39ab4808a7 Update docs/advanced-usage/plugin-management.md
Co-Authored-By: decentral1se <lukewm@riseup.net>
2020-04-01 14:47:33 -04:00
Jose Diaz-Gonzalez
d82ad0a10a Merge pull request #3909 from dokku/dependabot/pip/tests/apps/python-flask/werkzeug-1.0.1
chore(deps): bump werkzeug from 1.0.0 to 1.0.1 in /tests/apps/python-flask
2020-04-01 12:37:43 -04:00
Jose Diaz-Gonzalez
62caa85423 feat: add ability to change or disable the access/error log path
Closes #3911
2020-04-01 12:21:52 -04:00
Jose Diaz-Gonzalez
b70e59f9ff feat: add ability to check if a plugin has been installed 2020-04-01 11:48:28 -04:00
Jose Diaz-Gonzalez
75a9b2a4d2 Merge pull request #3913 from dokku/upgrade-herokuish
Upgrade herokuish
2020-04-01 11:42:06 -04:00
Jose Diaz-Gonzalez
0c96e5deb9 feat: upgrade herokuish 2020-04-01 11:38:25 -04:00
dependabot-preview[bot]
a97862dd7b chore(deps): bump werkzeug in /tests/apps/python-flask
Bumps [werkzeug](https://github.com/pallets/werkzeug) from 1.0.0 to 1.0.1.
- [Release notes](https://github.com/pallets/werkzeug/releases)
- [Changelog](https://github.com/pallets/werkzeug/blob/master/CHANGES.rst)
- [Commits](https://github.com/pallets/werkzeug/compare/1.0.0...1.0.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-04-01 06:54:37 +00:00
Jose Diaz-Gonzalez
061a812f50 Merge pull request #3907 from dokku/josegonzalez-patch-1
Add sponsoring link to issue template
2020-03-30 21:13:03 -04:00
Jose Diaz-Gonzalez
f5d5b4fcda docs: add sponsoring link to issue template
[ci skip]
2020-03-30 21:12:43 -04:00
Jose Diaz-Gonzalez
6e50444d05 Merge pull request #3904 from jazzzz/patch-2
Update dokku-apt entry
2020-03-23 10:18:36 -04:00
Jose Diaz-Gonzalez
d525d51221 Merge pull request #3903 from dokku/dependabot/composer/tests/apps/php/heroku/heroku-buildpack-php-173
chore(deps-dev): bump heroku/heroku-buildpack-php from 172 to 173 in /tests/apps/php
2020-03-23 10:18:23 -04:00
Jazz
5dc3018d6d Update dokku-apt entry 2020-03-23 13:43:05 +01:00
dependabot-preview[bot]
d84df2cc41 chore(deps-dev): bump heroku/heroku-buildpack-php in /tests/apps/php
Bumps [heroku/heroku-buildpack-php](https://github.com/heroku/heroku-buildpack-php) from 172 to 173.
- [Release notes](https://github.com/heroku/heroku-buildpack-php/releases)
- [Changelog](https://github.com/heroku/heroku-buildpack-php/blob/master/CHANGELOG.md)
- [Commits](https://github.com/heroku/heroku-buildpack-php/compare/v172...v173)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-23 09:24:59 +00:00
Jose Diaz-Gonzalez
d61b830e4a Merge pull request #3902 from dokku/josegonzalez-patch-1
Remove extra commas from network docs
2020-03-21 20:32:12 -04:00
Jose Diaz-Gonzalez
cd7d47c381 docs: remove extra commas from network docs 2020-03-21 20:15:01 -04:00
Jose Diaz-Gonzalez
3ef092fda9 docs: mention gliderlabs-sigil in upgrade docs
[ci skip]
2020-03-21 16:49:09 -04:00
Jose Diaz-Gonzalez
99e98fb68a Release 0.20.0
# History

## 0.20.0

Install/update via the bootstrap script:

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

### Bug Fixes

- #3891: @josegonzalez Add missing cpio dependency
- #3861: @josegonzalez Fix app clone and rename calls
- #3682: @josegonzalez Force tty check to run with the default language
- #3853: @josegonzalez Add missing hooks to events plugin

### New Features

- #3899: @josegonzalez Drop unnecessary quotes on docker inspect calls
- #3895: @josegonzalez Expose network listeners to nginx templates for all process types
- #3893: @josegonzalez Rewrite apps plugin in golang
- #3889: @josegonzalez Update herokuish
- #3879: @josegonzalez Drop support for unsupported Debian and Ubuntu releases …
- #3880: @josegonzalez Remove unnecessary source/import statements
- #3871: @josegonzalez Rewrite proxy plugin in golang
- #3869: @josegonzalez Standardize plugin trigger calls
- #3870: @josegonzalez Use Println in favor of Fprintln for os.Stdout
- #3868: @josegonzalez Remove ps command
- #3866: @josegonzalez Unify nginx config commands
- #3865: @josegonzalez Cleanup injected docker labels
- #3860: @josegonzalez Remove deprecated egrep calls from codebase
- #3854: @josegonzalez Remove deprecated code
- #3852: @josegonzalez Standardize plugin code
- #3850: @josegonzalez DRY up reports in golang
- #3851: @josegonzalez Update herokuish to 0.5.6
- #3847: @josegonzalez Custom docker networking
- #3848: @josegonzalez Minor logging changes
- #3843: @josegonzalez Enable HSTS by default
- #3844: @josegonzalez Add global fallback for DOKKU_PROXY_PORT and DOKKU_PROXY_SSL_PORT
- #3609: @jayjun Start long running containers with --init with tests
- #3842: @josegonzalez rework docker-args-process trigger arguments
- #3841: @josegonzalez Implement docker-options:clear

### Documentation

- #3901: @Cellane 📝 Update information about Dokku CLI installation
- #3892: @josegonzalez Move code of conduct to .github org repository
- #3888: @decentral1se Mark 9+ for Debian version
- #3874: @josegonzalez Push users to upgrade to recent versions
- #3864: @alex-galey Change docs copyright to 2020
- #3863: @josegonzalez Update issue template to remove ambiguity around reporting
- #3849: @josegonzalez Reference correct property in network docs example
- #3840: @ollej Add link to fonts plugin
- #3838: @ltalirz Expand docs surrounding access control

### Other

- #3897: @dependabot-preview[bot] chore(deps): bump github.com/golang/protobuf from 1.3.4 to 1.3.5 in /tests/apps/gogrpc
- #3896: @dependabot-preview[bot] chore(deps): bump maven-dependency-plugin from 3.1.1 to 3.1.2 in /tests/apps/java
- #3894: @dependabot-preview[bot] chore(deps): bump google.golang.org/grpc from 1.27.1 to 1.28.0 in /tests/apps/gogrpc
- #3885: @dependabot-preview[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 171 to 172 in /tests/apps/php
- #3884: @dependabot-preview[bot] chore(deps): bump jetty-servlet from 9.4.26.v20200117 to 9.4.27.v20200227 in /tests/apps/java
- #3877: @dependabot-preview[bot] chore(deps): bump github.com/golang/protobuf from 1.3.3 to 1.3.4 in /tests/apps/gogrpc
- #3858: @dependabot-preview[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 170 to 171 in /tests/apps/php
- #3855: @dependabot-preview[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 169 to 170 in /tests/apps/php
- #3846: @dependabot-preview[bot] chore(deps): bump werkzeug from 0.16.1 to 1.0.0 in /tests/apps/python-flask
- #3845: @dependabot-preview[bot] chore(deps): bump google.golang.org/grpc from 1.27.0 to 1.27.1 in /tests/apps/gogrpc
- #3833: @dependabot-preview[bot] chore(deps): bump google.golang.org/grpc from 1.26.0 to 1.27.0 in /tests/apps/gogrpc
- #3837: @dependabot-preview[bot] chore(deps): bump jinja2 from 2.10.3 to 2.11.1 in /tests/apps/python-flask
- #3836: @dependabot-preview[bot] chore(deps): bump github.com/golang/protobuf from 1.3.2 to 1.3.3 in /tests/apps/gogrpc
- #3829: @dependabot-preview[bot] chore(deps): bump werkzeug from 0.16.0 to 0.16.1 in /tests/apps/python-flask
- #3830: @dependabot-preview[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 166 to 169 in /tests/apps/php
2020-03-20 17:50:50 -04:00
Jose Diaz-Gonzalez
fb6502044c Merge pull request #3901 from Cellane/docs-update-local-client-info
📝 Update information about Dokku CLI installation
2020-03-18 22:51:14 -04:00
Milan Vit
49e48f5f56 📝 Update information about Dokku CLI installation 2020-03-19 11:47:03 +09:00
Jose Diaz-Gonzalez
0b8fbfdeb9 Merge pull request #3899 from dokku/remove-extra-quotes
Drop unnecessary quotes on docker inspect calls
2020-03-18 19:00:08 -04:00
Jose Diaz-Gonzalez
5a2decb4e4 chore: drop unnecessary quotes on docker inspect call 2020-03-18 17:59:49 -04:00
Jose Diaz-Gonzalez
99fcd613fe Merge pull request #3895 from dokku/3258-expose-non-web
Expose network listeners to nginx templates for all process types
2020-03-13 13:52:07 -04:00
Jose Diaz-Gonzalez
c4b8bd8da9 test: ensure that the worker upstream exists 2020-03-13 12:42:42 -04:00
Jose Diaz-Gonzalez
309dd5a614 Merge pull request #3897 from dokku/dependabot/go_modules/tests/apps/gogrpc/github.com/golang/protobuf-1.3.5
chore(deps): bump github.com/golang/protobuf from 1.3.4 to 1.3.5 in /tests/apps/gogrpc
2020-03-13 10:36:11 -04:00
dependabot-preview[bot]
1b32ccbe38 chore(deps): bump github.com/golang/protobuf in /tests/apps/gogrpc
Bumps [github.com/golang/protobuf](https://github.com/golang/protobuf) from 1.3.4 to 1.3.5.
- [Release notes](https://github.com/golang/protobuf/releases)
- [Commits](https://github.com/golang/protobuf/compare/v1.3.4...v1.3.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-13 06:38:07 +00:00
Jose Diaz-Gonzalez
c482a3ff37 Merge pull request #3896 from dokku/dependabot/maven/tests/apps/java/org.apache.maven.plugins-maven-dependency-plugin-3.1.2
chore(deps): bump maven-dependency-plugin from 3.1.1 to 3.1.2 in /tests/apps/java
2020-03-12 09:01:21 -04:00
dependabot-preview[bot]
f39fd64a5b chore(deps): bump maven-dependency-plugin in /tests/apps/java
Bumps [maven-dependency-plugin](https://github.com/apache/maven-dependency-plugin) from 3.1.1 to 3.1.2.
- [Release notes](https://github.com/apache/maven-dependency-plugin/releases)
- [Commits](https://github.com/apache/maven-dependency-plugin/compare/maven-dependency-plugin-3.1.1...maven-dependency-plugin-3.1.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-12 06:38:39 +00:00
Jose Diaz-Gonzalez
38a13ecd39 feat: expose network listeners to nginx templates for all process types
This change allows users to specify a custom nginx.conf.sigil that can expose non-web process types to the outside world in addition to the web process type.

Closes #3258
2020-03-11 12:34:38 -04:00
Jose Diaz-Gonzalez
7d59b45fdb Merge pull request #3893 from dokku/apps-go
Rewrite apps plugin in golang
2020-03-11 10:50:42 -04:00
Jose Diaz-Gonzalez
c6a6eff7db fix: use correct flag 2020-03-11 03:38:18 -04:00
Jose Diaz-Gonzalez
c5575bb300 Merge pull request #3894 from dokku/dependabot/go_modules/tests/apps/gogrpc/google.golang.org/grpc-1.28.0
chore(deps): bump google.golang.org/grpc from 1.27.1 to 1.28.0 in /tests/apps/gogrpc
2020-03-11 03:36:02 -04:00
dependabot-preview[bot]
293050bc17 chore(deps): bump google.golang.org/grpc in /tests/apps/gogrpc
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.27.1 to 1.28.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.27.1...v1.28.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-11 06:42:57 +00:00
Jose Diaz-Gonzalez
f8c9efe230 fix: minor issues 2020-03-11 01:27:59 -04:00
Jose Diaz-Gonzalez
057c418be4 feat: implement :clone and :rename 2020-03-11 01:19:01 -04:00
Jose Diaz-Gonzalez
0be0ad7ef7 fix: correct issue with app autocreation 2020-03-11 01:00:10 -04:00
Jose Diaz-Gonzalez
eeaa6799fd Merge pull request #3891 from dokku/3875-cpio-dep
Add missing cpio dependency
2020-03-11 00:50:41 -04:00
Jose Diaz-Gonzalez
7fd1882dbb fix: correct regex for invalid app names 2020-03-11 00:37:02 -04:00
Jose Diaz-Gonzalez
76c0aed2ad fix: correct deploy output 2020-03-11 00:22:47 -04:00
Jose Diaz-Gonzalez
b9c331cf99 fix: correct stickler error 2020-03-11 00:22:33 -04:00
Jose Diaz-Gonzalez
e789504db1 fix: correct stickler issues 2020-03-10 23:56:16 -04:00
Jose Diaz-Gonzalez
e15ebe6a94 Merge pull request #3892 from dokku/3813-coc
Move code of conduct to .github org repository
2020-03-10 23:51:01 -04:00
Jose Diaz-Gonzalez
2b5a49cdc6 Move code of conduct to .github org repository
This is now available globally for the project here: https://github.com/dokku/.github/blob/master/CODE_OF_CONDUCT.md

Closes #3813
2020-03-10 23:50:41 -04:00
Jose Diaz-Gonzalez
b50f2cb45e fix: add missing cpio dependency
Closes #3875
2020-03-10 23:42:23 -04:00
Jose Diaz-Gonzalez
7fa9b72144 feat: suppress the output of createApp
A git push requires that the first four bytes should be the line length, so not suppressing the output results in a partially failed deploy.

https://stackoverflow.com/a/8175315/1515875
2020-03-10 23:06:00 -04:00
Jose Diaz-Gonzalez
62a361cbe0 feat: log issues with removing files 2020-03-10 22:21:27 -04:00
Jose Diaz-Gonzalez
b881be1cfe fix: validate name 2020-03-10 22:18:01 -04:00
Jose Diaz-Gonzalez
c230a6ac90 refactor: always remove 2020-03-10 22:17:51 -04:00
Jose Diaz-Gonzalez
82ad2bbd17 feat: suppress tag output 2020-03-10 22:17:42 -04:00
Jose Diaz-Gonzalez
0d3fd1e943 fix: return errors 2020-03-10 22:17:32 -04:00
Jose Diaz-Gonzalez
051a329873 feat: avoid deprecated functions 2020-03-10 18:19:31 -04:00
Jose Diaz-Gonzalez
aa156b2834 feat: add missing config-get triggers 2020-03-10 18:19:04 -04:00
Jose Diaz-Gonzalez
6d62835734 fix: correct issues in app creation and deletion 2020-03-10 15:10:19 -04:00
Jose Diaz-Gonzalez
b968ced6e9 refactor: first pass at rewriting apps plugin in go 2020-03-10 14:14:37 -04:00
Jose Diaz-Gonzalez
48dc5d8cc1 refactor: move git-sha flag to git:report 2020-03-10 14:13:48 -04:00
Jose Diaz-Gonzalez
8186934f72 chore: add deprecated tag 2020-03-10 14:13:18 -04:00
Jose Diaz-Gonzalez
0b758d2ba0 refactor: move confirmation logic to common.go 2020-03-10 14:13:11 -04:00
Jose Diaz-Gonzalez
bd47c76d26 refactor: move private buildpacks function to functions.go 2020-03-10 14:12:24 -04:00
Jose Diaz-Gonzalez
3f0c46d43d feat: add helper for fetching AppRoot in golang 2020-03-10 14:12:05 -04:00
Jose Diaz-Gonzalez
cd21e90edf Merge pull request #3888 from decentral1se/debian-version-doc
Mark 9+ for Debian version
2020-03-07 23:43:08 -05:00
Jose Diaz-Gonzalez
3d34625399 Merge pull request #3889 from dokku/upgrade-herokuish
Update herokuish
2020-03-07 23:42:37 -05:00
Jose Diaz-Gonzalez
c9c0d11b66 chore: update herokuish 2020-03-07 23:40:52 -05:00
Luke Murphy
8e2fc50746 Mark 9+ for Debian version
[ci skip]
2020-03-07 22:47:07 +01:00
Jose Diaz-Gonzalez
35d026bf38 Merge pull request #3885 from dokku/dependabot/composer/tests/apps/php/heroku/heroku-buildpack-php-172
chore(deps-dev): bump heroku/heroku-buildpack-php from 171 to 172 in /tests/apps/php
2020-03-02 13:48:11 -05:00
Jose Diaz-Gonzalez
09bf7cb3f0 Merge pull request #3884 from dokku/dependabot/maven/tests/apps/java/org.eclipse.jetty-jetty-servlet-9.4.27.v20200227
chore(deps): bump jetty-servlet from 9.4.26.v20200117 to 9.4.27.v20200227 in /tests/apps/java
2020-03-02 13:48:03 -05:00
dependabot-preview[bot]
9f0fe29417 chore(deps-dev): bump heroku/heroku-buildpack-php in /tests/apps/php
Bumps [heroku/heroku-buildpack-php](https://github.com/heroku/heroku-buildpack-php) from 171 to 172.
- [Release notes](https://github.com/heroku/heroku-buildpack-php/releases)
- [Changelog](https://github.com/heroku/heroku-buildpack-php/blob/master/CHANGELOG.md)
- [Commits](https://github.com/heroku/heroku-buildpack-php/compare/v171...v172)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-02 09:07:25 +00:00
dependabot-preview[bot]
855fc1e672 chore(deps): bump jetty-servlet in /tests/apps/java
Bumps [jetty-servlet](https://github.com/eclipse/jetty.project) from 9.4.26.v20200117 to 9.4.27.v20200227.
- [Release notes](https://github.com/eclipse/jetty.project/releases)
- [Commits](https://github.com/eclipse/jetty.project/compare/jetty-9.4.26.v20200117...jetty-9.4.27.v20200227)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-03-02 07:07:32 +00:00
Jose Diaz-Gonzalez
8dbe59bff7 Merge pull request #3879 from dokku/remove-old-operating-systems
Drop support for unsupported Debian and Ubuntu releases …
2020-02-29 14:29:43 -05:00
Jose Diaz-Gonzalez
66d327a5d1 Merge pull request #3880 from dokku/drop-unnecessary-source
Remove unnecessary source/import statements
2020-02-29 14:29:29 -05:00
Jose Diaz-Gonzalez
054bf26b0e chore: remove unnecessary source/import statements 2020-02-28 06:03:53 -05:00
Jose Diaz-Gonzalez
329e97c8ee feat: drop support for unsupported Debian and Ubuntu releases
While the latest packages may continue to work on other releases, we will no longer officially support these releases, nor will we distribute packages.
2020-02-28 05:57:55 -05:00
Jose Diaz-Gonzalez
0bce3238bc feat: add error when installing on unsupported debian operating systems 2020-02-28 05:39:50 -05:00
Jose Diaz-Gonzalez
ac821d92cf refactor: use in-array check to add support for future versions 2020-02-28 05:36:31 -05:00
Jose Diaz-Gonzalez
db412399ba refactor: use a log helper 2020-02-28 05:36:17 -05:00
Jose Diaz-Gonzalez
7100853a2e refactor: drop support for installing on older operating systems 2020-02-28 05:35:52 -05:00
Jose Diaz-Gonzalez
994e220ebf Merge pull request #3871 from dokku/proxy-go
Rewrite proxy plugin in golang
2020-02-28 05:09:20 -05:00
Jose Diaz-Gonzalez
a33add8000 fix: rename method and add comment 2020-02-28 03:18:38 -05:00
Jose Diaz-Gonzalez
231ab0ecd4 docs: add headers to proxy page and add docs around removing by host-port 2020-02-28 03:11:54 -05:00
Jose Diaz-Gonzalez
0b09d38e2e fix: handle error input appropriately 2020-02-28 03:11:31 -05:00
Jose Diaz-Gonzalez
0007df1fc1 Merge pull request #3877 from dokku/dependabot/go_modules/tests/apps/gogrpc/github.com/golang/protobuf-1.3.4
chore(deps): bump github.com/golang/protobuf from 1.3.3 to 1.3.4 in /tests/apps/gogrpc
2020-02-27 19:45:16 -05:00
dependabot-preview[bot]
de908efda1 chore(deps): bump github.com/golang/protobuf in /tests/apps/gogrpc
Bumps [github.com/golang/protobuf](https://github.com/golang/protobuf) from 1.3.3 to 1.3.4.
- [Release notes](https://github.com/golang/protobuf/releases)
- [Commits](https://github.com/golang/protobuf/compare/v1.3.3...v1.3.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-27 06:47:37 +00:00
Jose Diaz-Gonzalez
3f85b682fb fix: ensure proxy ports are sorted 2020-02-25 21:14:37 -05:00
Jose Diaz-Gonzalez
05486d6df1 fix: do not return immediately 2020-02-25 20:11:57 -05:00
Jose Diaz-Gonzalez
e6bf778a65 feat: optionally log 2020-02-25 20:11:43 -05:00
Jose Diaz-Gonzalez
6ecf6c31ba fix: correct issue with nil map 2020-02-25 20:11:32 -05:00
Jose Diaz-Gonzalez
130b9d6c4b Merge pull request #3874 from dokku/josegonzalez-patch-1
Push users to upgrade to recent versions
2020-02-24 23:05:01 -05:00
Jose Diaz-Gonzalez
f4a37f6867 docs: push users to upgrade to recent versions
Supporting versions more than a year old is difficult with a quick-moving project, and not worth the time that could be better spent fixing existing bugs/adding new functionality for an OSS project.
2020-02-24 23:04:41 -05:00
Jose Diaz-Gonzalez
2a5fcd001e tests: clean up app-json tests 2020-02-22 21:17:30 -05:00
Jose Diaz-Gonzalez
b961f01906 fix: install jq for tests 2020-02-22 21:16:26 -05:00
Jose Diaz-Gonzalez
c0957ebfc3 refactor: speed up buildpack tests 2020-02-22 20:49:21 -05:00
Jose Diaz-Gonzalez
137ea8c30d tests: fix logging output 2020-02-22 20:49:11 -05:00
Jose Diaz-Gonzalez
e8a31141fc fix: remove unused import 2020-02-22 17:05:27 -05:00
Jose Diaz-Gonzalez
d3ef846b59 fix: correct stickler issues 2020-02-22 16:56:35 -05:00
Jose Diaz-Gonzalez
b5be68f9d0 Merge pull request #3869 from dokku/plugn-trigger-calls
Standardize plugin trigger calls
2020-02-22 16:50:42 -05:00
Jose Diaz-Gonzalez
6fd4b5adb1 refactor: rewrite proxy plugin in golang 2020-02-22 06:40:24 -05:00
Jose Diaz-Gonzalez
26e8524ae5 refactor: surface errors when running reports 2020-02-22 06:40:24 -05:00
Jose Diaz-Gonzalez
09b656e37e refactor: standardize plugin trigger calls 2020-02-22 06:39:33 -05:00
Jose Diaz-Gonzalez
59316f4a21 Merge pull request #3870 from dokku/standardize-println
Use Println in favor of Fprintln for os.Stdout
2020-02-22 06:36:20 -05:00
Jose Diaz-Gonzalez
cff51b8ec9 fix: add missing parenthesis 2020-02-22 04:59:53 -05:00
Jose Diaz-Gonzalez
e5a9d29215 refactor: use Println in favor of Fprintln for os.Stdout 2020-02-22 04:32:51 -05:00
Jose Diaz-Gonzalez
9beefe923f Merge pull request #3868 from dokku/remove-ps-command
Remove ps command
2020-02-22 04:25:24 -05:00
Jose Diaz-Gonzalez
009e37d840 refactor: remove ps command
`ps` should be replaced by `enter` with a specified container id.
2020-02-22 00:42:19 -05:00
Jose Diaz-Gonzalez
b06aeeccb1 Merge pull request #3866 from dokku/nginx-show-conf
Unify nginx config commands
2020-02-19 02:38:48 -05:00
Jose Diaz-Gonzalez
1ba5269779 fix: use correct command name 2020-02-19 01:02:12 -05:00
Jose Diaz-Gonzalez
94357b961e refactor: deprecate nginx:validate
The command function move was to fix circular import issues...
2020-02-19 01:00:47 -05:00
Jose Diaz-Gonzalez
579d430303 refactor: rename nginx:show-conf to nginx:show-config 2020-02-19 01:00:47 -05:00
Jose Diaz-Gonzalez
7199d37636 Merge pull request #3865 from dokku/label-cleanup
Cleanup injected docker labels
2020-02-19 00:30:04 -05:00
Jose Diaz-Gonzalez
93080498f6 fix: correct calls to docker build and import common functions 2020-02-18 23:05:52 -05:00
Jose Diaz-Gonzalez
00f3d498a2 fix: fetch app image before variable use 2020-02-18 05:43:45 -05:00
Jose Diaz-Gonzalez
de84a038d2 feat: inject a com.dokku.dyno label
This is useful for external tools that monitor based on container labels.
2020-02-18 01:33:40 -05:00
Jose Diaz-Gonzalez
11e9cd13ae chore: drop com.dokku.network label
It isn't necessary, we know the network is the network...
2020-02-18 01:33:05 -05:00
Jose Diaz-Gonzalez
9d3785147e docs: cleanup post-release-* trigger documentation 2020-02-18 01:32:41 -05:00
Jose Diaz-Gonzalez
8e4dc1c2d0 feat: label released images
This will allow us to properly handle cases where the labeled image isn't actually the correct image due to invalid builds.
2020-02-18 01:32:26 -05:00
Jose Diaz-Gonzalez
2be8df1228 docs: document the new post-app-rename-setup trigger 2020-02-18 01:13:47 -05:00
Jose Diaz-Gonzalez
9f32747c98 Merge pull request #3861 from dokku/3821-fix-clone-rename
Fix app clone and rename calls
2020-02-18 00:42:25 -05:00
Jose Diaz-Gonzalez
acff195fcb tests: use TEST_NETWORK env var for test-network name 2020-02-17 23:41:01 -05:00
Jose Diaz-Gonzalez
b4d7d37d9b tests: add tests for app cloning 2020-02-17 22:38:35 -05:00
Jose Diaz-Gonzalez
d978f98c23 chore: drop extra log output 2020-02-17 22:16:40 -05:00
Jose Diaz-Gonzalez
973313e3aa tests: add tests for app renaming 2020-02-17 22:12:15 -05:00
Jose Diaz-Gonzalez
fdf09adcd5 fix: ignore errors when getting all properties 2020-02-17 21:48:33 -05:00
Jose Diaz-Gonzalez
02e2fa73f5 fix: drop extra s 2020-02-17 21:47:42 -05:00
Jose Diaz-Gonzalez
7389bb3f03 fix: properly handle returned errors 2020-02-17 20:42:29 -05:00
Jose Diaz-Gonzalez
2949e1125f Merge pull request #3864 from alex-galey/patch-1
Change docs copyright to 2020
2020-02-17 20:32:02 -05:00
Alex Galey
38cbcb33ed Change docs copyright to 2020 2020-02-18 01:57:09 +01:00
Jose Diaz-Gonzalez
2e774f0806 feat: unify apps:rename and apps:clone
- add --skip-deploy to apps:rename
- add all missing validation to rename command
- fix log output to be a bit more logical
2020-02-17 19:23:07 -05:00
Jose Diaz-Gonzalez
8987ec6704 refactor: move cache and rebuild handling to plugin triggers 2020-02-17 19:18:12 -05:00
Jose Diaz-Gonzalez
63f4ec3867 feat: call clone/destroy prop commands as necessary 2020-02-17 19:08:39 -05:00
Jose Diaz-Gonzalez
d336d7c5c2 feat: add prop clone command 2020-02-17 18:48:06 -05:00
Jose Diaz-Gonzalez
ebd27cd666 chore: drop unused and unspecified arg 2020-02-17 18:43:42 -05:00
Jose Diaz-Gonzalez
b1ae58f968 chore: re-arrange commands to be in alphabetical order 2020-02-17 18:40:55 -05:00
Jose Diaz-Gonzalez
0b40414170 refactor: use normal if statement instead of && calls 2020-02-17 18:27:11 -05:00
Jose Diaz-Gonzalez
acdc0109aa Merge pull request #3860 from dokku/remove-egrep
Remove deprecated egrep calls from codebase
2020-02-17 17:42:18 -05:00
Jose Diaz-Gonzalez
b1b67b3238 Merge pull request #3863 from dokku/josegonzalez-patch-1
Update issue template to remove ambiguity around reporting
2020-02-17 16:33:37 -05:00
Jose Diaz-Gonzalez
7d7c035b57 docs: update issue template to remove ambiguity around reporting
[ci skip]
2020-02-17 16:33:13 -05:00
Jose Diaz-Gonzalez
799a5713c2 chore: remove duplicate docker_cleanup call
This is already called during apps_destroy
2020-02-17 06:23:14 -05:00
Jose Diaz-Gonzalez
5dd297bb49 refactor: move pre-receive hook modification to post-app-clone-setup trigger 2020-02-17 06:21:08 -05:00
Jose Diaz-Gonzalez
5801fd98a4 refactor: move pre-receive hook modification to post-app-rename-setup trigger 2020-02-17 06:20:20 -05:00
Jose Diaz-Gonzalez
9d3538d587 fix: move ps_rebuild to post-app-rename 2020-02-17 06:17:58 -05:00
Jose Diaz-Gonzalez
3a961d2de7 feat: move URLS and VHOST modifications to post-app-rename-setup 2020-02-17 06:17:13 -05:00
Jose Diaz-Gonzalez
c2c2e2ccbd refactor: call proxy-clear-config from post-app-rename-setup 2020-02-17 06:14:48 -05:00
Jose Diaz-Gonzalez
0740636d53 feat: call ps_rebuild from post-app-rename-setup 2020-02-17 06:10:26 -05:00
Jose Diaz-Gonzalez
77f9862549 feat: add post-app-rename-setup trigger 2020-02-17 06:09:42 -05:00
Jose Diaz-Gonzalez
e19b52442b fix: remove deprecated egrep calls from codebase 2020-02-17 05:59:52 -05:00
Jose Diaz-Gonzalez
b04080bcb1 Merge pull request #3854 from dokku/remove-deprecated-code
Remove deprecated code
2020-02-17 05:51:20 -05:00
Jose Diaz-Gonzalez
04e1837e9e fix: revert to old array arg 2020-02-17 04:44:25 -05:00
Jose Diaz-Gonzalez
ce275837ac fix: properly check for app domains 2020-02-17 04:39:52 -05:00
Jose Diaz-Gonzalez
4c7cd3f2af feat: show the nginx config 2020-02-17 04:30:23 -05:00
Jose Diaz-Gonzalez
1e0899ee04 feat: cat the nginx conf for debugging 2020-02-17 04:29:23 -05:00
Jose Diaz-Gonzalez
57cf1dce61 refactor: use show-conf instead of cating the conf directly 2020-02-17 04:29:08 -05:00
Jose Diaz-Gonzalez
1a57c30bae chore: drop unused source 2020-02-17 04:28:35 -05:00
Jose Diaz-Gonzalez
cfee47f382 Merge pull request #3858 from dokku/dependabot/composer/tests/apps/php/heroku/heroku-buildpack-php-171
chore(deps-dev): bump heroku/heroku-buildpack-php from 170 to 171 in /tests/apps/php
2020-02-12 07:36:20 -05:00
dependabot-preview[bot]
962818b0ea chore(deps-dev): bump heroku/heroku-buildpack-php in /tests/apps/php
Bumps [heroku/heroku-buildpack-php](https://github.com/heroku/heroku-buildpack-php) from 170 to 171.
- [Release notes](https://github.com/heroku/heroku-buildpack-php/releases)
- [Changelog](https://github.com/heroku/heroku-buildpack-php/blob/master/CHANGELOG.md)
- [Commits](https://github.com/heroku/heroku-buildpack-php/compare/v170...v171)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-12 08:25:20 +00:00
Jose Diaz-Gonzalez
848373def5 chore: remove all deprecated commands
This change removes all deprecated commands. In many cases, users have been warned for a number of releases before the commands have been removed. All commands that were removed have existing alternatives.
2020-02-12 02:03:03 -05:00
Jose Diaz-Gonzalez
bcc5516afe Merge pull request #3855 from dokku/dependabot/composer/tests/apps/php/heroku/heroku-buildpack-php-170
chore(deps-dev): bump heroku/heroku-buildpack-php from 169 to 170 in /tests/apps/php
2020-02-11 14:23:42 -05:00
dependabot-preview[bot]
411aa119a3 chore(deps-dev): bump heroku/heroku-buildpack-php in /tests/apps/php
Bumps [heroku/heroku-buildpack-php](https://github.com/heroku/heroku-buildpack-php) from 169 to 170.
- [Release notes](https://github.com/heroku/heroku-buildpack-php/releases)
- [Changelog](https://github.com/heroku/heroku-buildpack-php/blob/master/CHANGELOG.md)
- [Commits](https://github.com/heroku/heroku-buildpack-php/compare/v169...v170)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-11 08:20:29 +00:00
Jose Diaz-Gonzalez
d759c6c12d Merge pull request #3682 from dokku/3588-tty-default-lang
Force tty check to run with the default language
2020-02-10 05:14:24 -05:00
Jose Diaz-Gonzalez
0c388615cc Merge pull request #3853 from dokku/add-missing-hooks
Add missing hooks to events plugin
2020-02-10 04:44:42 -05:00
Jose Diaz-Gonzalez
e30d9fdba3 Merge pull request #3852 from dokku/standardize-plugin-code
Standardize plugin code
2020-02-10 04:44:16 -05:00
Jose Diaz-Gonzalez
53f520d5c6 fix: add missing hooks to events plugin 2020-02-10 04:43:57 -05:00
Jose Diaz-Gonzalez
35252444e1 fix: correct command name 2020-02-10 03:43:06 -05:00
Jose Diaz-Gonzalez
1b6c0ce6b6 fix: correct help test issues 2020-02-10 02:57:03 -05:00
Jose Diaz-Gonzalez
aa6a651f1d tests: correct test issues 2020-02-10 02:54:31 -05:00
Jose Diaz-Gonzalez
7357579af2 refactor: standardize trigger code 2020-02-10 02:40:59 -05:00
Jose Diaz-Gonzalez
4a60497d3e feat: add tests for all help commands 2020-02-10 01:56:50 -05:00
Jose Diaz-Gonzalez
7a1537e38e fix: correct tests 2020-02-10 01:41:31 -05:00
Jose Diaz-Gonzalez
e67b96780d refactor: unify command declaration across codebase 2020-02-10 01:40:30 -05:00
Jose Diaz-Gonzalez
b0abeb49dd chore: drop missing commands 2020-02-10 00:37:24 -05:00
Jose Diaz-Gonzalez
ef7894fdfa refactor: standardize help generation 2020-02-10 00:37:00 -05:00
Jose Diaz-Gonzalez
be5ea845fc fix: clean prop bin as well during make clean 2020-02-09 22:43:34 -05:00
Jose Diaz-Gonzalez
1cb586b2e7 refactor: standardize command naming
This standardization makes it somewhat easier to read stacktraces as the command names are all uniform, so it will be slightly easier to scan trace output.
2020-02-09 22:41:39 -05:00
Jose Diaz-Gonzalez
95935f5944 Merge pull request #3850 from dokku/refactor-report-single
DRY up reports in golang
2020-02-09 22:15:23 -05:00
Jose Diaz-Gonzalez
deea791e58 Merge pull request #3851 from dokku/update-herokuish
Update herokuish to 0.5.6
2020-02-09 21:34:51 -05:00
Jose Diaz-Gonzalez
d6391de55f feat: update herokuish 2020-02-09 21:33:20 -05:00
Jose Diaz-Gonzalez
58de433afa fix: omit 2nd value from range 2020-02-09 20:47:20 -05:00
Jose Diaz-Gonzalez
cacd7e169c Merge pull request #3849 from dokku/josegonzalez-patch-1
Reference correct property in network docs example
2020-02-09 20:44:16 -05:00
Jose Diaz-Gonzalez
bd539797db docs: reference correct property in network docs example
[ci skip]
2020-02-09 20:43:59 -05:00
Jose Diaz-Gonzalez
37c83e1c52 refactor: DRY up reports in golang
This unifies all the report-handling code so that plugins only need to worry about the data they wish to represent, and not the logic of actually returning it.
2020-02-09 20:37:03 -05:00
Jose Diaz-Gonzalez
b3a802a965 Merge pull request #3847 from dokku/2085-custom-network
Custom docker networking
2020-02-09 02:57:37 -05:00
Jose Diaz-Gonzalez
2d9f0f939c tests: update tests to handle new functionality
Also fix a few issues in the tests themselves
2020-02-09 01:22:14 -05:00
Jose Diaz-Gonzalez
ab509a7424 feat: ensure network exists before attempting to attach it to a container
This will give better feedback to developers than a potentially generic error.
2020-02-09 01:21:42 -05:00
Jose Diaz-Gonzalez
52ef7e7cdc refactor: move all internal functions to functions.go 2020-02-09 01:20:39 -05:00
Jose Diaz-Gonzalez
231078125a fix: ensure we cleanup networks in tests 2020-02-08 23:39:36 -05:00
Jose Diaz-Gonzalez
16d8bd480c fix: pass appName along 2020-02-08 22:48:10 -05:00
Jose Diaz-Gonzalez
e282c2dd7e tests: add tests for new networking features 2020-02-08 22:16:03 -05:00
Jose Diaz-Gonzalez
ca3a306b30 feat: ensure networks do not conflict 2020-02-08 22:15:37 -05:00
Jose Diaz-Gonzalez
c8537bff48 docs: document custom networking 2020-02-08 22:15:15 -05:00
Jose Diaz-Gonzalez
9818cc6461 feat: implement container network attaching
Containers can be attached:

- after they are created, but before they are started
- after a successful deploy, but before the proxy reloads

This allows folks to have flexibility around when they would like a container to be made available to a network.
2020-02-08 19:55:29 -05:00
Jose Diaz-Gonzalez
8eb32e4371 feat: add process-type label to running containers 2020-02-08 19:53:30 -05:00
Jose Diaz-Gonzalez
b1c6f66fc7 Merge pull request #3848 from dokku/logging-fixes
Minor logging changes
2020-02-08 19:48:03 -05:00
Jose Diaz-Gonzalez
b8c8797c6e chore: fix log message for app existing 2020-02-08 19:46:58 -05:00
Jose Diaz-Gonzalez
385aed85b9 chore: fix log_exit call 2020-02-08 19:46:50 -05:00
Jose Diaz-Gonzalez
d39f4ce54d feat: add stderr log functions 2020-02-08 19:46:44 -05:00
Jose Diaz-Gonzalez
46b83d06cc Merge pull request #3846 from dokku/dependabot/pip/tests/apps/python-flask/werkzeug-1.0.0
chore(deps): bump werkzeug from 0.16.1 to 1.0.0 in /tests/apps/python-flask
2020-02-07 21:22:10 -05:00
dependabot-preview[bot]
397527eb21 chore(deps): bump werkzeug in /tests/apps/python-flask
Bumps [werkzeug](https://github.com/pallets/werkzeug) from 0.16.1 to 1.0.0.
- [Release notes](https://github.com/pallets/werkzeug/releases)
- [Changelog](https://github.com/pallets/werkzeug/blob/master/CHANGES.rst)
- [Commits](https://github.com/pallets/werkzeug/compare/0.16.1...1.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-07 14:32:16 +00:00
Jose Diaz-Gonzalez
ec4bd32169 Merge pull request #3843 from dokku/3709-hsts
Enable HSTS by default
2020-02-07 09:30:54 -05:00
Jose Diaz-Gonzalez
a8c4065dcf fix: use the correct variable 2020-02-07 02:59:52 -05:00
Jose Diaz-Gonzalez
6940035d78 fix: support werkzeug==1.0.0 2020-02-06 20:31:24 -05:00
Jose Diaz-Gonzalez
13be4d07a6 fix: check correct properties 2020-02-06 19:27:14 -05:00
Jose Diaz-Gonzalez
b5f2d82f49 fix: setup tls for hsts test 2020-02-06 12:46:55 -05:00
Jose Diaz-Gonzalez
73e7ff7b18 feat: Enable HSTS by default
This enables the HSTS header by default when an SSL certificate is in use. HSTS options can also be managed via the nginx:set command, which also exposes the ability to disable HSTS for your application.
2020-02-06 11:08:13 -05:00
Jose Diaz-Gonzalez
89e2be720e Merge pull request #3845 from dokku/dependabot/go_modules/tests/apps/gogrpc/google.golang.org/grpc-1.27.1
chore(deps): bump google.golang.org/grpc from 1.27.0 to 1.27.1 in /tests/apps/gogrpc
2020-02-06 10:55:39 -05:00
dependabot-preview[bot]
001e431fa1 chore(deps): bump google.golang.org/grpc in /tests/apps/gogrpc
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.27.0 to 1.27.1.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.27.0...v1.27.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-02-06 06:48:27 +00:00
Jose Diaz-Gonzalez
d42fb02136 Merge pull request #3844 from dokku/global-proxy-port-config
Add global fallback for DOKKU_PROXY_PORT and DOKKU_PROXY_SSL_PORT
2020-02-05 15:35:32 -05:00
lalyos
bb176e4130 feat: add global fallback for DOKKU_PROXY_PORT and DOKKU_PROXY_SSL_PORT 2020-02-03 13:22:09 -05:00
Jose Diaz-Gonzalez
5de1c298eb Merge pull request #3609 from jayjun/init
Start long running containers with --init with tests
2020-02-03 13:05:11 -05:00
Jose Diaz-Gonzalez
414ea55ca8 tests: use 'ps auxf' 2020-02-03 12:10:39 -05:00
Tan Jay Jun
e425092d00 fix: reap orphaned processes with --init 2020-02-03 05:34:43 -05:00
Tan Jay Jun
26e3232f2c tests: check orphaned processes are reaped 2020-02-03 05:31:44 -05:00
Jose Diaz-Gonzalez
10d2fdea92 Merge pull request #3833 from dokku/dependabot/go_modules/tests/apps/gogrpc/google.golang.org/grpc-1.27.0
chore(deps): bump google.golang.org/grpc from 1.26.0 to 1.27.0 in /tests/apps/gogrpc
2020-02-03 04:39:37 -05:00
Jose Diaz-Gonzalez
7c11e32e1c Merge pull request #3842 from dokku/3780-fix-docker-args-process-triggers
rework docker-args-process trigger arguments
2020-02-03 04:39:20 -05:00
Jose Diaz-Gonzalez
69f5f6c475 Merge pull request #3841 from dokku/3776-docker-options-clear
Implement docker-options:clear
2020-02-03 04:39:04 -05:00
Jose Diaz-Gonzalez
47759439d7 Merge pull request #3840 from ollej/patch-1
Add link to fonts plugin
2020-02-03 00:03:16 -05:00
Jose Diaz-Gonzalez
fc8a8d6138 feat: implement docker-options:clear
Closes #3776
2020-02-01 17:06:27 -08:00
Jose Diaz-Gonzalez
4613efe191 refactor: docker-args-process rework trigger arguments
The IMAGE_TAG is not always available, while the IMAGE_SOURCE_TYPE is. Since the point of these triggers was to unify the argument passed and make it easier to interact with them, this version makes more sense.

Closes #3780
2020-02-01 16:18:13 -08:00
Olle Wreede
74e62e38f9 Add link to fonts plugin 2020-02-01 22:53:15 +01:00
Jose Diaz-Gonzalez
dcb79f8c0b Merge pull request #3838 from ltalirz/fix-user-management-docs
Expand docs surrounding access control
2020-02-01 09:33:58 -08:00
Leopold Talirz
6ff05715e5 remove explicit mention of dokku-acl 2020-02-01 17:47:08 +01:00
Jose Diaz-Gonzalez
fb449ab630 Merge pull request #3837 from dokku/dependabot/pip/tests/apps/python-flask/jinja2-2.11.1
chore(deps): bump jinja2 from 2.10.3 to 2.11.1 in /tests/apps/python-flask
2020-01-31 10:25:57 -08:00
Leopold Talirz
32e45107f7 add hint on dokku-acl
The deployment documentation on scoping user access pointed only to the
development documentation for implementing plugins to handle user
scoping.
Added link to the dokku-acl plugin, which already handles user scoping
out of the box.
2020-01-31 12:52:49 +01:00
dependabot-preview[bot]
a134111f79 chore(deps): bump jinja2 in /tests/apps/python-flask
Bumps [jinja2](https://github.com/pallets/jinja) from 2.10.3 to 2.11.1.
- [Release notes](https://github.com/pallets/jinja/releases)
- [Changelog](https://github.com/pallets/jinja/blob/master/CHANGES.rst)
- [Commits](https://github.com/pallets/jinja/compare/2.10.3...2.11.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-31 06:50:23 +00:00
Jose Diaz-Gonzalez
5ec35496d8 Merge pull request #3836 from dokku/dependabot/go_modules/tests/apps/gogrpc/github.com/golang/protobuf-1.3.3
chore(deps): bump github.com/golang/protobuf from 1.3.2 to 1.3.3 in /tests/apps/gogrpc
2020-01-30 11:04:24 -08:00
dependabot-preview[bot]
f485062677 chore(deps): bump github.com/golang/protobuf in /tests/apps/gogrpc
Bumps [github.com/golang/protobuf](https://github.com/golang/protobuf) from 1.3.2 to 1.3.3.
- [Release notes](https://github.com/golang/protobuf/releases)
- [Commits](https://github.com/golang/protobuf/compare/v1.3.2...v1.3.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-30 06:40:19 +00:00
dependabot-preview[bot]
d068ab9722 chore(deps): bump google.golang.org/grpc in /tests/apps/gogrpc
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.26.0 to 1.27.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.26.0...v1.27.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-29 06:46:56 +00:00
Jose Diaz-Gonzalez
30866dd98b Merge pull request #3829 from dokku/dependabot/pip/tests/apps/python-flask/werkzeug-0.16.1
chore(deps): bump werkzeug from 0.16.0 to 0.16.1 in /tests/apps/python-flask
2020-01-27 12:19:15 -05:00
Jose Diaz-Gonzalez
e939eeb652 Merge pull request #3830 from dokku/dependabot/composer/tests/apps/php/heroku/heroku-buildpack-php-169
chore(deps-dev): bump heroku/heroku-buildpack-php from 166 to 169 in /tests/apps/php
2020-01-27 12:18:36 -05:00
dependabot-preview[bot]
22ccfe6442 chore(deps-dev): bump heroku/heroku-buildpack-php in /tests/apps/php
Bumps [heroku/heroku-buildpack-php](https://github.com/heroku/heroku-buildpack-php) from 166 to 169.
- [Release notes](https://github.com/heroku/heroku-buildpack-php/releases)
- [Changelog](https://github.com/heroku/heroku-buildpack-php/blob/master/CHANGELOG.md)
- [Commits](https://github.com/heroku/heroku-buildpack-php/compare/v166...v169)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-27 08:32:54 +00:00
dependabot-preview[bot]
f4a55172da chore(deps): bump werkzeug in /tests/apps/python-flask
Bumps [werkzeug](https://github.com/pallets/werkzeug) from 0.16.0 to 0.16.1.
- [Release notes](https://github.com/pallets/werkzeug/releases)
- [Changelog](https://github.com/pallets/werkzeug/blob/master/CHANGES.rst)
- [Commits](https://github.com/pallets/werkzeug/compare/0.16.0...0.16.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-27 06:52:26 +00:00
Jose Diaz-Gonzalez
686c16fa32 Release 0.19.13
# History

## 0.19.13

Install/update via the bootstrap script:

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

### Bug Fixes

- #3828: @josegonzalez Reference correct file in nginx:report command

### Other

- #3824: @dependabot-preview[bot] chore(deps): bump jetty-servlet from 9.4.25.v20191220 to 9.4.26.v20200117 in /tests/apps/java
2020-01-24 17:19:20 -05:00
Jose Diaz-Gonzalez
743896ff56 Merge pull request #3828 from dokku/3827-nginx-report
Reference correct file in nginx:report command
2020-01-24 17:16:50 -05:00
Jose Diaz-Gonzalez
9937068d41 fix: reference correct file in nginx:report command
Closes #3827
2020-01-24 17:15:28 -05:00
Jose Diaz-Gonzalez
5ee37fde2d Merge pull request #3824 from dokku/dependabot/maven/tests/apps/java/org.eclipse.jetty-jetty-servlet-9.4.26.v20200117
chore(deps): bump jetty-servlet from 9.4.25.v20191220 to 9.4.26.v20200117 in /tests/apps/java
2020-01-20 12:59:14 -05:00
dependabot-preview[bot]
686a577037 chore(deps): bump jetty-servlet in /tests/apps/java
Bumps [jetty-servlet](https://github.com/eclipse/jetty.project) from 9.4.25.v20191220 to 9.4.26.v20200117.
- [Release notes](https://github.com/eclipse/jetty.project/releases)
- [Commits](https://github.com/eclipse/jetty.project/compare/jetty-9.4.25.v20191220...jetty-9.4.26.v20200117)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-20 06:59:14 +00:00
Jose Diaz-Gonzalez
b7c2e4c1d6 Release 0.19.12
# History

## 0.19.12

Install/update via the bootstrap script:

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

### New Features

- #3819: @josegonzalez Allow binding nginx to specific IPv4/IPv6 interfaces
- #3818: @josegonzalez Add support for host-mode networking

### Documentation

- #3814: @treyssatvincent Use dokku:report to for listing domains
- #3809: @josegonzalez Document nginx:show-conf
- #3650: @vincelwt Clarify resource management for docker-local scheduler
- #3806: @kimar Make default vhost example listen to ipv6

### Other

- #3816: @dependabot-preview[bot] chore(deps): bump handlebars from 4.6.0 to 4.7.1 in /tests/apps/.websocket.disabled
- #3815: @dependabot-preview[bot] chore(deps): bump handlebars from 4.5.3 to 4.6.0 in /tests/apps/.websocket.disabled
- #3811: @dependabot-preview[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 165 to 166 in /tests/apps/php
- #3812: @dependabot-preview[bot] chore(deps): bump jetty-servlet from 9.4.24.v20191120 to 9.4.25.v20191220 in /tests/apps/java
- #3810: @dependabot-preview[bot] chore(deps): bump monolog/monolog from 1.25.2 to 1.25.3 in /tests/apps/php
- #3808: @dependabot-preview[bot] chore(deps): [security] bump rack from 1.6.11 to 1.6.12 in /tests/apps/ruby
- #3807: @dependabot-preview[bot] chore(deps): bump google.golang.org/grpc from 1.25.1 to 1.26.0 in /tests/apps/gogrpc
- #3804: @dependabot-preview[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 164 to 165 in /tests/apps/php
2020-01-15 19:18:00 -05:00
Jose Diaz-Gonzalez
566cd25336 Merge pull request #3819 from dokku/3805-bind-address
Allow binding nginx to specific IPv4/IPv6 interfaces
2020-01-15 19:01:26 -05:00
Jose Diaz-Gonzalez
6fc3f58cb7 Merge pull request #3818 from dokku/host-networking-support
Add support for host-mode networking
2020-01-15 18:57:27 -05:00
Jose Diaz-Gonzalez
8958ea0f2d feat: add support for host-mode networking
In host-mode, there is no 'bridge' network by default, so we return an invalid IP address of 'no value'. Instead, return '127.0.0.1' for those containers.
2020-01-15 18:08:08 -05:00
Jose Diaz-Gonzalez
7dd4efad39 Merge pull request #3816 from dokku/dependabot/npm_and_yarn/tests/apps/dot-websocket.disabled/handlebars-4.7.1
chore(deps): bump handlebars from 4.6.0 to 4.7.1 in /tests/apps/.websocket.disabled
2020-01-13 09:18:24 -05:00
dependabot-preview[bot]
9485f26e9b chore(deps): bump handlebars in /tests/apps/.websocket.disabled
Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.6.0 to 4.7.1.
- [Release notes](https://github.com/wycats/handlebars.js/releases)
- [Changelog](https://github.com/wycats/handlebars.js/blob/v4.7.1/release-notes.md)
- [Commits](https://github.com/wycats/handlebars.js/compare/v4.6.0...v4.7.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-13 07:04:05 +00:00
Jose Diaz-Gonzalez
69c8c0141d Merge pull request #3815 from dokku/dependabot/npm_and_yarn/tests/apps/dot-websocket.disabled/handlebars-4.6.0
chore(deps): bump handlebars from 4.5.3 to 4.6.0 in /tests/apps/.websocket.disabled
2020-01-09 12:09:26 -05:00
dependabot-preview[bot]
782e4cba64 chore(deps): bump handlebars in /tests/apps/.websocket.disabled
Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.5.3 to 4.6.0.
- [Release notes](https://github.com/wycats/handlebars.js/releases)
- [Changelog](https://github.com/wycats/handlebars.js/blob/master/release-notes.md)
- [Commits](https://github.com/wycats/handlebars.js/compare/v4.5.3...v4.6.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2020-01-09 06:49:57 +00:00
Jose Diaz-Gonzalez
c9f488f8b8 Merge pull request #3814 from treyssatvincent/patch-1
Use dokku:report to for listing domains
2020-01-08 05:11:04 -05:00
N
63b18cc902 add :report to dokku domains
add :report to dokku domains to avoid deprecated warning
2020-01-08 11:06:30 +01:00
Jose Diaz-Gonzalez
8b41bc6520 Merge pull request #3811 from dokku/dependabot/composer/tests/apps/php/heroku/heroku-buildpack-php-166
chore(deps-dev): bump heroku/heroku-buildpack-php from 165 to 166 in /tests/apps/php
2019-12-24 17:18:27 -05:00
Jose Diaz-Gonzalez
4a4432af16 Merge pull request #3812 from dokku/dependabot/maven/tests/apps/java/org.eclipse.jetty-jetty-servlet-9.4.25.v20191220
chore(deps): bump jetty-servlet from 9.4.24.v20191120 to 9.4.25.v20191220 in /tests/apps/java
2019-12-24 17:18:11 -05:00
dependabot-preview[bot]
4c3f55896e chore(deps): bump jetty-servlet in /tests/apps/java
Bumps [jetty-servlet](https://github.com/eclipse/jetty.project) from 9.4.24.v20191120 to 9.4.25.v20191220.
- [Release notes](https://github.com/eclipse/jetty.project/releases)
- [Commits](https://github.com/eclipse/jetty.project/compare/jetty-9.4.24.v20191120...jetty-9.4.25.v20191220)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-24 06:44:42 +00:00
Jose Diaz-Gonzalez
ecb1732d5b Merge pull request #3810 from dokku/dependabot/composer/tests/apps/php/monolog/monolog-1.25.3
chore(deps): bump monolog/monolog from 1.25.2 to 1.25.3 in /tests/apps/php
2019-12-23 11:39:41 -05:00
dependabot-preview[bot]
78d0857da3 chore(deps-dev): bump heroku/heroku-buildpack-php in /tests/apps/php
Bumps [heroku/heroku-buildpack-php](https://github.com/heroku/heroku-buildpack-php) from 165 to 166.
- [Release notes](https://github.com/heroku/heroku-buildpack-php/releases)
- [Changelog](https://github.com/heroku/heroku-buildpack-php/blob/master/CHANGELOG.md)
- [Commits](https://github.com/heroku/heroku-buildpack-php/compare/v165...v166)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-23 08:12:08 +00:00
dependabot-preview[bot]
df9344c245 chore(deps): bump monolog/monolog in /tests/apps/php
Bumps [monolog/monolog](https://github.com/Seldaek/monolog) from 1.25.2 to 1.25.3.
- [Release notes](https://github.com/Seldaek/monolog/releases)
- [Changelog](https://github.com/Seldaek/monolog/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Seldaek/monolog/compare/1.25.2...1.25.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-23 08:11:28 +00:00
Jose Diaz-Gonzalez
6b431378a1 feat: add ability to set the ipv4/ipv6 bind address for an app
This allows users to handle mulitple interfaces separately or even ensure applications remain accessible only on a local network.

Closes #3805
2019-12-21 18:54:54 -05:00
Jose Diaz-Gonzalez
38a58a17e4 chore: drop unused import 2019-12-19 02:29:22 -05:00
Jose Diaz-Gonzalez
d2ecd76646 fix: handle case where defaultValue was not properly returned by get-with-default 2019-12-19 02:29:22 -05:00
Jose Diaz-Gonzalez
ca5946636f chore: move fn-in-array to common-functions
This is used by all generic `set` commands, so we should just make it globally available.
2019-12-19 02:29:22 -05:00
Jose Diaz-Gonzalez
6a92368059 Merge pull request #3809 from dokku/document-show-conf
Document nginx:show-conf
2019-12-19 02:26:11 -05:00
Jose Diaz-Gonzalez
90681ce475 docs: document nginx:show-conf 2019-12-19 02:24:27 -05:00
Jose Diaz-Gonzalez
adabaa286f Merge pull request #3650 from vincelwt/clarify-docs
Clarify --cpu mapping for docker-local scheduler
2019-12-19 00:59:27 -05:00
Jose Diaz-Gonzalez
840f113a4f docs: move reference to resource mapping to scheduler page
As there can be custom schedulers, including scheduler-specific information on the resource management page can be a disingenuous - the values don't map to kubernetes, for example - and thus we should call out to the scheduler docs (and underlying docker docs) to make the mapping more clear.
2019-12-19 00:58:08 -05:00
Jose Diaz-Gonzalez
f82cb325d8 Merge pull request #3806 from kimar/chore/docs-configuration-default-vhosts-ipv6
Make default vhost example listen to ipv6
2019-12-19 00:42:29 -05:00
Jose Diaz-Gonzalez
347372d5fe docs: correct default site example
This handles ipv4 and ipv6.

[ci skip]
2019-12-19 00:40:00 -05:00
Jose Diaz-Gonzalez
cf246f206b Merge pull request #3808 from dokku/dependabot/bundler/tests/apps/ruby/rack-1.6.12
chore(deps): [security] bump rack from 1.6.11 to 1.6.12 in /tests/apps/ruby
2019-12-18 15:23:54 -05:00
dependabot-preview[bot]
d4988ed182 chore(deps): [security] bump rack in /tests/apps/ruby
Bumps [rack](https://github.com/rack/rack) from 1.6.11 to 1.6.12. **This update includes a security fix.**
- [Release notes](https://github.com/rack/rack/releases)
- [Changelog](https://github.com/rack/rack/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rack/rack/compare/1.6.11...1.6.12)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-18 19:33:18 +00:00
Jose Diaz-Gonzalez
c3c4b5d42b Merge pull request #3807 from dokku/dependabot/go_modules/tests/apps/gogrpc/google.golang.org/grpc-1.26.0
chore(deps): bump google.golang.org/grpc from 1.25.1 to 1.26.0 in /tests/apps/gogrpc
2019-12-18 02:36:05 -05:00
dependabot-preview[bot]
8118fd9743 chore(deps): bump google.golang.org/grpc in /tests/apps/gogrpc
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.25.1 to 1.26.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.25.1...v1.26.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-18 06:44:24 +00:00
Marcus Kida
0a3133fbcc chore: make default vhost example listen to ipv6 2019-12-17 10:32:48 +01:00
Jose Diaz-Gonzalez
18f388ad76 Merge pull request #3804 from dokku/dependabot/composer/tests/apps/php/heroku/heroku-buildpack-php-165
chore(deps-dev): bump heroku/heroku-buildpack-php from 164 to 165 in /tests/apps/php
2019-12-12 12:20:18 -05:00
dependabot-preview[bot]
55d1b896fd chore(deps-dev): bump heroku/heroku-buildpack-php in /tests/apps/php
Bumps [heroku/heroku-buildpack-php](https://github.com/heroku/heroku-buildpack-php) from 164 to 165.
- [Release notes](https://github.com/heroku/heroku-buildpack-php/releases)
- [Changelog](https://github.com/heroku/heroku-buildpack-php/blob/master/CHANGELOG.md)
- [Commits](https://github.com/heroku/heroku-buildpack-php/compare/v164...v165)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-12-12 07:58:52 +00:00
Jose Diaz-Gonzalez
08a104b997 Release 0.19.11
# History

## 0.19.11

Install/update via the bootstrap script:

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

### Bug Fixes

- #3800: @josegonzalez Properly track failed check count

### New Features

- #3801: @josegonzalez Update herokuish

### Documentation

- #3798: @znz Fix function descriptions in property-functions file
2019-12-09 18:23:03 -05:00
Jose Diaz-Gonzalez
be886ef1f6 Merge pull request #3801 from dokku/upgrade-herokuish
Update herokuish
2019-12-09 18:22:26 -05:00
Jose Diaz-Gonzalez
83cccc0af1 feat: update herokuish 2019-12-09 18:21:57 -05:00
Jose Diaz-Gonzalez
4c1b9989aa Merge pull request #3800 from dokku/3799-check-failure
Properly track failed check count
2019-12-09 18:21:29 -05:00
Jose Diaz-Gonzalez
5dc6c829b3 fix: ensure that the checks file is properly referenced 2019-12-09 17:28:49 -05:00
Jose Diaz-Gonzalez
ce60ef6bff fix: properly track failed check count
Closes #3799
2019-12-09 14:55:52 -05:00
Jose Diaz-Gonzalez
e1cbf08a95 Merge pull request #3798 from znz/fix-declare
Fix declare [ci skip]
2019-12-08 22:10:21 -05:00
Kazuhiro NISHIYAMA
168d4b5e8d Fix declare [ci skip] 2019-12-08 21:52:38 +09:00
Jose Diaz-Gonzalez
b4ab5a5764 Release 0.19.10
# History

## 0.19.10

Install/update via the bootstrap script:

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

### Bug Fixes

- #3784: @josegonzalez Ensure checks attempts are tracked per-check instead of globally

### New Features

- #3793: @josegonzalez Omit DWARF symbol table and debug information from go binaries
- #3792: @josegonzalez Unify property function implementations

### Documentation

- #3712: @fruitl00p Added new plugin

### Other

- #3790: @dependabot-preview[bot] chore(deps): bump gunicorn from 20.0.3 to 20.0.4 in /tests/apps/python-flask
- #3791: @dependabot-preview[bot] chore(deps): bump gunicorn from 20.0.3 to 20.0.4 in /tests/apps/multi
- #3787: @dependabot-preview[bot] chore(deps): bump gunicorn from 20.0.2 to 20.0.3 in /tests/apps/multi
- #3788: @dependabot-preview[bot] chore(deps): bump gunicorn from 20.0.2 to 20.0.3 in /tests/apps/python-flask
- #3785: @dependabot-preview[bot] chore(deps): bump gunicorn from 20.0.0 to 20.0.2 in /tests/apps/python-flask
- #3786: @dependabot-preview[bot] chore(deps): bump gunicorn from 20.0.0 to 20.0.2 in /tests/apps/multi
- #3748: @dependabot-preview[bot] chore(deps): [security] bump express from 2.5.11 to 4.17.1 in /tests/apps/dockerfile-dokku-scale
- #3749: @dependabot-preview[bot] chore(deps): [security] bump express from 2.5.11 to 4.17.1 in /tests/apps/nodejs-express-noappjson
- #3747: @dependabot-preview[bot] chore(deps): [security] bump express from 2.5.11 to 4.17.1 in /tests/apps/config
- #3746: @dependabot-preview[bot] chore(deps): [security] bump express from 2.5.11 to 4.17.1 in /tests/apps/dockerfile-procfile
- #3741: @dependabot-preview[bot] chore(deps): [security] bump express from 2.5.11 to 4.17.1 in /tests/apps/nodejs-express
- #3783: @dependabot-preview[bot] chore(deps): bump jetty-servlet from 9.4.23.v20191118 to 9.4.24.v20191120 in /tests/apps/java
- #3777: @dependabot-preview[bot] chore(deps): [security] bump symfony/http-kernel from 3.4.32 to 3.4.35 in /tests/apps/php
- #3774: @dependabot-preview[bot] chore(deps): bump gunicorn from 19.9.0 to 20.0.0 in /tests/apps/python-flask
- #3779: @dependabot-preview[bot] chore(deps): bump monolog/monolog from 1.25.1 to 1.25.2 in /tests/apps/php
- #3782: @dependabot-preview[bot] chore(deps): bump jetty-servlet from 9.4.22.v20191022 to 9.4.23.v20191118 in /tests/apps/java
2019-11-27 22:51:00 -05:00
Jose Diaz-Gonzalez
645ba5728f Merge pull request #3793 from dokku/slimmer-builds
Omit DWARF symbol table and debug information from go binaries
2019-11-27 22:30:32 -05:00
Jose Diaz-Gonzalez
02d653a1aa refactor: omit DWARF symbol table and debug information from go binaries
This will reduce the size of binaries in exchange for worse debugging output. This is acceptable for our users and worth it to save money on packagecloud package hosting - which is currently free under a given repository size.
2019-11-27 21:12:16 -05:00
Jose Diaz-Gonzalez
39c7699962 Merge pull request #3712 from fruitl00p/patch-6
Added new plugin
2019-11-27 20:39:52 -05:00
Jose Diaz-Gonzalez
9b05804edf Merge pull request #3792 from dokku/list-properties
Unify property function implementations
2019-11-27 20:39:26 -05:00
Jose Diaz-Gonzalez
fe9472ff09 fix: correct issue where output was not sent to stdout 2019-11-27 18:58:22 -05:00
Jose Diaz-Gonzalez
79b344bbe4 feat: add list-length method to shell functions 2019-11-27 17:08:18 -05:00
Jose Diaz-Gonzalez
e3f0160e5f fix: correct issue where common plugin was ignored for go builds
It was previously ignored because there was nothing to build, and it was simply linked to.
2019-11-27 17:02:07 -05:00
Jose Diaz-Gonzalez
4d9e8f5f7d refactor: unify property function implementations
Rather than reimplementing the property functions in two different languages - and potentially having compatibility issues - standardize on golang for the implementation through the use of a generated binary.

This also implements all the list functions for use with shell-based plugins.

Note that the interface to the prop binary is experimental, and it should not be used directly.
2019-11-27 16:37:10 -05:00
Jose Diaz-Gonzalez
2429503b21 Merge pull request #3784 from dokku/better-checks-context
Ensure checks attempts are tracked per-check instead of globally
2019-11-27 15:19:12 -05:00
Jose Diaz-Gonzalez
ff4b0de04c docs: clarify comments 2019-11-27 14:31:51 -05:00
Jose Diaz-Gonzalez
9078dabc82 Merge pull request #3790 from dokku/dependabot/pip/tests/apps/python-flask/gunicorn-20.0.4
chore(deps): bump gunicorn from 20.0.3 to 20.0.4 in /tests/apps/python-flask
2019-11-27 12:10:41 -05:00
dependabot-preview[bot]
a18bb02115 chore(deps): bump gunicorn in /tests/apps/python-flask
Bumps [gunicorn](https://github.com/benoitc/gunicorn) from 20.0.3 to 20.0.4.
- [Release notes](https://github.com/benoitc/gunicorn/releases)
- [Commits](https://github.com/benoitc/gunicorn/compare/20.0.3...20.0.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-27 15:41:33 +00:00
Jose Diaz-Gonzalez
8ea12f6c5d Merge pull request #3791 from dokku/dependabot/pip/tests/apps/multi/gunicorn-20.0.4
chore(deps): bump gunicorn from 20.0.3 to 20.0.4 in /tests/apps/multi
2019-11-27 10:40:29 -05:00
dependabot-preview[bot]
a1b1d5cba1 chore(deps): bump gunicorn from 20.0.3 to 20.0.4 in /tests/apps/multi
Bumps [gunicorn](https://github.com/benoitc/gunicorn) from 20.0.3 to 20.0.4.
- [Release notes](https://github.com/benoitc/gunicorn/releases)
- [Commits](https://github.com/benoitc/gunicorn/compare/20.0.3...20.0.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-27 06:43:02 +00:00
Jose Diaz-Gonzalez
bb4b6df651 Merge pull request #3787 from dokku/dependabot/pip/tests/apps/multi/gunicorn-20.0.3
chore(deps): bump gunicorn from 20.0.2 to 20.0.3 in /tests/apps/multi
2019-11-26 09:27:51 -05:00
Jose Diaz-Gonzalez
3568cbef8c Merge pull request #3788 from dokku/dependabot/pip/tests/apps/python-flask/gunicorn-20.0.3
chore(deps): bump gunicorn from 20.0.2 to 20.0.3 in /tests/apps/python-flask
2019-11-26 09:27:34 -05:00
dependabot-preview[bot]
8382bebcf2 chore(deps): bump gunicorn in /tests/apps/python-flask
Bumps [gunicorn](https://github.com/benoitc/gunicorn) from 20.0.2 to 20.0.3.
- [Release notes](https://github.com/benoitc/gunicorn/releases)
- [Commits](https://github.com/benoitc/gunicorn/compare/20.0.2...20.0.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-26 06:49:34 +00:00
dependabot-preview[bot]
02dca4a1a3 chore(deps): bump gunicorn from 20.0.2 to 20.0.3 in /tests/apps/multi
Bumps [gunicorn](https://github.com/benoitc/gunicorn) from 20.0.2 to 20.0.3.
- [Release notes](https://github.com/benoitc/gunicorn/releases)
- [Commits](https://github.com/benoitc/gunicorn/compare/20.0.2...20.0.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-26 06:43:18 +00:00
Jose Diaz-Gonzalez
4dd000ca9e Merge pull request #3785 from dokku/dependabot/pip/tests/apps/python-flask/gunicorn-20.0.2
chore(deps): bump gunicorn from 20.0.0 to 20.0.2 in /tests/apps/python-flask
2019-11-25 13:24:13 -05:00
dependabot-preview[bot]
297041bfc4 chore(deps): bump gunicorn in /tests/apps/python-flask
Bumps [gunicorn](https://github.com/benoitc/gunicorn) from 20.0.0 to 20.0.2.
- [Release notes](https://github.com/benoitc/gunicorn/releases)
- [Commits](https://github.com/benoitc/gunicorn/compare/20.0.0...20.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-25 16:40:39 +00:00
Jose Diaz-Gonzalez
52f6e8c59b Merge pull request #3786 from dokku/dependabot/pip/tests/apps/multi/gunicorn-20.0.2
chore(deps): bump gunicorn from 20.0.0 to 20.0.2 in /tests/apps/multi
2019-11-25 11:39:34 -05:00
dependabot-preview[bot]
c6ec59be87 chore(deps): bump gunicorn from 20.0.0 to 20.0.2 in /tests/apps/multi
Bumps [gunicorn](https://github.com/benoitc/gunicorn) from 20.0.0 to 20.0.2.
- [Release notes](https://github.com/benoitc/gunicorn/releases)
- [Commits](https://github.com/benoitc/gunicorn/compare/20.0.0...20.0.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-25 06:52:34 +00:00
Jose Diaz-Gonzalez
404f08626b Merge pull request #3748 from dokku/dependabot/npm_and_yarn/tests/apps/dockerfile-dokku-scale/express-4.17.1
chore(deps): [security] bump express from 2.5.11 to 4.17.1 in /tests/apps/dockerfile-dokku-scale
2019-11-24 10:21:06 -05:00
Jose Diaz-Gonzalez
6a9629cdc4 Merge pull request #3749 from dokku/dependabot/npm_and_yarn/tests/apps/nodejs-express-noappjson/express-4.17.1
chore(deps): [security] bump express from 2.5.11 to 4.17.1 in /tests/apps/nodejs-express-noappjson
2019-11-23 16:55:51 -05:00
Jose Diaz-Gonzalez
d6c3c52cec Merge pull request #3747 from dokku/dependabot/npm_and_yarn/tests/apps/config/express-4.17.1
chore(deps): [security] bump express from 2.5.11 to 4.17.1 in /tests/apps/config
2019-11-23 15:43:59 -05:00
Jose Diaz-Gonzalez
52cd280782 Merge pull request #3746 from dokku/dependabot/npm_and_yarn/tests/apps/dockerfile-procfile/express-4.17.1
chore(deps): [security] bump express from 2.5.11 to 4.17.1 in /tests/apps/dockerfile-procfile
2019-11-23 15:43:46 -05:00
Jose Diaz-Gonzalez
815febdb39 feat: remove unnecessary logger from test app
The logger middleware was moved to the `morgan` package in newer versions of express.
2019-11-23 13:17:35 -05:00
Jose Diaz-Gonzalez
2d76284a8c feat: remove unnecessary logger from test app
The logger middleware was moved to the `morgan` package in newer versions of express.
2019-11-23 13:17:34 -05:00
Jose Diaz-Gonzalez
347b0f5389 feat: remove unnecessary logger from test app
The logger middleware was moved to the `morgan` package in newer versions of express.
2019-11-23 13:16:22 -05:00
dependabot-preview[bot]
9e9a19a817 chore(deps): [security] bump express in /tests/apps/config
Bumps [express](https://github.com/expressjs/express) from 2.5.11 to 4.17.1. **This update includes a security fix.**
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/2.5.11...4.17.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-23 18:15:38 +00:00
dependabot-preview[bot]
ddfc3ba696 chore(deps): [security] bump express
Bumps [express](https://github.com/expressjs/express) from 2.5.11 to 4.17.1. **This update includes a security fix.**
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/2.5.11...4.17.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-23 18:15:36 +00:00
dependabot-preview[bot]
d581f2de64 chore(deps): [security] bump express
Bumps [express](https://github.com/expressjs/express) from 2.5.11 to 4.17.1. **This update includes a security fix.**
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/2.5.11...4.17.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-23 18:15:35 +00:00
Jose Diaz-Gonzalez
a35798e357 feat: remove unnecessary logger from test app
The logger middleware was moved to the `morgan` package in newer versions of express.
2019-11-23 13:15:27 -05:00
Jose Diaz-Gonzalez
0c25465df4 Merge pull request #3741 from dokku/dependabot/npm_and_yarn/tests/apps/nodejs-express/express-4.17.1
chore(deps): [security] bump express from 2.5.11 to 4.17.1 in /tests/apps/nodejs-express
2019-11-23 13:14:19 -05:00
Jose Diaz-Gonzalez
906e2c5615 feat: remove unnecessary logger from test app
The logger middleware was moved to the `morgan` package in newer versions of express.
2019-11-23 11:51:12 -05:00
Jose Diaz-Gonzalez
3b04b80a94 Merge pull request #3783 from dokku/dependabot/maven/tests/apps/java/org.eclipse.jetty-jetty-servlet-9.4.24.v20191120
chore(deps): bump jetty-servlet from 9.4.23.v20191118 to 9.4.24.v20191120 in /tests/apps/java
2019-11-23 11:27:08 -05:00
Jose Diaz-Gonzalez
00a175bef7 fix: correct issue where attempts were done globally instead of per check 2019-11-23 10:23:09 -05:00
Jose Diaz-Gonzalez
a3a37a1948 feat: minimize number of check-related output messages 2019-11-23 10:16:55 -05:00
dependabot-preview[bot]
6527552a62 chore(deps): bump jetty-servlet in /tests/apps/java
Bumps [jetty-servlet](https://github.com/eclipse/jetty.project) from 9.4.23.v20191118 to 9.4.24.v20191120.
- [Release notes](https://github.com/eclipse/jetty.project/releases)
- [Commits](https://github.com/eclipse/jetty.project/compare/jetty-9.4.23.v20191118...jetty-9.4.24.v20191120)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-22 06:44:31 +00:00
Jose Diaz-Gonzalez
55e2681ad7 Merge pull request #3777 from dokku/dependabot/composer/tests/apps/php/symfony/http-kernel-3.4.35
chore(deps): [security] bump symfony/http-kernel from 3.4.32 to 3.4.35 in /tests/apps/php
2019-11-20 07:57:13 -05:00
Jose Diaz-Gonzalez
81257cafa1 Merge pull request #3774 from dokku/dependabot/pip/tests/apps/python-flask/gunicorn-20.0.0
chore(deps): bump gunicorn from 19.9.0 to 20.0.0 in /tests/apps/python-flask
2019-11-20 07:56:18 -05:00
dependabot-preview[bot]
8964f77978 chore(deps): bump gunicorn in /tests/apps/python-flask
Bumps [gunicorn](https://github.com/benoitc/gunicorn) from 19.9.0 to 20.0.0.
- [Release notes](https://github.com/benoitc/gunicorn/releases)
- [Commits](https://github.com/benoitc/gunicorn/compare/19.9.0...20.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-20 11:50:54 +00:00
Jose Diaz-Gonzalez
72d480c9dd Merge pull request #3779 from dokku/dependabot/composer/tests/apps/php/monolog/monolog-1.25.2
chore(deps): bump monolog/monolog from 1.25.1 to 1.25.2 in /tests/apps/php
2019-11-20 06:49:09 -05:00
Jose Diaz-Gonzalez
e66c2373a7 Merge pull request #3782 from dokku/dependabot/maven/tests/apps/java/org.eclipse.jetty-jetty-servlet-9.4.23.v20191118
chore(deps): bump jetty-servlet from 9.4.22.v20191022 to 9.4.23.v20191118 in /tests/apps/java
2019-11-20 06:46:08 -05:00
dependabot-preview[bot]
af38710352 chore(deps): bump jetty-servlet in /tests/apps/java
Bumps [jetty-servlet](https://github.com/eclipse/jetty.project) from 9.4.22.v20191022 to 9.4.23.v20191118.
- [Release notes](https://github.com/eclipse/jetty.project/releases)
- [Commits](https://github.com/eclipse/jetty.project/compare/jetty-9.4.22.v20191022...jetty-9.4.23.v20191118)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-20 06:52:24 +00:00
Jose Diaz-Gonzalez
d432cb514c Release 0.19.9
# History

## 0.19.9

Install/update via the bootstrap script:

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

### Bug Fixes

- #3781: @michaelshobbs Respect DOKKU_APP_USER in is_image_herokuish_based

### Other

- #3773: @dependabot-preview[bot] chore(deps): bump google.golang.org/grpc from 1.25.0 to 1.25.1 in /tests/apps/gogrpc
- #3772: @dependabot-preview[bot] chore(deps): bump gunicorn from 19.9.0 to 20.0.0 in /tests/apps/multi
- #3778: @dependabot-preview[bot] chore(deps): [security] bump symfony/http-foundation from 3.4.32 to 3.4.35 in /tests/apps/php
- #3768: @dependabot-preview[bot] chore(deps): bump google.golang.org/grpc from 1.24.0 to 1.25.0 in /tests/apps/gogrpc
2019-11-19 18:04:28 -05:00
Jose Diaz-Gonzalez
db4311c655 Merge pull request #3781 from dokku/mh/fix/custom-dokku-app-user
fix: respect DOKKU_APP_USER in is_image_herokuish_based
2019-11-19 18:02:50 -05:00
Michael Hobbs
c4d69b662f add is_image_herokuish_based tests 2019-11-19 15:09:54 -07:00
Michael Hobbs
972830a5f3 fix: respect DOKKU_APP_USER in is_image_herokuish_based 2019-11-19 15:07:29 -07:00
Jose Diaz-Gonzalez
e3c81afb6a Merge pull request #3773 from dokku/dependabot/go_modules/tests/apps/gogrpc/google.golang.org/grpc-1.25.1
chore(deps): bump google.golang.org/grpc from 1.25.0 to 1.25.1 in /tests/apps/gogrpc
2019-11-14 03:01:11 -05:00
dependabot-preview[bot]
fe206d53d9 chore(deps): bump monolog/monolog in /tests/apps/php
Bumps [monolog/monolog](https://github.com/Seldaek/monolog) from 1.25.1 to 1.25.2.
- [Release notes](https://github.com/Seldaek/monolog/releases)
- [Changelog](https://github.com/Seldaek/monolog/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Seldaek/monolog/compare/1.25.1...1.25.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-14 07:57:30 +00:00
dependabot-preview[bot]
096e9346ad chore(deps): [security] bump symfony/http-kernel in /tests/apps/php
Bumps [symfony/http-kernel](https://github.com/symfony/http-kernel) from 3.4.32 to 3.4.35. **This update includes a security fix.**
- [Release notes](https://github.com/symfony/http-kernel/releases)
- [Changelog](https://github.com/symfony/http-kernel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/symfony/http-kernel/compare/v3.4.32...v3.4.35)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-14 06:57:54 +00:00
Jose Diaz-Gonzalez
5f342dcf27 Merge pull request #3772 from dokku/dependabot/pip/tests/apps/multi/gunicorn-20.0.0
chore(deps): bump gunicorn from 19.9.0 to 20.0.0 in /tests/apps/multi
2019-11-14 01:56:51 -05:00
Jose Diaz-Gonzalez
e02528280b Merge pull request #3778 from dokku/dependabot/composer/tests/apps/php/symfony/http-foundation-3.4.35
chore(deps): [security] bump symfony/http-foundation from 3.4.32 to 3.4.35 in /tests/apps/php
2019-11-14 01:56:29 -05:00
dependabot-preview[bot]
63358c3d34 chore(deps): [security] bump symfony/http-foundation in /tests/apps/php
Bumps [symfony/http-foundation](https://github.com/symfony/http-foundation) from 3.4.32 to 3.4.35. **This update includes a security fix.**
- [Release notes](https://github.com/symfony/http-foundation/releases)
- [Changelog](https://github.com/symfony/http-foundation/blob/master/CHANGELOG.md)
- [Commits](https://github.com/symfony/http-foundation/compare/v3.4.32...v3.4.35)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-13 11:34:11 +00:00
dependabot-preview[bot]
0f5ed9844b chore(deps): bump google.golang.org/grpc in /tests/apps/gogrpc
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.25.0 to 1.25.1.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.25.0...v1.25.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-11 09:37:16 +00:00
dependabot-preview[bot]
200de06d1e chore(deps): bump gunicorn from 19.9.0 to 20.0.0 in /tests/apps/multi
Bumps [gunicorn](https://github.com/benoitc/gunicorn) from 19.9.0 to 20.0.0.
- [Release notes](https://github.com/benoitc/gunicorn/releases)
- [Commits](https://github.com/benoitc/gunicorn/compare/19.9.0...20.0.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-11 09:37:00 +00:00
Jose Diaz-Gonzalez
3d1ab26777 Merge pull request #3768 from dokku/dependabot/go_modules/tests/apps/gogrpc/google.golang.org/grpc-1.25.0
chore(deps): bump google.golang.org/grpc from 1.24.0 to 1.25.0 in /tests/apps/gogrpc
2019-11-09 16:44:49 +09:00
Jose Diaz-Gonzalez
71295b7658 Release 0.19.8
# History

## 0.19.8

Install/update via the bootstrap script:

```shell
wget https://raw.githubusercontent.com/dokku/dokku/v0.19.8/bootstrap.sh
sudo DOKKU_TAG=v0.19.8 bash bootstrap.sh
```
2019-11-07 12:47:22 +09:00
dependabot-preview[bot]
9539c28ef4 chore(deps): bump google.golang.org/grpc in /tests/apps/gogrpc
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.24.0 to 1.25.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.24.0...v1.25.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-11-06 06:54:37 +00:00
Jose Diaz-Gonzalez
d8653f97b7 Release 0.19.7
# History

## 0.19.7

Install/update via the bootstrap script:

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

### Documentation

- #3765: @znz Fix typo in desc of is_tls13_available

### Other

- #3739: @safeforge dokku run do not supports interactive mode.
- #3762: @dependabot-preview[bot] chore(deps): bump handlebars from 4.4.5 to 4.5.1 in /tests/apps/.websocket.disabled
2019-11-04 21:52:05 -05:00
Jose Diaz-Gonzalez
a5e6739e16 Merge pull request #3739 from safeforge/dokku-run-interactive
dokku run do not supports interactive mode.
2019-11-04 21:51:22 -05:00
Jose Diaz-Gonzalez
dd7d1d2f8d Merge pull request #3765 from znz/fix-typo
Fix typo in desc of is_tls13_available
2019-10-31 15:20:56 -04:00
Kazuhiro NISHIYAMA
2a747138af Fix typo in desc of is_tls13_available
[ci skip]
2019-10-31 17:08:56 +09:00
dependabot-preview[bot]
935c231518 chore(deps): [security] bump express in /tests/apps/nodejs-express
Bumps [express](https://github.com/expressjs/express) from 2.5.11 to 4.17.1. **This update includes a security fix.**
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/2.5.11...4.17.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-29 16:33:58 +00:00
dependabot-preview[bot]
10385e9877 chore(deps): [security] bump express in /tests/apps/dockerfile-procfile
Bumps [express](https://github.com/expressjs/express) from 2.5.11 to 4.17.1. **This update includes a security fix.**
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/2.5.11...4.17.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-29 16:33:57 +00:00
Jose Diaz-Gonzalez
32027da467 Merge pull request #3762 from dokku/dependabot/npm_and_yarn/tests/apps/dot-websocket.disabled/handlebars-4.5.1
chore(deps): bump handlebars from 4.4.5 to 4.5.1 in /tests/apps/.websocket.disabled
2019-10-29 12:30:01 -04:00
dependabot-preview[bot]
3dd583213c chore(deps): bump handlebars in /tests/apps/.websocket.disabled
Bumps [handlebars](https://github.com/wycats/handlebars.js) from 4.4.5 to 4.5.1.
- [Release notes](https://github.com/wycats/handlebars.js/releases)
- [Changelog](https://github.com/wycats/handlebars.js/blob/v4.5.1/release-notes.md)
- [Commits](https://github.com/wycats/handlebars.js/compare/v4.4.5...v4.5.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-29 07:00:51 +00:00
Jose Diaz-Gonzalez
91f4de2f68 Release 0.19.6
# History

## 0.19.6

Install/update via the bootstrap script:

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

### Other

- #3761: @pithyless Fix type-errors in dokku-installer.py
- #3759: @dependabot-preview[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 163 to 164 in /tests/apps/php
- #3758: @dependabot-preview[bot] chore(deps): bump jetty-servlet from 9.4.21.v20190926 to 9.4.22.v20191022 in /tests/apps/java
2019-10-28 18:00:05 -04:00
Jose Diaz-Gonzalez
4b8acf5c34 Merge pull request #3761 from pithyless/patch-1
Fix type-errors in dokku-installer.py
2019-10-28 17:59:46 -04:00
Norbert Wójtowicz
53e272ab22 Fix type-errors in dokku-installer.py 2019-10-28 16:55:31 +01:00
Jose Diaz-Gonzalez
6decb6f19a Merge pull request #3759 from dokku/dependabot/composer/tests/apps/php/heroku/heroku-buildpack-php-164
chore(deps-dev): bump heroku/heroku-buildpack-php from 163 to 164 in /tests/apps/php
2019-10-25 11:42:20 -04:00
dependabot-preview[bot]
ce3b8c3d5c chore(deps-dev): bump heroku/heroku-buildpack-php in /tests/apps/php
Bumps [heroku/heroku-buildpack-php](https://github.com/heroku/heroku-buildpack-php) from 163 to 164.
- [Release notes](https://github.com/heroku/heroku-buildpack-php/releases)
- [Changelog](https://github.com/heroku/heroku-buildpack-php/blob/master/CHANGELOG.md)
- [Commits](https://github.com/heroku/heroku-buildpack-php/compare/v163...v164)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-25 07:53:11 +00:00
Jose Diaz-Gonzalez
b86fb133b2 Merge pull request #3758 from dokku/dependabot/maven/tests/apps/java/org.eclipse.jetty-jetty-servlet-9.4.22.v20191022
chore(deps): bump jetty-servlet from 9.4.21.v20190926 to 9.4.22.v20191022 in /tests/apps/java
2019-10-24 18:04:13 -04:00
dependabot-preview[bot]
6d68ddfcb9 chore(deps): bump jetty-servlet in /tests/apps/java
Bumps [jetty-servlet](https://github.com/eclipse/jetty.project) from 9.4.21.v20190926 to 9.4.22.v20191022.
- [Release notes](https://github.com/eclipse/jetty.project/releases)
- [Commits](https://github.com/eclipse/jetty.project/compare/jetty-9.4.21.v20190926...jetty-9.4.22.v20191022)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-24 07:06:15 +00:00
David Pickett
7115839fd5 Add provision line to Windows Vagrant definition so dokku-installer is running/available by default in dokku-windows box 2019-10-23 11:57:20 -10:00
Jose Diaz-Gonzalez
827354d3d1 Release 0.19.5
# History

## 0.19.5

Install/update via the bootstrap script:

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

### Bug Fixes

- #3756: @jayjun Redirect missing key_file warning to stderr
2019-10-23 01:11:10 -04:00
Jose Diaz-Gonzalez
81ab56d7ee Merge pull request #3756 from jayjun/stderr
Redirect missing key_file warning to stderr
2019-10-22 23:12:27 -04:00
Tan Jay Jun
58a7e535dd Redirect missing key_file warning to stderr 2019-10-23 10:54:56 +08:00
Jose Diaz-Gonzalez
721b464de9 Release 0.19.4
# History

## 0.19.4

Install/update via the bootstrap script:

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

### Bug Fixes

- #3755: @dean1012 Warn if key_file is missing on install but do not exit
2019-10-22 22:31:16 -04:00
Jose Diaz-Gonzalez
accfc3b793 Merge pull request #3755 from dean1012/issue-3717
Warn if key_file is missing on install but do not exit
2019-10-22 22:30:23 -04:00
Jerry Smith
80b20ec4c1 Fixes for issue #3717
* Adjusts documentation
* Changes error messages when ssh key is not present
* Moves error messages to stderr
* Removes erroneous exit line
2019-10-22 20:22:03 -05:00
Jose Diaz-Gonzalez
a355b8019a Release 0.19.3
# History

## 0.19.3

Install/update via the bootstrap script:

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

### Bug Fixes

- #3753: @josegonzalez Always use python3 for the installer

### Other

- #3743: @dependabot-preview[bot] chore(deps): [security] bump express from 3.1.2 to 4.17.1 in /tests/apps/.websocket.disabled
- #3744: @dependabot-preview[bot] chore(deps): [security] bump handlebars from 1.0.12 to 4.4.5 in /tests/apps/.websocket.disabled
- #3750: @dependabot-preview[bot] chore(deps): [security] bump express from 2.5.11 to 4.17.1 in /tests/apps/dockerfile-procfile-bad
- #3745: @dependabot-preview[bot] chore(deps): [security] bump express from 3.3.8 to 4.17.1 in /tests/apps/gitsubmodules
- #3742: @dependabot-preview[bot] chore(deps): [security] bump express from 2.5.11 to 4.17.1 in /tests/apps/nodejs-express-noprocfile
- #3729: @dependabot-preview[bot] chore(deps): bump monolog/monolog from 1.12.0 to 1.25.1 in /tests/apps/php
- #3732: @dependabot-preview[bot] chore(deps): bump silex/silex from 1.2.3 to 2.2.4 in /tests/apps/php
- #3728: @dependabot-preview[bot] chore(deps): bump jetty-servlet from 7.6.0.v20120127 to 9.4.21.v20190926 in /tests/apps/java
- #3730: @dependabot-preview[bot] chore(deps): bump werkzeug from 0.15.6 to 0.16.0 in /tests/apps/python-flask
- #3737: @dependabot-preview[bot] chore(deps): bump express3-handlebars from 0.2.3 to 0.5.2 in /tests/apps/.websocket.disabled
- #3734: @dependabot-preview[bot] chore(deps-dev): bump heroku/heroku-buildpack-php from 59 to 163 in /tests/apps/php
- #3735: @dependabot-preview[bot] chore(deps): [security] bump symfony/http-kernel from 2.6.4 to 2.8.51 in /tests/apps/php
- #3723: @dependabot-preview[bot] chore(deps): bump sass-globbing from 1.1.1 to 1.1.5 in /tests/apps/multi
- #3731: @dependabot-preview[bot] chore(deps): bump jinja2 from 2.10.1 to 2.10.3 in /tests/apps/python-flask
- #3736: @dependabot-preview[bot] chore(deps): bump socket.io from 0.9.19 to 2.3.0 in /tests/apps/.websocket.disabled
- #3726: @dependabot-preview[bot] chore(deps): bump google.golang.org/grpc from 1.23.0 to 1.24.0 in /tests/apps/gogrpc
- #3727: @dependabot-preview[bot] chore(deps): bump maven-dependency-plugin from 2.4 to 3.1.1 in /tests/apps/java
- #3733: @dependabot-preview[bot] chore(deps): [security] bump symfony/http-foundation from 2.6.4 to 2.8.50 in /tests/apps/php
- #3720: @dependabot-preview[bot] chore(deps): bump compass from 1.0.1 to 1.0.3 in /tests/apps/multi
- #3721: @dependabot-preview[bot] chore(deps): bump sinatra from 1.4.4 to 1.4.8 in /tests/apps/ruby
- #3719: @dependabot-preview[bot] chore(deps): bump thin from 1.6.1 to 1.7.2 in /tests/apps/ruby
2019-10-22 13:14:25 -04:00
Jose Diaz-Gonzalez
1494e07c34 Merge pull request #3753 from dokku/3740-python-3-installer
Always use python3 for the installer
2019-10-22 13:13:52 -04:00
Jose Diaz-Gonzalez
c9cf213afb fix: always use python3 for the installer
This actually breaks compatability since now we drop python2 support completely, but it's worth it to fix the weird issues with trying to support both versions.

Closes #3740
Closes #3752
Refs #3717
2019-10-22 01:49:00 -04:00
Jose Diaz-Gonzalez
291e052ece Merge pull request #3743 from dokku/dependabot/npm_and_yarn/tests/apps/dot-websocket.disabled/express-4.17.1
chore(deps): [security] bump express from 3.1.2 to 4.17.1 in /tests/apps/.websocket.disabled
2019-10-22 00:25:18 -04:00
dependabot-preview[bot]
72deeec81f chore(deps): [security] bump express in /tests/apps/.websocket.disabled
Bumps [express](https://github.com/expressjs/express) from 3.1.2 to 4.17.1. **This update includes a security fix.**
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/3.1.2...4.17.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-21 15:25:48 +00:00
Jose Diaz-Gonzalez
5e6630f042 Merge pull request #3744 from dokku/dependabot/npm_and_yarn/tests/apps/dot-websocket.disabled/handlebars-4.4.5
chore(deps): [security] bump handlebars from 1.0.12 to 4.4.5 in /tests/apps/.websocket.disabled
2019-10-21 11:24:32 -04:00
Jose Diaz-Gonzalez
b44aa8b8ea Merge pull request #3750 from dokku/dependabot/npm_and_yarn/tests/apps/dockerfile-procfile-bad/express-4.17.1
chore(deps): [security] bump express from 2.5.11 to 4.17.1 in /tests/apps/dockerfile-procfile-bad
2019-10-21 11:24:05 -04:00
dependabot-preview[bot]
ad2d219691 chore(deps): [security] bump express
Bumps [express](https://github.com/expressjs/express) from 2.5.11 to 4.17.1. **This update includes a security fix.**
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/2.5.11...4.17.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-21 13:02:34 +00:00
Jose Diaz-Gonzalez
986400c8e2 Merge pull request #3745 from dokku/dependabot/npm_and_yarn/tests/apps/gitsubmodules/express-4.17.1
chore(deps): [security] bump express from 3.3.8 to 4.17.1 in /tests/apps/gitsubmodules
2019-10-21 09:01:08 -04:00
Salvatore Ferrucci
48ee225dbe disable interactive mode when container is detached 2019-10-21 13:48:21 +02:00
dependabot-preview[bot]
9f395318b3 chore(deps): [security] bump express in /tests/apps/gitsubmodules
Bumps [express](https://github.com/expressjs/express) from 3.3.8 to 4.17.1. **This update includes a security fix.**
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/3.3.8...4.17.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-21 08:31:21 +00:00
Jose Diaz-Gonzalez
3f0051a04f Merge pull request #3742 from dokku/dependabot/npm_and_yarn/tests/apps/nodejs-express-noprocfile/express-4.17.1
chore(deps): [security] bump express from 2.5.11 to 4.17.1 in /tests/apps/nodejs-express-noprocfile
2019-10-21 04:29:46 -04:00
dependabot-preview[bot]
8841f91767 chore(deps): [security] bump handlebars
Bumps [handlebars](https://github.com/wycats/handlebars.js) from 1.0.12 to 4.4.5. **This update includes a security fix.**
- [Release notes](https://github.com/wycats/handlebars.js/releases)
- [Changelog](https://github.com/wycats/handlebars.js/blob/v4.4.5/release-notes.md)
- [Commits](https://github.com/wycats/handlebars.js/compare/v1.0.12...v4.4.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-21 07:18:39 +00:00
dependabot-preview[bot]
afc2d13b40 chore(deps): [security] bump express
Bumps [express](https://github.com/expressjs/express) from 2.5.11 to 4.17.1. **This update includes a security fix.**
- [Release notes](https://github.com/expressjs/express/releases)
- [Changelog](https://github.com/expressjs/express/blob/master/History.md)
- [Commits](https://github.com/expressjs/express/compare/2.5.11...4.17.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-21 07:16:59 +00:00
Jose Diaz-Gonzalez
45395743fe Merge pull request #3729 from dokku/dependabot/composer/tests/apps/php/monolog/monolog-1.25.1
chore(deps): bump monolog/monolog from 1.12.0 to 1.25.1 in /tests/apps/php
2019-10-20 23:46:35 -04:00
dependabot-preview[bot]
1d1458862b chore(deps): bump monolog/monolog in /tests/apps/php
Bumps [monolog/monolog](https://github.com/Seldaek/monolog) from 1.12.0 to 1.25.1.
- [Release notes](https://github.com/Seldaek/monolog/releases)
- [Changelog](https://github.com/Seldaek/monolog/blob/1.25.1/CHANGELOG.md)
- [Commits](https://github.com/Seldaek/monolog/compare/1.12.0...1.25.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-21 02:48:02 +00:00
Jose Diaz-Gonzalez
92c81cc05d Merge pull request #3732 from dokku/dependabot/composer/tests/apps/php/silex/silex-2.2.4
chore(deps): bump silex/silex from 1.2.3 to 2.2.4 in /tests/apps/php
2019-10-20 22:46:40 -04:00
dependabot-preview[bot]
60bed60fa9 chore(deps): bump silex/silex from 1.2.3 to 2.2.4 in /tests/apps/php
Bumps [silex/silex](https://github.com/silexphp/Silex) from 1.2.3 to 2.2.4.
- [Release notes](https://github.com/silexphp/Silex/releases)
- [Changelog](https://github.com/silexphp/Silex/blob/master/doc/changelog.rst)
- [Commits](https://github.com/silexphp/Silex/compare/v1.2.3...v2.2.4)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-20 16:34:27 +00:00
Jose Diaz-Gonzalez
baec410580 Merge pull request #3728 from dokku/dependabot/maven/tests/apps/java/org.eclipse.jetty-jetty-servlet-9.4.21.v20190926
chore(deps): bump jetty-servlet from 7.6.0.v20120127 to 9.4.21.v20190926 in /tests/apps/java
2019-10-20 12:32:17 -04:00
Jose Diaz-Gonzalez
77e51a39fa Merge pull request #3730 from dokku/dependabot/pip/tests/apps/python-flask/werkzeug-0.16.0
chore(deps): bump werkzeug from 0.15.6 to 0.16.0 in /tests/apps/python-flask
2019-10-20 12:31:53 -04:00
Jose Diaz-Gonzalez
907f2d6344 Merge pull request #3737 from dokku/dependabot/npm_and_yarn/tests/apps/dot-websocket.disabled/express3-handlebars-0.5.2
chore(deps): bump express3-handlebars from 0.2.3 to 0.5.2 in /tests/apps/.websocket.disabled
2019-10-20 12:31:34 -04:00
Jose Diaz-Gonzalez
0a9997ee3a Merge pull request #3734 from dokku/dependabot/composer/tests/apps/php/heroku/heroku-buildpack-php-163
chore(deps-dev): bump heroku/heroku-buildpack-php from 59 to 163 in /tests/apps/php
2019-10-20 12:31:01 -04:00
dependabot-preview[bot]
ed60adfdc8 chore(deps-dev): bump heroku/heroku-buildpack-php in /tests/apps/php
Bumps [heroku/heroku-buildpack-php](https://github.com/heroku/heroku-buildpack-php) from 59 to 163.
- [Release notes](https://github.com/heroku/heroku-buildpack-php/releases)
- [Changelog](https://github.com/heroku/heroku-buildpack-php/blob/master/CHANGELOG.md)
- [Commits](https://github.com/heroku/heroku-buildpack-php/compare/v59...v163)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-20 03:12:23 +00:00
Jose Diaz-Gonzalez
1406283b63 Merge pull request #3735 from dokku/dependabot/composer/tests/apps/php/symfony/http-kernel-2.8.51
chore(deps): [security] bump symfony/http-kernel from 2.6.4 to 2.8.51 in /tests/apps/php
2019-10-19 23:10:28 -04:00
Jose Diaz-Gonzalez
e34d8431da Merge pull request #3723 from dokku/dependabot/bundler/tests/apps/multi/sass-globbing-1.1.5
chore(deps): bump sass-globbing from 1.1.1 to 1.1.5 in /tests/apps/multi
2019-10-19 22:50:46 -04:00
dependabot-preview[bot]
09a5c292cd chore(deps): bump jetty-servlet in /tests/apps/java
Bumps [jetty-servlet](https://github.com/eclipse/jetty.project) from 7.6.0.v20120127 to 9.4.21.v20190926.
- [Release notes](https://github.com/eclipse/jetty.project/releases)
- [Commits](https://github.com/eclipse/jetty.project/compare/jetty-7.6.0.v20120127...jetty-9.4.21.v20190926)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-19 22:10:24 +00:00
dependabot-preview[bot]
9f9ebc99ec chore(deps): bump werkzeug in /tests/apps/python-flask
Bumps [werkzeug](https://github.com/pallets/werkzeug) from 0.15.6 to 0.16.0.
- [Release notes](https://github.com/pallets/werkzeug/releases)
- [Changelog](https://github.com/pallets/werkzeug/blob/master/CHANGES.rst)
- [Commits](https://github.com/pallets/werkzeug/compare/0.15.6...0.16.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-19 22:09:47 +00:00
dependabot-preview[bot]
35ed98ae71 chore(deps): bump express3-handlebars in /tests/apps/.websocket.disabled
Bumps [express3-handlebars](https://github.com/ericf/express3-handlebars) from 0.2.3 to 0.5.2.
- [Release notes](https://github.com/ericf/express3-handlebars/releases)
- [Changelog](https://github.com/ericf/express-handlebars/blob/master/HISTORY.md)
- [Commits](https://github.com/ericf/express3-handlebars/commits)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-19 22:09:34 +00:00
Jose Diaz-Gonzalez
8f70e25e12 Merge pull request #3731 from dokku/dependabot/pip/tests/apps/python-flask/jinja2-2.10.3
chore(deps): bump jinja2 from 2.10.1 to 2.10.3 in /tests/apps/python-flask
2019-10-19 18:08:39 -04:00
Jose Diaz-Gonzalez
605bbb165a Merge pull request #3736 from dokku/dependabot/npm_and_yarn/tests/apps/dot-websocket.disabled/socket.io-2.3.0
chore(deps): bump socket.io from 0.9.19 to 2.3.0 in /tests/apps/.websocket.disabled
2019-10-19 18:08:12 -04:00
dependabot-preview[bot]
54703c9216 chore(deps): [security] bump symfony/http-kernel in /tests/apps/php
Bumps [symfony/http-kernel](https://github.com/symfony/http-kernel) from 2.6.4 to 2.8.51. **This update includes security fixes.**
- [Release notes](https://github.com/symfony/http-kernel/releases)
- [Changelog](https://github.com/symfony/http-kernel/blob/master/CHANGELOG.md)
- [Commits](https://github.com/symfony/http-kernel/compare/v2.6.4...v2.8.51)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-19 22:08:08 +00:00
Jose Diaz-Gonzalez
daf03a6389 Merge pull request #3726 from dokku/dependabot/go_modules/tests/apps/gogrpc/google.golang.org/grpc-1.24.0
chore(deps): bump google.golang.org/grpc from 1.23.0 to 1.24.0 in /tests/apps/gogrpc
2019-10-19 18:07:24 -04:00
dependabot-preview[bot]
e67324cac9 chore(deps): bump sass-globbing from 1.1.1 to 1.1.5 in /tests/apps/multi
Bumps [sass-globbing](https://github.com/chriseppstein/sass-globbing) from 1.1.1 to 1.1.5.
- [Release notes](https://github.com/chriseppstein/sass-globbing/releases)
- [Changelog](https://github.com/chriseppstein/sass-globbing/blob/master/CHANGELOG.markdown)
- [Commits](https://github.com/chriseppstein/sass-globbing/compare/1.1.1...1.1.5)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-19 22:07:16 +00:00
Jose Diaz-Gonzalez
8ab1abd3b4 Merge pull request #3727 from dokku/dependabot/maven/tests/apps/java/org.apache.maven.plugins-maven-dependency-plugin-3.1.1
chore(deps): bump maven-dependency-plugin from 2.4 to 3.1.1 in /tests/apps/java
2019-10-19 18:07:10 -04:00
Jose Diaz-Gonzalez
23731f6561 Merge pull request #3733 from dokku/dependabot/composer/tests/apps/php/symfony/http-foundation-2.8.50
chore(deps): [security] bump symfony/http-foundation from 2.6.4 to 2.8.50 in /tests/apps/php
2019-10-19 18:06:40 -04:00
Jose Diaz-Gonzalez
9fe3f49cb4 Merge pull request #3720 from dokku/dependabot/bundler/tests/apps/multi/compass-1.0.3
chore(deps): bump compass from 1.0.1 to 1.0.3 in /tests/apps/multi
2019-10-19 18:05:45 -04:00
Salvatore Ferrucci
750a31013f scheduler-docker-local: start container with --interactive (+)
attach container's STDIN if it has tty
2019-10-19 12:08:52 +02:00
Jose Diaz-Gonzalez
814385eda9 Merge pull request #3721 from dokku/dependabot/bundler/tests/apps/ruby/sinatra-1.4.8
chore(deps): bump sinatra from 1.4.4 to 1.4.8 in /tests/apps/ruby
2019-10-19 02:50:29 -04:00
dependabot-preview[bot]
438261b1f9 chore(deps): bump sinatra from 1.4.4 to 1.4.8 in /tests/apps/ruby
Bumps [sinatra](https://github.com/sinatra/sinatra) from 1.4.4 to 1.4.8.
- [Release notes](https://github.com/sinatra/sinatra/releases)
- [Changelog](https://github.com/sinatra/sinatra/blob/master/CHANGELOG.md)
- [Commits](https://github.com/sinatra/sinatra/compare/v1.4.4...v1.4.8)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-18 20:27:37 +00:00
Jose Diaz-Gonzalez
2044496750 Merge pull request #3719 from dokku/dependabot/bundler/tests/apps/ruby/thin-1.7.2
chore(deps): bump thin from 1.6.1 to 1.7.2 in /tests/apps/ruby
2019-10-18 16:26:16 -04:00
dependabot-preview[bot]
798793f7f8 chore(deps): bump socket.io in /tests/apps/.websocket.disabled
Bumps [socket.io](https://github.com/socketio/socket.io) from 0.9.19 to 2.3.0.
- [Release notes](https://github.com/socketio/socket.io/releases)
- [Commits](https://github.com/socketio/socket.io/compare/0.9.19...2.3.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-18 17:07:47 +00:00
dependabot-preview[bot]
e799709391 chore(deps): [security] bump symfony/http-foundation in /tests/apps/php
Bumps [symfony/http-foundation](https://github.com/symfony/http-foundation) from 2.6.4 to 2.8.50. **This update includes security fixes.**
- [Release notes](https://github.com/symfony/http-foundation/releases)
- [Changelog](https://github.com/symfony/http-foundation/blob/master/CHANGELOG.md)
- [Commits](https://github.com/symfony/http-foundation/compare/v2.6.4...v2.8.50)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-18 17:07:00 +00:00
dependabot-preview[bot]
2326195eea chore(deps): bump jinja2 in /tests/apps/python-flask
Bumps [jinja2](https://github.com/pallets/jinja) from 2.10.1 to 2.10.3.
- [Release notes](https://github.com/pallets/jinja/releases)
- [Changelog](https://github.com/pallets/jinja/blob/master/CHANGES.rst)
- [Commits](https://github.com/pallets/jinja/compare/2.10.1...2.10.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-18 17:06:52 +00:00
dependabot-preview[bot]
40564464f9 chore(deps): bump maven-dependency-plugin in /tests/apps/java
Bumps [maven-dependency-plugin](https://github.com/apache/maven-dependency-plugin) from 2.4 to 3.1.1.
- [Release notes](https://github.com/apache/maven-dependency-plugin/releases)
- [Commits](https://github.com/apache/maven-dependency-plugin/compare/maven-dependency-plugin-2.4...maven-dependency-plugin-3.1.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-18 17:04:33 +00:00
dependabot-preview[bot]
54c987ea16 chore(deps): bump google.golang.org/grpc in /tests/apps/gogrpc
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.23.0 to 1.24.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](https://github.com/grpc/grpc-go/compare/v1.23.0...v1.24.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-18 17:04:32 +00:00
dependabot-preview[bot]
a513047e5a chore(deps): bump compass from 1.0.1 to 1.0.3 in /tests/apps/multi
Bumps [compass](https://github.com/chriseppstein/compass) from 1.0.1 to 1.0.3.
- [Release notes](https://github.com/chriseppstein/compass/releases)
- [Commits](https://github.com/chriseppstein/compass/compare/1.0.1...1.0.3)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-18 16:59:23 +00:00
dependabot-preview[bot]
1c17e43bb7 chore(deps): bump thin from 1.6.1 to 1.7.2 in /tests/apps/ruby
Bumps [thin](https://github.com/macournoyer/thin) from 1.6.1 to 1.7.2.
- [Release notes](https://github.com/macournoyer/thin/releases)
- [Changelog](https://github.com/macournoyer/thin/blob/master/CHANGELOG)
- [Commits](https://github.com/macournoyer/thin/compare/v1.6.1...v1.7.2)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2019-10-18 16:59:02 +00:00
Jose Diaz-Gonzalez
431dc6c1a0 Release 0.19.2
# History

## 0.19.2

Install/update via the bootstrap script:

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

### Bug Fixes

- #3718: @josegonzalez Detect correct python binary to use
2019-10-18 12:30:02 -04:00
Jose Diaz-Gonzalez
8bb559c965 Merge pull request #3718 from dokku/3714-python-support
Detect correct python binary to use
2019-10-18 12:29:28 -04:00
Jose Diaz-Gonzalez
50863a9b76 fix: detect correct python binary to use
Ideally python usage goes away - the dokku-installer should become a mandatory cli command, and the plugin is rewritten in golang - but for now, we need to use the correct binary when running dokku.

Closes #3714
2019-10-17 14:24:47 -04:00
Jose Diaz-Gonzalez
a1860bae14 Release 0.19.1
# History

## 0.19.1

Install/update via the bootstrap script:

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

### Bug Fixes

- #3713: @josegonzalez Require nginx 1.13+ in order to enable tls1.3
2019-10-14 20:12:50 -04:00
Jose Diaz-Gonzalez
fa8267ca09 Merge pull request #3713 from dokku/3711-tls13-support
Require nginx 1.13+ in order to enable tls1.3
2019-10-14 20:11:56 -04:00
Jose Diaz-Gonzalez
9dae004651 fix: require nginx 1.13+ in order to enable tls1.3
Closes #3711
2019-10-14 11:47:43 -04:00
Jose Diaz-Gonzalez
f9e163c63a fix: correct minor issue in history.md 2019-10-14 11:40:41 -04:00
Jose Diaz-Gonzalez
e561f87b17 fix: correct tag release 2019-10-14 11:40:27 -04:00
Robin Speekenbrink
48ade9853f Added new plugin
This adds the Nginx Trust Proxy plugin

This plugin allows dokku to be run behind (multiple) proxies in and gives developers the opportunity to support reverse proxy layers
2019-10-14 17:35:32 +02:00
Jose Diaz-Gonzalez
78621481a6 Release 0.19.0
# History

## 0.19.0

Install/update via the bootstrap script:

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

### Bug Fixes

- #3688: @josegonzalez Correct shfmt issues
- #3684: @josegonzalez Do not push betafish releases to docker hub
- #3681: @josegonzalez Proper openresty support

### New Features

- #3687: @josegonzalez Add scheduler-post-run trigger
- #3702: @josegonzalez Cleanup build and destroy logging output
- #3693: @josegonzalez Remove ssh-keys user-auth trigger in favor of direct check in dokku binary
- #3691: @josegonzalez Silence trigger logging
- #3685: @josegonzalez Allow passing labels to one-off dokku containers
- #3680: @josegonzalez Follow updated intermediate recommendations from the Mozilla SSL Config Generator
- #3677: @josegonzalez Improve package build process
- #3679: @josegonzalez Allow keeping the git directory during builds
- #3577: @josegonzalez Use new-style docker management commands
- #3678: @josegonzalez Add container-type to run and deploy containers
- #3671: @josegonzalez Allow overriding checks doc url
- #3662: @leshik Improve nginx ciphers compatibility
- #3668: @josegonzalez Release latest docker image on release
- #3659: @fzerorubigd Add support for grpc/grpcs port forwarding

### Documentation

- #3701: @limenet Docs / Getting Started: use HTTPS instead of SSH for clone
- #3699: @robhudson Add `dokku cleanup` to help output
- #3669: @josegonzalez Fix reference to CHECKS file location

### Tests

- #3670: @josegonzalez Upgrade all python test deps

### Other

- #3690: @
2019-10-14 05:50:49 -04:00
Jose Diaz-Gonzalez
92de37b23a Merge pull request #3687 from dokku/scheduler-post-run
Add scheduler-post-run trigger
2019-10-14 05:49:36 -04:00
Jose Diaz-Gonzalez
35287a2d28 fix: force tty check to run with the default language
This fixes the case where the system language is non-english. See this stackexchange answer for more details: https://unix.stackexchange.com/q/87745

Closes #3588
2019-10-14 05:03:18 -04:00
Jose Diaz-Gonzalez
360c587086 feat: add scheduler-post-run trigger
After a `dokku run` container is created and started, this plugin trigger will allow developers to run auxiliary commands in response to that container.
2019-10-14 04:55:07 -04:00
Jose Diaz-Gonzalez
844b86840a Merge branch 'upcoming' of github.com:dokku/dokku into upcoming 2019-10-07 18:55:29 -05:00
Jose Diaz-Gonzalez
94f5c04bf3 Release 0.18.5
# History

## 0.18.5

Install/update via the bootstrap script:

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

### Bug Fixes

- #3704: @josegonzalez Fail nginx:build-config if the image does not exist
2019-10-07 13:20:51 -04:00
Jose Diaz-Gonzalez
e76f8da482 Merge pull request #3704 from dokku/fail-nginx-build-config
Fail nginx:build-config if the image does not exist
2019-10-07 13:20:03 -04:00
Jose Diaz-Gonzalez
4d1beedd05 fix: do not create nginx.conf if the image for the app does not exist 2019-10-07 12:18:54 -04:00
Jose Diaz-Gonzalez
b3bc109abe Release 0.18.4
# History

## 0.18.4

Install/update via the bootstrap script:

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

### Other

- #3703: @scjody Update DOKKU_SCALE from Procfile during ps:scale
2019-10-04 16:31:57 -04:00
Jose Diaz-Gonzalez
0b1775746d Merge pull request #3703 from plotly/update-scale-file-from-procfile
Update DOKKU_SCALE from Procfile during ps:scale
2019-10-04 16:22:29 -04:00
Jody McIntyre
592b10122d Add test of DOKKU_SCALE update 2019-10-04 14:36:54 -04:00
Jody McIntyre
f1dd722971 Update DOKKU_SCALE from Procfile during ps:scale
This is needed so that we report on processes added to an app's
Procfile.
2019-10-04 08:35:58 -04:00
Jose Diaz-Gonzalez
24c47e17f8 Merge pull request #3702 from dokku/better-output
Cleanup build and destroy logging output
2019-10-03 11:57:50 -04:00
Jose Diaz-Gonzalez
8c6e4c6483 Merge pull request #3701 from limenet/patch-1
Docs / Getting Started: use HTTPS instead of SSH for clone
2019-10-02 13:05:28 -04:00
Linus Metzler
34b5234e2f Use HTTPS instead of SSH for clone
If the user has not yet added their public key to GitHub, using SSH for clone results in an error message due to permission denied.
2019-10-02 11:03:41 +02:00
Jose Diaz-Gonzalez
b05a2b6da2 Merge pull request #3699 from robhudson/add-cleanup-help
Add `dokku cleanup` to help output
2019-09-28 20:59:33 -04:00
Rob Hudson
9ed22eafea Add dokku cleanup to help output
Fixes #3698
2019-09-27 12:50:16 -07:00
Jose Diaz-Gonzalez
498bdd0491 chore: cleanup build and destroy logging output 2019-09-20 12:31:19 -04:00
Jose Diaz-Gonzalez
92ac9cc729 Merge pull request #3693 from dokku/faster-calls
Remove ssh-keys user-auth trigger in favor of direct check in dokku binary
2019-09-20 12:28:51 -04:00
Jose Diaz-Gonzalez
9c68cd53fc refactor: remove ssh-keys user-auth trigger in favor of direct check in dokku binary 2019-09-20 01:25:42 -04:00
Jose Diaz-Gonzalez
3b3fc5d5c1 Merge pull request #3690 from dokku/3689-python-3
Add support for python3
2019-09-20 00:34:57 -04:00
Jose Diaz-Gonzalez
b4e95fe0d5 feat: add support for python3
- Use jq where possible
- Drop unused function (no usage across entire codebase nor in any github repository

Closes #3689
2019-09-19 23:33:43 -04:00
Jose Diaz-Gonzalez
7bd4d32cb3 Merge pull request #3691 from dokku/silence-trigger-logging
Silence trigger logging
2019-09-17 23:50:00 -04:00
Jose Diaz-Gonzalez
903d7ce614 chore: silence trigger logging
Logging that a trigger is about to be performed is a bit... extra. If folks want to know that a trigger is running, they can check the event logs.
2019-09-17 23:47:30 -04:00
Jose Diaz-Gonzalez
12f3c12070 Merge pull request #3688 from dokku/shfmt
Correct shfmt issues
2019-09-17 04:07:59 -04:00
Jose Diaz-Gonzalez
cb281e17e6 fix: correct shfmt issues 2019-09-17 02:22:41 -04:00
Jose Diaz-Gonzalez
06b565f3e5 Merge pull request #3685 from dokku/docker-run-labels
Allow passing labels to one-off dokku containers
2019-09-17 00:27:07 -04:00
Jose Diaz-Gonzalez
798725bb54 feat: allow passing labels to one-off dokku containers
This feature is allows users to add extra label metadata to one-off containers. As this can interfere with Dokku internals if they shadow labels used by plugins, care should be taken to avoid the `com.dokku` or `org.label-schema` namespace.

Also proper name run containers so they don't get random names from docker...
2019-09-16 23:10:14 -04:00
Jose Diaz-Gonzalez
a3ef91f2ae Merge pull request #3684 from dokku/no-betafish-push
Do not push betafish releases to docker hub
2019-09-16 21:48:57 -04:00
Jose Diaz-Gonzalez
cd28fe69a5 fix: do not push betafish releases to docker hub 2019-09-16 21:48:31 -04:00
Jose Diaz-Gonzalez
f1ead08549 Merge pull request #3681 from dokku/3675-openresty-support
Proper openresty support
2019-09-16 03:55:20 -04:00
Jose Diaz-Gonzalez
6e3fddb544 feat: add proper openresty support
This change allows supporting the openresty package as installed on Ubuntu 18.04 from the official openresty package repository, while also returning general nginx support.

Closes #3675
2019-09-16 03:05:35 -04:00
Jose Diaz-Gonzalez
dd2bbc7722 fix: allow test dhparam.pem to be copied into docker image 2019-09-16 03:04:42 -04:00
Jose Diaz-Gonzalez
a9ce738f68 feat: add openresty and runit support to packaging
Our docker image uses runit instead of init/systemd, hence the added sv support on Ubuntu operating systems.
2019-09-16 03:03:20 -04:00
Jose Diaz-Gonzalez
0e219b05e9 fest: handle both openresty and nginx in docker image builds 2019-09-16 03:02:01 -04:00
Jose Diaz-Gonzalez
ea9cf024d5 feat: always upgrade packages before further installation 2019-09-16 03:01:46 -04:00
Jose Diaz-Gonzalez
0d1952592e chore: standardize arguments to apt 2019-09-16 03:01:34 -04:00
Jose Diaz-Gonzalez
43e7ee06fb feat: rework layer to slightly speed up builds 2019-09-16 03:00:34 -04:00
Jose Diaz-Gonzalez
692bfa7cde feat: speed up docker image build by copying tmp dhparam file into place 2019-09-16 03:00:11 -04:00
Jose Diaz-Gonzalez
dbcfb7ee9f Merge pull request #3680 from dokku/updated-ssl-config
Follow updated intermediate recommendations from the Mozilla SSL Config Generator
2019-09-15 23:14:05 -04:00
Jose Diaz-Gonzalez
5f80cd3c20 feat: follow updated intermediate recommendations from the Mozilla SSL Config Generator 2019-09-15 22:24:37 -04:00
Jose Diaz-Gonzalez
eecee94e70 Merge pull request #3677 from dokku/package-improvements
Improve package build process
2019-09-15 21:10:28 -04:00
Jose Diaz-Gonzalez
f55dc640ec Merge pull request #3679 from dokku/keep-git-dir
Allow keeping the git directory during builds
2019-09-15 20:29:47 -04:00
Jose Diaz-Gonzalez
a4ac67a1e0 fix: drop unused import 2019-09-15 19:43:34 -04:00
Jose Diaz-Gonzalez
14838de344 feat: allow keeping the git directory during builds
It may be desirable to keep the contents of the git directory for the build process. Certain build tools can extract extra information from the .git directory, and some workflows may require that the shipped artifact has the entire source code available locally for later usage.
2019-09-15 19:15:35 -04:00
Jose Diaz-Gonzalez
6b6b1c2aa4 fix: drop pre-delete link 2019-09-15 19:15:08 -04:00
Jose Diaz-Gonzalez
8662f4550f fix: Should replace errors.New(fmt.Sprintf(...)) with fmt.Errorf(...) 2019-09-15 19:15:08 -04:00
Jose Diaz-Gonzalez
78dba3be3c fix: correct comments on go functions 2019-09-15 19:15:08 -04:00
Jose Diaz-Gonzalez
76911a7dc8 fix: drop executable perm on trace/plugin.toml 2019-09-15 19:15:08 -04:00
Jose Diaz-Gonzalez
68de421630 fix: correct lintian overrides 2019-09-15 19:15:08 -04:00
Jose Diaz-Gonzalez
ccbe0b0877 fix: correct bash-completion comment 2019-09-15 19:15:08 -04:00
Jose Diaz-Gonzalez
6a7d2e5252 refactor: decrease compile time for golang plugins
This change refactors the compiled golang plugins into 3 distinct binaries:

- commands: already existing
- subcommands/subcommands: entrypoint into all subcommands
- triggers: entrypoint into all triggers

It then further symlinks triggers and subcommands to the built binaries. This results in both a much faster build process as well as smaller package size.
2019-09-15 19:15:08 -04:00
Jose Diaz-Gonzalez
f83a03a3dc Merge pull request #3577 from dokku/management-commands
Use new-style docker management commands
2019-09-15 19:14:53 -04:00
Jose Diaz-Gonzalez
44fcea0ffa refactor: use new-style docker management commands
This PR uses the new syntax for commands introduced in Docker 1.13, making it a bit easier to understand just what a particular command is trying to do.

This also pushes the long-form syntax for docker command flags, which are also easier to understand at a glance.
2019-09-15 18:55:53 -04:00
Jose Diaz-Gonzalez
c02059c965 Merge pull request #3678 from dokku/running-containers
Add container-type to run and deploy containers
2019-09-15 18:53:02 -04:00
Jose Diaz-Gonzalez
92d2895d99 feat: add container-type to run and deploy containers 2019-09-15 17:17:56 -04:00
Jose Diaz-Gonzalez
2b93c76b1d Merge pull request #3671 from dokku/doc-url-override
Allow overriding checks doc url
2019-09-11 21:02:33 -04:00
Jose Diaz-Gonzalez
8cbaf1e004 feat: allow overriding checks doc url 2019-09-09 17:47:12 -04:00
Jose Diaz-Gonzalez
b4c4d5d70f Merge pull request #3662 from leshik/improve-nginx-ciphers-compatibility
Improve nginx ciphers compatibility
2019-09-06 23:53:36 -04:00
Jose Diaz-Gonzalez
a00d9de400 Merge pull request #3670 from dokku/update-python-test-reqs
Upgrade all python test deps
2019-09-06 22:25:35 -04:00
Jose Diaz-Gonzalez
a36ebd130d fix: upgrade all python test deps 2019-09-06 21:26:32 -04:00
Jose Diaz-Gonzalez
5b1763aa4a Merge pull request #3669 from dokku/3664-checks-workdir
Fix reference to CHECKS file location
2019-09-06 21:21:57 -04:00
Jose Diaz-Gonzalez
53c8f61ffc docs: fix reference to CHECKS file location
Closes #3664
2019-09-06 21:21:25 -04:00
Jose Diaz-Gonzalez
b806154e90 Merge pull request #3668 from dokku/release-latest-image
feat: release latest docker image on release
2019-09-06 21:07:15 -04:00
Jose Diaz-Gonzalez
1be6ace7b5 feat: release latest docker image on release
Also, always build a docker image for local testing.
2019-09-06 21:06:33 -04:00
Jose Diaz-Gonzalez
9d9530b01d Merge pull request #3659 from fzerorubigd/master
nginx-vhost: add support for grpc/grpcs port forward
2019-08-27 18:30:52 -04:00
fzerorubigd
c4838b4af9 add test for grpc on a port other than 80
fix docs a bout supporting only HTTP
remove extra spaces
2019-08-24 10:58:34 +02:00
Forud
5ca3ca5189 nginx-vhosts: add a note in the proxy management docs about grpc
[ci skip]
2019-08-23 15:34:34 +02:00
Forud
3457844687 nginx-vhost: add test for grpcs 2019-08-23 14:30:36 +02:00
fzerorubigd
346e8284c8 nginx-vhost: adding some test for the grpc 2019-08-23 10:00:12 +02:00
Alexey Zagarin
180a5e79c9 Improve nginx ciphers compatibility
Closes #3661.
2019-08-23 14:00:10 +07:00
fzerorubigd
377166d822 nginx-vhost: add support for grpc/grpcs port forward 2019-08-22 21:57:21 +02:00
Jose Diaz-Gonzalez
9256248cfd Release 0.18.3
# History

## 0.18.3

Install/update via the bootstrap script:

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

### Bug Fixes

- #3660: @josegonzalez Trigger builder-release for dockerfile correctly
- #3655: @znz Fix filename of sshcommand tarball
- #3648: @josegonzalez Copy the deb file before creating the image

### New Features

- #3656: @josegonzalez Allow users to customize the container start command
- #3657: @josegonzalez Show error message when docker-related build commands fail
- #3654: @josegonzalez Update herokuish to 0.5.3

### Documentation

- #3652: @josegonzalez Correct issue in inspect call for issue template
2019-08-22 14:23:24 -04:00
Jose Diaz-Gonzalez
e074cffd4f Merge pull request #3660 from dokku/builder-plugn-trigger-once
Trigger builder-release for dockerfile correctly
2019-08-22 14:22:45 -04:00
Jose Diaz-Gonzalez
30ac3c24c0 fix: trigger builder-release for dockerfile correctly 2019-08-22 14:22:16 -04:00
Jose Diaz-Gonzalez
4c766b8f0e Merge pull request #3656 from dokku/custom-start-command
Allow users to customize the container start command
2019-08-22 14:21:13 -04:00
Jose Diaz-Gonzalez
e30fad51de Merge pull request #3657 from dokku/app-build-failure
Show error message when docker-related build commands fail
2019-08-22 14:21:04 -04:00
Jose Diaz-Gonzalez
9734d09ff1 feat: show error message when docker-related build commands fail
This makes it more apparent that a deploy has failed than the silent error exit that might otherwise happen.
2019-08-20 17:31:14 -04:00
Jose Diaz-Gonzalez
0c3f659854 feat: allow users to customize the container start command
This can be useful when testing base images that are similar to herokuish but have a different entrypoint.
2019-08-20 17:12:18 -04:00
Jose Diaz-Gonzalez
2b1c8f64fb Merge pull request #3654 from dokku/update-herokuish
Update herokuish to 0.5.3
2019-08-20 14:12:21 -04:00
Jose Diaz-Gonzalez
2cf3a3d0cf Merge pull request #3655 from znz/fix-typo
Fix filename of sshcommand tarball
2019-08-20 13:33:59 -04:00
Kazuhiro NISHIYAMA
4105f0027c Fix filename of sshcommand tarball 2019-08-20 22:12:08 +09:00
Jose Diaz-Gonzalez
1dc2a7e20a feat: update herokuish to 0.5.3 2019-08-19 17:38:17 -04:00
Jose Diaz-Gonzalez
d8753ca8d4 Merge pull request #3652 from dokku/josegonzalez-patch-1
Correct issue in inspect call for issue template
2019-08-15 12:51:12 -04:00
Jose Diaz-Gonzalez
d68d02b204 docs: correct issue in inspect call for issue template
[ci skip]
2019-08-15 12:49:46 -04:00
Vince
8e7a51daec Clarify --cpu mapping for docker-local scheduler 2019-08-15 12:17:52 +02:00
Jose Diaz-Gonzalez
8b046b9bd7 fix: always add the built deb to dokku.deb 2019-08-13 16:49:40 -04:00
Jose Diaz-Gonzalez
5b19256109 Merge pull request #3648 from dokku/fix-deb-copy
Copy the deb file before creating the image
2019-08-13 14:33:18 -04:00
Jose Diaz-Gonzalez
79b0bebb78 fix: copy the deb file before creating the image 2019-08-13 14:31:54 -04:00
Jose Diaz-Gonzalez
950b7ed6be Release 0.18.2
# History

## 0.18.2

Install/update via the bootstrap script:

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

### New Features

- #3645: @josegonzalez Use version in DOKKU_LIB_ROOT
- #3644: @josegonzalez Refactor temp file handling
- #3643: @josegonzalez Quiet deploy output
- #3641: @josegonzalez Pass SOURCECODE_WORK_DIR to build-buildpack triggers
- #3639: @josegonzalez Refer to upstream sshcommand package

### Documentation

- #3642: @josegonzalez Correct issue with label change in docs
- #3640: @josegonzalez Add missing popd to post-extract example
2019-08-13 13:57:56 -04:00
Jose Diaz-Gonzalez
9432cdd37c fix: remove the build-env plugin from rpm installs
Closes #3646
2019-08-13 13:57:19 -04:00
Jose Diaz-Gonzalez
5bd499a9bc Merge pull request #3645 from dokku/version-outside-dokku-root
Use version in DOKKU_LIB_ROOT
2019-08-13 01:59:44 -04:00
Jose Diaz-Gonzalez
5506c9e27d refactor: use version in DOKKU_LIB_ROOT
The version in DOKKU_ROOT may be incorrect for docker-based installs if that directory is mounted from an external volume. Instead, pull it from the DOKKU_LIB_ROOT directory, and respect the STABLE_VERSION if specified (VERSION will be the entire version, including commit sha).
2019-08-13 00:53:49 -04:00
Jose Diaz-Gonzalez
e07703645e Merge pull request #3644 from dokku/tmp-files
Refactor temp file handling
2019-08-12 19:27:24 -04:00
Jose Diaz-Gonzalez
3ca6245b00 fix: use 6 X to support running under busybox
mktemp from busybox requires that all templates end with XXXXXX.
2019-08-12 18:16:16 -04:00
Jose Diaz-Gonzalez
925c6c4c28 feat: inject the dokku PID into temporary files/directories
This will allow background processes to cleanup these files if they were unable to be cleaned up during a run of the dokku binary, as is the case for files copied by the docker binary when running in docker.
2019-08-12 17:56:17 -04:00
Jose Diaz-Gonzalez
0588b6f161 refactor: directly use a tmp file for app.json 2019-08-12 17:53:15 -04:00
Jose Diaz-Gonzalez
fee2d50148 Merge pull request #3643 from dokku/quieter-deploys
Quiet deploy output
2019-08-12 17:40:10 -04:00
Jose Diaz-Gonzalez
9a2c8e04a5 feat: quiet down deploys 2019-08-12 17:39:01 -04:00
Jose Diaz-Gonzalez
2517d392a4 Merge pull request #3642 from dokku/fix-label-docs
Correct issue with label change in docs
2019-08-12 16:20:50 -04:00
Jose Diaz-Gonzalez
a0b6663bef docs: correct issue with label change in docs
[ci skip]
2019-08-12 16:20:22 -04:00
Jose Diaz-Gonzalez
5fb7b0a74c Merge pull request #3641 from dokku/pass-sourcecode-work-dir
Pass SOURCECODE_WORK_DIR to build-buildpack triggers
2019-08-12 16:14:51 -04:00
Jose Diaz-Gonzalez
026d04a65f feat: pass SOURCECODE_WORK_DIR to build-buildpack triggers
This will allow those triggers to insert and extract files from the sourcecode work directory. Note that changes are not committed to this directory, nor will they be reflected in the committed codebase.
2019-08-12 16:08:31 -04:00
Jose Diaz-Gonzalez
94ace70626 Merge pull request #3639 from dokku/upgrade-sshcommand
Refer to upstream sshcommand package
2019-08-12 11:11:33 -04:00
Jose Diaz-Gonzalez
2d36dc2a04 Merge pull request #3640 from dokku/josegonzalez-patch-1
Add missing popd to post-extract example
2019-08-12 11:11:18 -04:00
Jose Diaz-Gonzalez
f3819a46e9 docs: add missing popd to post-extract example
[ci skip]
2019-08-12 11:10:54 -04:00
Jose Diaz-Gonzalez
c66e08041a refactor: refer to upstream sshcommand package
sshcommand now packages itself.
2019-08-10 19:55:21 -04:00
Jose Diaz-Gonzalez
9e9f601690 Release 0.18.1
# History

## 0.18.1

Install/update via the bootstrap script:

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

### New Features

- #3636: @josegonzalez Unify deb and rpm creation code
- #3635: @josegonzalez Upgrade herokuish to 0.5.2
2019-08-10 14:32:13 -04:00
Jose Diaz-Gonzalez
c9bc4f8615 Merge pull request #3636 from dokku/refactor-deb-install
Unify deb and rpm creation code
2019-08-10 14:29:29 -04:00
Jose Diaz-Gonzalez
34ee8e7079 Merge pull request #3635 from dokku/upgrade-herokuish
Upgrade herokuish to 0.5.2
2019-08-08 15:52:48 -04:00
Jose Diaz-Gonzalez
4ab30b8c14 chore: unify deb and rpm creation code
- split things into functions
- port code that handled postinst on deb to rpm and vice-versa
2019-08-08 15:18:00 -04:00
Jose Diaz-Gonzalez
3bc6f071cf feat: upgrade herokuish to 0.5.2 2019-08-08 14:53:50 -04:00
Jose Diaz-Gonzalez
0669121242 fix: correct minor issues in docker install docs 2019-08-07 11:53:18 -04:00
Jose Diaz-Gonzalez
03c7543060 Release 0.18.0
# History

## 0.18.0

Install/update via the bootstrap script:

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

### Bug Fixes

- #3627: @josegonzalez Make image removal synchronous
- #3618: @josegonzalez Ensure the dokku-retire timer is properly installed
- #3614: @alexquick Validate args for config:set and config:unset
- #3605: @josegonzalez Handle case where there are empty newlines in the authorized_keys file
- #3603: @josegonzalez Drop extra % sign in common.LogVerboseQuiet
- #3597: @josegonzalez Allow default trace function to work

### New Features

- #3628: @josegonzalez Handle file copying in a secure and reliable fashion
- #3630: @josegonzalez Fix issue where push warning on bad branch was skipped
- #3629: @josegonzalez Avoid calling the user-auth trigger where possible
- #3626: @josegonzalez Builder plugins
- #3599: @josegonzalez Scope docker-cleanup to specific app
- #3589: @michaelshobbs Allow running Dokku in Docker
- #3607: @josegonzalez Purge cache using herokuish image
- #3602: @alexymik Create a 502 error page to automatically refresh if backend status changes
- #3600: @josegonzalez Refactor IsImageHerokuishBased to match shell version

### Documentation

- #3625: @josegonzalez Remove old reference to SPONSORS.md
- #3619: @josegonzalez Cleanup plugin creation docs
- #3612: @jayjun Improve testing docs
- #3613: @Lyelt Remove all uses of proxy_set_header Connection "upgrade"
- #3596: @josegonzalez Add missing hooks to events plugin and plugin triggers docs

### Tests

- #3610: @jayjun Correct Bats path in single tests
2019-08-07 07:22:12 -04:00
Jose Diaz-Gonzalez
9730992f95 Merge pull request #3628 from dokku/3611-windows-newlines
Handle file copying in a secure and reliable fashion
2019-08-05 16:56:23 -04:00
Jose Diaz-Gonzalez
6fcb53113a fix: return true when removing temporary files extracted from docker
If you are running docker in docker, the permissions on the generated file are such that they may not be accessible by the normal dokku user. For dokku, it is good enough to ignore the failed removal.
2019-08-05 15:57:54 -04:00
Jose Diaz-Gonzalez
5affe42699 fix: remove unnecessary cat 2019-08-05 15:24:15 -04:00
Jose Diaz-Gonzalez
eef9f5eba5 fix: ignore errors in copy_from_image within the check-deploy trigger
The trigger will later on check if it needs to run checks on its own by inspecting the file.
2019-08-05 13:35:33 -04:00
Jose Diaz-Gonzalez
86febeb7ca fix: do not try to remove the container twice 2019-08-05 13:35:03 -04:00
Jose Diaz-Gonzalez
697afaa2cc fix: add missing dos2unix dependency 2019-08-05 12:44:34 -04:00
Jose Diaz-Gonzalez
78a5e4d331 docs: document copying files from images 2019-08-05 11:40:53 -04:00
Jose Diaz-Gonzalez
1a322eeeb8 refactor: use copy_from_image helper for copying CHECKS files
Closes #3611
2019-08-05 11:40:53 -04:00
Jose Diaz-Gonzalez
7dbeffd041 chore: drop unnecessary stdout redirect to /dev/null 2019-08-05 11:40:53 -04:00
Jose Diaz-Gonzalez
8dbf855d56 feat: handle case where docker cp is run as non root and tries to chown the file
This _may_ be cargo-cult, but its an easy way to handle any potential issues, so we'll include it regardless.
2019-08-05 11:40:53 -04:00
Jose Diaz-Gonzalez
dc9d597cd8 feat: handle case where file may not have trailing newline and parsing depends on it 2019-08-05 11:40:53 -04:00
Jose Diaz-Gonzalez
f771b272e3 fix: handle case where file may have windows newlines
Closes #3611
2019-08-05 11:40:53 -04:00
Jose Diaz-Gonzalez
6c8f716c11 refactor: handle case copied file is not directly readable
If "docker cp" is run within docker, it seems the owner is root, resulting in other processes not being able to directly read the file without resorting to `cat` trickery. Doing this in a single place avoids the problem completely.
2019-08-05 11:40:53 -04:00
Jose Diaz-Gonzalez
d326c17dfb chore: standardize on writing to file versus a destination 2019-08-05 11:40:53 -04:00
Jose Diaz-Gonzalez
0567bfd65d Merge pull request #3627 from dokku/3474-synchronous-image-removal
Make image removal synchronous
2019-08-05 11:38:49 -04:00
Jose Diaz-Gonzalez
008fafbed8 fix: force image pruning 2019-08-03 14:21:34 -04:00
Jose Diaz-Gonzalez
c959b236ea fix: do not prune all unused images
This would impact base images related to image building, as well as other images not managed by Dokku directly.
2019-08-02 11:38:08 -04:00
Jose Diaz-Gonzalez
85b41121de fix: make image removal synchronous
Asynchronous image removal would remove intermediate build images during the build process, causing intermittent build failures for users of multi-stage dockerfiles. While we still remove intermediate docker images that may be used in the current build, we now do so during the deploy, ensuring that there are no intermediate build failures in the future.

Closes #3474
2019-08-02 11:21:51 -04:00
Jose Diaz-Gonzalez
7de242b4ee Merge pull request #3630 from dokku/3592-notify-on-bad-branch
Fix issue where push warning on bad branch was skipped
2019-08-02 11:20:46 -04:00
Jose Diaz-Gonzalez
27ed3c52e3 Merge branch 'master' into 3592-notify-on-bad-branch 2019-08-02 11:20:37 -04:00
Jose Diaz-Gonzalez
c4c278fbcb Merge pull request #3629 from dokku/faster-execution
Avoid calling the user-auth trigger where possible
2019-08-02 11:20:26 -04:00
Jose Diaz-Gonzalez
5f4f12c27f fix: add run as prefix to deploy_app 2019-08-01 20:54:56 -04:00
Jose Diaz-Gonzalez
5000c32efe fix: add test for warning on pushing to wrong branch
Closes #3592
2019-08-01 20:54:38 -04:00
Jose Diaz-Gonzalez
5b53994447 feat: avoid calling the user-auth trigger where possible
As this trigger is always in the execution path, `plugn` starts and expensively checks to see if it can execute the trigger. Rather than call this on every invocation, skip the trigger if no non-core implementation exists.
2019-08-01 20:18:14 -04:00
Jose Diaz-Gonzalez
ba5b5d4596 Merge pull request #3626 from dokku/builder-plugins
Builder plugins
2019-08-01 18:17:09 -04:00
Jose Diaz-Gonzalez
a17a0e9a82 feat: add the ability to modify the DOKKU_IMAGE in use for the herokuish builder
This is a "one-shot" ability, meaning that it is highly discouraged for multiple plugins to implement the triggers.

The `builder-create-dokku-image` trigger is meant to modify the base DOKKU_IMAGE that will be used to build an application. A good use of the hook is to inject system packages by:

- calculating an image tag from the set of system packages
- checking that the image doesnt already exist
- creating the image if it does not

As the output is sent to stdout, we have to find an alternative way of fetching the new DOKKU_IMAGE. The `builder-dokku-image` trigger can output an image tag based on the calculated image tag. If no tag is output, then the DOKKU_IMAGE is used as is.

Using this pattern, users can efficiently modify the base image in use for an app without duplicating the work on every push. This is especially useful for package installation, where packages are required for app building, but may take a long time and can be error prone.
2019-07-30 14:58:49 -04:00
Jose Diaz-Gonzalez
0a8d5eb744 refactor: add initial support for builder plugins
A builder plugin implements some method for 'building' artifacts from a given source code archive. This refactor moves the majority of the image building code into separate plugins, allowing us to implement other builders, but also simplifying the common pugin codebase.

Also move the pre-build-buildpack hook from the build-env plugin to builder-herokuish.
2019-07-30 14:42:30 -04:00
Jose Diaz-Gonzalez
af8ade0a09 Merge pull request #3625 from dokku/josegonzalez-patch-1
Remove old reference to SPONSORS.md
2019-07-30 10:43:19 -04:00
Jose Diaz-Gonzalez
b3ba600cf8 docs: remove old reference to SPONSORS.md
Anyone wishing to sponsor should do so on Patreon or OpenCollective.

[ci skip]
2019-07-30 10:42:54 -04:00
Jose Diaz-Gonzalez
ce98222eec Merge pull request #3599 from dokku/3515-better-cleanup
Scope docker-cleanup to specific app
2019-07-29 21:37:54 -04:00
Jose Diaz-Gonzalez
6836e56b24 refactor: add global docker build and run args
This reduces duplication and allows users to rely on global arguments to generate most labels needed.

The 'commit' command cannot have global arguments because the whitespace within the label change breaks string-based interpolation, and shell arrays cannot be exported.
2019-07-20 05:52:20 -04:00
Jose Diaz-Gonzalez
193e40b4c3 feat: scope cleanup to app when specified
This will require changes in community plugins to properly add the specified labels to intermediate containers.

Closes #3515
2019-07-19 15:45:43 -04:00
Jose Diaz-Gonzalez
d1af10fc51 feat: add labels to all build, commit, create, and run docker calls
This will allow us to further filter containers and images by application when cleaning up containers.

Refs #3515
2019-07-19 15:45:43 -04:00
Jose Diaz-Gonzalez
968543c66c Merge pull request #3619 from dokku/josegonzalez-patch-1
Cleanup plugin creation docs
2019-07-19 15:45:32 -04:00
Jose Diaz-Gonzalez
da27ab3d40 docs: cleanup plugin creation docs
The plugin creation docs were hard to follow, unnecessarily complicating issues for developers. The new format should make the recommendations clear, and align examples with the core code.

[ci skip]
2019-07-19 15:31:44 -04:00
Jose Diaz-Gonzalez
034ebff42a Merge pull request #3589 from dokku/1076-run-in-docker
Allow running Dokku in Docker
2019-07-18 02:44:43 -04:00
Jose Diaz-Gonzalez
11241e5003 fix: add missing cgroupfs-mount 2019-07-18 01:15:44 -04:00
Michael Hobbs
b8c2259775 test docker image 2019-07-18 00:28:48 -04:00
Michael Hobbs
1437b77c6c run tests against native dokku 2019-07-18 00:28:48 -04:00
Michael Hobbs
ded056d003 hack: use tmp file for CHECKS file without EOF newline 2019-07-18 00:27:09 -04:00
Michael Hobbs
8830e15526 use custom docker bin 2019-07-18 00:27:09 -04:00
Michael Hobbs
67bdd47015 wait for CI dokku container to startup 2019-07-18 00:27:09 -04:00
Michael Hobbs
e8382362e5 remove tests/dhparam.pem dockerignore exception 2019-07-18 00:27:09 -04:00
Michael Hobbs
7de68e7052 remove unnecessary CI env vars 2019-07-18 00:27:09 -04:00
Michael Hobbs
f723333a90 don't run shfmt in CI 2019-07-18 00:26:31 -04:00
Michael Hobbs
d8ada6a6e9 install dokku from built deb package and use docker image for integrations tests 2019-07-18 00:26:31 -04:00
Michael Hobbs
1f882d09bf fix port typo 2019-07-18 00:24:24 -04:00
Jose Diaz-Gonzalez
ecfb54c668 refactor: switch to /mnt/dokku 2019-07-18 00:24:24 -04:00
Jose Diaz-Gonzalez
7aeb17986a docs: clarify usage of docker-based installation
ssh-key addition wasn't previously scoped out.
2019-07-18 00:24:24 -04:00
Jose Diaz-Gonzalez
3500dbfa6a refactor: clean up dockerfile to reduce image layers 2019-07-18 00:24:24 -04:00
Jose Diaz-Gonzalez
230a098b7b chore: drop unnecessary copy of test dhparam 2019-07-18 00:24:24 -04:00
Jose Diaz-Gonzalez
a568965d14 fix: run shfmt 2019-07-18 00:24:24 -04:00
Jose Diaz-Gonzalez
c5d5bc9a9c chore: minor fixes to docker-based install docs 2019-07-18 00:24:24 -04:00
Jose Diaz-Gonzalez
1a4af9b3ea feat: handle builds during the release process 2019-07-18 00:24:24 -04:00
Jose Diaz-Gonzalez
ea32544e37 feat: set the debconf value for the global hostname 2019-07-18 00:24:24 -04:00
Jose Diaz-Gonzalez
9b67ffe9d4 feat: properly handle dhparam
The dhparam file should be specific to each installation, and thus needs to be generated on first run.
2019-07-18 00:24:24 -04:00
Jose Diaz-Gonzalez
6fe984fd3c fix: ensure releases take docker-based installation into account when updating version numbers 2019-07-18 00:24:24 -04:00
Jose Diaz-Gonzalez
98bf4b7b31 docs: add documentation for docker-based installation 2019-07-18 00:24:23 -04:00
Jose Diaz-Gonzalez
d7bb131b37 feat: add the ability to install arbitrary plugins on container start 2019-07-18 00:24:23 -04:00
Jose Diaz-Gonzalez
01f317bbf3 feat: initialize plugins on boot 2019-07-18 00:24:23 -04:00
Jose Diaz-Gonzalez
56d8346d65 docs: standardizing installation doc titles 2019-07-18 00:24:23 -04:00
Jose Diaz-Gonzalez
3eb9c9b3ba feat: initial docker installation support
Refs #1076
2019-07-18 00:24:23 -04:00
Jose Diaz-Gonzalez
6b42fde028 fix: handle case where modprobe does not exist
This is possible when installing dokku within a docker image.
2019-07-18 00:24:23 -04:00
Jose Diaz-Gonzalez
b0b036549a Merge pull request #3618 from dokku/3615-systemd-retire
Ensure the dokku-retire timer is properly installed
2019-07-18 00:09:30 -04:00
Jose Diaz-Gonzalez
eada23d3f6 feat: build on systemd 2019-07-17 20:48:57 -04:00
Jose Diaz-Gonzalez
402c6db826 chore: move the event logging to it's own tag
Without this, rsyslog will shunt any logging output from the dokku user to the event log, garbling output for future investigation.
2019-07-17 20:48:57 -04:00
Jose Diaz-Gonzalez
5a52286309 fix: ensure the dokku-retire timer is properly installed
Closes #3615
2019-07-17 20:48:57 -04:00
Jose Diaz-Gonzalez
22ffa41d31 Merge pull request #3612 from jayjun/testing
Improve testing docs
2019-07-17 17:20:20 -04:00
Jose Diaz-Gonzalez
e8d6e879c8 Merge pull request #3614 from alexquick/fix-3606
[config] validate args for config:set and config:unset
2019-07-17 17:19:00 -04:00
Jose Diaz-Gonzalez
d4d69e5224 Merge pull request #3610 from jayjun/bats
Correct Bats path in single tests
2019-07-14 23:13:01 -07:00
Jose Diaz-Gonzalez
f4c0715299 Merge pull request #3613 from Lyelt/master
Remove all uses of proxy_set_header Connection "upgrade"
2019-07-14 23:11:57 -07:00
Alex Quick
2cab7f24ed [config] validate args for config:set and config:unset
Fixes dokku/dokku#3606
2019-07-14 12:16:56 -04:00
Nicholas Ghobrial
af9a43b4f5 Merge branch 'master' into master 2019-07-13 01:50:19 -04:00
Nicholas Ghobrial
dfda7d63f4 Escape $ 2019-07-13 01:25:55 -04:00
Nicholas Ghobrial
05bdda036f Remove all uses of
proxy_set_header Connection "upgrade"
2019-07-13 01:18:29 -04:00
Tan Jay Jun
a09cda126b docs: improve testing docs 2019-07-12 15:47:55 +08:00
Tan Jay Jun
9a43b41208 fix: correct bats path in single tests 2019-07-09 17:20:48 +08:00
Jose Diaz-Gonzalez
b3341999a1 Merge pull request #3607 from dokku/herokuish-cache-purge
Purge cache using herokuish image
2019-07-05 18:25:37 -04:00
Jose Diaz-Gonzalez
69e4cd7c44 refactor: use only a single implementation for cache purging
This change moves cache clearing into the repo plugin, and standardizes on a single way of clearing the cache.
2019-07-05 17:40:20 -04:00
Jose Diaz-Gonzalez
33423a0508 feat: purge cache using herokuish image
In some cases, the cache directory may exist but there may be no app image to use for cache purging. This may be the case if the app was never deployed.

Instead of failing, we can simply use the configured herokuish image for clearing cache, as that image is the base image for anything that would have modified cache.
2019-07-05 16:07:13 -04:00
Jose Diaz-Gonzalez
39f3f598a5 feat: add extra newline for good luck 2019-07-05 15:39:35 -04:00
Jose Diaz-Gonzalez
2c5106fe32 Merge pull request #3605 from dokku/empty-ssh-key
fix: handle case where there are empty newlines in the authorized_keys file
2019-07-05 15:32:41 -04:00
Jose Diaz-Gonzalez
699719b600 fix: handle case where there are empty newlines in the authorized_keys file
Previously, an empty line would result in a failing ssh-keys:list call, or a failure to verify the file. Newlines should be ignored.
2019-07-05 10:00:52 -04:00
Jose Diaz-Gonzalez
8481ea2306 Merge pull request #3603 from dokku/remove-percent
Drop extra % sign in common.LogVerboseQuiet
2019-07-03 14:33:34 -04:00
Jose Diaz-Gonzalez
a984464931 fix: drop extra % sign in common.LogVerboseQuiet 2019-07-03 13:53:56 -04:00
Jose Diaz-Gonzalez
f3e191988d Merge pull request #3602 from alexymik/master
Create a 502 error page to automatically refresh if backend status changes
2019-07-01 17:21:56 -04:00
Alexy Mikhailichenko
c99f92e9f2 Change 500 to 502 2019-07-01 17:17:14 -04:00
Alexy Mikhailichenko
a496ae987a Remove console calls 2019-07-01 17:10:45 -04:00
Alexy Mikhailichenko
75036dfa27 Remove console calls 2019-07-01 14:24:36 -04:00
Alexy Mikhailichenko
b35235f1e9 Change 502 error page to automatically refresh if backend status changes 2019-07-01 14:14:34 -04:00
Jose Diaz-Gonzalez
eabcf84f0b Merge pull request #3600 from dokku/simple-herokuish-go-check
Refactor IsImageHerokuishBased to match shell version
2019-06-29 17:13:02 -04:00
Jose Diaz-Gonzalez
7fc8770027 feat: refactor IsImageHerokuishBased to match shell version
The shell version is faster due to not needing to create a new container.
2019-06-29 15:43:02 -04:00
Jose Diaz-Gonzalez
23d647ee51 Merge pull request #3597 from dokku/trace-tests
Allow default trace function to work
2019-06-21 11:05:58 -04:00
Jose Diaz-Gonzalez
2fd53a7a01 fix: allow default trace function to work
Also add some simple tests for the trace plugin.
2019-06-21 10:24:33 -04:00
Jose Diaz-Gonzalez
3decb8c4d3 Merge pull request #3596 from dokku/update-hooks
Add missing hooks to events plugin and plugin triggers docs
2019-06-19 13:52:56 -04:00
Jose Diaz-Gonzalez
966afcb787 chore: add missing hooks to events plugin and plugin triggers docs 2019-06-19 13:50:29 -04:00
Jose Diaz-Gonzalez
48484732a0 Release 0.17.9
# History

## 0.17.9

Install/update via the bootstrap script:

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

### Bug Fixes

- #3593: @JakeAngell Fix nginx template for https in "Connection" header

### Documentation

- #3595: @josegonzalez Drop extra help output for trace
2019-06-18 12:32:49 -04:00
Jose Diaz-Gonzalez
3e5e6b10dd Merge pull request #3595 from dokku/josegonzalez-patch-1
Drop extra help output for trace
2019-06-18 12:28:11 -04:00
Jose Diaz-Gonzalez
2d47931cc4 docs: drop extra help output for trace
Closes #3594

[ci skip]
2019-06-18 12:27:43 -04:00
Jose Diaz-Gonzalez
c13c3f8012 Merge pull request #3593 from JakeAngell/patch-1
Fix nginx template for https in "Connection" header
2019-06-18 11:38:29 -04:00
JakeAngell
4e4e256a27 Update nginx.conf.sigil 2019-06-17 21:21:10 +01:00
Jose Diaz-Gonzalez
161380d639 Release 0.17.8
# History

## 0.17.8

Install/update via the bootstrap script:

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

### Bug Fixes

- #3591: @palfrey Allow SSH keys with no ending newline

### New Features

- #3587: @josegonzalez feat: drop make and gcc as dependencies
2019-06-14 12:59:57 -05:00
Jose Diaz-Gonzalez
5f36b138fb Merge pull request #3591 from palfrey/3590-ssh-key-without-newlines
Allow SSH keys with no ending newline
2019-06-14 12:59:02 -05:00
Tom Parker-Shemilt
024fd958e8 Add no-newline SSH key test 2019-06-12 22:30:26 +01:00
Tom Parker-Shemilt
a848d92823 Allow SSH keys with no ending newline (fixes #3590) 2019-06-12 22:16:02 +01:00
Jose Diaz-Gonzalez
3696757e8f Merge pull request #3587 from dokku/drop-unused-deps
feat: drop make and gcc as dependencies
2019-06-10 18:08:16 -04:00
Jose Diaz-Gonzalez
2cabf0a21f feat: drop make and gcc as dependencies
They aren't actually used within Dokku.
2019-06-10 16:25:41 -04:00
Jose Diaz-Gonzalez
283ff056da Release 0.17.7
# History

## 0.17.7

Install/update via the bootstrap script:

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

### New Features

- #3586: @josegonzalez ps plugin parallel usage cleanup

### Documentation

- #3584: @josegonzalez Fix no-install-recommends documentation

### Other

- #3579: @znz Update plugin list
2019-06-10 16:06:24 -04:00
Jose Diaz-Gonzalez
9bcd81c8bd Merge pull request #3586 from dokku/parallel-cleanup
ps plugin parallel usage cleanup
2019-06-10 14:10:29 -04:00
Jose Diaz-Gonzalez
0ebb400d91 feat: allow users to specify custom parallel arguments 2019-06-10 13:07:23 -04:00
Jose Diaz-Gonzalez
fc5544ac70 refactor: use a single method for running the ps:*all commands
This reduces the duplication at the cost of slightly more complexity.
2019-06-10 13:05:57 -04:00
Jose Diaz-Gonzalez
4a7f13c3d8 Merge pull request #3584 from dokku/josegonzalez-patch-1
Fix no-install-recommends documentation
2019-06-09 17:03:22 +02:00
Jose Diaz-Gonzalez
737e4a5bf4 docs: fix no-install-recommends documentation
[ci skip]
2019-06-09 11:02:46 -04:00
Jose Diaz-Gonzalez
d047db108b Merge pull request #3579 from znz/update-plugin-list
Update plugin list
2019-06-04 10:05:20 -05:00
Kazuhiro NISHIYAMA
73f5fde99d Update output of plugin:list 2019-06-04 07:48:57 +09:00
Kazuhiro NISHIYAMA
a17ed7981e Use plugin:list instead of deprecated plugin 2019-06-04 07:48:45 +09:00
Jose Diaz-Gonzalez
8a5504574d Release 0.17.6
# History

## 0.17.6

Install/update via the bootstrap script:

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

### New Features

- #3578: @josegonzalez Allow omitting resource args by setting DOKKU_OMIT_RESOURCE_ARGS
2019-05-30 17:40:21 -04:00
Jose Diaz-Gonzalez
8ac35766f3 Merge pull request #3578 from dokku/allow-omit-resource-args
Allow omitting resource args by setting DOKKU_OMIT_RESOURCE_ARGS
2019-05-30 17:00:02 -04:00
Jose Diaz-Gonzalez
5fd5e235d8 feat: allow omitting resource args by setting DOKKU_OMIT_RESOURCE_ARGS
This is useful for one-off containers that should have full-access to server resources.
2019-05-30 13:24:11 -04:00
Jose Diaz-Gonzalez
8d526b964b Release 0.17.5
# History

## 0.17.5

Install/update via the bootstrap script:

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

### New Features

- #3576: @josegonzalez Allow setting DOCKER_BIN path for docker execution
2019-05-29 01:28:50 -04:00
Jose Diaz-Gonzalez
084906d684 Merge pull request #3576 from dokku/docker-bin
Allow setting DOCKER_BIN path for docker execution
2019-05-29 01:27:18 -04:00
Jose Diaz-Gonzalez
79d4f4578d fix: use correct method for executing dokku within tests 2019-05-29 00:46:56 -04:00
Jose Diaz-Gonzalez
785d9b4937 feat: allow setting DOCKER_BIN path for docker execution
This change allows operators to specify a DOCKER_BIN environment variable. This will specify a binary to run when executing docker, which is useful in cases where the 'docker' command being run must be modified in a way that would otherwise be invasive to Dokku, but minimalistic if done within a wrapper.
2019-05-29 00:46:19 -04:00
Jose Diaz-Gonzalez
0e03c82139 Release 0.17.4
# History

## 0.17.4

Install/update via the bootstrap script:

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

### New Features

- #3575: @josegonzalez Add a way to cleanup apps for specific schedulers
2019-05-28 17:22:06 -04:00
Jose Diaz-Gonzalez
84e33f2c57 Merge pull request #3575 from dokku/scheduler-post-delete
Add a way to cleanup apps for specific schedulers
2019-05-28 17:21:36 -04:00
Jose Diaz-Gonzalez
a6408c0c56 feat: add a way to cleanup apps for specific schedulers
The post-delete hook will delete config, and thus scheduler-post-delete is the best place to actually delete resources where some local config may be necessary in order to reference resources.
2019-05-28 17:21:10 -04:00
Jose Diaz-Gonzalez
915ef6a8d5 Release 0.17.3
# History

## 0.17.3

Install/update via the bootstrap script:

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

### Bug Fixes

- #3570: @znz Fix typos in trace help

### New Features

- #3574: @josegonzalez Add support for pulling app status from scheduler plugins
- #3571: @znz Simplify hostname_regex
2019-05-28 14:55:13 -04:00
Jose Diaz-Gonzalez
684f9fd175 Merge pull request #3574 from dokku/scheduler-app-status
Add support for pulling app status from scheduler plugins
2019-05-28 14:54:04 -04:00
Jose Diaz-Gonzalez
e276ebbc27 feat: add support for pulling app status from scheduler plugins
Previously, this was impossible to do if using an alternative scheduler.
2019-05-28 14:53:42 -04:00
Jose Diaz-Gonzalez
0988e62418 Merge pull request #3571 from znz/simplify-hostname_regex
Simplify hostname_regex
2019-05-24 18:01:14 -04:00
Jose Diaz-Gonzalez
bbc8c8a533 Merge pull request #3570 from znz/fix-typos
Fix typos in trace help
2019-05-23 11:51:31 -04:00
Kazuhiro NISHIYAMA
082e9458e5 Simplify hostname_regex
`[a-z0-9\.\*-]+` includes `\.` and `[a-z0-9\*-]+`.
So I think `^([a-z0-9\.\*-]+\.)*[a-z0-9\*-]+$` means last char is `[a-z0-9\*-]`
and other optional chars are `[a-z0-9\.\*-]*`.
2019-05-23 23:23:10 +09:00
Kazuhiro NISHIYAMA
0a17358352 Fix typos in trace help 2019-05-23 23:20:16 +09:00
Jose Diaz-Gonzalez
3a2bdd83f8 Release 0.17.2
# History

## 0.17.2

Install/update via the bootstrap script:

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

### Bug Fixes

- #3568: @josegonzalez Correct issue with clearing global domains
2019-05-23 07:02:38 -04:00
Jose Diaz-Gonzalez
625424de68 Merge pull request #3568 from dokku/fix-global-clearing
Correct issue with clearing global domains
2019-05-23 06:56:07 -04:00
Jose Diaz-Gonzalez
0d71293fca Delete FUNDING.yml 2019-05-23 06:40:45 -04:00
Jose Diaz-Gonzalez
b6128dc54e Create FUNDING.yml 2019-05-23 06:26:04 -04:00
Jose Diaz-Gonzalez
919ba7ed93 fix: correct issue with clearing global domains
Also update tests
2019-05-23 06:18:22 -04:00
Jose Diaz-Gonzalez
f80788147c Release 0.17.1
# History

## 0.17.1

Install/update via the bootstrap script:

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

### Bug Fixes

- #3567: @josegonzalez Ignore SC2064
2019-05-21 14:42:45 -04:00
Jose Diaz-Gonzalez
eb7deedd65 Merge pull request #3567 from dokku/SC2064-shellcheck
Ignore SC2064
2019-05-21 10:51:23 -07:00
Jose Diaz-Gonzalez
eb8347bcc1 fix: ignore SC2064
Late expansion was causing issues with variables not actually making it into the trap call, resulting in poor cleaning up temp files.
2019-05-21 11:02:24 -04:00
Jose Diaz-Gonzalez
48752a762c Release 0.17.0
# History

## 0.17.0

Install/update via the bootstrap script:

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

### Bug Fixes

- #3565: @josegonzalez Properly cleanup temp files
- #3563: @josegonzalez Properly split strings in sanitized ps:inspect
- #3560: @josegonzalez Resource setting fixes
- #3556: @josegonzalez Add missing domains:clear-global command
- #3554: @znz Switch from rawgit to jsdelivr in manifest.json too

### New Features

- #3566: @josegonzalez Allow users to specify wildcard domains
- #3564: @josegonzalez Add config:clear command
- #3477: @alexquick Allow specifying environment variables for dokku run
- #3540: @josegonzalez Do not append the global domain for matching subdomains
- #3559: @josegonzalez Add trace:on and trace:off
- #3561: @josegonzalez feat: disable scaling if app contains DOKKU_SCALE file
- #3558: @josegonzalez Add nginx:show-conf command
- #3549: @josegonzalez Add message indicating that the user is looking at default limits/reservations

### Documentation

- #3557: @josegonzalez Standardize on node-js-app in examples
- #3548: @josegonzalez Remove outdated global resource setting

### Other

- #3562: @josegonzalez Proxy ports manipulation updates
2019-05-20 22:23:13 -07:00
Jose Diaz-Gonzalez
42a405355f Merge pull request #3566 from dokku/3075-wildcard-domains
Allow users to specify wildcard domains
2019-05-20 22:22:44 -07:00
Jose Diaz-Gonzalez
b921aed073 feat: allow users to specify wildcard domains
Closes #3075
2019-05-20 21:03:55 -07:00
Jose Diaz-Gonzalez
73b8c3df55 Merge pull request #3565 from dokku/3473-tmp-cleanup
Properly cleanup temp files
2019-05-20 20:54:32 -07:00
Jose Diaz-Gonzalez
1b92f4a97e chore: standardize how temporary files are named 2019-05-20 18:01:17 -07:00
Jose Diaz-Gonzalez
c8a491ed7f fix: only use the RETURN signal for the suppress file removal
Closes #3473
2019-05-20 18:01:03 -07:00
Jose Diaz-Gonzalez
da4361583b fix: reverse quotes for variable expansion
Without reversing quotes, the variables are sometimes improperly expanded, resulting in files not being removed.
2019-05-20 17:56:50 -07:00
Jose Diaz-Gonzalez
0087296bd3 Merge pull request #3563 from dokku/3551-ps-inspect
Properly split strings in sanitized ps:inspect
2019-05-20 15:06:26 -07:00
Jose Diaz-Gonzalez
6221b7bf4a Merge pull request #3564 from dokku/3537-config-clear
Add config:clear command
2019-05-20 14:34:22 -07:00
Jose Diaz-Gonzalez
f977edabb2 feat: add config:clear command
Closes #3537
2019-05-20 13:26:21 -07:00
Jose Diaz-Gonzalez
980ffab600 fix: properly split strings in sanitized ps:inspect
Closes #3551
2019-05-20 12:58:41 -07:00
Jose Diaz-Gonzalez
a34d36c5d2 Merge pull request #3477 from alexquick/feature-run-env
Allow specifying environment variables for dokku run
2019-05-20 12:30:47 -07:00
Jose Diaz-Gonzalez
b2a0b69ed5 Merge branch 'master' into feature-run-env 2019-05-19 23:20:34 -07:00
Jose Diaz-Gonzalez
2315a127ea Merge pull request #3540 from dokku/3529-better-default-vhost
Do not append the global domain for matching subdomains
2019-05-19 23:00:17 -07:00
Jose Diaz-Gonzalez
1c1ff64c67 Merge pull request #3559 from dokku/3553-trace-mode
Add trace:on and trace:off
2019-05-19 22:59:56 -07:00
Jose Diaz-Gonzalez
9e2a129854 Merge pull request #3561 from dokku/3544-ps-can-scale
feat: disable scaling if app contains DOKKU_SCALE file
2019-05-19 22:59:08 -07:00
Jose Diaz-Gonzalez
a475af1974 Merge pull request #3562 from dokku/3550-proxy-ports-update
Proxy ports manipulation updates
2019-05-19 22:58:55 -07:00
Jose Diaz-Gonzalez
4264380e15 feat: disable scaling if app contains DOKKU_SCALE file
A DOKKU_SCALE file will always be used for managing the scale count for an app if it exists in a repository. As such, ps:scale usage should be disabled in those cases. This commit makes that more apparent.

Also document how to build a specific core plugin for testing purposes.

Closes #3544
2019-05-18 15:24:59 -07:00
Jose Diaz-Gonzalez
676aa1a05b docs: clarify proxy:ports-* commands
Closes #3550
2019-05-18 15:04:16 -07:00
Jose Diaz-Gonzalez
94c06bbdd2 fix: correct issue in proxy:ports-set invocation 2019-05-18 15:03:36 -07:00
Jose Diaz-Gonzalez
1c600b8846 Merge pull request #3560 from dokku/resource-setting-fixes
Resource setting fixes
2019-05-17 14:12:27 -04:00
Jose Diaz-Gonzalez
7dd9007607 fix: cpu limiting isn't available on CircleCI 2019-05-17 12:46:23 -04:00
Jose Diaz-Gonzalez
e71ad53b0e tests: check the cpu setting
Switch to 0.5 as its safer to run tests on a single-core VM
2019-05-17 12:03:35 -04:00
Jose Diaz-Gonzalez
a92687d3e8 fix: correct calls to fetch process-specific build and deploy args 2019-05-17 12:00:05 -04:00
Jose Diaz-Gonzalez
2aac9c71fc fix: cpu flag becomes cpus for the docker-scheduler 2019-05-17 11:59:15 -04:00
Jose Diaz-Gonzalez
ceac86b58f fix: correct issue where resource setting was overriding pre-existing values 2019-05-17 11:58:53 -04:00
Jose Diaz-Gonzalez
3fb8a576a0 fix: add trace:on and trace:off
Closes #3553
2019-05-16 18:24:59 -04:00
Jose Diaz-Gonzalez
c786b9e45e Merge pull request #3558 from dokku/3552-nginx-show-conf
Add nginx:show-conf command
2019-05-16 17:27:53 -04:00
Jose Diaz-Gonzalez
68fcd67327 feat: Add nginx:show-conf command
Closes #3552
2019-05-14 18:03:16 -04:00
Jose Diaz-Gonzalez
a54fa57136 Merge pull request #3557 from dokku/docs-sample
Standardize on node-js-app in examples
2019-05-14 17:55:37 -04:00
Jose Diaz-Gonzalez
343a6a159f docs: standardize on node-js-app in examples
[ci skip]
2019-05-14 17:55:00 -04:00
Jose Diaz-Gonzalez
dc2a680a29 Merge pull request #3549 from dokku/resource-default
Add message indicating that the user is looking at default limits/reservations
2019-05-14 12:43:58 -04:00
Jose Diaz-Gonzalez
72fce08e87 feat: add message indicating that the user is looking at default limits/reservations
Without this bit of metadata, it appears to the user that the resource limits are just that, whereas this is actually scoped to per-process-type.
2019-05-14 12:43:37 -04:00
Jose Diaz-Gonzalez
b60934629e Merge pull request #3556 from dokku/domains-clear-global
Add missing domains:clear-global command
2019-05-14 12:01:17 -04:00
Jose Diaz-Gonzalez
e59f115311 fix: add missing domains:clear-global command 2019-05-14 11:59:44 -04:00
Jose Diaz-Gonzalez
19dd92e6c7 Merge pull request #3554 from znz/rawgit-to-jsdelivr
Switch from rawgit to jsdelivr in manifest.json too
2019-05-14 10:34:36 -04:00
Kazuhiro NISHIYAMA
aab390edb6 Switch from rawgit to jsdelivr in manifest.json too
ref bb8d0324b5
2019-05-14 23:20:58 +09:00
Jose Diaz-Gonzalez
0c11068129 Merge pull request #3548 from dokku/docs-no-global-resource
Remove outdated global resource setting
2019-05-13 17:33:08 -04:00
Jose Diaz-Gonzalez
ad804f6d3f docs: remove outdated global resource setting
This was removed in c9bbddcfcb as it was more complicated for operators to figure out _exactly_ which combination of limits/reservations would apply to their applications. Unfortunately, the documentation was never updated.

We may re-add this functionality in the future, but for now, cleaning up the docs is the best option.

[ci skip]
2019-05-13 17:32:42 -04:00
Jose Diaz-Gonzalez
de43eb1e3d Release 0.16.4
# History

## 0.16.4

Install/update via the bootstrap script:

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

### Bug Fixes

- #3547: @josegonzalez Correct retrieval of resource values for alternative schedulers

### New Features

- #3546: @josegonzalez Add ability to trigger an arbitrary plugin hook
2019-05-13 16:39:33 -04:00
Jose Diaz-Gonzalez
5d9daa9367 Merge pull request #3546 from dokku/plugin-trigger
feat: add ability to trigger an arbitrary plugin hook
2019-05-13 16:38:59 -04:00
Jose Diaz-Gonzalez
0d9e424ede Merge pull request #3547 from dokku/fix-resource-fetching
Correct retrieval of resource values for alternative schedulers
2019-05-13 16:38:42 -04:00
Jose Diaz-Gonzalez
603dc0fad6 fix: correct retrieval of resource values for alternative schedulers 2019-05-13 16:37:57 -04:00
Jose Diaz-Gonzalez
0cf03baa78 feat: add ability to trigger an arbitrary plugin hook
This is useful in cases where the command output must be tested, but it is otherwise embedded in a specific part of the dokku core.
As the 'plugin' commands require root, this is safe to add to the core.
2019-05-13 16:17:55 -04:00
Jose Diaz-Gonzalez
ba3af25423 Release 0.16.3
# History

## 0.16.3

Install/update via the bootstrap script:

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

### Bug Fixes

- #3541: @josegonzalez Handle case where image is null on first deploy

### New Features

- #3543: @josegonzalez Add ability to clear global domains
- #3517: @josegonzalez SSH key updates
- #3538: @josegonzalez Silence dokku run 'errors'

### Documentation

- #3523: @MarcDiethelm Add an example how to specify a Dockerfile for deployment
- #3539: @josegonzalez Warn users when ufw is enabled
2019-05-13 13:54:35 -04:00
Jose Diaz-Gonzalez
a084c62e3f Merge pull request #3543 from dokku/domains-global-clear
Add ability to clear global domains
2019-05-13 12:45:49 -04:00
Jose Diaz-Gonzalez
b429af8ff2 feat: do not append the global domain for matching subdomains
If the subdomain is url-like, assume it is a valid url and use it for the default domain name. This allows users to specify the default domain for an app even if that is a subdomain of a global vhost.

Closes #3529
2019-05-13 12:07:52 -04:00
Jose Diaz-Gonzalez
287f383f6c feat: add ability to clear global domains 2019-05-13 12:00:26 -04:00
Jose Diaz-Gonzalez
aefb24082d Merge pull request #3517 from dokku/ssh-key-updates
SSH key updates
2019-05-13 00:56:36 -04:00
Jose Diaz-Gonzalez
dee0144c7c fix: add missing awk to get number of lines in key file 2019-05-12 19:08:55 -04:00
Jose Diaz-Gonzalez
6ca4813247 fix: invert check 2019-05-12 19:04:50 -04:00
Jose Diaz-Gonzalez
a717cb99a3 fix: correct shfmt and update error message 2019-05-12 19:04:50 -04:00
Jose Diaz-Gonzalez
8551dfb297 refactor: switch to temporary file for key verification 2019-05-12 19:04:50 -04:00
Jose Diaz-Gonzalez
6a5bbd63a3 refactor: always use a temp file for interacting with ssh keys
Rather than have stdin open everywhere, try to coerce input into a temporary file for later use.
2019-05-12 19:04:50 -04:00
Jose Diaz-Gonzalez
ca0b2937b9 refactor: fetch ssh key via argument before stdin
This allows the ssh-keys:add command to work in environments where there is no stdin/tty available, such as via server automation.
2019-05-12 19:04:50 -04:00
Jose Diaz-Gonzalez
948d507909 chore: update dockerignore for upcoming install from docker
[ci skip]
2019-05-12 19:03:02 -04:00
Jose Diaz-Gonzalez
037324d850 Merge pull request #3523 from MarcDiethelm/pr/dockerfile-file-option-example
Add an example how to specify a Dockerfile for deployment
2019-05-12 18:59:09 -04:00
Jose Diaz-Gonzalez
6006303409 docs: clarify that a dockerfile is still needed
[ci skip]
2019-05-12 18:58:28 -04:00
Jose Diaz-Gonzalez
d1b1841034 Merge pull request #3541 from dokku/null-herokuish-image
Handle case where image is null on first deploy
2019-05-12 18:51:32 -04:00
Jose Diaz-Gonzalez
bc70a24e1d fix: handle case where image is null on first deploy 2019-05-12 07:37:21 -04:00
Jose Diaz-Gonzalez
acc2e84eda Merge pull request #3539 from dokku/3455-ufw-warn
Warn users when ufw is enabled
2019-05-12 07:14:15 -04:00
Jose Diaz-Gonzalez
4f23dd2dd6 docs: Warn users when ufw is enabled
Closes #3455
2019-05-12 06:09:05 -04:00
Jose Diaz-Gonzalez
3a5f68e4d1 Merge pull request #3538 from dokku/3522-silence-dokku-run
feat: silence dokku run 'errors'
2019-05-12 05:56:29 -04:00
Jose Diaz-Gonzalez
d30a948be0 feat: silence dokku run 'errors'
In certain cases, a command can be specified but found - or not - in the Procfile, resulting in unnecessary output for cron tasks.

Closes #3522
2019-05-12 05:15:53 -04:00
Jose Diaz-Gonzalez
c44db3f2cf Release 0.16.2
# History

## 0.16.2

Install/update via the bootstrap script:

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

### Documentation

- #3536: @josegonzalez docs: Add documentation for nginx-pre-reload limitation
- #3535: @josegonzalez Add help output for apps:exists
2019-05-11 20:51:17 -04:00
Jose Diaz-Gonzalez
1272287d62 Merge pull request #3536 from dokku/3533-nginx-pre-reload-limitations
docs: Add documentation for nginx-pre-reload limitation
2019-05-11 20:48:09 -04:00
Jose Diaz-Gonzalez
f4b96cc688 docs: Add documentation for nginx-pre-reload limitation
Closes #3533

[ci skip]
2019-05-11 20:47:41 -04:00
Jose Diaz-Gonzalez
65fb016bc3 Merge pull request #3535 from dokku/3534-document-apps-exists
Add help output for apps:exists
2019-05-11 20:45:11 -04:00
Jose Diaz-Gonzalez
2eccb95477 docs: Add help output for apps:exists
[ci skip]
2019-05-11 20:44:41 -04:00
Jose Diaz-Gonzalez
b9152ee77e Release 0.16.1
# History

## 0.16.1

Install/update via the bootstrap script:

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

### New Features

- #3532: @josegonzalez refactor: allow the scheduler to decide if an app is deployed

### Documentation

- #3530: @jhstatewide Updated info about supported Ubuntu versions
2019-05-10 18:34:41 -04:00
Jose Diaz-Gonzalez
99ec1c0606 Merge pull request #3532 from dokku/3531-is-deployed
refactor: allow the scheduler to decide if an app is deployed
2019-05-10 18:33:04 -04:00
Jose Diaz-Gonzalez
5373cf2989 refactor: allow the scheduler to decide if an app is deployed
Without moving this to the scheduler, all applications are assumed to not be deployed unless the scheduler is set to docker-local.

Closes #3531
2019-05-10 17:47:39 -04:00
Jose Diaz-Gonzalez
b85b4c6e99 Merge pull request #3530 from jhstatewide/patch-1
Updated info about supported Ubuntu versions
2019-05-08 23:35:32 -04:00
Joshua Harding
7be4a3ee48 Updated info about supported Ubuntu versions 2019-05-08 23:04:00 -04:00
Jose Diaz-Gonzalez
2f83b29f1a Release 0.16.0
# History

## 0.16.0

Install/update via the bootstrap script:

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

### Bug Fixes

- #3527: @josegonzalez Use DOKKU_IMAGE for report command

### New Features

- #3528: @josegonzalez feat: add support for quiet ps:scale output
- #3516: @ape-box fix nginx template with Connection header to http_connection
- #3513: @Mayeu Support installing plugins via file:// scheme

### Documentation

- #3525: @artofrawr add multi dockerfile plugin to plugins.md
- #3518: @renestalder Add GitLab GIT_STRATEGY for stop_preview_app
- #3506: @vanastassiou Clarify application deployment documentation
- #3512: @Mayeu Update example app in deploy tutorial
2019-05-07 12:02:19 -04:00
Jose Diaz-Gonzalez
7709a3a2ec Merge pull request #3528 from dokku/3520-quiet-ps-scale
feat: add support for quiet ps:scale output
2019-05-06 13:21:22 -04:00
Jose Diaz-Gonzalez
06d0b07f36 Merge pull request #3527 from dokku/report-dokku-image
Use DOKKU_IMAGE for report command
2019-05-06 11:31:34 -04:00
Jose Diaz-Gonzalez
0275c65b8a feat: add support for quiet ps:scale output
The previous output required too much parsing to be used in an automated fashion. This change makes that a bit easier, without sacrificing usability.

Note that the output is quite a bit different from heroku. This is purposeful as we do not have the concept of dynos.

Closes #3520
2019-05-06 11:19:08 -04:00
Jose Diaz-Gonzalez
1617796bc6 Merge pull request #3516 from ape-box/kestrelfix
fix nginx template with Connection header to http_connection
2019-05-06 11:07:25 -04:00
Jose Diaz-Gonzalez
6869fda75b fix: use DOKKU_IMAGE for report command 2019-05-06 10:51:20 -04:00
Jose Diaz-Gonzalez
06017d17ae Merge pull request #3525 from artofrawr/pr/dokku-multi-dockerfile
add multi dockerfile plugin to plugins.md
2019-05-03 10:57:26 -04:00
Jens Fischer
9fc26aeb41 add multi dockerfile plugin to plugins.md 2019-05-02 22:09:27 -04:00
Alex Quick
dad5db4e9b [feature] add --env to dokku run
`dokku run [ --env KEY=VALUE | -e KEY=VALUE ] app command`

__note__ this changes the scheduler-run trigger to expect the following arguments:
scheduler_name, app_name, env_count, env_0, ..., env_n, app_arg_0, ..., app_arg_n

resolves: dokku/dokku#3291
2019-04-28 14:42:07 -04:00
Marc Diethelm
d356cef183 Adds an example how to specify a Dockerfile for deployment 2019-04-27 14:32:08 +02:00
Jose Diaz-Gonzalez
c49d849917 Merge pull request #3518 from renestalder/patch-2
Add GitLab GIT_STRATEGY for stop_preview_app
2019-04-23 12:20:17 -04:00
Jose Diaz-Gonzalez
b36a2a9154 Merge pull request #3513 from Mayeu/patch-2
Support installing plugins via file:// scheme
2019-04-23 12:19:56 -04:00
Mayeu
252092c73a feat: support the file:// scheme to install plugin 2019-04-23 15:23:35 +07:00
René Stalder
f6cc77bc3a docs: add GitLab GIT_STRATEGY for stop_preview_app
Use `GIT_STRATEGY: none` in `stop_review_app` to make job work after successful
merges and when the branch was deleted.

Without this, the application is not stopped when the branch is deleted on merge as the runner pulls the git repository by default, but cannot find the tree in this moment.

[skip ci]
2019-04-23 10:17:50 +02:00
Alessio
cb16cae09b fix nginx template with Connection header to http_connection 2019-04-22 22:08:28 +01:00
Jose Diaz-Gonzalez
bb494b69ea Merge pull request #3506 from vanastassiou/patch-2
Update application-deployment.md
2019-04-22 04:22:11 -04:00
V Anastassiou
f13a660698 Update application-deployment.md
Clarity and style edits
2019-04-22 04:20:48 -04:00
Jose Diaz-Gonzalez
ce1ca5cc17 Merge pull request #3512 from Mayeu/patch-1
docs: fix the deploy tutorial
2019-04-22 04:04:38 -04:00
Mayeu - Cast
e700ad32a3 docs: fix the deploy tutorial
Heroku's [ruby-rails-sample](https://github.com/heroku/ruby-rails-sample) does not run anymore on Dokku (or Heroku), and has been archived and replaced by [ruby-getting-started](https://github.com/heroku/ruby-getting-started).

This commit replace all the occurrences of `ruby-rails-sample` by `ruby-getting-started`.
2019-04-22 14:56:13 +07:00
Jose Diaz-Gonzalez
0fd829ed3b Release 0.15.5
# History

## 0.15.5

Install/update via the bootstrap script:

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

### New Features

- #3511: @josegonzalez Add json output to config:export

### Documentation

- #3510: @josegonzalez Remove SPONSORS doc in favor of OpenCollective
- #3509: @Neamar Missing space in markdown formatting
- #3507: @renestalder Fix GitLab CI examples
2019-04-21 21:15:35 -04:00
Jose Diaz-Gonzalez
f9a59180f2 Merge pull request #3511 from dokku/config-json
Add json output to config:export
2019-04-21 21:14:02 -04:00
Jose Diaz-Gonzalez
04c9fe974e feat: add json output to config:export
This change adds json output as both key/value as well as a list of objects. The former can be used in quick scripting environments, while the latter allows higher-level languages to have a bit more structure around how environment variables are declared. Specifically, systems such as kubernetes understand the latter method, while the former can be used within Nomad job files.
2019-04-21 18:39:06 -04:00
Jose Diaz-Gonzalez
4b63c96434 feat: pre-sort config:help commands 2019-04-21 16:16:39 -04:00
Jose Diaz-Gonzalez
ef55ce8919 Merge pull request #3510 from dokku/josegonzalez-patch-1
Remove SPONSORS doc in favor of OpenCollective
2019-04-21 16:10:26 -04:00
Jose Diaz-Gonzalez
0ba6e26788 chore: remove SPONSORS doc
This was a very incomplete list. Public sponsors for the project can be found on OpenCollective.
2019-04-21 16:09:59 -04:00
Jose Diaz-Gonzalez
1b481d214c Merge pull request #3509 from Neamar/patch-1
Missing space in markdown formatting
2019-04-21 16:08:55 -04:00
Matthieu Bacconnier
d33ea360ac Missing space in markdown formatting
Title was not properly displayed in github
2019-04-21 08:13:08 +01:00
Jose Diaz-Gonzalez
8e07d70070 Merge pull request #3507 from renestalder/patch-1
Fix GitLab CI examples
2019-04-18 12:36:48 -04:00
René Stalder
06b4585a62 docs: fix GitLab CI examples
The GitLab CI examples used `$CI_ENVIRONMENT_SLUG` for defining the environment names
of the deploy jobs. But this variable is actually the OUTPUT of setting the environment name,
thus, it tries to reference itself, but does not exist in that moment.

The correct way to set this is to use `$CI_COMMIT_REF_NAME` as based on the documentation
of GitLab's dynamic environments.
2019-04-18 18:06:52 +02:00
Jose Diaz-Gonzalez
dbc5182193 Release 0.15.4
# History

## 0.15.4

Install/update via the bootstrap script:

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

### Bug Fixes

- #3499: @josegonzalez Ensure the .buildpacks file exists before writing to it
- #3500: @josegonzalez Always allow ps:scale proc=0
- #3497: @josegonzalez Allow reporting domains when there are none specified

### New Features

- #3502: @josegonzalez Add a trigger to fetch the git revision
- #3501: @josegonzalez Move log retrieval to docker-local scheduler
- #3498: @josegonzalez Add ability to report domains globally
- #3496: @josegonzalez Cleanup glide plugins when running src-clean

### Documentation

- #3504: @vanastassiou Edits for readability and conciseness
- #3490: @josegonzalez Add missing link to resource management docs
2019-04-17 17:24:10 -04:00
Jose Diaz-Gonzalez
46c023e73d Merge pull request #3504 from vanastassiou/patch-1
Edits for readability and conciseness
2019-04-17 17:22:05 -04:00
Jose Diaz-Gonzalez
f39d0fc0cf docs: correct docs link to work on both site and github
[ci skip]
2019-04-17 17:21:45 -04:00
Jose Diaz-Gonzalez
277429db5a Merge pull request #3502 from dokku/3484-git-revision-trigger
Add a trigger to fetch the git revision
2019-04-17 17:20:51 -04:00
Jose Diaz-Gonzalez
9a447c16f2 feat: add a trigger to fetch the git revision
This allows other plugins to fetch the current git revision without needing to duplicate logic from the git plugin.

Closes #3484
2019-04-17 17:19:59 -04:00
V Anastassiou
c4c7d0d82d Edits for readability and conciseness 2019-04-17 14:03:48 -07:00
Jose Diaz-Gonzalez
e5c76d3795 Merge pull request #3501 from dokku/3487-scheduler-logs
Move log retrieval to docker-local scheduler
2019-04-17 15:44:55 -04:00
Jose Diaz-Gonzalez
662c8c2831 refactor: move log retrieval to docker-local scheduler
This change will allow other schedulers to implement log retrieval as necessary for the platform specified.

Closes #3487
2019-04-17 15:03:37 -04:00
Jose Diaz-Gonzalez
3ec67073ce Merge pull request #3499 from dokku/3491-buildpacks-writing
Ensure the .buildpacks file exists before writing to it
2019-04-17 02:52:49 -04:00
Jose Diaz-Gonzalez
322dd2246f fix: ensure the .buildpacks file exists before writing to it 2019-04-17 02:04:06 -04:00
Jose Diaz-Gonzalez
13e3950f4a Merge pull request #3498 from dokku/global-domains-report
Add ability to report domains globally
2019-04-17 01:32:45 -04:00
Jose Diaz-Gonzalez
d03d5bc40c Merge pull request #3500 from dokku/3428-ps-scale-0
Always allow ps:scale proc=0
2019-04-17 01:32:26 -04:00
Jose Diaz-Gonzalez
5038050968 Merge pull request #3497 from dokku/empty-domains
Allow reporting domains when there are none specified
2019-04-16 23:06:05 -04:00
Jose Diaz-Gonzalez
97fe3f56b7 fix: Always allow ps:scale proc=0
With the introduciton of procfile-util, scaling a non-existent process to 0 was disabled. This brings back that functionality, allowing users to scale all processes to 0. This is especially useful when a user has accidentally scaled a non-existent process up, causing deploys to fail without any way to revert outside of manually editing files.

Closes #3428
2019-04-16 23:04:45 -04:00
Jose Diaz-Gonzalez
887c0ebdd6 feat: add ability to report domains globally
The `domains` command previously had this functionality, but is deprecated, and thus we should provide an alternative method of presenting the information.
2019-04-16 21:58:56 -04:00
Jose Diaz-Gonzalez
99869c520f Merge pull request #3496 from dokku/cleanup-plugins
Cleanup glide plugins when running src-clean
2019-04-16 21:34:26 -04:00
Jose Diaz-Gonzalez
65e82bcea1 fix: allow reporting domains when there are none specified
This previously bailed if the response was empty, which in this case is incorrect, as the response isn't based on whether the app is deployed or not.
2019-04-16 21:24:56 -04:00
Jose Diaz-Gonzalez
bf8b67b35d feat: cleanup glide plugins when running src-clean 2019-04-16 20:00:35 -04:00
Jose Diaz-Gonzalez
8a56740a7c Merge pull request #3490 from dokku/josegonzalez-patch-1
Add missing link to resource management docs
2019-04-10 00:44:40 -04:00
Jose Diaz-Gonzalez
3a7bac6218 docs: Add missing link to resource management docs
[ci skip]
2019-04-10 00:44:25 -04:00
Jose Diaz-Gonzalez
5b9e8ddb7d Release 0.15.3
# History

## 0.15.3

Install/update via the bootstrap script:

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

### New Features

- #3489: @josegonzalez feat: upgrade herokuish to 0.5.0 (Ubuntu 18.04)
2019-04-09 11:40:30 -04:00
Jose Diaz-Gonzalez
97649e86dd fix: update ruby version 2019-04-09 07:27:30 -04:00
Jose Diaz-Gonzalez
f8e3518aa6 Merge pull request #3489 from dokku/upgrade-herokuish
feat: upgrade herokuish to 0.5.0 (Ubuntu 18.04)
2019-04-09 06:56:02 -04:00
Jose Diaz-Gonzalez
ef5f7fe03e feat: upgrade herokuish to 0.5.0 (Ubuntu 18.04)
This moves the base image from Xenial to Bionic, which is the latest supported LTS release of Ubuntu. Note that all previous releases of herokuish are no longer supported, and users are encouraged to upgrade where possible.

In the case of upgrades, a 'dokku repo:purge-cache APP' should be called for each app, or built applications may include code linked to non-ABI compatible libraries due to the OS upgrade.

This sort of change is usually performed _only_ during a minor release, but as the window since the release is fairly small, the risk to our users is negligible in comparison to the inability to stay on a maintained herokuish release.
2019-04-09 06:55:34 -04:00
Jose Diaz-Gonzalez
286c6ed39d Release 0.15.2
# History

## 0.15.2

Install/update via the bootstrap script:

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

### Bug Fixes

- #3488: @josegonzalez fix: call ps:retire from system service
2019-04-09 06:18:54 -04:00
Jose Diaz-Gonzalez
f04fd6f218 Merge pull request #3488 from dokku/josegonzalez-patch-1
fix: call ps:retire from system service
2019-04-09 06:18:33 -04:00
Jose Diaz-Gonzalez
75239ae8b5 fix: call ps:retire from system service
[ci skip]
2019-04-09 06:18:16 -04:00
Jose Diaz-Gonzalez
b120a9cc57 Release 0.15.1
# History

## 0.15.1

Install/update via the bootstrap script:

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

### Bug Fixes

- #3485: @josegonzalez fix: ensure 'dokku report' always succeeds for any app
2019-04-09 03:19:40 -04:00
Jose Diaz-Gonzalez
6b71b66f8d Merge pull request #3485 from dokku/fix-report
fix: ensure 'dokku report' always succeeds for any app
2019-04-09 03:19:12 -04:00
Jose Diaz-Gonzalez
ecd88fbeeb fix: correctly name the testcase 2019-04-09 03:18:28 -04:00
Jose Diaz-Gonzalez
929c98ee90 fix: ensure 'dokku report' always succeeds for any app 2019-04-09 02:41:02 -04:00
Jose Diaz-Gonzalez
642c293d5a Release 0.15.0
# History

## 0.15.0

Install/update via the bootstrap script:

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

### Bug Fixes

- #3479: @josegonzalez Turn off logging for nginx validate configuration
- #3470: @josegonzalez fix: correct the argument for get_release_cmd

### New Features

- #3469: @josegonzalez Resource management
- #3466: @josegonzalez Quieter builds
- #3467: @josegonzalez feat: update golang in use for binary building
- #3465: @josegonzalez Vagrant VM Enhancements
- #3464: @josegonzalez Upgrade to go-procfile-util version 0.6.0
- #3463: @josegonzalez Implement version flags
- #3462: @josegonzalez Upgrade procfile-util
- #3449: @josegonzalez Only override the `WORKDIR` in copy_from_image if the image is `gliderlabs/herokuish` based
- #3461: @josegonzalez Allow skipping aws releases for plugins
- #3459: @josegonzalez Upgrade to herokuish:0.4.9
- #3413: @josegonzalez Implement buildpacks plugin

### Documentation

- #3482: @multikatt rails-database -> railsdatabase
- #3476: @lazyatom Add chrome plugin to documentation
- #3468: @josegonzalez Doc cleanup

### Other

- #3471: @josegonzalez chore: drop plugn package building
2019-04-08 18:03:29 -04:00
Jose Diaz-Gonzalez
f05247226d Merge pull request #3469 from dokku/resource-management
Resource management
2019-04-08 17:17:42 -04:00
Jose Diaz-Gonzalez
a4c30c2ba9 chore: standardize variable naming 2019-04-08 16:36:30 -04:00
Jose Diaz-Gonzalez
b24697443a fix: correct the name 2019-04-08 15:18:46 -04:00
Jose Diaz-Gonzalez
a4114bb29d fix: clearing values has no returnable errors 2019-04-08 14:36:38 -04:00
Jose Diaz-Gonzalez
c41753c747 fix: clearing resources for web doesn't actually clear for everything 2019-04-08 14:17:16 -04:00
Jose Diaz-Gonzalez
4a6d3c25a4 fix: do not crash when clearing properties 2019-04-08 13:56:06 -04:00
Jose Diaz-Gonzalez
beef464cc1 fix: only uncomment port for sshd-config 2019-04-08 13:42:01 -04:00
Jose Diaz-Gonzalez
6cc6d5a33f fix: correct port application during local tests 2019-04-08 13:22:40 -04:00
Jose Diaz-Gonzalez
ff945c64fe fix: correct local test running 2019-04-08 13:18:28 -04:00
Jose Diaz-Gonzalez
d7c7511ea9 fix: correct comment on GetResourceValue 2019-04-08 12:52:30 -04:00
Jose Diaz-Gonzalez
0af8b2421d fix: correct range call 2019-04-08 12:42:25 -04:00
Jose Diaz-Gonzalez
71be7026d7 fix: correct GetResourceValue errors 2019-04-08 12:41:48 -04:00
Jose Diaz-Gonzalez
1683095233 fix: try and decrease number of compiles during release process 2019-04-08 12:41:06 -04:00
Jose Diaz-Gonzalez
c2898ec040 feat: add trigger to allow retrieving resource properties on the fly 2019-04-08 11:31:34 -04:00
Jose Diaz-Gonzalez
243d5ecc43 feat: integrate resource plugin with scheduler-docker-local 2019-04-08 11:31:34 -04:00
Jose Diaz-Gonzalez
3f0126a471 fix: do not output empty arguments
Also ensure we use Printf instead of Print...
2019-04-08 11:31:34 -04:00
Jose Diaz-Gonzalez
8db3b8e333 fix: do not barf if there are no resources specified for an application 2019-04-08 11:31:34 -04:00
Jose Diaz-Gonzalez
00c9e5a5e9 feat: first pass at implement resource limitation on a pre-process basis 2019-04-08 11:31:34 -04:00
Jose Diaz-Gonzalez
e8134f9c2c feat: implement resource:report 2019-04-08 11:31:34 -04:00
Jose Diaz-Gonzalez
c9bbddcfcb refactor: drop global resource limits
Global limits make it harder to reason about the inheritance in the system. Rather than support global limits, Dokku should provide primitives to automatically set them on an app at provision time, or explicitly set them for an app. Both of these are likely best suited for a higher-level provisioner, or a community plugin.
2019-04-08 11:31:34 -04:00
Jose Diaz-Gonzalez
278a80cc25 feat: switch from _all_ to _default_ for process type
This is a special process type that signifies it's the default value for everything.
2019-04-08 11:31:34 -04:00
Jose Diaz-Gonzalez
3ab271f756 refactor: drop implicit returns 2019-04-08 11:31:34 -04:00
Jose Diaz-Gonzalez
982895ff71 fix: add missing argument 2019-04-08 11:31:34 -04:00
Jose Diaz-Gonzalez
9acb9e527d feat: implement resource:*-clear commands 2019-04-08 11:31:34 -04:00
Jose Diaz-Gonzalez
ab9f516c08 refactor: clean up duplication in retrieving and verifying the APP argument 2019-04-08 11:31:34 -04:00
Jose Diaz-Gonzalez
c5717510ee feat: always get keys in order
Ranging over maps is unordered in golang, so we need to use the correct data structure if we need the output in an ordered way.
2019-04-08 11:31:34 -04:00
Jose Diaz-Gonzalez
8d23556831 fix: omit 2nd, unused value from range 2019-04-08 11:31:34 -04:00
Jose Diaz-Gonzalez
04a6e30e45 refactor: drop -defaults command in favor of --global flag
This makes usage a bit simpler, at the cost of interface complexity.
2019-04-08 11:31:34 -04:00
Jose Diaz-Gonzalez
bdfde9a481 feat: initial stub implementation for resource:*-clear commands 2019-04-08 11:31:34 -04:00
Jose Diaz-Gonzalez
9808ecde81 feat: implement default limit management
Also add generic report information when no flags are specified
2019-04-08 11:31:34 -04:00
Jose Diaz-Gonzalez
b36ab54b87 fix: correct variable name 2019-04-08 11:31:34 -04:00
Jose Diaz-Gonzalez
ff35e95924 fix: correct type comment declaration 2019-04-08 11:31:34 -04:00
Jose Diaz-Gonzalez
49e44ce59b fix: correct stickler-ci issues 2019-04-08 11:31:34 -04:00
Jose Diaz-Gonzalez
ab88dbb03d feat: Implement resource:limit and resource:reserve
Also add the install and post-delete hooks
2019-04-08 11:31:34 -04:00
Jose Diaz-Gonzalez
2e895286cf docs: drop ability to process multiple process types at once 2019-04-08 11:31:34 -04:00
Jose Diaz-Gonzalez
5b2d4b3559 feat: add initial documentation for resource management plugin 2019-04-08 11:31:34 -04:00
Jose Diaz-Gonzalez
8ad74d0814 fix: correct buildpack plugin version 2019-04-08 11:31:34 -04:00
Jose Diaz-Gonzalez
9486576add fix: drop nil err reference from log output 2019-04-08 11:31:34 -04:00
Jose Diaz-Gonzalez
2a353a9ca5 Merge pull request #3482 from multikatt/patch-1
rails-database -> railsdatabase
2019-04-05 18:20:29 -04:00
David
2d1f241677 rails-database -> railsdatabase
Naming the database rails-database throws
```Please specify a valid name for the service. Valid characters are: [A-Za-z0-9_]+```
2019-04-05 23:46:36 +02:00
Jose Diaz-Gonzalez
d6f122bfda Merge pull request #3479 from dokku/josegonzalez-patch-1
Turn off logging for nginx validate configuration
2019-03-28 12:30:27 -04:00
Jose Diaz-Gonzalez
54ef6514d5 fix: turn off error logging for validate config
This will allow validation to work if the default logging locations cannot be written to but the configuration is otherwise okay. This will be the case for users with custom nginx configurations that log to other places, such as syslog.
2019-03-26 17:10:32 -04:00
Jose Diaz-Gonzalez
abf7addaa6 Merge pull request #3476 from lazyatom/patch-1
Add chrome plugin to documentation
2019-03-19 14:29:25 -04:00
James Adam
e831b786f0 Add chrome plugin to documentation
Adds a link to the headless chrome plugin to the plugin documentation.
2019-03-19 17:20:21 +00:00
Jose Diaz-Gonzalez
c6074baad5 Merge pull request #3471 from dokku/plugn-builds-its-own-packages
chore: drop plugn package building
2019-03-16 03:49:05 -04:00
Jose Diaz-Gonzalez
7cb0d11b95 chore: drop plugn package building
The dokku/plugn project now builds and releases it's own packages on release creation.

Also upgrade to latest plugn version, 0.3.2
2019-03-16 03:16:28 -04:00
Jose Diaz-Gonzalez
87c77b1aa0 Merge pull request #3470 from dokku/josegonzalez-patch-1
fix: correct the argument for get_release_cmd
2019-03-14 14:26:10 -04:00
Jose Diaz-Gonzalez
7d2f5b84c8 fix: add missing head -n1 call to second build-env test
Otherwise `docker inspect` outputs a "condensed" json output that doesn't parse as well...
2019-03-14 13:44:54 -04:00
Jose Diaz-Gonzalez
8dcbfe5542 fix: correct case where there could be multiple build containers post-build
This happens when we execute several post-release scripts.
2019-03-14 13:12:07 -04:00
Jose Diaz-Gonzalez
f9023402ad fix: correct the argument for get_release_cmd
Closes #3438
2019-03-14 12:00:23 -04:00
Jose Diaz-Gonzalez
c658d60dc2 Merge pull request #3468 from dokku/doc-cleanup
Doc cleanup
2019-03-13 17:50:09 -04:00
Jose Diaz-Gonzalez
c1781c39ca docs: correct header
[ci skip]
2019-03-13 16:55:39 -04:00
Jose Diaz-Gonzalez
5f75b24fb2 docs: correct docker options information output 2019-03-13 16:55:11 -04:00
Jose Diaz-Gonzalez
3db5de1a9e Merge pull request #3466 from dokku/quieter-builds
Quieter builds
2019-03-13 15:00:27 -04:00
Jose Diaz-Gonzalez
520a72078e fix: remove useless cat 2019-03-13 14:12:35 -04:00
Jose Diaz-Gonzalez
ef5a45c7cb feat: add DOKKU_QUIET_OUTPUT=1 to all config_set/config_unset calls
This makes build output a bit more digestable.
2019-03-13 02:05:18 -04:00
Jose Diaz-Gonzalez
c6a1c0dcbf feat: respect --quiet in config.go
When setting environment variables, we should respect a passed `--quiet` flag - and the respective environment variable. This will allow users to have a nicer experience when using the config functions within their own plugins.
2019-03-13 02:05:18 -04:00
Jose Diaz-Gonzalez
c701429a05 chore: quiet down logging around scale declarations 2019-03-13 02:05:18 -04:00
Jose Diaz-Gonzalez
7f1fe3ccfd chore: follow logging pattern from heroku for phase command declarations 2019-03-13 02:05:18 -04:00
Jose Diaz-Gonzalez
6797971016 chore: drop extra echo in app-json method calls 2019-03-13 02:05:18 -04:00
Jose Diaz-Gonzalez
dc6abe691a Merge pull request #3467 from dokku/upgrade-golang
feat: update golang in use for binary building
2019-03-13 02:04:45 -04:00
Jose Diaz-Gonzalez
7333a630a1 feat: update golang in use for binary building
This change is not necessary other than for good house-keeping. All dokku-related binaries should _also_ be built with the latest golang.
2019-03-13 00:28:55 -04:00
Jose Diaz-Gonzalez
2edbc3fe39 Merge pull request #3465 from dokku/vm-enhancements
Vagrant VM Enhancements
2019-03-12 21:27:58 -04:00
Jose Diaz-Gonzalez
50357eb682 feat: add support for new vmware_desktop provider 2019-03-12 21:26:39 -04:00
Jose Diaz-Gonzalez
1203146ab9 feat: switch vagrant vm to ubuntu 18.04 2019-03-12 21:26:07 -04:00
Jose Diaz-Gonzalez
fc8637a0f5 Merge pull request #3464 from dokku/josegonzalez-patch-1
Upgrade to go-procfile-util version 0.6.0
2019-03-12 16:56:08 -04:00
Jose Diaz-Gonzalez
f3ace60a98 feat: upgrade to go-procfile-util version 0.6.0
Refs #3428
2019-03-12 16:23:33 -04:00
Jose Diaz-Gonzalez
8fe87358e1 Merge pull request #3463 from dokku/version-command
Implement version flags
2019-03-11 22:46:26 -04:00
Jose Diaz-Gonzalez
297a26aa20 feat: implement version flags
This moves the version command to the dokku binary, and also implements both -v and --version flags on the binary.
2019-03-11 21:50:05 -04:00
Jose Diaz-Gonzalez
2da16265cb Merge pull request #3462 from dokku/upgrade-procfile-util
feat: upgrade procfile-util
2019-03-11 21:13:28 -04:00
Jose Diaz-Gonzalez
25a65add4a Merge pull request #3449 from dokku/3263-copy-from-image
Only override the `WORKDIR` in copy_from_image if the image is `gliderlabs/herokuish` based
2019-03-11 21:01:21 -04:00
Jose Diaz-Gonzalez
a721abd972 feat: upgrade procfile-util
The new version properly handles trailing inline comments.
2019-03-11 20:09:53 -04:00
Jose Diaz-Gonzalez
acbe8fa805 fix: Only override the WORKDIR in copy_from_image if the image is gliderlabs/herokuish based
Rather than always assuming a missing `WORKDIR` means herokuish, we instead inspect the image to verify that it is. If it is, then and _only_ then do we set WORKDIR. Otherwise, we respect the decision of `docker cp` to execute from within the last known `WORKDIR` context, which is inherited at the image level, not image metadata level.

Additionally, speed up `is_image_herokuish_based` by inspecting the environment variables on the image. When there is a "USER=herokuishuser", we can more or less safely assume it is an image that Dokku built, and is therefore a herokuish image. While possible, it would be very strange if a non-herokuish image had this environment variable set, so it is a relatively safe change.
2019-03-11 20:09:13 -04:00
Jose Diaz-Gonzalez
57a1c68aba fix: correct shfmt 2019-03-11 19:12:57 -04:00
Jose Diaz-Gonzalez
83104bf919 Merge pull request #3461 from dokku/plugin-releasing
feat: allow skipping aws releases for plugins
2019-03-11 18:46:40 -04:00
Jose Diaz-Gonzalez
7574c407fa feat: allow skipping aws releases for plugins
If there is no configured s3 bucket/path, avoid attempting to push when `true` is passed as the second argument.
2019-03-11 18:30:03 -04:00
Jose Diaz-Gonzalez
f67a38864c Merge pull request #3459 from dokku/upgrade-herokuish
feat: upgrade to herokuish:0.4.9
2019-03-07 17:32:47 -05:00
Jose Diaz-Gonzalez
f632795904 feat: upgrade to herokuish:0.4.9 2019-03-07 17:29:42 -05:00
Jose Diaz-Gonzalez
0cf43b8623 Merge pull request #3413 from dokku/3256-buildpack-management
Implement buildpacks plugin
2019-03-05 22:22:56 -05:00
Jose Diaz-Gonzalez
d3d426a8d9 tests: add functional tests for buildpacks plugin 2019-03-05 21:41:23 -05:00
Jose Diaz-Gonzalez
6cae92e1f1 fix: add missing comments to exported functions 2019-03-05 21:41:23 -05:00
Jose Diaz-Gonzalez
3670d7efcd fix: correct fmt.Errorf violations 2019-03-05 21:41:23 -05:00
Jose Diaz-Gonzalez
887c1d4254 feat: implement buildpacks plugin
This will allow users to specify buildpacks outside of a git repository.

Note that this does not override any specified `BUILDPACK_URL`.

Closes #3256
2019-03-05 21:41:23 -05:00
Jose Diaz-Gonzalez
a56ae22614 refactor: switch to path.Join
This is the _correct_ way to join paths in golang
2019-03-05 21:34:26 -05:00
Jose Diaz-Gonzalez
884c45de0c chore: move print calls together 2019-03-05 21:34:26 -05:00
Jose Diaz-Gonzalez
8d6a1773a3 fix: correct the DOKKU_QUIET_OUTPUT env var check for golang log methods 2019-03-05 21:34:26 -05:00
Jose Diaz-Gonzalez
6f1e964c9f refactor: ensure all property-handling functions return an error
This will allow upstream functions to handle errors in the most appropriate manner
2019-03-05 21:34:26 -05:00
Jose Diaz-Gonzalez
4db7ebd743 feat: add helper method for ensuring a property file exists 2019-03-05 21:34:26 -05:00
Jose Diaz-Gonzalez
83f5e380d4 refactor: add helper method for getting the path of a property 2019-03-05 21:34:26 -05:00
Jose Diaz-Gonzalez
34f5eaeaa2 chore: rename helper method 2019-03-05 21:34:26 -05:00
Jose Diaz-Gonzalez
726f96089c Release 0.14.6
# History

## 0.14.6

Install/update via the bootstrap script:

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

### Bug Fixes

- #3448: @josegonzalez Remove https port mappings from new app during clone
- #3434: @tamanobi Ignore cache directories when clone

### New Features

- #3447: @josegonzalez Update herokuish to 0.4.8

### Documentation

- #3420: @baikunz Add reference to external post-deploy-script plugin
- #3453: @jayjun Fix Deployment guides style
- #3445: @zuccs Fix typo in deployment tasks documentation
- #3441: @josegonzalez Update issue template information
- #3436: @jayjun Fix Getting Started guides style
- #3425: @jayjun Add warning about PORT variable in deploy tutorial

### Tests

- #3435: @josegonzalez Fix lint issues across codebase
2019-02-19 11:50:20 -05:00
Jose Diaz-Gonzalez
6428b57775 Merge pull request #3420 from baikunz/patch-1
Add reference to external post-deploy-script plugin
2019-02-19 11:18:57 -05:00
Jose Diaz-Gonzalez
e3f0e09a4a Merge pull request #3453 from jayjun/deployment
Fix Deployment guides style
2019-02-19 10:41:42 -05:00
Jay Jun
e839c29916 Fix Deployment guides style 2019-02-19 20:01:24 +08:00
Jose Diaz-Gonzalez
42b6876f2c Merge pull request #3448 from dokku/3446-ssl-clone
Remove https port mappings from new app during clone
2019-02-15 03:59:47 -05:00
Jose Diaz-Gonzalez
d439518f13 fix: Remove https port mappings from new app during clone
Closes #3446
2019-02-15 03:15:14 -05:00
Jose Diaz-Gonzalez
f4be5adae0 Merge pull request #3447 from dokku/update-herokuish
Update herokuish to 0.4.8
2019-02-15 01:36:59 -05:00
Jose Diaz-Gonzalez
4b77a97148 feat: upgrade herokuish to 0.4.8 2019-02-15 01:36:24 -05:00
Jose Diaz-Gonzalez
dd92e9db1a feat: upgrade herokuish to 0.4.7 2019-02-15 01:36:06 -05:00
Jose Diaz-Gonzalez
ead82cdcf3 Merge pull request #3434 from tamanobi/fix/ignore-cache-directories-when-clone
ignore cache directories when clone
2019-02-15 01:24:05 -05:00
Jose Diaz-Gonzalez
9cce80d679 Merge pull request #3445 from zuccs/patch-1
Fix typo in deployment tasks documentation
2019-02-15 00:08:53 -05:00
zuccs
f43451de36 Fix typo 2019-02-15 16:05:24 +11:00
Jose Diaz-Gonzalez
5d1cd5ed47 Merge pull request #3441 from dokku/josegonzalez-patch-1
docs: Update issue template information
2019-02-11 11:10:37 -05:00
Jose Diaz-Gonzalez
de948e4d2b docs: Update issue template information
Remove duplicate information that is outdated.

[ci skip]
2019-02-11 11:10:18 -05:00
Kohki YAMAGIWA
db69f0cafa Merge branch 'master' into fix/ignore-cache-directories-when-clone 2019-02-10 21:59:01 +09:00
Jose Diaz-Gonzalez
c97ab482fb Merge pull request #3436 from jayjun/getting-started
Fix Getting Started guides style
2019-02-03 15:29:05 -05:00
Kohki YAMAGIWA
17ec77073a Merge branch 'master' into fix/ignore-cache-directories-when-clone 2019-02-04 00:30:58 +09:00
Tan Jay Jun
0967f3f7bf Fix Getting Started guides style 2019-02-03 16:15:42 +08:00
Jose Diaz-Gonzalez
86351724ff Merge pull request #3435 from dokku/lint-updates
Lint updates
2019-02-02 14:22:12 -05:00
Jose Diaz-Gonzalez
a97b3d1ed3 fix: exit with a status code between 1 and 255
Fixes SC2242
2019-02-02 13:52:42 -05:00
Jose Diaz-Gonzalez
c7b71b5d92 lint: remove unnecessary negation
Also use double-brackets where possible.

Fixes SC2236
2019-02-02 13:52:18 -05:00
Jose Diaz-Gonzalez
67ae374e60 lint: remove whitespaces before redirect 2019-02-02 13:49:24 -05:00
Jose Diaz-Gonzalez
b72deb2b2a Merge pull request #3425 from jayjun/port
Add warning about PORT variable in deploy tutorial
2019-01-29 12:57:24 -05:00
Jose Diaz-Gonzalez
c368cc0855 docs: must to should
Must is a bit too strong - its possible that the app responds to web requests, just on a different port...

[ci skip]
2019-01-29 12:57:07 -05:00
Tan Jay Jun
33800e226a Add warning about PORT variable in deploy tutorial 2019-01-30 01:47:27 +08:00
dorian ALKOUM
4539535c8c Reference Post Deploy Script plugin 2019-01-24 19:00:50 +01:00
Jose Diaz-Gonzalez
76bdac9747 Release 0.14.5
# History

## 0.14.5

Install/update via the bootstrap script:

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

### Bug Fixes

- #3419: @jayjun Fix Dokku installer checkbox for WebKit and Edge browsers
2019-01-24 10:32:52 -05:00
Jose Diaz-Gonzalez
d6b909adf4 Merge pull request #3419 from jayjun/checkbox
Fix Dokku installer checkbox for WebKit and Edge browsers
2019-01-24 10:07:32 -05:00
Tan Jay Jun
39a0e89a24 Fix Dokku installer checkbox for WebKit and Edge browsers 2019-01-24 22:54:29 +08:00
tamanobi
d35042066b return exit-status:0 when dokku clone 2019-01-24 22:07:15 +09:00
Jose Diaz-Gonzalez
9a690ba042 Release 0.14.4
# History

## 0.14.4

Install/update via the bootstrap script:

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

### Bug Fixes

- #3415: @josegonzalez Drop universe installation in debian
2019-01-22 13:31:40 -05:00
Jose Diaz-Gonzalez
11f90a1112 Merge pull request #3415 from dokku/josegonzalez-patch-1
Drop universe installation in debian
2019-01-22 13:31:16 -05:00
Jose Diaz-Gonzalez
954684f5b5 fix: drop universe installation in debian
This doesn't exist for debian, and is fine to skip.

[ci skip]
2019-01-22 13:30:59 -05:00
Jose Diaz-Gonzalez
39c0c316fc Release 0.14.3
# History

## 0.14.3

Install/update via the bootstrap script:

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

### Bug Fixes

- #3412: @josegonzalez Ensure official golang plugins have correct help output
- #3411: @josegonzalez Properly handle the nginx installation dependency
- #3406: @josegonzalez Add missing semicolons to app-json script
- #3394: @josegonzalez Quiet ps:retire where possible

### New Features

- #3410: @josegonzalez Make installs quieter
- #3409: @josegonzalez Build golang binaries with higher concurrency
- #3408: @josegonzalez Disable container restarts for stopped containers
- #3389: @heyarne Remove jQuery from web-based installer

### Documentation

- #3407: @tkrugg Fix typo on domain docs

### Tests

- #3414: @josegonzalez Test and release changes
2019-01-22 01:08:04 -05:00
Jose Diaz-Gonzalez
3285cacc97 Merge pull request #3414 from dokku/dokku-release-changes
Test and release changes
2019-01-21 22:32:03 -05:00
Jose Diaz-Gonzalez
7ac9c33112 tests: split by classname instead of filename 2019-01-21 21:57:03 -05:00
Jose Diaz-Gonzalez
f5c45b99ad refactor: use a base image when running the build process in CI 2019-01-21 21:53:35 -05:00
Jose Diaz-Gonzalez
af35de509b fix: drop extra release call in test run 2019-01-21 21:40:29 -05:00
Jose Diaz-Gonzalez
0798841f83 chore: standardize on a single naming scheme for releases
- "build" Dockerfiles should start with build-
- "release" scripts should have the name of the thing they are building appended
2019-01-21 21:40:10 -05:00
Jose Diaz-Gonzalez
8d577b275e Merge pull request #3412 from dokku/full-golang-help
Ensure official golang plugins have correct help output
2019-01-21 02:16:06 -05:00
Jose Diaz-Gonzalez
35e04d58fe Merge pull request #3411 from dokku/nginx-dependencies
Properly handle the nginx installation dependency
2019-01-21 02:15:53 -05:00
Jose Diaz-Gonzalez
af8718cebe fix: ensure official golang plugins have correct help output
Previously, golang plugins would omit subcommands for 'dokku help --all', meaning they could not be introspected upon by outside tooling.
2019-01-20 22:50:48 -05:00
Jose Diaz-Gonzalez
b7e5bbed08 Merge pull request #3410 from dokku/quieter-install
Make installs quieter
2019-01-20 22:43:09 -05:00
Jose Diaz-Gonzalez
6b0cdae3d3 fix: properly handle the nginx installation dependency
- ensure nginx is always installed
- install nginx in the same way for apt-using distros
- do not install software-properties-common or python-software-properties if not needed
2019-01-20 20:57:40 -05:00
Jose Diaz-Gonzalez
e423676b11 feat: make installs quieter
This removes output from commands that otherwise should be silent - such as when not needing to migrate data.
2019-01-20 20:54:00 -05:00
Jose Diaz-Gonzalez
1757bc0207 Merge pull request #3409 from dokku/faster-build
Build golang binaries with higher concurrency
2019-01-20 18:58:12 -05:00
Jose Diaz-Gonzalez
e7fb6007d3 feat: build golang binaries with higher concurrency
This should allow us to shave off a few minutes of build time, both locally and on CI
2019-01-20 18:12:08 -05:00
Jose Diaz-Gonzalez
2e446fc3be Merge pull request #3408 from dokku/container-restart-no
Disable container restarts for stopped containers
2019-01-20 16:24:35 -05:00
Jose Diaz-Gonzalez
173b87928c feat: disable container restarts for stopped containers
This should avoid the case where the docker daemon starts the containers upon reboot.
2019-01-20 15:19:54 -05:00
Jose Diaz-Gonzalez
1edb734df9 Merge pull request #3406 from dokku/3404-missing-semicolon
Add missing semicolons to app-json script
2019-01-20 15:05:43 -05:00
Jose Diaz-Gonzalez
6da8a54f86 Merge pull request #3407 from tkrugg/patch-1
typo
2019-01-20 14:29:41 -05:00
Youcef Mammar
eea863e556 typo 2019-01-20 18:35:02 +01:00
Jose Diaz-Gonzalez
db0df4e4ca Merge pull request #3389 from rbb-data/feature/remove-jquery
Remove jQuery from web-based installer
2019-01-20 11:28:33 -05:00
Jose Diaz-Gonzalez
b9b4693e20 fix: add missing semicolons 2019-01-20 11:21:53 -05:00
Arne Schlüter
699d205060 Remove external dependencies and warnings from setup page
* Remove jQuery dependency
* Add charset declaration to installer page
2019-01-18 13:15:19 +01:00
Jose Diaz-Gonzalez
5579fe0006 Merge pull request #3394 from dokku/retire-fixes
Quiet ps:retire where possible
2019-01-12 22:54:06 -05:00
Jose Diaz-Gonzalez
0375bc3e97 fix: quiet ps:retire where possible
Log output for ps:retire was previously a bit too verbose because we weren't handling the following edge-cases.

- if a container doesn't exist, remove it from the dead container list
- ensure a restarting container is properly killed
- only attempt to stop/kill if the state is not dead or exited
- do not attempt to do anything if the container doesn't exist
- correct check on running state
2019-01-12 22:49:23 -05:00
Jose Diaz-Gonzalez
49af2d8062 Release 0.14.2
# History

## 0.14.2

Install/update via the bootstrap script:

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

### Bug Fixes

- #3395: @josegonzalez Correct early exit 1 in apps:report

### Documentation

- #3393: @jayjun Fix capitalization and formatting in installation guides
- #3392: @jayjun Fix wrong PostgreSQL environment variable in guide
- #3391: @josegonzalez Update all gpgkey paths to the new url
2019-01-12 20:55:58 -05:00
Jose Diaz-Gonzalez
745f680899 Merge pull request #3393 from jayjun/install
Fix capitalization and formatting in installation guides
2019-01-12 19:50:56 -05:00
Jose Diaz-Gonzalez
e46e2f01f1 Merge pull request #3395 from dokku/log-exit
Correct early exit 1 in apps:report
2019-01-11 11:22:28 -05:00
Jose Diaz-Gonzalez
12b82b67e7 fix: correct early exit 1 in apps:report
Previously, if running 'dokku report --all', the early exit 1 in apps:report would cause the entire process to bail, resulting in a partial report. Instead, we exit 0, allowing plugn to continue.

Technically a non-deployed app is not an error case at this position.
2019-01-11 11:21:56 -05:00
Tan Jay Jun
a418cf6a25 Fix capitalization and formatting in installation guides 2019-01-11 19:55:46 +08:00
Jose Diaz-Gonzalez
01e6f378bd Merge pull request #3392 from jayjun/evar
Fix wrong PostgreSQL environment variable in guide
2019-01-11 06:36:51 -05:00
Tan Jay Jun
2e11804ec9 Fix wrong PostgreSQL environment variable in guide 2019-01-11 18:33:15 +08:00
Jose Diaz-Gonzalez
efca23c22e Merge pull request #3391 from dokku/3390-updated-gpgkey-path
Update all gpgkey paths to the new url
2019-01-10 12:18:30 -05:00
Jose Diaz-Gonzalez
6772c001dd docs: update all gpgkey paths to the new url
PackageCloud automatically switched our key earlier this week but some docs were still referencing the old path.

Closes #3390
2019-01-10 12:18:01 -05:00
Jose Diaz-Gonzalez
058646c9f9 Release 0.14.1
# History

## 0.14.1

Install/update via the bootstrap script:

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

### Bug Fixes

- #3386: @josegonzalez Ensure we can deploy code when there is no pre or post-deploy script defined
2019-01-09 10:20:10 -05:00
Jose Diaz-Gonzalez
32896debcf Merge pull request #3386 from dokku/3385-predeploy-fix
Ensure we can deploy code when there is no pre or post-deploy script defined
2019-01-09 09:01:58 -05:00
Jose Diaz-Gonzalez
4ae280528e fix: ensure we can deploy code when there is no pre or post-deploy script defined
Closes #3385
2019-01-09 07:46:04 -05:00
Jose Diaz-Gonzalez
924287c04f Release 0.14.0
# History

## 0.14.0

Install/update via the bootstrap script:

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

### Bug Fixes

- #3384: @josegonzalez fix: use updated gpg key for apt repository
- #3382: @josegonzalez Set cleanup to global when no application is specified
- #3350: @josegonzalez Do not build the proxy config when there are no app listeners
- #3366: @josegonzalez Add post-app-clone-setup to network clean make target
- #3349: @josegonzalez Ensure apps are cleanly cloned
- #3356: @josegonzalez Move storage directory into DOKKU_LIB_ROOT
- #3341: @baikunz Select only default dokku network IP
- #3348: @josegonzalez Use correct name for packagecloud token when running CI commands
- #3339: @josegonzalez Properly check args when calling cleanup globally
- #3344: @josegonzalez Allow running dokku report without needing an interactive shell

### New Features

- #3381: @josegonzalez Add support for the Procfile release command
- #3380: @josegonzalez Install stable docker when using bootstrap script
- #3378: @josegonzalez Make admin setup UI look nicer
- #3369: @josegonzalez Pull invalid nginx configuration when the nginx configs fail to validate
- #3371: @josegonzalez Add tests section to changelog
- #3358: @josegonzalez Image tag deploy workflow cleanup
- #3351: @josegonzalez Do not clone URLS and VHOST files to new apps
- #3357: @josegonzalez Add support for building arbitrary releases
- #3354: @josegonzalez Drop default dhparam key size to 2048
- #3347: @josegonzalez Upgrade herokuish
- #3352: @josegonzalez Increase security of default SSL setup
- #3353: @josegonzalez Normalize tests
- #3345: @josegonzalez Allow triggering the full report for all apps via --all flag
- #3346: @josegonzalez Always overwrite the dokku.conf file for nginx

### Documentation

- #3377: @josegonzalez Remove team member section on homepage in favor of sponsor section
- #3376: @josegonzalez Switch from rawgit to jsdelivr
- #3365: @josegonzalez Remove extra tags:create call from docs

### Tests

- #3379: @josegonzalez Run mvdan/shfmt on test runs
- #3370: @josegonzalez Add junit support to shellcheck output
- #3308: @josegonzalez Add timing info to test runs on CircleCI
- #3367: @josegonzalez Run tests from built artifact
- #3368: @josegonzalez Balance circleci tests
- #3363: @josegonzalez Add a wrapper for invoking a single test
- #3362: @josegonzalez Allow tests to be run from any directory
- #3360: @josegonzalez Switch to bats-core
- #3361: @josegonzalez Do not generate dhparam for tests

### Other

- #3279: @fruitl00p Make sure the universe repo is loaded into APT
2019-01-08 08:02:13 -05:00
Jose Diaz-Gonzalez
4b4119e52b Merge pull request #3381 from dokku/3136-release-support
Add support for the Procfile release command
2019-01-08 08:01:02 -05:00
Jose Diaz-Gonzalez
ca621129e2 Merge pull request #3384 from dokku/3383-fix-gpg-key
fix: use updated gpg key for apt repository
2019-01-08 07:57:35 -05:00
Jose Diaz-Gonzalez
0d8d43d4dd fix: use updated gpg key for apt repository
Packagecloud recently updated legacy repositories to sign with a repository-specific gpg key.

Closes #3383
2019-01-08 07:56:58 -05:00
Jose Diaz-Gonzalez
74e1cbd27d Merge pull request #3382 from dokku/fix-global-cleanup
Set cleanup to global when no application is specified
2019-01-07 16:11:02 -05:00
Jose Diaz-Gonzalez
9d45b0e2fb fix: set cleanup to global when no application is specified 2019-01-07 16:10:35 -05:00
Jose Diaz-Gonzalez
a5a66dd916 feat: add support for the Procfile release command
Closes #3136
2019-01-07 07:45:02 -05:00
Jose Diaz-Gonzalez
14a2699ac4 feat: make the app-json script execution quieter 2019-01-07 07:14:05 -05:00
Jose Diaz-Gonzalez
dfefdab67c refactor: simplify script execution
The previous method had a few too many nested if statements, making it difficult to track when and where the function stopped executing.
2019-01-07 07:04:02 -05:00
Jose Diaz-Gonzalez
952db832d9 refactor: move app.json script execution into it's own plugin
Rather than have this live in 00_dokku-standard, move it out so that it may start to support various other features around the app.json manifest.
2019-01-07 07:02:07 -05:00
Jose Diaz-Gonzalez
1a36c77c46 Merge pull request #3380 from dokku/3269-stable-docker
Install stable docker when using bootstrap script
2019-01-07 06:41:14 -05:00
Jose Diaz-Gonzalez
5c0b350cff feat: install stable docker when using bootstrap script
This script previously ran through the docker installation process with the edge channel on each run. Instead, we only run the docker installation if docker is not available. In addition, we force set the channel to stable, ensuring the script installs the correct channel for stable docker installations.

Closes #3269
2019-01-07 06:40:03 -05:00
Jose Diaz-Gonzalez
093fafe0b7 Merge pull request #3379 from dokku/shfmt
Run mvdan/shfmt on test runs
2019-01-07 02:05:16 -05:00
Jose Diaz-Gonzalez
86795ddacc tests: run mvdan/shfmt on test runs
While I do not agree with _every_ style change, this will force Dokku to have consistent formatting across all shell scripts, which is arguably a Good Thing™.

The command used to reprocess everything is:

```shell
shfmt -l -bn -ci -i 2 -w .
```
2019-01-07 01:25:55 -05:00
Jose Diaz-Gonzalez
fb7c73a7e3 fix: properly setup the tmp files necessary for the lint make target 2019-01-07 00:17:38 -05:00
Jose Diaz-Gonzalez
360cca08ef Merge pull request #3378 from dokku/setup-revamp-v1
Make admin setup UI look nicer
2019-01-06 22:41:07 -05:00
Jose Diaz-Gonzalez
2dd9ff3ac8 refactor: make admin setup UI look a bit nicer
The initial admin setup UI is a bit of a hack, but could also be a bit frustrating to new users as the settings are unclear. Rather than throw them to the wolves, include some useful information to allow them to make good decisions when setting up Dokku.

- Upgrade to latest bootstramp and latest jquery 1.x release
- Add a warning for people who might miss this setup page
- Add placeholder text to both the ssh key area and the hostname
- Add descriptions to all form fields to further explain the consequences of a particular field
- Add links where necessary for users who wish to explore how to change settings in the future
- Make the "result" message on submission red or green depending on the success or failure of the submission.
- Wait 3 seconds before redirecting on success
2019-01-06 22:38:49 -05:00
Jose Diaz-Gonzalez
f8766708c7 feat: add support for alternate ssh authorized_keys locations
On Ubuntu within AWS environments, the default user is the `ubuntu` user, and this is where the ssh key should be pulled from. CentOS has a tendency to use `ec2-user`.

On all other environments, the `root` user is typically the only user provisioned.

Closes #3372
2019-01-06 22:26:54 -05:00
Jose Diaz-Gonzalez
fba44b63a5 Merge pull request #3279 from fruitl00p/patch-3
Make sure the universe repo is loaded into APT
2019-01-06 20:49:46 -05:00
Jose Diaz-Gonzalez
51add20a53 fix: ensure software-properties-common is installed
It is necessary for add-apt-repository
2019-01-06 20:49:08 -05:00
Jose Diaz-Gonzalez
85bf4dd5cd tests: add support to junit output for marking what tests were excluded and all files that were processed
[ci skip]
2019-01-06 20:27:48 -05:00
Jose Diaz-Gonzalez
57766597ae Merge pull request #3370 from dokku/shellcheck-junit-output
Add junit support to shellcheck output
2019-01-05 23:27:17 -05:00
Jose Diaz-Gonzalez
f33784cbc9 fix: use correct encoding 2019-01-05 20:42:42 -05:00
Jose Diaz-Gonzalez
5f3b4640e8 refactor: use a python script to translate from shellcheck output to junit
The checkstyle xslt wasn't quite good enough, resulting in missing/malformatted output. Note that this now excludes _passing_ tests, which also isn't quite right, but a fair bit closer to the xsd here: https://github.com/windyroad/JUnit-Schema
2019-01-05 19:56:23 -05:00
Jose Diaz-Gonzalez
d67f719fe4 chore: lint python 2019-01-05 19:46:08 -05:00
Jose Diaz-Gonzalez
c4f1ef26c0 tests: move all shellcheck excludes into a single file
This will allow us to add/remove shellcheck excludes more easily.
2019-01-05 07:43:20 -05:00
Jose Diaz-Gonzalez
73eabec039 feat: add junit support to shellcheck output
This requires us to run shellcheck twice, as the first pass doesn't output anything human readable - both because of the redirect and because shellcheck doesn't directly support it - which increases lint runtime but allows us to have both the junit information and the normal human-readable output.

Note that the checkstyle output does not contain timing info.
2019-01-05 06:31:14 -05:00
Jose Diaz-Gonzalez
287a3c3542 Merge pull request #3350 from dokku/3262-check-web-listeners
Do not build the proxy config when there are no app listeners
2019-01-05 06:30:14 -05:00
Jose Diaz-Gonzalez
afacf32ba7 Merge pull request #3377 from dokku/3374-sponsor-dokku
Remove team member section on homepage in favor of sponsor section
2019-01-05 06:23:58 -05:00
Jose Diaz-Gonzalez
12d3f112e3 docs: Remove team member section on homepage in favor of sponsor section
This removes outdated information on the main page in favor of the "official" ways of sponsoring Dokku.

Also update the contributing note to mention where to post

Are you a crypto-user and want other options? Feel free to send bitcoin to 3MY2HxMVsxuWmhQkgYBsE3iZFjJgkjNPyQ

Closes #3374
2019-01-05 06:22:03 -05:00
Jose Diaz-Gonzalez
74b36bd66d Merge pull request #3376 from dokku/3284-bye-rawgit
Switch from rawgit to jsdelivr
2019-01-05 04:10:31 -05:00
Jose Diaz-Gonzalez
bb8d0324b5 docs: Switch from rawgit to jsdelivr
Rawgit is no longer being offered due to spammers, but jsdelivr has graciously allowed folks to use their cdn to mirror assets from github.

Closes #3284
2019-01-05 04:08:30 -05:00
Jose Diaz-Gonzalez
8b67d36c88 Merge pull request #3369 from dokku/3162-nginx-validate
Pull invalid nginx configuration when the nginx configs fail to validate
2018-12-31 12:40:22 -05:00
Jose Diaz-Gonzalez
0909052816 feat: Pull invalid nginx configuration when the nginx configs fail to validate
- expose an nginx:validate command that can be used to show validation information
- properly reference the invalid nginx config, rather than tell the user that another app's nginx config is invalid when deploying their own app
- allow a user to cleanup bad nginx config files out of band when they are blocking a deploy _without_ requiring knowing where that nginx config is

Note that this may have issues with generated nginx.conf files that depend on other apps or other parts of the nginx config. For now, this is acceptable, though it is something that needs to be field tested.

Closes #3162
2018-12-31 11:57:03 -05:00
Jose Diaz-Gonzalez
2c002177e4 Merge pull request #3371 from dokku/changelog-tests-section
Add tests section to changelog
2018-12-30 18:06:07 -05:00
Jose Diaz-Gonzalez
dbf21d6b8c feat: add tests section to changelog
For changes that are primarily test-related, pull them out into a specific section of the changelog.

[ci skip]
2018-12-30 18:05:48 -05:00
Jose Diaz-Gonzalez
7ad493c263 docs: do not reference commands as subcommands 2018-12-30 06:31:40 -05:00
Jose Diaz-Gonzalez
d1d9c57892 chore: add documentation to existing nginx commands 2018-12-30 06:31:18 -05:00
Jose Diaz-Gonzalez
bccfa8a3a0 fix: do not build the proxy config when there are no app listeners
This avoids cases where a developer believes they should be able to provision an nginx proxy but is unable to as no web process is configured to listen for the app.

Also silence stderr when extracting custom nginx templates. If there is stderr, that means we were not able to retrieve the template, but it's of no consequence for debugging.

Closes #3262
2018-12-30 05:11:36 -05:00
Jose Diaz-Gonzalez
68309d5659 Merge pull request #3308 from dokku/timing-info
Timing info in CircleCI
2018-12-29 21:22:18 -05:00
Jose Diaz-Gonzalez
95aeb27f0b feat: add timing info 2018-12-29 21:21:17 -05:00
Jose Diaz-Gonzalez
d2f116f958 Merge pull request #3367 from dokku/tests-from-built-artifact
Run tests from built artifact
2018-12-29 19:53:21 -05:00
Jose Diaz-Gonzalez
c344efdd8d tests: run tests from built artifact
Rather than testing against an install from source, ensure that all tests run from what _would_ be installed on a user's server. This ensures that the build process is sound, regardless of what code changes are implemented.
2018-12-29 18:32:52 -05:00
Jose Diaz-Gonzalez
dece1b52e0 Merge pull request #3368 from dokku/balance-tests
Balance circleci tests
2018-12-29 16:48:13 -05:00
Jose Diaz-Gonzalez
fbab5d2313 tests: balance circleci tests
This will help with test keep test times low
2018-12-29 16:47:52 -05:00
Jose Diaz-Gonzalez
10c56efdf7 Merge pull request #3366 from dokku/fix-network-clean
fix: add post-app-clone-setup to network clean make target
2018-12-29 16:36:03 -05:00
Jose Diaz-Gonzalez
56967ef950 fix: add post-app-clone-setup to network clean make target 2018-12-29 16:35:40 -05:00
Jose Diaz-Gonzalez
fc5f0c6685 Merge pull request #3365 from dokku/josegonzalez-patch-1
Remove extra tags:create call from docs
2018-12-29 16:29:58 -05:00
Jose Diaz-Gonzalez
9f05bd0dc3 docs: remove extra tag creation
The `latest` tag is now automatically created on tags:deploy.

[ci skip]
2018-12-29 16:29:30 -05:00
Jose Diaz-Gonzalez
682c6256bc Merge pull request #3363 from dokku/single-test
Add a wrapper for invoking a single test
2018-12-29 16:28:05 -05:00
Jose Diaz-Gonzalez
de89dd7319 Merge pull request #3362 from dokku/relative-test-runs
Allow tests to be run from any directory
2018-12-29 08:25:13 -05:00
Jose Diaz-Gonzalez
480b8ce42e tests: add a wrapper for invoking a single test
This can be used to increase testing velocity.
2018-12-29 08:01:14 -05:00
Jose Diaz-Gonzalez
dec181be6e tests: allow tests to be run from any directory
They previously required being run from repository root.
2018-12-29 07:33:59 -05:00
Jose Diaz-Gonzalez
c20826efa7 Merge pull request #3360 from dokku/upgrade-bats
Switch to bats-core
2018-12-29 07:21:51 -05:00
Jose Diaz-Gonzalez
10b6cd5b83 Merge pull request #3361 from dokku/faster-nginx-install
Do not generate dhparam for tests
2018-12-29 05:38:42 -05:00
Jose Diaz-Gonzalez
7ed7202c67 tests: switch to bats-core
This switches from the older, unmaintained version of bats to one that _is_ maintained. In particular, this fork of the community version - bats-core/bats-core - adds junit timing support, which can be used to track down slow tests.

Once the bats-core/bats-core repository merges junit support, we will switch back to upstream.

Note that tests on OS X will still run using a version that _does not_ have junit timing support.
2018-12-29 05:09:30 -05:00
Jose Diaz-Gonzalez
a54f672b5c tests: do not generate dhparam for tests
Tests will run much quicker if we don't need to regenerate this file. Note that this file _should not_ be used within installs.
2018-12-29 04:22:28 -05:00
Jose Diaz-Gonzalez
03ed58600c Merge pull request #3358 from dokku/3355-tags-deploys
Image tag deploy workflow cleanup
2018-12-28 23:41:01 -05:00
Jose Diaz-Gonzalez
95469f472e docs: add a warning concerning the addition of layers to herokuish-based images that are deployed via the tags plugin 2018-12-28 22:29:55 -05:00
Jose Diaz-Gonzalez
4a3707d36d feat: tag the "latest" image on tags deploy
If the image tag being deployed is not `latest`, we'll retag it as such once the deploy is complete.

Closes #3355
2018-12-28 22:29:53 -05:00
Jose Diaz-Gonzalez
4990a1cdda Merge pull request #3351 from dokku/2740-clone-domains
Do not clone URLS and VHOST files to new apps
2018-12-28 19:29:00 -05:00
Jose Diaz-Gonzalez
df1987e6c4 chore: reformat file to use spaces, not tabs 2018-12-28 19:00:42 -05:00
Jose Diaz-Gonzalez
81542ef089 feat: do not clone URLS and VHOST files to new apps
This follows the heroku pattern of ensuring applications are "freshly" created, routing-wise.

Closes #2740
2018-12-28 18:10:22 -05:00
Jose Diaz-Gonzalez
51dea4a220 fix: do not clone the tls directory
The tls directory stores the ssl certificate for an application, and should not be cloned to any new applications.

Refs #2740
2018-12-28 18:06:09 -05:00
Jose Diaz-Gonzalez
26ad2320cb Merge pull request #3349 from dokku/3249-clean-clones
Ensure apps are cleanly cloned
2018-12-28 18:05:43 -05:00
Jose Diaz-Gonzalez
29bad6b635 Merge pull request #3357 from dokku/build
Add support for building arbitrary releases
2018-12-28 17:57:22 -05:00
Jose Diaz-Gonzalez
39fad96b0d Merge pull request #3356 from dokku/storage-var-lib
Move storage directory into DOKKU_LIB_ROOT
2018-12-28 17:44:10 -05:00
Jose Diaz-Gonzalez
1bcf91895b fix: move storage directory into DOKKU_LIB_ROOT
Should this path change in the future, the storage plugin will respect the variable value.

[ci skip]
2018-12-28 17:43:32 -05:00
Jose Diaz-Gonzalez
fd5aa596d1 feat: add support for building arbitrary releases
This will let us support creating a build release that can be used to test anyone's PR.
2018-12-28 17:42:15 -05:00
Jose Diaz-Gonzalez
c5143cb722 chore: switch to dokku_log_info1_quiet 2018-12-28 17:02:09 -05:00
Jose Diaz-Gonzalez
a9d46ada5d feat: add test for old app during apps:clone --skip-deploy
If you skip a deploy and then destroy the newly created app, the old application should continue functioning like normal.
2018-12-28 17:02:09 -05:00
Jose Diaz-Gonzalez
f3a33e74d7 fix: remove CONTAINER files on app clone
This will ensure we don't accidentally destroy old applications if the new app isn't rebuilt or the rebuild fails.

Closes #3249
2018-12-28 17:02:08 -05:00
Jose Diaz-Gonzalez
cfd8f237df feat: cleanup IP and PORT files on app clone 2018-12-28 17:02:06 -05:00
Jose Diaz-Gonzalez
34d248a28c fix: remove old nginx.conf from a new app on clone 2018-12-27 21:31:57 -05:00
Jose Diaz-Gonzalez
0498a707c8 fix: Add a trigger to allow plugins to cleanup after a new clone is created 2018-12-27 21:31:57 -05:00
Jose Diaz-Gonzalez
86cc15d285 Merge pull request #3354 from dokku/josegonzalez-patch-1
Drop default dhparam key size to 2048
2018-12-27 21:21:41 -05:00
Jose Diaz-Gonzalez
f25f45b67e fix: drop dhparam key size to 2048
4096 takes so long on a very fast machine - 32 core, 64 gb droplet - that most users will begin to believe that it will never complete.
2018-12-27 21:21:06 -05:00
Jose Diaz-Gonzalez
a7c5e74c91 Merge pull request #3341 from baikunz/single-ipadress
Select only default dokku network IP
2018-12-27 19:37:49 -05:00
dorian
47462fcb6f WIP add tests 2018-12-27 23:32:28 +01:00
Jose Diaz-Gonzalez
077f5c1281 Merge pull request #3347 from dokku/upgrade-herokuish
Upgrade herokuish
2018-12-27 15:11:29 -05:00
Jose Diaz-Gonzalez
54990ebf83 Merge pull request #3352 from dokku/3343-ssl-enhancements
Increase security of default SSL setup
2018-12-27 15:10:04 -05:00
Jose Diaz-Gonzalez
af742f70c6 Merge pull request #3353 from dokku/normalize-tests
Normalize tests
2018-12-27 15:09:43 -05:00
Jose Diaz-Gonzalez
2fc51bcf53 fix: wrap all output and status variables in quotes
This will ensure newlines are replaced when these variables are output for debugging tests
2018-12-27 09:02:39 -05:00
Jose Diaz-Gonzalez
3656651cb9 refactor: wrap all 'run dokku' calls in /bin/bash calls 2018-12-27 09:02:26 -05:00
Jose Diaz-Gonzalez
a9920e7cf9 Merge pull request #3348 from dokku/packagecloud-token
Use correct name for packagecloud token when running CI commands
2018-12-27 08:35:07 -05:00
Jose Diaz-Gonzalez
ba8037b4bd feat: switch to move secure ssl ciphers
The cipher list is from from https://cipherli.st/ and will remove a few older browsers:

- Android 5.0
- Android 6.0
- Chrome 49 / XP SP3
- Firefox 31.3.0 ESR / Win 7
- Firefox 47 / Win 7  R
- IE 11 / Win Phone 8.1

I _think_ thats an okay drop - dropping Android kinda hurts, but we're far from the only ones dropping them from being served, and our users are free to override these settings on their own servers.

Closes #3343
2018-12-27 06:22:37 -05:00
Jose Diaz-Gonzalez
92ae1b678a feat: increase RSA bit keys to 4096
Refs #3343
2018-12-27 06:21:50 -05:00
Jose Diaz-Gonzalez
fbf19daff8 fix: use correct name for packagecloud token when running CI commands 2018-12-27 04:36:32 -05:00
Jose Diaz-Gonzalez
53d66246d8 feat: upgrade herokuish 2018-12-27 04:34:23 -05:00
Jose Diaz-Gonzalez
90105e3c6a Merge pull request #3339 from dokku/fix-global-cleanup
Properly check args when calling cleanup globally
2018-12-27 04:09:22 -05:00
Jose Diaz-Gonzalez
53ad759da8 Merge pull request #3344 from dokku/non-interactive-report
Allow running dokku report without needing an interactive shell
2018-12-27 04:08:36 -05:00
Jose Diaz-Gonzalez
72f531001e Merge pull request #3345 from dokku/report-all-flag
Allow triggering the full report for all apps via --all flag
2018-12-27 04:08:20 -05:00
Jose Diaz-Gonzalez
f49754de7a Merge pull request #3346 from dokku/overwrite-dokku-nginx-conf
feat: always overwrite the dokku.conf file for nginx
2018-12-27 04:08:02 -05:00
Jose Diaz-Gonzalez
8bc87ee656 feat: always overwrite the dokku.conf file for nginx
This is necessary as sometimes older config is shipped with Dokku, meaning that security directives - amongst others - are not properly updated.

Refs #3342
2018-12-26 23:05:01 -05:00
Jose Diaz-Gonzalez
e838fe7b96 feat: allow triggering the full report for all apps via --all flag 2018-12-26 23:03:00 -05:00
Jose Diaz-Gonzalez
a688a23d1a fix: Allow running dokku report without needing an interactive shell 2018-12-26 23:00:36 -05:00
dorian
ccfaeb0e36 Select only default dokku network IP 2018-12-23 20:54:20 +01:00
Jose Diaz-Gonzalez
f3c0c70b22 fix: properly check args when calling cleanup globally 2018-12-18 02:30:11 -05:00
Jose Diaz-Gonzalez
f5bb99c145 Release 0.13.4
# History

## 0.13.4

Install/update via the bootstrap script:

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

### Bug Fixes

- #3337: @josegonzalez Use correct container id variable for killing containers

### New Features

- #3338: @josegonzalez Redirect ps:retire output to a log file
2018-12-17 17:29:47 -05:00
Jose Diaz-Gonzalez
f61fcbc3b5 Merge pull request #3338 from dokku/redirect-retire-output
Redirect ps:retire output to a log file
2018-12-17 17:28:04 -05:00
Jose Diaz-Gonzalez
73fb626618 feat: Redirect ps:retire output to a log file
This will allow systems to properly monitor whether retiring old containers works.

Note that the file will be logrotated by the 20_events logrotate config.
2018-12-17 17:27:42 -05:00
Jose Diaz-Gonzalez
7a81f89442 Merge pull request #3337 from dokku/fix-cid
Use correct container id variable for killing containers
2018-12-17 17:26:09 -05:00
Jose Diaz-Gonzalez
ba157867c1 fix: Use correct container id variable for killing containers
The first pass at stop/kill would fail as the variable was incorrect.
2018-12-17 17:25:43 -05:00
Jose Diaz-Gonzalez
4f1cd2d30c Release 0.13.3
# History

## 0.13.3

Install/update via the bootstrap script:

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

### Bug Fixes

- #3330: @josegonzalez Ensure chowned properties always have a user and group set

### New Features

- #3334: @josegonzalez refactor: run every 5 minutes instead of 2
2018-12-12 16:05:32 -05:00
Jose Diaz-Gonzalez
803b55c6c2 Merge pull request #3330 from dokku/ensure-permissions
Ensure chowned properties always have a user and group set
2018-12-12 14:08:33 -06:00
Jose Diaz-Gonzalez
d90e7b68dc Merge pull request #3334 from dokku/josegonzalez-patch-1
refactor: run every 5 minutes instead of 2
2018-12-12 12:27:38 -06:00
Jose Diaz-Gonzalez
929f503fa3 refactor: run every 5 minutes instead of 2
2 is a bit agressive, but 5 will ensure there are no runs that coincide with each other.
2018-12-12 13:27:11 -05:00
Jose Diaz-Gonzalez
615119260d fix: ensure chowned properties always have a user and group set
Depending on the execution path, the variables may not be set at the top-level.

Closes #3328
2018-12-12 02:55:38 -05:00
Jose Diaz-Gonzalez
2f2136af09 Release 0.13.2
# History

## 0.13.2

Install/update via the bootstrap script:

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

### Bug Fixes

- #3329: @josegonzalez Avoid parsing missing file when retiring containers
- #3325: @wcalandro Add "--global" to dokku cleanup on dokku update

### Documentation

- #3326: @josegonzalez Add note to release on how to upgrade via the bootstrap script
2018-12-12 01:21:07 -05:00
Jose Diaz-Gonzalez
634a399748 Merge pull request #3329 from dokku/guard-missing-file
Avoid parsing missing file when retiring containers
2018-12-12 00:16:59 -06:00
Jose Diaz-Gonzalez
325e686b16 fix: avoid parsing missing file when retiring containers 2018-12-12 00:34:42 -05:00
Jose Diaz-Gonzalez
d702fae491 Merge pull request #3326 from dokku/release-update-note
Add note to release on how to upgrade via the bootstrap script
2018-12-05 01:27:23 -05:00
Jose Diaz-Gonzalez
eaaa73e642 docs: add note to release on how to upgrade via the bootstrap script 2018-12-05 01:26:13 -05:00
Jose Diaz-Gonzalez
aa0f7ccfa7 Merge pull request #3325 from wcalandro/wcalandro-patch-1
Add "--global" to dokku cleanup on dokku update
2018-12-05 01:20:39 -05:00
Wyatt Calandro
b1254b3edc Merge branch 'master' into wcalandro-patch-1 2018-12-04 22:27:59 -07:00
Wyatt Calandro
887633a3a3 Add "--global" to dokku cleanup on dokku update
This fixes the error "FAILED: Please specify an app or --global" on completion of dokku-update
2018-12-04 22:22:27 -07:00
Jose Diaz-Gonzalez
e2d7f7ea35 Release 0.13.1
# History

## 0.13.1

Install/update via the bootstrap script:

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

### Bug Fixes

- #3324: @josegonzalez Add missing source of config functions
2018-12-04 16:18:02 -05:00
Jose Diaz-Gonzalez
513bc74c55 Merge pull request #3324 from dokku/josegonzalez-patch-1
Add missing source of config functions
2018-12-04 16:14:17 -05:00
Jose Diaz-Gonzalez
5b9eff6114 fix: add missing source of config functions
Closes dokku/dokku#3323
2018-12-04 16:13:47 -05:00
Jose Diaz-Gonzalez
49a9d84342 Release 0.13.0
# History

## 0.13.0

### Bug Fixes

- #3312: @josegonzalez fix: keep track of failed containers regardless of docker kill output
- #3299: @josegonzalez Wrap script_bin in double-quotes
- #3295: @alexquick Sort config:show by key name
- #3288: @josegonzalez Wrap script binary in single quotes during executable check

### New Features

- #3302: @josegonzalez Add ability to check on app lock status via apps:locked command
- #3315: @aokon Upgrade herokuish to 0.4.5 version
- #3236: @josegonzalez Retire old containers
- #3307: @josegonzalez Add support for docker.io package
- #3301: @josegonzalez Add ability to sync packages to a new version of ubuntu
- #3286: @josegonzalez Sanitize docker inspect output with ps:inspect
- #3240: @josegonzalez Refactor Procfile handling to use go-procfile-util
- #3282: @josegonzalez Use create instead of run for faster and more reliable file copy from docker images
- #3280: @josegonzalez Better scheduler support
- #3259: @josegonzalez Check if script is executable when a full path is specified

### Documentation

- #3314: @royklutman Remove reference to non-existent DigitalOcean hosting plan
- #3313: @morenoh149 Indicate to user to specify hostname
- #3310: @josegonzalez Add a note to our issue template begging for money
- #3281: @josegonzalez Add documentation on custom error pages
2018-12-02 03:31:40 -05:00
Jose Diaz-Gonzalez
5ca4c769db Merge pull request #3312 from dokku/josegonzalez-patch-2
fix: keep track of failed containers regardless of docker kill output
2018-12-02 02:55:02 -05:00
Jose Diaz-Gonzalez
ab6dd96c50 Merge pull request #3314 from royklutman/do-vultr-small-machine
Remove reference to non-existent DigitalOcean hosting plan
2018-12-02 02:49:42 -05:00
Jose Diaz-Gonzalez
b7cc027a04 docs: remove digitalocean instance size reference.
[ci skip]
2018-12-02 02:49:17 -05:00
Jose Diaz-Gonzalez
eb804bfbbd Merge pull request #3299 from dokku/josegonzalez-patch-1
fix: wrap script_bin in double-quotes
2018-12-02 02:46:45 -05:00
Jose Diaz-Gonzalez
366a3cee81 Merge pull request #3302 from dokku/locked-command
Add ability to check on app lock status via apps:locked command
2018-12-02 02:03:00 -05:00
Jose Diaz-Gonzalez
cb3b5bdc28 feat: add ability to check on app lock status via apps:locked command
This allows users to further introspect on the state of the application.
2018-12-01 18:49:38 -05:00
Jose Diaz-Gonzalez
6b35cc3131 Merge pull request #3315 from aokon/herokuish-upgrade-to-0.4.5
feat: upgrade herokuish to 0.4.5 version
2018-11-21 07:20:47 -05:00
Adam Okoń
0fbbb10307 feat: upgrade herokuish to 0.4.5 version
The new version was released https://github.com/gliderlabs/herokuish/releases/tag/v0.4.5
2018-11-19 17:30:08 +01:00
Jose Diaz-Gonzalez
82bf74d7c9 Merge pull request #3313 from morenoh149/patch-1
Indicate to user to specify hostname
2018-11-17 01:10:15 -05:00
Harry Moreno
dd30525c27 Note dokku.me is hostname and note ssh-agent
[ci-skip]
2018-11-17 00:40:39 -05:00
Roy Klutman
ae8f614a81 Change DigitalOcean to Vultr as an example 2018-11-16 13:56:44 +01:00
Jose Diaz-Gonzalez
cf834f8ac8 fix: keep track of failed containers regardless of docker kill output
`docker kill` sometimes exits non-zero, meaning we don't keep track of logs for failed containers
2018-11-14 17:23:23 -05:00
Jose Diaz-Gonzalez
ea2e9fe348 Merge pull request #3236 from dokku/retire-old-containers
Retire old containers
2018-11-14 16:03:17 -05:00
Jose Diaz-Gonzalez
4b8e70075f Merge pull request #3310 from dokku/josegonzalez-patch-2
Add a note to our issue template begging for money
2018-11-05 18:11:21 -05:00
Jose Diaz-Gonzalez
068d83629f docs: Add a note to our issue template begging for money
Working for free sucks.

[ci skip]
2018-11-05 18:05:26 -05:00
Jose Diaz-Gonzalez
54d577a038 Merge pull request #3307 from dokku/josegonzalez-patch-2
feat: Add support for docker.io package
2018-11-05 11:23:00 -05:00
Jose Diaz-Gonzalez
2e41cb36de feat: Add support for docker.io package
This is new in Ubuntu Bionic, and should allow users to install without using upstream docker.

Note that we recommend installing from upstream where possible.

Closes #3297
2018-11-05 11:21:48 -05:00
Jose Diaz-Gonzalez
a468b3b17b Merge pull request #3301 from dokku/copy-packages
Add ability to sync packages to a new version of ubuntu
2018-11-05 00:20:58 -05:00
Jose Diaz-Gonzalez
07d64909a9 feat: Add ability to sync dokku packages to a new version of ubuntu
This will allow us to quickly roll out support for future versions of the OS.

[ci skip]
2018-11-05 00:19:04 -05:00
Jose Diaz-Gonzalez
769cff23fd fix: wrap script_bin in double-quotes
Refs #3259
2018-11-02 23:38:10 -04:00
Jose Diaz-Gonzalez
cf996b4a87 Merge pull request #3295 from alexquick/fix-config-order
[config] sort config:show by key name
2018-10-27 18:33:41 -04:00
Alex Quick
34efbbd570 [config] sort config:show by key name
resolves: #3293
2018-10-27 15:48:41 -04:00
Jose Diaz-Gonzalez
f83aba565f fix: properly chown ps folder 2018-10-21 12:50:39 -04:00
Jose Diaz-Gonzalez
c1b47dd248 fix: use correct path for lockfile 2018-10-21 12:50:39 -04:00
Jose Diaz-Gonzalez
ec47b1bcc7 refactor: set DOKKU_SYSTEM_USER and DOKKU_SYSTEM_GROUP at the top-level 2018-10-21 12:50:39 -04:00
Jose Diaz-Gonzalez
deeaf6dc41 fix: ensure path exists 2018-10-21 12:50:39 -04:00
Jose Diaz-Gonzalez
8a9c77a061 fix: pass lint 2018-10-21 12:50:39 -04:00
Jose Diaz-Gonzalez
d9fca6ac47 fix: correct syntax error 2018-10-21 12:50:39 -04:00
Jose Diaz-Gonzalez
38ed9bff39 feat: add a way to retire old containers scheduled by the docker-local plugin
These will be killed on a cron schedule, allowing us to ensure old containers don't run once memory pressure clears up - even across restarts.

Closes #3225
2018-10-21 12:50:39 -04:00
Jose Diaz-Gonzalez
14a1050a26 feat: add ps:retire command
This can be used to remove all old containers for a given deployment method.
2018-10-21 12:50:39 -04:00
Jose Diaz-Gonzalez
48842fc2f6 refactor: allow any function to attain a lock 2018-10-21 12:50:39 -04:00
Jose Diaz-Gonzalez
ba4db261ba Merge pull request #3288 from dokku/josegonzalez-patch-1
Wrap script binary in single quotes during executable check
2018-10-21 12:38:13 -04:00
Jose Diaz-Gonzalez
1c24585093 fix: wrap script binary in single quotes during executable check
Refs #3259

[ci skip]
2018-10-21 12:37:25 -04:00
Jonathon Coe
e16a7b5fe3 fix circle-ci build status flag (#3287) 2018-10-20 11:29:02 -05:00
Jose Diaz-Gonzalez
ea2443a7c2 Merge pull request #3286 from dokku/dokku-inspect
Sanitize docker inspect output with ps:inspect
2018-10-14 23:03:55 -04:00
Jose Diaz-Gonzalez
15a2b7cbce feat: sanitize docker inspect output with ps:inspect
Often-times, we will want to have the container inspect output for debugging purposes, but this process is:

- error prone, as the user needs to know what their containers are
- potentially insecure, as the output must be sanitized of sensitive data

Instead of making users wade through this process, we provide a helper `ps:inspect` command, that can be used to diagnose problems associated with containers that may or may not exist for an application.
2018-10-14 22:10:28 -04:00
Jose Diaz-Gonzalez
44d8eb4cb7 Merge pull request #3240 from dokku/3196-procfile-handling
Refactor Procfile handling to use go-procfile-util
2018-10-14 00:20:02 -04:00
Jose Diaz-Gonzalez
fd8d27d837 revert: permission and trace 2018-10-14 00:19:24 -04:00
Jose Diaz-Gonzalez
059d3dc159 fix: call run in order to override globals 2018-10-13 23:31:11 -04:00
Jose Diaz-Gonzalez
05240c56b6 fix: reference correct variable for procfile 2018-10-13 20:17:51 -04:00
Jose Diaz-Gonzalez
6f2e2d6aad chore: ensure the output gets formatted correctly 2018-10-11 20:19:57 -04:00
Jose Diaz-Gonzalez
f992156dcf fix: use run for testing failed deploy_app 2018-10-11 20:19:57 -04:00
Jose Diaz-Gonzalez
aee8b8b659 fix: use correct app when testing scaling of non-existent process types 2018-10-11 20:19:57 -04:00
Jose Diaz-Gonzalez
5e06583055 feat: trace 2018-10-11 20:19:57 -04:00
Jose Diaz-Gonzalez
cb0ad13278 fix: proc check only works when there is Procfile available 2018-10-11 20:19:57 -04:00
Jose Diaz-Gonzalez
d63f1cc158 fix: expand variables 2018-10-11 20:19:57 -04:00
Jose Diaz-Gonzalez
64c6437e4e hack: pull procfile if possible when setting ps:scale 2018-10-11 20:19:57 -04:00
Jose Diaz-Gonzalez
2ec99bc853 hack: create the application after it gets destroyed 2018-10-11 20:19:57 -04:00
Jose Diaz-Gonzalez
81935a8f31 feat: drop debugging info 2018-10-11 20:19:57 -04:00
Jose Diaz-Gonzalez
01a4440f39 fix: use correct test app 2018-10-11 20:19:56 -04:00
Jose Diaz-Gonzalez
0abc40ecca fix: use correct version of go-procfile-util 2018-10-11 20:19:56 -04:00
Jose Diaz-Gonzalez
7f6688c01a hack: log the procfile and more 2018-10-11 20:19:56 -04:00
Jose Diaz-Gonzalez
0d776ec2c8 fix: ensure we respect the herokuish start command 2018-10-11 20:19:56 -04:00
Jose Diaz-Gonzalez
95292bfcba fix: correct issue where we accidentally bailed when there was no error 2018-10-11 20:19:56 -04:00
Jose Diaz-Gonzalez
0292c4ee3b refactor: move get_cmd_from_procfile to ps/functions
Procfile handling should only be performed in the ps plugin
2018-10-11 20:19:56 -04:00
Jose Diaz-Gonzalez
afd101034d feat: verify that a process exists before scaling it
Refs #2582
Refs #3196
2018-10-11 20:19:56 -04:00
Jose Diaz-Gonzalez
b6fe31f9cb fix: call procfile-util correctly 2018-10-11 20:19:56 -04:00
Jose Diaz-Gonzalez
c924bdef04 feat: expand the PORT environment variable when provided
Refs #2793
Refs #3196
2018-10-11 20:19:56 -04:00
Jose Diaz-Gonzalez
2db8f93507 feat: error out on Procfile extraction if the procfile is invalid
Refs #2991
Refs #3196
2018-10-11 20:19:56 -04:00
Jose Diaz-Gonzalez
aeeb2e138f feat: install procfile-util 2018-10-11 20:19:56 -04:00
Jose Diaz-Gonzalez
d156cff7e4 chore: sort rpm dependencies 2018-10-11 20:19:56 -04:00
Jose Diaz-Gonzalez
2d1b11bd8c Merge pull request #3282 from dokku/3272-better-copy-from-image
feat: use create instead of run for faster and more reliable file copy from docker images
2018-10-07 18:59:46 -04:00
Jose Diaz-Gonzalez
58fcb01e08 hack: drop apt-key call for mysql key 2018-10-07 18:08:40 -04:00
Jose Diaz-Gonzalez
66948b9de4 feat: use create instead of run for faster and more reliable file copy from docker images
Closes #3272
2018-10-07 16:39:13 -04:00
Jose Diaz-Gonzalez
9aeee8189b Merge pull request #3281 from dokku/3239-error-page-docs
docs: add documentation on custom error pages
2018-10-06 18:47:37 -04:00
Jose Diaz-Gonzalez
b67a695e9e docs: add documentation on custom error pages
Closes #3239
[ci skip]
2018-10-06 18:47:01 -04:00
Jose Diaz-Gonzalez
c84304b33c Merge pull request #3280 from dokku/better-scheduler-support
Better scheduler support
2018-10-06 18:05:33 -04:00
Jose Diaz-Gonzalez
c441e7ec2c Merge pull request #3259 from dokku/josegonzalez-patch-1
feat: check if script is executable when a full path is specified
2018-10-06 16:43:33 -04:00
Robin Speekenbrink
7e990963f1 Make sure the universe repo is loaded into APT
this should fix #3278
2018-10-06 01:27:29 +02:00
Jose Diaz-Gonzalez
ed190527ce feat: allow overriding the scheduler globally
Being able to override globally is useful for cases where a user will _always_ want their applications to be globally distributed
2018-09-30 21:36:53 -04:00
Jose Diaz-Gonzalez
fabb18c55c feat: allow disabling the nginx-vhosts plugin by default
This allows us to force another plugin as the default vhost implementation, or disable it altogether in favor of some higher-level proxy implementation, such as one that integrates with service discovery.
2018-09-30 17:04:05 -04:00
Jose Diaz-Gonzalez
31adb13bde Release 0.12.13
# History

## 0.12.13

### New Features

- #3257: @josegonzalez Suppress output in git plugin during builds
- #3254: @michaelshobbs Update herokuish to 0.4.4

### Documentation

- #3270: @alexymik Correct typo in git documentation
- #3268: @josegonzalez Correct notice on ubuntu support
- #3247: @mimischi Fix typo in ps:stopall
- #3246: @dv Change DISABLE_CHOWN to disable-chown
2018-09-24 23:34:50 -04:00
Jose Diaz-Gonzalez
2102160cdb Merge pull request #3270 from alexymik/patch-1
Fix typo in git.md
2018-09-17 14:04:35 -04:00
Alexy Mikhailichenko
5ddb7eb983 Fix typo in git.md
'supportec' -> 'supported'
2018-09-17 13:52:22 -04:00
Jose Diaz-Gonzalez
b904895a61 Merge pull request #3268 from dokku/josegonzalez-patch-2
Fix notice on ubuntu support
2018-09-12 00:18:23 -04:00
Jose Diaz-Gonzalez
be0c315a12 docs: fix notice on ubuntu support 2018-09-12 00:02:22 -04:00
Stefan Pahlplatz
c55bfb650c Updated copyright from 2013-2017 to 2013-2018 (#3260) 2018-09-02 13:15:59 -05:00
Jose Diaz-Gonzalez
84227b972b feat: check if script is executable when a full path is specified
This fixes issues where developers may specify a binary to run but haven't given that binary executable permissions.
2018-08-31 00:15:22 -04:00
Jose Diaz-Gonzalez
9d15ef9395 Merge pull request #3257 from dokku/josegonzalez-patch-1
fix: suppress output in git plugin during builds
2018-08-25 10:38:54 -04:00
Jose Diaz-Gonzalez
16e4bc8f60 fix: suppress output in git plugin during builds 2018-08-25 01:52:20 -04:00
Michael Hobbs
a0cb2d932a Merge pull request #3254 from dokku/mh/chore/update-herokuish
update herokuish to 0.4.4
2018-08-21 09:05:18 -07:00
Michael Hobbs
70f522ecdd update herokuish to 0.4.4 2018-08-20 10:57:34 -07:00
Jose Diaz-Gonzalez
be941a7375 Merge pull request #3247 from mimischi/restartall
Fix typo in ps:stopall
2018-08-17 11:19:01 -05:00
Michael Gecht
b812637fe1 Fix typo in ps:stopall 2018-08-06 14:28:21 +02:00
Jose Diaz-Gonzalez
194d5c995b Merge pull request #3246 from dv/patch-1
Change DISABLE_CHOWN to disable-chown
2018-08-04 18:40:57 -04:00
David Verhasselt
7a8dd39ee8 Change DISABLE_CHOWN to disable-chown
The correct field is `disable-chown`, not `DISABLE_CHOWN`. Maybe it was in the past?
2018-08-04 13:13:44 +03:00
Jose Diaz-Gonzalez
09762cb35a Release 0.12.12
# History

## 0.12.12

### New Features

- #3244: @josegonzalez Allow disabling chown for persistent storage in scheduler-docker-local
2018-08-01 07:32:41 -04:00
Jose Diaz-Gonzalez
e2e263c783 Merge pull request #3244 from dokku/allow-chown-disable
feat: allow disabling chown for persistent storage in scheduler-docker-local
2018-08-01 07:31:55 -04:00
Jose Diaz-Gonzalez
7349c30cd9 feat: allow disabling chown for persistent storage in scheduler-docker-local
Some systems - such as a mounted read-only CIFS filesystem - do not fully support chown, and chowning should be considered optional for cases when the host os has already taken care of permissioning. This commit allows users to disable chown by setting a property on the scheduler-docker-local plugin.
2018-08-01 06:51:47 -04:00
Jose Diaz-Gonzalez
53c5d548f1 Release 0.12.11
# History

## 0.12.11

### Bug Fixes

- #3238: @josegonzalez Handle proxy issues in app renaming
- #3234: @mashrikt Unset GIT_QUARANTINE_PATH when updating repo submodule
- #3223: @josegonzalez Get the global scheduler if no app is specified
- #3218: @wcalandro Fix error text when using "dokku plugin:uninstall"

### New Features

- #3242: @josegonzalez Upgrade herokuish to 0.4.3
- #3241: @josegonzalez Add a subcommand for retrieving failed app deploy logs
- #3237: @josegonzalez Support --quiet header when showing all environment variables

### Documentation

- #3235: @josegonzalez Switch from ps:rebuild to ps:restart
- #3221: @josegonzalez Better callout for why env vars do not get applied to dockerfile builds
2018-07-29 20:35:49 -04:00
Jose Diaz-Gonzalez
aec7b6f7fb Merge pull request #3242 from dokku/herokuish-upgrade
feat: upgrade herokuish to 0.4.3
2018-07-29 20:32:22 -04:00
Jose Diaz-Gonzalez
1831848f89 feat: upgrade herokuish to 0.4.3 2018-07-29 20:31:53 -04:00
Jose Diaz-Gonzalez
f80b152c9b Merge pull request #3241 from dokku/failed-deploy-logs
feat: add a subcommand for retrieving failed app deploy logs
2018-07-29 20:28:15 -04:00
Jose Diaz-Gonzalez
db29029653 docs: clarify usage for multiple apps 2018-07-29 19:40:52 -04:00
Jose Diaz-Gonzalez
87ee233636 feat: add a header message 2018-07-29 19:40:39 -04:00
Jose Diaz-Gonzalez
cf99ac9a2c fix: use correct argument 2018-07-29 19:40:08 -04:00
Jose Diaz-Gonzalez
1538dc5dcb docs: clarify that the scheduler api is unstable
Also add missing dollar signs to variables.
2018-07-29 19:33:05 -04:00
Jose Diaz-Gonzalez
ec34b35a7f feat: allow retrieving failed logs for all apps 2018-07-29 19:32:05 -04:00
Jose Diaz-Gonzalez
f7169bf417 chore: clarify plugin trigger name 2018-07-29 19:31:20 -04:00
Jose Diaz-Gonzalez
f173c2f1c2 docs: add missing documentation for scheduler-failed plugin trigger 2018-07-29 19:30:45 -04:00
Jose Diaz-Gonzalez
78f467852e feat: add a subcommand for retrieving failed app deploy logs
This can be useful in cases where a developer wishes to see what error messages are available for a failed deploy, but does not wish to spelunk around `docker ps -a` output.

Note that the logs are not made available once a further deploy is triggered, or after the containers have been garbage collected.
2018-07-29 17:17:53 -04:00
Jose Diaz-Gonzalez
8b932971df Merge pull request #3238 from dokku/josegonzalez-patch-2
Handle proxy issues in app renaming
2018-07-28 02:20:04 -04:00
Jose Diaz-Gonzalez
66b2fb602f feat: implement proxy-clear-config
This will allow us to kill stale proxy configuration within apps, which is critical during application renames.

- redirect rmdir output to dev-null
- trigger a proxy-clear-config (new trigger) when renaming an application
  - The configuration will be rebuilt during the later `ps_rebuild`

Closes #3231
2018-07-28 01:20:06 -04:00
Jose Diaz-Gonzalez
df834f41f3 feat: add a test to prove that tls breaks app renames 2018-07-28 01:20:03 -04:00
Jose Diaz-Gonzalez
b0ac10bc11 Merge pull request #3237 from dokku/josegonzalez-patch-1
feat: support --quiet header when showing all environment variables
2018-07-26 14:41:56 -04:00
Jose Diaz-Gonzalez
b75547cff8 feat: support --quiet header when showing all environment variables
Closes #3229
2018-07-25 23:51:55 -04:00
Jose Diaz-Gonzalez
e8265ac642 Merge pull request #3234 from mashrikt/unset_git_quarantine_path
unset GIT_QUARANTINE_PATH when updating repo submodule
2018-07-25 23:49:45 -04:00
Jose Diaz-Gonzalez
029de873d7 Merge pull request #3235 from dokku/josegonzalez-patch-1
Switch from ps:rebuild to ps:restart
2018-07-25 22:45:14 -04:00
Jose Diaz-Gonzalez
2679bf3709 docs: switch from ps:rebuild to ps:restart
A rebuild from source is not generally required here.
2018-07-25 22:44:47 -04:00
Tahzib Mashrik
6fb4adf87f unset GIT_QUARANTINE_PATH when updating repo submodule 2018-07-26 03:06:01 +06:00
Jose Diaz-Gonzalez
c9de100dd9 feat: add container id to retire-container-failed arguments (#3227)
Refs dokku/dokku#3225
2018-07-09 10:27:24 -05:00
Jose Diaz-Gonzalez
f6fc32a074 feat: allow silencing headers on storage:list output (#3224) 2018-07-05 18:42:04 -05:00
Jose Diaz-Gonzalez
019e80d60a Merge pull request #3223 from dokku/josegonzalez-patch-1
Get the global scheduler if no app is specified
2018-07-05 10:49:07 -04:00
Jose Diaz-Gonzalez
06f8237196 fix: get the global scheduler if no app is specified 2018-07-04 15:31:03 -04:00
Jose Diaz-Gonzalez
8fa869fab2 Merge pull request #3221 from dokku/josegonzalez-patch-1
docs: better callout for why env vars do not get applied to dockerfile builds
2018-06-25 12:15:44 -04:00
Jose Diaz-Gonzalez
ed744d05e1 docs: better callout for why env vars do not get applied to dockerfile builds
[ci skip]
2018-06-25 12:15:24 -04:00
Jose Diaz-Gonzalez
0023b6135a Merge pull request #3218 from wcalandro/master
Fix error text when using "dokku plugin:uninstall"
2018-06-19 13:41:15 -04:00
Wyatt Calandro
2b709fb8e8 Fix error text when using "dokku plugin:uninstall" 2018-06-19 10:04:54 -07:00
Jose Diaz-Gonzalez
3bc5e780da Release 0.12.10
# History

## 0.12.10

### New Features

- #3214: @josegonzalez Add net-tools as a dependency to debian installs
2018-06-09 21:29:45 -04:00
Jose Diaz-Gonzalez
2fa7a1ab5f Merge pull request #3214 from dokku/josegonzalez-patch-1
Add net-tools as a dependency to debian installs
2018-06-09 21:28:48 -04:00
Jose Diaz-Gonzalez
f34a16846f feat: add net-tools as a dependency to debian installs
Ubuntu has been slimming down their installations recently, so requiring net-tools fixes usage issues for many commonly installed plugins (such as the datastore plugins).
2018-06-09 20:49:38 -04:00
Jose Diaz-Gonzalez
a2177ef57f Release 0.12.9
# History

## 0.12.9

### Bug Fixes

- #3212: @josegonzalez Add missing config source
2018-06-08 17:23:30 -04:00
Jose Diaz-Gonzalez
28619164c4 Merge pull request #3212 from dokku/josegonzalez-patch-1
Add missing config source
2018-06-08 17:22:59 -04:00
Jose Diaz-Gonzalez
ab376f0f1a fix: add missing config source 2018-06-08 14:24:33 -04:00
Jose Diaz-Gonzalez
44cb90eff1 Release 0.12.8
# History

## 0.12.8

### Bug Fixes

- #3211: @josegonzalez Add missing source of config/functions

### Documentation

- #3204: @znz Add `--no-restart` to `config:unset` of `config:help`
- #3203: @josegonzalez Clarify issue template
2018-06-04 12:41:35 -04:00
Jose Diaz-Gonzalez
2584d958e9 Merge pull request #3211 from dokku/josegonzalez-patch-1
fix: add missing source of config/functions
2018-06-04 12:40:32 -04:00
Jose Diaz-Gonzalez
161d877e8b fix: add missing source of config/functions
Sometimes a deploy will complain if this doesn't exist.
2018-06-04 11:42:42 -04:00
Jose Diaz-Gonzalez
b98154e410 Merge pull request #3204 from znz/doc-of-config-uunset--no-restart
Add `--no-restart` to `config:unset` of `config:help`
2018-05-25 10:57:26 -04:00
Kazuhiro NISHIYAMA
7cb0d7fb58 Update output of config:help in docs
[ci skip]
2018-05-25 19:51:35 +09:00
Kazuhiro NISHIYAMA
c77d323f1f Add --no-restart to config:unset of config:help 2018-05-25 19:50:15 +09:00
Jose Diaz-Gonzalez
3ae416955f Update ISSUE_TEMPLATE.md 2018-05-23 11:41:58 -04:00
Jose Diaz-Gonzalez
7480fd51ee Merge pull request #3203 from dokku/josegonzalez-patch-1
Clarify issue template
2018-05-23 11:20:54 -04:00
Jose Diaz-Gonzalez
730e8f73d4 docs: Cleanup Issue Template
- reorder things to make it clearer to the user what they are filing
- use headers for various sections
- separate the `dokku report` section to increase its importance

[ci skip]
2018-05-23 11:12:25 -04:00
Jose Diaz-Gonzalez
d3118b4d07 Release 0.12.7
# History

## 0.12.7

### Bug Fixes

- #3200: @josegonzalez fix: correct bash-completion integration

### New Features

- #3199: @josegonzalez Update herokuish to 0.4.2
- #3198: @josegonzalez Cleanup temporary changes during betafish releases
2018-05-20 19:10:25 -04:00
Jose Diaz-Gonzalez
fb79d0f2e8 Merge pull request #3200 from dokku/fix-bash-completion
fix: correct bash-completion integration
2018-05-20 19:08:09 -04:00
Jose Diaz-Gonzalez
1bbde8fd94 Merge pull request #3199 from dokku/update-herokuish
Update herokuish to 0.4.2
2018-05-20 19:07:12 -04:00
Jose Diaz-Gonzalez
ee8bdd4886 Merge pull request #3198 from dokku/cleanup-betafish-releases
Cleanup temporary changes during betafish releases
2018-05-20 19:06:45 -04:00
Jose Diaz-Gonzalez
e36db73864 feat: add a simple build process for herokuish releases
These should be moved to the herokuish repository, but as Dokku manages those releases, it's best to at least place these scripts here.
2018-05-20 19:06:31 -04:00
Jose Diaz-Gonzalez
a3a50f193c feat: update herokuish to 0.4.2 2018-05-20 19:06:01 -04:00
Jose Diaz-Gonzalez
7d917589a4 fix: correct bash-completion integration
The previous method did not work once the file was moved to the correct location.

[ci skip]
2018-05-20 19:05:36 -04:00
Jose Diaz-Gonzalez
aad283a981 fix: add missing default value for exit code during dokku-update releases 2018-05-20 19:03:09 -04:00
Jose Diaz-Gonzalez
047626909c fix: cleanup temporary changes during betafish releases
[ci skip]
2018-05-20 19:02:18 -04:00
Jose Diaz-Gonzalez
5ab170a60a Release 0.12.6
# History

## 0.12.6

### Bug Fixes

- #3193: @josegonzalez Install bash-completion files correctly
- #3179: @josegonzalez Ignore issues with popd when OS versions with stricter security
- #3177: @philm ensure dokku-redeploy runs when docker is stopped then started
- #3176: @josegonzalez Detect mixed running status on service start

### New Features

- #3195: @josegonzalez Allow lower versions of docker-engine
- #3181: @malixsys Adding support for `http2_push_preload` to nginx 1.13.9+ configuration
- #3183: @josegonzalez Unskip initial herokuish test
- #3175: @josegonzalez Implement bash-completion for commands

### Documentation

- #3197: @josegonzalez Add a tutorial for deploying applications via gitlab ci
- #3194: @josegonzalez Clarify why dokku report information is useful
- #3189: @josegonzalez Correct issue with adding a user remotely
2018-05-19 15:13:50 -04:00
Jose Diaz-Gonzalez
ddd5526fed fix: add missing link to tutorial
[ci skip]
2018-05-19 14:19:16 -04:00
Jose Diaz-Gonzalez
b716b61099 Merge pull request #3197 from dokku/2975-tutorials
Add a tutorial for deploying applications via gitlab ci
2018-05-19 14:17:54 -04:00
Jose Diaz-Gonzalez
cadf876d37 docs: Add a tutorial for deploying applications via gitlab ci
This also documents a review app workflow, and hints towards future extensions of the platform.

Closes #2975

[ci skip]
2018-05-19 14:17:05 -04:00
Jose Diaz-Gonzalez
088608d160 docs: add warning to running on external volumes 2018-05-19 14:16:50 -04:00
Jose Diaz-Gonzalez
4f9b00dfcb Merge pull request #3195 from dokku/lower-docker-version
feat: allow lower versions of docker-engine
2018-05-19 03:34:55 -04:00
Jose Diaz-Gonzalez
1d9479e532 feat: allow lower versions of docker-engine 2018-05-19 03:32:57 -04:00
Jose Diaz-Gonzalez
93eb8be806 Merge pull request #3194 from dokku/josegonzalez-patch-1
Clarify why dokku report information is useful
2018-05-19 03:04:17 -04:00
Jose Diaz-Gonzalez
31d4851089 docs: clarify why dokku report information is useful
Also note that it can be run without any arguments.

Refs #3192
2018-05-19 03:03:59 -04:00
Jose Diaz-Gonzalez
e98d54f0bc Merge pull request #3181 from malixsys/3165_support_http2_push_reload
Adding support for `http2_push_preload` to nginx 1.13.9+ configuration
2018-05-19 02:23:19 -04:00
Jose Diaz-Gonzalez
f7474347b6 Merge pull request #3193 from dokku/fix-bash-completion
Install bash-completion files correctly
2018-05-19 02:18:22 -04:00
Jose Diaz-Gonzalez
640f78a23c fix: put bash-completion files in correct place
[ci skip]
2018-05-19 02:17:39 -04:00
Jose Diaz-Gonzalez
136c868904 chore: move http2_push logic into single line
[ci skip]
2018-05-19 02:14:37 -04:00
Jose Diaz-Gonzalez
1587b32a30 Merge pull request #3189 from dokku/josegonzalez-patch-1
docs: correct issue with adding a user remotely
2018-05-13 14:53:40 -04:00
Jose Diaz-Gonzalez
cb7b1f4ebd docs: correct issue with adding a user remotely
Closes #3188

[ci skip]
2018-05-13 14:53:24 -04:00
Jose Diaz-Gonzalez
6df62d052a Merge pull request #3183 from dokku/josegonzalez-patch-1
chore: unskip initial herokuish test
2018-05-04 15:30:18 -04:00
Jose Diaz-Gonzalez
c7ce9dc89c chore: unskip initial herokuish test
This was previously skipped on circleci 1.0 but 2.0 apparently has full `docker exec` support.
2018-05-04 14:04:39 -04:00
malixsys
5da8bcc3b5 Adding support for http2_push_preload to nginx 1.13.9+ configuration 2018-05-01 12:58:16 -04:00
Jose Diaz-Gonzalez
aca8df1b09 Merge pull request #3179 from dokku/3178-popd
Ignore issues with popd when OS versions with stricter security
2018-05-01 01:24:33 -04:00
Jose Diaz-Gonzalez
87e9bea6da fix: ignore issues with popd when OS versions with stricter security
Refs #2978
Closes #3178
2018-05-01 00:02:08 -04:00
Jose Diaz-Gonzalez
aed99f6193 Merge pull request #3177 from HealthcareBlocks/redeploy-systemd-always-restart
ensure dokku-redeploy runs when docker is stopped then started
2018-04-28 15:06:59 -04:00
Jose Diaz-Gonzalez
f115815ced Merge pull request #3176 from dokku/2772-non-mixed-start
Detect mixed running status on service start
2018-04-28 15:06:19 -04:00
Phil Misiowiec
900e4ac94d ensure dokku-redeploy runs when docker is stopped then started 2018-04-28 09:24:12 -07:00
Jose Diaz-Gonzalez
855090c9e7 fix: minor deprecated code cleanup 2018-04-28 01:27:34 -04:00
Jose Diaz-Gonzalez
9b41f7a74e fix: use updated fn-ps-is-app-running function to determine an application's status
In some cases, a single allocation for a service may not be running, but the others will, and `is_app_running` will return the wrong thing.

Closes #2772
2018-04-28 01:21:26 -04:00
Jose Diaz-Gonzalez
8d07ffe775 refactor: deprecate is_app_running in favor of ps#fn-ps-is-app-running
This will allow us to _actually_ introspect on the running state of an application. In certain cases, the detected state can be "mixed", meaning that we may need to take action, depending on what we want to do in mixed mode.
2018-04-28 01:19:23 -04:00
Jose Diaz-Gonzalez
e47f6e5803 fix: use dokku_log_warn helper for warning messages in the ps plugin 2018-04-28 01:13:48 -04:00
Jose Diaz-Gonzalez
436574a9ad Merge pull request #3175 from dokku/2095-bash-completion
Implement bash-completion for commands
2018-04-28 01:05:44 -04:00
Jose Diaz-Gonzalez
8ac04392f0 fix: add missing source 2018-04-27 13:44:29 -04:00
Jose Diaz-Gonzalez
5bfb43222b fix: add missing source 2018-04-27 12:33:33 -04:00
Jose Diaz-Gonzalez
7ee87c7aa5 chore: drop package-based bash-completion priming
This is now down in the plugin:install step.
2018-04-27 04:12:30 -04:00
Jose Diaz-Gonzalez
172779f3d6 feat: recache bash-completion output whenever actions are taken on plugins
While this slows down those actions, it ensures we never have out of date information.
2018-04-27 04:11:50 -04:00
Jose Diaz-Gonzalez
75ea7862cc feat: prime the bash-completion output
While not ideal, users can manually update the completion-cache by reconfiguring the installed package, or updating Dokku.
2018-04-27 04:04:36 -04:00
Jose Diaz-Gonzalez
6ea86f2714 feat: create bash-completion file
This only completes the command names - not any arguments - and also relies on a completion cache as the response from Dokku for help output can be slow.

Closes #2095
2018-04-27 04:02:23 -04:00
Jose Diaz-Gonzalez
a6b047805c feat: ensure the dokku binary respects the quiet flag
Previously, there were many headers being output that were unable to be removed via the --quiet flag.
2018-04-27 03:55:00 -04:00
Jose Diaz-Gonzalez
3ce148dacd Release 0.12.5
# History

## 0.12.5

### Bug Fixes

- #3173: @josegonzalez fix: do not output error message twice

### New Features

- #3172: @josegonzalez feat: Add the ability to ignore existing applications during a git clone
- #3171: @josegonzalez Allow users to override the reported app url
- #3170: @josegonzalez Add ps:startall command

### Documentation

- #3159: @zuck Improve docs for default site with HTTPS
2018-04-27 01:28:40 -04:00
Jose Diaz-Gonzalez
67dcf34f7a Merge pull request #3173 from dokku/silence-extra-error-message
fix: do not output error message twice
2018-04-27 01:25:13 -04:00
Jose Diaz-Gonzalez
db635841f5 Merge pull request #3172 from dokku/clone-skip-existing
feat: Add the ability to ignore existing applications during a git clone
2018-04-27 01:24:26 -04:00
Jose Diaz-Gonzalez
970b6806c7 fix: do not output error message twice
It was output twice because stderr is not silenced and `get_running_image_tag` was called _before_ `verify_app_name`.
2018-04-27 00:28:17 -04:00
Jose Diaz-Gonzalez
1dfa02924d feat: Add the ability to ignore existing applications during a git clone
This makes it possible to create cloned apps if and only if they haven't already been created - a useful feature for review apps.
2018-04-27 00:03:19 -04:00
Jose Diaz-Gonzalez
380e8affba Merge pull request #3171 from dokku/override-urls
Allow users to override the reported app url
2018-04-26 20:05:49 -04:00
Jose Diaz-Gonzalez
725dd8b2a6 Merge pull request #3159 from zuck/patch-1
Improve docs for default site with HTTPS
2018-04-26 19:51:39 -04:00
Jose Diaz-Gonzalez
ff27908dfd docs: cleanup ssl wildcard docs 2018-04-26 19:51:27 -04:00
Jose Diaz-Gonzalez
e6762f2439 feat: allow users to override the reported app url
This is useful in cases where the app url has some "interesting" structure - such as a subdomain or scheme change - for a specific installation.

Closes #3160
2018-04-26 19:21:29 -04:00
Jose Diaz-Gonzalez
954d20bd1e Merge pull request #3170 from dokku/ps-startall
Add ps:startall command
2018-04-26 18:18:47 -04:00
Jose Diaz-Gonzalez
792b36d5cc feat: add ps:startall command 2018-04-26 17:34:06 -04:00
Jose Diaz-Gonzalez
3f4278ec1d Release 0.12.4
# History

## 0.12.4

### Bug Fixes

- #3168: @josegonzalez Use correct variable name when writing deploy-branch value
2018-04-20 14:55:12 -04:00
Jose Diaz-Gonzalez
a185142170 Merge pull request #3168 from dokku/josegonzalez-patch-1
Use correct variable name when writing deploy-branch value
2018-04-20 14:20:50 -04:00
Jose Diaz-Gonzalez
24a30c8d4b fix: use correct variable name when writing deploy-branch value
Closes #3158
2018-04-20 14:20:26 -04:00
Jose Diaz-Gonzalez
3c7e5730ec Release 0.12.3
# History

## 0.12.3

### Bug Fixes

- #3156: @josegonzalez fix: ensure we _always_ include all types in history output

### Documentation

- #3163: @josegonzalez Better apt install formatting

### Other

- #3153: @scjody Allow specifying a separate DOKKU_HOST_ROOT
2018-04-17 10:52:49 -04:00
Jose Diaz-Gonzalez
c1c1cdd25f Merge pull request #3153 from plotly/separate-data-root-for-docker-binds
Allow specifying a separate DOKKU_HOST_ROOT
2018-04-16 20:12:09 -04:00
Jody McIntyre
beea394822 Merge branch 'master' into separate-data-root-for-docker-binds 2018-04-16 18:54:58 -04:00
Jody McIntyre
1ad89bf53b Add tests of cache bind directory 2018-04-16 18:52:51 -04:00
Emanuele Bertoldi
28f76c5ae0 Merge branch 'master' into patch-1 2018-04-16 21:16:33 +02:00
Jose Diaz-Gonzalez
94a1f895d0 Merge pull request #3163 from dokku/better-install-formatting
Better apt install formatting
2018-04-15 15:08:27 -04:00
Jose Diaz-Gonzalez
6ad694653a docs: fix styling to ensure we don't add wrapping 2018-04-14 15:07:48 -04:00
Jose Diaz-Gonzalez
724c059721 docs: simplify grep 2018-04-14 15:06:32 -04:00
Emanuele Bertoldi
6b78375cdc Save some chars 2018-04-14 01:12:49 +02:00
Emanuele Bertoldi
9087664667 Expand docs for default site over HTTPS 2018-04-14 01:10:56 +02:00
Emanuele Bertoldi
418ecf67c2 Improve docs for default site with HTTPS
Provide a working solution of default site configuration for both HTTP and HTTPS requests.
2018-04-13 01:56:01 +02:00
Salvatore Ferrucci
dc2bdbc366 remove ls from command's help (#3157) 2018-04-11 07:30:31 -05:00
Jose Diaz-Gonzalez
08a43c1604 Merge pull request #3156 from dokku/fix-history
fix: ensure we _always_ include all types in history output
2018-04-10 20:35:37 -04:00
Jose Diaz-Gonzalez
f5f1eebf63 fix: ensure we _always_ include all types in history output
In some cases, we might miss pull requests where there is more than one 'type' label, causing that pull request to be omitted from the history. This change ensures we always include pull requests in the change log
2018-04-10 20:34:26 -04:00
Jose Diaz-Gonzalez
0117cbffaa Release 0.12.2
# History

## 0.12.2

### Bug Fixes

- #3155: @josegonzalez fix: re-add is_container_running
2018-04-10 20:23:34 -04:00
Jose Diaz-Gonzalez
4187a80ff6 Merge pull request #3155 from dokku/re-add-function
fix: re-add is_container_running
2018-04-10 20:23:15 -04:00
Jose Diaz-Gonzalez
eb3866c636 fix: re-add is_container_running
As this was not strictly announced in our migration guide, removing it is a bc-incompatible change we are not comfortable with. We may wish to remove it in the future
2018-04-10 20:22:31 -04:00
Jose Diaz-Gonzalez
10fed6ecf0 Update purge-cache.go 2018-04-10 14:12:52 -04:00
Jose Diaz-Gonzalez
9c5cb7d0f0 Update functions 2018-04-10 14:12:10 -04:00
Jose Diaz-Gonzalez
9b72c93a57 Update rename 2018-04-10 14:11:10 -04:00
Jose Diaz-Gonzalez
8cb95063d2 Update clone 2018-04-10 14:10:34 -04:00
Jose Diaz-Gonzalez
5f9a91aac1 Update clone 2018-04-10 14:10:06 -04:00
Jose Diaz-Gonzalez
02af8398c4 Update pre-delete 2018-04-10 14:09:43 -04:00
Jose Diaz-Gonzalez
23a53b5034 Update exec-app-json-scripts 2018-04-10 14:09:29 -04:00
Jose Diaz-Gonzalez
e5aec5b141 Update pre-delete 2018-04-10 14:08:21 -04:00
Jose Diaz-Gonzalez
4e88c534b7 Update exec-app-json-scripts 2018-04-10 14:07:24 -04:00
Jose Diaz-Gonzalez
93dd5c72ec Update dokku 2018-04-10 14:05:34 -04:00
Jody McIntyre
aa5561b781 Use DOKKU_ROOT_ON_HOST for Docker bind mounts 2018-04-09 17:51:14 -04:00
Jody McIntyre
13bd5864b3 Add DOKKU_ROOT_ON_HOST variable
This is to be used in place of `DOKKU_ROOT` when we need to refer to a
path on the system where the Docker daemon is being run; if `dokku` is
running in a container this may be different from the regular
`DOKKU_ROOT`.
2018-04-09 17:44:32 -04:00
Jose Diaz-Gonzalez
6f2cf34f10 Release 0.12.1
# History

## 0.12.1

### Bug Fixes

- #3151: @josegonzalez fix: include missing config/functions source
2018-04-09 09:42:57 -04:00
Jose Diaz-Gonzalez
57cc3ccefe Merge pull request #3151 from dokku/fix-nginx-upgrades
fix: include missing config/functions source
2018-04-09 09:37:54 -04:00
Jose Diaz-Gonzalez
aa5600271a fix: include missing config/functions source
Closes #3150
2018-04-09 09:37:25 -04:00
Jose Diaz-Gonzalez
ea0089b207 Release 0.12.0
# History

## 0.12.0

### Bug Fixes

- #3146: @josegonzalez Fix non ubuntu installs
- #3138: @josegonzalez Use correct path for /etc/default file
- #3137: @josegonzalez Ensure we can disable setting the rev-env-var
- #3131: @axilleas Capitalize log sentence when renaming containers
- #3128: @Modicrumb Improve windows vagrant experience
- #3105: @znz Follow renaming from deploy-method to deploy-source
- #3101: @josegonzalez Handle stopped nginx during debian installation

### New Features

- #3141: @josegonzalez Centralize app existence checks into the apps plugin
- #3147: @josegonzalez Create proxy:ports-set call
- #3145: @josegonzalez Add report trigger
- #3144: @josegonzalez Increase curl max timeout to 600 seconds (10 minutes)
- #3107: @znz Remove unused password in ssl cert generation
- #3095: @josegonzalez Migrate env for NGINX_* to PROXY_*
- #3140: @josegonzalez Add newline to config:get output
- #3139: @josegonzalez Add ability to initialize a git repository out of band
- #3111: @josegonzalez Upgrade herokuish to 0.4.0
- #3110: @josegonzalez Upgrade herokuish to 0.3.36
- #3106: @znz Remove unnecessary shellcheck disable
- #3098: @josegonzalez Pull herokuish from docker hub when installing via package
- #3100: @josegonzalez Properly handle invalid process type entries during DOKKU_SCALE generation
- #3097: @josegonzalez Update herokuish to 0.3.35

### Documentation

- #3148: @josegonzalez Use consistent terms for domains, apps, and commands
- #3135: @josegonzalez Revert "Clarify that the checks plugin only matches content start"
- #3134: @tomdyson Fix typo in upgrading docs
- #3119: @TomasHubelbauer Link through to the application deployment page after the installation
- #3118: @Tyilo Clarify that the checks plugin only matches content start
- #3113: @ilyapoz Fix proxy management link
- #3112: @josegonzalez Minor doc css fixes
- #3104: @sarendsen Add dokku-limit to plugins documentation
- #3108: @znz Update plugin list output
2018-04-07 17:16:14 -04:00
Jose Diaz-Gonzalez
8d90477d44 fix: add missing hook 2018-04-07 16:39:38 -04:00
Jose Diaz-Gonzalez
eaed0b78cf Merge pull request #3141 from dokku/use-apps-exists
Use apps_exists helper where appropriate
2018-04-07 16:31:29 -04:00
Jose Diaz-Gonzalez
cf6fed82fb Merge pull request #3147 from dokku/ports-set
Create proxy:ports-set call
2018-04-07 15:53:12 -04:00
Jose Diaz-Gonzalez
72f53f9f1b refactor: use apps_exists helper where appropriate
This centralizes the logic around checking if an application exists.
2018-04-07 15:04:51 -04:00
Jose Diaz-Gonzalez
13ffd960d9 feat: create proxy:ports-set call
In some cases, it may be useful to completely override the set ports for a given application - such as on initial deploy when there is no global domain set. This change also further allows us to handle automation in a smoother fashion.
2018-04-07 14:48:18 -04:00
Jose Diaz-Gonzalez
5b4d6dc6eb Merge pull request #3148 from dokku/consistent-voice
Use consistent terms for domains, apps, and commands
2018-04-07 14:22:08 -04:00
Jose Diaz-Gonzalez
b3f7db6d95 Merge pull request #3146 from dokku/fix-non-ubuntu-release
Fix non ubuntu installs
2018-04-07 14:20:48 -04:00
Jose Diaz-Gonzalez
b10bfc62d7 docs: consistently reference dokku.me 2018-04-07 14:19:14 -04:00
Jose Diaz-Gonzalez
85f180d43a docs: consistently reference command instead of subcommand 2018-04-07 14:16:04 -04:00
Jose Diaz-Gonzalez
d65cea7d47 docs: consistently reference node-js-app in the documentation 2018-04-07 14:13:55 -04:00
Jose Diaz-Gonzalez
dae4c211f2 fix: correct version for scheduler-docker-local plugin 2018-04-07 13:31:48 -04:00
Jose Diaz-Gonzalez
7e84725b55 fix: drop unsupported bullseye 2018-04-07 13:31:29 -04:00
Jose Diaz-Gonzalez
c7004c3ff9 feat: update docs to ensure devs always install from a real deb repo 2018-04-07 13:18:20 -04:00
Jose Diaz-Gonzalez
8cec6ee318 fix: always reference trusty as default
It is currently where we run CI, so I trust - heh - that as a default more than anything else
2018-04-07 13:17:34 -04:00
Jose Diaz-Gonzalez
83c39cee30 chore: drop unused make targets 2018-04-07 13:05:55 -04:00
Jose Diaz-Gonzalez
7661116858 fix: ensure we handle all ubuntu pushes 2018-04-07 13:05:43 -04:00
Jose Diaz-Gonzalez
2bf67dff96 chore: fix shellcheck 2018-04-07 13:03:12 -04:00
Jose Diaz-Gonzalez
4078995eeb fix: cleanup release process for non-ubuntu systems 2018-04-07 12:59:18 -04:00
Jose Diaz-Gonzalez
a9e8890fe1 Merge pull request #3145 from dokku/report-trigger
Add report trigger
2018-04-07 09:38:15 -04:00
Jose Diaz-Gonzalez
313c41e2d1 docs: update ISSUE_TEMPLATE 2018-04-07 04:50:52 -04:00
Jose Diaz-Gonzalez
4aac1fd936 feat: add report trigger
This allows users to quickly show the state of any configured application, as well as the state of their server. In doing so, we make it easy for them to provide information necessary for debugging in a single command.
2018-04-07 04:49:21 -04:00
Jose Diaz-Gonzalez
09fddd11c4 Merge pull request #3144 from dokku/3142-increase-curl-timeouts
Increase curl max timeout to 600 seconds (10 minutes)
2018-04-07 02:58:37 -04:00
Jose Diaz-Gonzalez
a21761d48d feat: indent report output 2018-04-07 01:35:16 -04:00
Jose Diaz-Gonzalez
c90486547f feat: increase curl max timeout to 600 seconds (10 minutes)
Closes #3142
2018-04-07 01:09:19 -04:00
Jose Diaz-Gonzalez
69ce54626a Merge pull request #3109 from dokku/scheduler
Refactor container scheduling into it's own plugin
2018-04-07 00:23:56 -04:00
Jose Diaz-Gonzalez
3ca8f3c3dc docs: add documentation on the docker-local scheduler 2018-04-07 00:21:06 -04:00
Jose Diaz-Gonzalez
39d6bb554a chore: standardize on app 2018-04-07 00:08:30 -04:00
Jose Diaz-Gonzalez
a95a69e6fc fix: ensure all the scheduler hooks are output in event logs 2018-04-07 00:07:18 -04:00
Jose Diaz-Gonzalez
94fcabea15 feat: properly document all new plugin triggers 2018-04-07 00:05:30 -04:00
Jose Diaz-Gonzalez
e8972ff5a0 scratch 2018-04-06 23:18:00 -04:00
Jose Diaz-Gonzalez
78503ed178 feat: handle case where old, renamed containers may still be running during ps:restore 2018-04-06 22:53:02 -04:00
Jose Diaz-Gonzalez
867e3317aa chore: minor cleanup to container and argument handling 2018-04-06 22:53:02 -04:00
Jose Diaz-Gonzalez
85b00385a4 feat: implement docker-local cleanup hook 2018-04-06 22:53:02 -04:00
Jose Diaz-Gonzalez
c621b3ed69 chore: drop unused function 2018-04-06 22:53:02 -04:00
Jose Diaz-Gonzalez
894984a002 hack: temp-fix for renames 2018-04-06 22:53:02 -04:00
Jose Diaz-Gonzalez
b92dc14b68 feat: add ability to copy a single plugin over 2018-04-06 22:53:02 -04:00
Jose Diaz-Gonzalez
00f4fa0aed refactor: move pre-deploy to scheduler-docker-local plugin 2018-04-06 22:53:02 -04:00
Jose Diaz-Gonzalez
d6e474f451 feat: move check-deploy to scheduler-docker-local plugin 2018-04-06 22:53:02 -04:00
Jose Diaz-Gonzalez
0b9d4b2580 feat: refer to container as dead instead of missing when inspect fails 2018-04-06 22:53:02 -04:00
Jose Diaz-Gonzalez
a8d42ea8be feat: use is_container_status everywhere 2018-04-06 22:53:02 -04:00
Jose Diaz-Gonzalez
7a6d771689 fix: add missing source 2018-04-06 22:53:02 -04:00
Jose Diaz-Gonzalez
3f1de1fd10 refactor: drop all application-related docker code from apps plugin 2018-04-06 22:53:02 -04:00
Jose Diaz-Gonzalez
46f912659f fix: make triggers executable 2018-04-06 22:53:02 -04:00
Jose Diaz-Gonzalez
06a5ac9fc7 refactor: move docker-related commands from tags plugin into scheduler-docker-local plugin 2018-04-06 22:53:02 -04:00
Jose Diaz-Gonzalez
8474c72a10 refactor: move container stopping into new scheduler-stop plugin trigger 2018-04-06 22:53:02 -04:00
Jose Diaz-Gonzalez
da1ea2dda8 refactor: drop unmaintained ls subcommand
The correct way to handle getting the status should be ps:report.

Also cleaned up an issue where ps:report failed to catch errors for non-running containers.
2018-04-06 22:53:02 -04:00
Jose Diaz-Gonzalez
50a98db8e6 refactor: move container file cleanup/renames to scheduler-docker-local plugin 2018-04-06 22:53:02 -04:00
Jose Diaz-Gonzalez
331d58c62b fix: trigger must be executable 2018-04-06 22:53:02 -04:00
Jose Diaz-Gonzalez
5cada188d4 feat: move deploy logic into scheduler-docker-local plugin 2018-04-06 22:53:02 -04:00
Jose Diaz-Gonzalez
56b89ad07a feat: implement run command in scheduler-docker-local plugin 2018-04-06 22:53:02 -04:00
Jose Diaz-Gonzalez
b01d9e9a87 Merge pull request #3107 from znz/remove-unused-password
Remove unused password
2018-04-03 11:23:10 -04:00
Jose Diaz-Gonzalez
293b7fd482 Merge pull request #3095 from dokku/2823-proxy-env-vars
Migrate env for NGINX_* to PROXY_*
2018-04-03 10:27:09 -04:00
Jose Diaz-Gonzalez
52bb7c1c6a Merge pull request #3140 from dokku/josegonzalez-patch-1
feat: add newline to config:get output
2018-04-02 01:41:23 -04:00
Jose Diaz-Gonzalez
cf45ccb040 feat: ignore shellcheck SC2191 2018-04-02 00:24:43 -04:00
Jose Diaz-Gonzalez
f48a6e1834 fix: remove local use in install hook 2018-04-02 00:24:43 -04:00
Alexis Tyler
61f1060c69 fix old env being passed 2018-04-02 00:24:43 -04:00
Alexis Tyler
f054b30086 fix missing function 2018-04-02 00:24:43 -04:00
Alexis Tyler
71bc198cec inline nginx migrate function 2018-04-02 00:24:43 -04:00
Alexis Tyler
dc0404dbf1 add better logging to nginx migrate and fix indentation 2018-04-02 00:24:43 -04:00
Alexis Tyler
d3c9e80fcb deprecate usage of NGINX_* in custom config 2018-04-02 00:24:43 -04:00
Alexis Tyler
85a7956876 add last PROXY conversions 2018-04-02 00:24:43 -04:00
Alexis Tyler
4c3a0801f7 fix review and switch DOKKU_NGINX to DOKKU_PROXY in scripts/docs 2018-04-02 00:24:43 -04:00
Alexis Tyler
7095eac052 migrate env for NGINX_* to PROXY_* 2018-04-02 00:24:43 -04:00
Jose Diaz-Gonzalez
2165686059 feat: add newline to config:get output
Closes #3121
2018-04-02 00:13:26 -04:00
Jose Diaz-Gonzalez
3d4d82ff4e Merge pull request #3139 from dokku/git-initialize
feat: add ability to initialize a git repository out of band
2018-04-02 00:11:43 -04:00
Jose Diaz-Gonzalez
83f320ac8e feat: add ability to initialize a git repository out of band
This is useful in contexts where the repository directory may be created and interacted with via git-http-backend or other methods of updating a repository.
2018-04-02 00:11:32 -04:00
Jose Diaz-Gonzalez
72674e5c6c Merge pull request #3138 from dokku/fix-etc-default
fix: use correct path for /etc/default file
2018-04-01 17:54:33 -04:00
Jose Diaz-Gonzalez
c352f463f7 fix: use correct path for /etc/default file
/etc/defaults was an invalid path.
2018-04-01 17:48:08 -04:00
Jose Diaz-Gonzalez
db5b077354 Merge pull request #3137 from dokku/fix-empty-rev-env-var
fix: ensure we can disable setting the rev-env-var
2018-03-31 12:18:54 -04:00
Jose Diaz-Gonzalez
23c25a44ec fix: ensure we can disable setting the rev-env-var 2018-03-31 04:30:15 -04:00
Jose Diaz-Gonzalez
0d5a77fcd6 Merge pull request #3114 from dokku/dokku-git-rev
Enhanced core git plugin
2018-03-31 03:42:49 -04:00
Jose Diaz-Gonzalez
d67e883e13 feat: flesh out git plugin further
- add `report` and `set` subcommands to the git plugin
- move configuring the DOKKU_DEPLOY_BRANCH to the git plugin
- implement configurable GIT_REV support
- migrate DOKKU_DEPLOY_BRANCH settings
- add a golang-compatible, shell based method of setting plugin configuration variables

Deprecates the community dokku-git-rev plugin.

Closes #2621
Refs dokku-community/dokku-git-rev#9
2018-03-31 03:25:03 -04:00
Jose Diaz-Gonzalez
0d1594e6fb Merge pull request #3135 from dokku/revert-3118-patch-1
Revert "Clarify that the checks plugin only matches content start"
2018-03-28 08:57:52 -04:00
Jose Diaz-Gonzalez
e055d6876e Revert "Clarify that the checks plugin only matches content start" 2018-03-28 08:57:34 -04:00
Jose Diaz-Gonzalez
42c4d7f338 Merge pull request #3134 from tomdyson/patch-1
Fix typo in upgrading docs
2018-03-28 08:51:36 -04:00
Tom Dyson
e4e7c91767 Fix typo in upgrading docs
it's "its" not "it's".
2018-03-28 11:57:44 +01:00
Mary Kate Fain
2cfcea3479 Updated help text on config:set to have commands in working order (#3132) 2018-03-27 21:33:03 -05:00
Jose Diaz-Gonzalez
b4cf7abcca Merge pull request #3131 from axilleas/capitalize-named-containers
Capitalize log sentence when renaming containers
2018-03-26 12:03:21 -04:00
Achilleas Pipinellis
da0041299b Capitalize log sentence when renaming containers 2018-03-26 13:12:58 +02:00
Jose Diaz-Gonzalez
80eb3bf8b9 Merge pull request #3128 from Modicrumb/modicrumb-3125
Changes to Dokku
2018-03-23 16:57:20 -04:00
Richard Sacco
7a4ff80525 changes to vagrantfile to make sure bash file works out of the box on windows 2018-03-23 13:18:40 -07:00
Richard Sacco
8a1ab4005d Changes to Dokku
fixes windows vagrant installation
2018-03-21 09:19:21 -07:00
Jose Diaz-Gonzalez
275b6e70cf Merge pull request #3119 from TomasHubelbauer/patch-1
Link through to the application deployment page after the installation
2018-03-15 09:40:02 -04:00
Tomáš Hübelbauer
f2693ec536 Link through to the application deployment page after the installation 2018-03-15 10:42:39 +01:00
Jose Diaz-Gonzalez
89584907f2 Merge pull request #3118 from Tyilo/patch-1
docs: CHECKS only matches start of content
2018-03-14 14:43:44 -04:00
Asger Hautop Drewsen
b31895baa9 docs: CHECKS only matches start of content
Right?
2018-03-14 18:53:06 +01:00
Jose Diaz-Gonzalez
776226d0d8 Merge pull request #3113 from ilyapoz/patch-1
Fix proxy management link
2018-03-11 06:32:58 -04:00
Ilia Pozhilov
be2cd9acd2 Fix proxy management link 2018-03-11 13:28:21 +03:00
Jose Diaz-Gonzalez
550dbef8b0 Merge pull request #3111 from dokku/josegonzalez-patch-1
feat: upgrade herokuish to 0.4.0
2018-03-11 00:48:03 -05:00
Jose Diaz-Gonzalez
a2d3a6087c Merge pull request #3112 from dokku/minor-doc-css-fixes
Minor doc css fixes
2018-03-11 00:45:25 -05:00
Jose Diaz-Gonzalez
e794568ae5 docs: use ems for font sizes to improve zoom 2018-03-11 00:34:38 -05:00
Jose Diaz-Gonzalez
b4663e2034 docs: add closing tags as necessary 2018-03-11 00:33:25 -05:00
Jose Diaz-Gonzalez
c94b938b10 docs: add proper warning styling
[ci skip]
2018-03-11 00:06:34 -05:00
Jose Diaz-Gonzalez
11f8cdf29a docs: set correct header 2018-03-11 00:04:07 -05:00
Jose Diaz-Gonzalez
47dff5b2e8 feat: upgrade herokuish to 0.4.0 2018-03-10 21:05:53 -05:00
Jose Diaz-Gonzalez
65540b3417 Merge pull request #3110 from dokku/josegonzalez-patch-1
Upgrade herokuish to 0.3.36
2018-03-10 21:05:24 -05:00
Jose Diaz-Gonzalez
eba3f71ced feat: upgrade herokuish to 0.3.36 2018-03-10 20:13:35 -05:00
Jose Diaz-Gonzalez
330b826d39 Merge pull request #3104 from sarendsen/patch-1
Add dokku-limit to plugins documentation
2018-03-10 18:06:19 -05:00
Jose Diaz-Gonzalez
42ab9ec39f Merge pull request #3103 from dokku/consolidate-vhost-references
Move all vhost related functions to the domains plugin
2018-03-08 09:48:38 -05:00
Jose Diaz-Gonzalez
3e1649a8a7 Merge pull request #3105 from znz/follow-deploy-source
Follow renaming from deploy-method to deploy-source
2018-03-08 09:43:09 -05:00
Jose Diaz-Gonzalez
0e4b7d7e7c Merge pull request #3106 from znz/remove-unnecessary-shellcheck-disable
Remove unnecessary shellcheck disable
2018-03-08 09:42:44 -05:00
Jose Diaz-Gonzalez
afe1d715e1 Merge pull request #3108 from znz/update-plugin-list
Update plugin list [ci skip]
2018-03-08 09:42:09 -05:00
Kazuhiro NISHIYAMA
4e7c325292 Update plugin list [ci skip] 2018-03-08 22:45:51 +09:00
Kazuhiro NISHIYAMA
f476a12226 Remove unused password 2018-03-08 22:42:13 +09:00
Kazuhiro NISHIYAMA
c8daf2ac5b Remove unnecessary shellcheck disable
[ci skip]
2018-03-08 22:41:00 +09:00
Kazuhiro NISHIYAMA
e645336640 Follow renaming from deploy-method to deploy-source 2018-03-08 22:39:16 +09:00
Sjoerd Arendsen
bd2948be6d Add dokku-limit to plugins.md 2018-03-08 13:57:13 +01:00
Jose Diaz-Gonzalez
8c9a1ea995 Merge pull request #3098 from dokku/2828-pull-herokuish
Pull herokuish from docker hub when installing via package
2018-03-08 00:49:22 -05:00
Jose Diaz-Gonzalez
512878f629 Merge pull request #3100 from dokku/2991-skip-merge-conflicts
Properly handle invalid process type entries during DOKKU_SCALE generation
2018-03-08 00:48:35 -05:00
Jose Diaz-Gonzalez
eb6872d533 Merge pull request #3101 from dokku/josegonzalez-patch-1
Handle stopped nginx during debian installation
2018-03-08 00:48:07 -05:00
Jose Diaz-Gonzalez
212ef01f7a fix: revert reload and start commands 2018-03-07 23:43:40 -05:00
Jose Diaz-Gonzalez
b417508c98 fix: handle stopped nginx during debian installation
Closes #3019
2018-03-07 23:32:52 -05:00
Jose Diaz-Gonzalez
71b578bf10 fix: Properly handle invalid process type entries during DOKKU_SCALE generation
Closes #2991
2018-03-07 21:48:20 -05:00
Jose Diaz-Gonzalez
510b039e07 Merge pull request #3097 from dokku/update-herokuish
feat: update herokuish to 0.3.35
2018-03-06 11:32:07 -05:00
Jose Diaz-Gonzalez
2e793fde8e Release 0.11.6
# History

## 0.11.6

### Bug Fixes

- #3091: @josegonzalez Properly trigger tar-based deploys on git-deployed repositories
- #3076: @Kjwon15 Prune worktree after build
- #3090: @josegonzalez Ensure all plugin triggers have docs and events integration
- #3089: @josegonzalez Use a longer password for self-signed certificates

### New Features

- #2950: @adelq Add configuration option to disable automatic app creation
- #3093: @josegonzalez Add subcommands to allow app locking and unlocking
- #3092: @josegonzalez Add support for configuring the app shell

### Documentation

- #3096: @josegonzalez docs: Document how to check on a running dokku-installer
2018-03-06 11:24:36 -05:00
Jose Diaz-Gonzalez
8844c2ab67 feat: pull herokuish from docker hub
This removes the ability to support http proxy directly, but fixes issues where users may not
be using exactly the same herokuish as we expect.

Closes #2828

[ci skip]
2018-03-06 07:15:49 -05:00
Jose Diaz-Gonzalez
0d3a64c4b9 feat: update herokuish to 0.3.35 2018-03-06 06:47:37 -05:00
Jose Diaz-Gonzalez
7a0f527336 Merge pull request #3096 from dokku/2559-dokku-installer
docs: Document how to check on a running dokku-installer
2018-03-06 06:43:20 -05:00
Jose Diaz-Gonzalez
0b14c2b541 docs: Document how to check on a running dokku-installer
Closes #2559
[ci skip]
2018-03-06 06:43:02 -05:00
Jose Diaz-Gonzalez
527515f1a0 Merge pull request #2950 from adelq/disable-app-autocreation
Add configuration option to disable automatic app creation
2018-03-06 01:54:14 -05:00
Jose Diaz-Gonzalez
5eb95dd6ab fix: correct tests by moving to correct file 2018-03-06 01:14:55 -05:00
Jose Diaz-Gonzalez
fa3755454a fix: unset global 2018-03-06 00:27:48 -05:00
Jose Diaz-Gonzalez
40b0bdd6e8 fix: ensure we call apps_create at all proper locations 2018-03-05 23:47:10 -05:00
Jose Diaz-Gonzalez
cc0687ec0f fix: compare the env var to string true, not boolean true 2018-03-05 23:01:13 -05:00
Adel Qalieh
b5ecdfc0c5 fix: set global config key in tests 2018-03-05 23:01:13 -05:00
Jose Diaz-Gonzalez
db7cc94939 fix: ensure config_get capture exits 0 2018-03-05 23:01:13 -05:00
Adel Qalieh
86f917db79 Add configuration option to disable automatic app creation
Fixes #2808
2018-03-05 23:01:13 -05:00
Jose Diaz-Gonzalez
e9638a4d92 Merge pull request #3093 from dokku/2883-lock-unlock-subcommands
Add subcommands to allow app locking and unlocking
2018-03-04 01:56:54 -05:00
Jose Diaz-Gonzalez
165b6ff46f feat: add subcommands to allow app locking and unlocking
Unlocking an app will not stop running deploys, so users may need to clean up. However, it is useful for deploys that fail in unusual ways that cause the lock to stay around.

Closes #2883
2018-03-04 01:45:42 -05:00
Jose Diaz-Gonzalez
bed573ebe8 fix: add missing source 2018-03-03 22:53:24 -05:00
Jose Diaz-Gonzalez
7917072941 Merge pull request #3092 from dokku/configurable-shell
Add support for configuring the app shell
2018-03-03 22:48:13 -05:00
Jose Diaz-Gonzalez
c53ebb66d0 feat: add support for configuring the app shell
This allows developers to change the shell from /bin/bash to any other when executing
`dokku enter` or pre/post deployment tasks. Ideally we could detect the shells available,
but that is slow and potentially error prone.

Closes #2572
2018-03-03 22:11:02 -05:00
Jose Diaz-Gonzalez
770a8f8812 Merge pull request #3091 from dokku/3047-detect-deploy-method
Properly trigger tar-based deploys on git-deployed repositories
2018-03-03 21:36:11 -05:00
Jose Diaz-Gonzalez
c3dba49007 fix: pass in empty string for stdin 2018-03-03 20:54:33 -05:00
Jose Diaz-Gonzalez
9a1dd41e9f refactor: rename to deploy-source 2018-03-03 19:11:49 -05:00
Jose Diaz-Gonzalez
726c1571eb fix: Declare and assign separately to avoid masking return values. 2018-03-03 18:33:16 -05:00
Jose Diaz-Gonzalez
2b0d34d0db fix: do not trigger git builds when calling tar:from
Closes #3047
2018-03-03 18:30:17 -05:00
Jose Diaz-Gonzalez
ed4aa60420 Merge pull request #3076 from Kjwon15/prune-worktree
Prune worktree after build
2018-03-03 18:25:32 -05:00
Jose Diaz-Gonzalez
c9d9750afe feat: add a new plugin trigger for detecting what the current deployment method is
This is currently used solely for reporting.

Closes #3047
2018-03-03 18:16:50 -05:00
Jose Diaz-Gonzalez
be79060d7e fix: declare properties before they are used 2018-03-03 18:00:01 -05:00
Jose Diaz-Gonzalez
4891599d13 Merge pull request #3090 from dokku/ensure-events
Ensure all plugin triggers have docs and events integration
2018-03-03 17:59:11 -05:00
Jose Diaz-Gonzalez
63616796cb docs: add missing docs for plugin triggers 2018-03-03 17:58:04 -05:00
Jose Diaz-Gonzalez
81feac7617 docs: reorganize documentation page 2018-03-03 17:57:52 -05:00
Jose Diaz-Gonzalez
9e6a099735 fix: remove unused trigger 2018-03-03 17:57:34 -05:00
Jose Diaz-Gonzalez
eb0f49f08c docs: cleanup events documentation 2018-03-03 17:50:26 -05:00
Jose Diaz-Gonzalez
15747612cd feat: sort list of events 2018-03-03 17:50:14 -05:00
Jose Diaz-Gonzalez
25982e961d docs: remove event that is no longer triggered 2018-03-03 17:50:08 -05:00
Jose Diaz-Gonzalez
4b3de76f94 fix: add missing events 2018-03-03 17:49:55 -05:00
Jose Diaz-Gonzalez
3f1fe17977 Merge pull request #3089 from dokku/3084-self-signed-cert-pass
Use a longer password for self-signed certificates
2018-03-03 15:36:46 -05:00
Jose Diaz-Gonzalez
6d91a32f3d fix: use a longer password for self-signed certificates
Closes #3084
2018-03-03 14:58:33 -05:00
kjwon15
af19e5e453 Prune git worktree immediately 2018-03-04 03:59:30 +09:00
kjwon15
1025c7679f Fix trap
Last trap will exec.
2018-03-04 03:57:08 +09:00
kjwon15
12efcd02b1 Prune worktree after build 2018-03-04 03:57:08 +09:00
Jose Diaz-Gonzalez
34dda8917b Release 0.11.5
# History

## 0.11.5

### Bug Fixes

- #3088: @josegonzalez Silence port retrieval stderr
- #3086: @josegonzalez Fix help output for golang plugins
- #3079: @josegonzalez Move container status exclusively to ps plugin

### New Features

- #3085: @josegonzalez Add support for checking if an application exists
- #3032: @josegonzalez Add support for arbitrary ubuntu versions
- #3074: @josegonzalez Add the ability to disable ANSI prefixes via DOKKU_DISABLE_ANSI_PREFIX_REMOVAL
- #3083: @josegonzalez Source /etc/defaults/dokku if available

### Documentation

- #2958: @silverfix Add tutorial for running Dokku on an external volume
- #3082: @josegonzalez Switch from Gratipay to Patreon
- #3081: @josegonzalez Add docs for switching between deployment methodologies
2018-03-02 11:19:13 -05:00
Jose Diaz-Gonzalez
e3cca57762 Merge pull request #3088 from dokku/silence-port-output
Silence port retrieval stderr
2018-03-02 11:11:49 -05:00
Jose Diaz-Gonzalez
3d7f03611f feat: silence port retrieval stderr
This is completely ignored for the purposes of this port retrieval, so it only makes it looks like Dokku is triggering errors.
2018-03-02 02:38:32 -05:00
Jose Diaz-Gonzalez
1c62a055d3 Merge pull request #3086 from dokku/fix-golang-help-output
Fix help output for golang plugins
2018-02-28 04:15:04 -05:00
Jose Diaz-Gonzalez
1201b05dfa fix: ignore a few files in the network plugin 2018-02-28 03:23:50 -05:00
Jose Diaz-Gonzalez
6d43931e17 fix: properly set help output for golang applications
Closes #3007
2018-02-28 03:22:00 -05:00
Jose Diaz-Gonzalez
b2ca01eea0 Merge pull request #3085 from dokku/app-clone-enhancements
feat: add support for checking if an application exists
2018-02-28 03:03:10 -05:00
Jose Diaz-Gonzalez
399073f77b feat: add support for checking if an application exists
This is useful for creating review applications in CI/CD pipelines.
2018-02-28 02:27:29 -05:00
Jose Diaz-Gonzalez
86a0ae1dde Merge pull request #3032 from dokku/2263-1604-support
Add support for arbitrary ubuntu versions
2018-02-24 18:03:39 -05:00
Jose Diaz-Gonzalez
745a5b1e45 Merge pull request #3074 from dokku/2644-conditional-ansi-sequences
Add the ability to disable ANSI prefixes via DOKKU_DISABLE_ANSI_PREFIX_REMOVAL
2018-02-24 17:54:19 -05:00
Jose Diaz-Gonzalez
9641aa88e7 Merge pull request #3083 from dokku/2958-etc-defaults
feat: source /etc/defaults/dokku if available
2018-02-24 17:50:08 -05:00
Jose Diaz-Gonzalez
5b683ec4af Merge pull request #2958 from silverfix/master
Add tutorial for running Dokku on an external volume
2018-02-24 17:24:45 -05:00
Jose Diaz-Gonzalez
2f5ed8c591 Rename docs/advanced-usage/run-on-external-volume.md to docs/community/tutorials/run-on-external-volume.md
[ci skip]
2018-02-24 17:23:59 -05:00
Jose Diaz-Gonzalez
748c43fcfd feat: create a community tutorials section
[ci skip]
2018-02-24 17:23:40 -05:00
Jose Diaz-Gonzalez
5242eeeb86 feat: source /etc/defaults/dokku if available
This allows users to override - at a top-level - the DOKKU_ROOT, DOKKU_LIB_ROOT, and other
configuration variables. If specified, this should begin to enable users to move their
Dokku installations to mounted drives.

Note that items installed from packages may not respect these paths, so further work may be in order.

Closes #2958
2018-02-24 16:52:04 -05:00
Jose Diaz-Gonzalez
d80a280fc2 Merge pull request #3082 from dokku/3037-patreon
Switch from Gratipay to Patreon
2018-02-24 16:06:30 -05:00
Jose Diaz-Gonzalez
227606d94a docs: switch to patreon
No idea how we'll disburse any income, but here it is by popular demand.

Closes #3037

[ci skip]
2018-02-24 16:05:17 -05:00
Jose Diaz-Gonzalez
21bdfa0e43 Merge pull request #3081 from dokku/2819-deploy-switching
Add docs for switching between deployment methodologies
2018-02-24 14:58:55 -05:00
Jose Diaz-Gonzalez
8a29f63f73 docs: add docs for switching between deployment methodologies
Closes #2819

[ci skip]
2018-02-24 14:57:19 -05:00
Jose Diaz-Gonzalez
bf84f13938 refactor: move all vhost related functions to the domains plugin
These should never have been in common, and more directly relate to domain handling than anything else.

As this is a BC-break, merging will need to wait until the next minor.
2018-02-24 14:52:06 -05:00
Jose Diaz-Gonzalez
aaa55802b7 Merge pull request #3079 from dokku/refactor-app-status
fix: move container status exclusively to ps plugin
2018-02-24 14:24:27 -05:00
Jose Diaz-Gonzalez
cd674d3cb3 fix: move container status exclusively to ps plugin
This information didn't belong in the apps plugin and was incomplete.

Also set the container status to dead when it is not detected as running.
2018-02-24 03:03:55 -05:00
Jose Diaz-Gonzalez
376284381e Release 0.11.4
# History

## 0.11.4

### Bug Fixes

- #3071: @josegonzalez Do not grab restart policies if the deploy phase cannot be read
- #3065: @josegonzalez Check if dokkurc files are readable before attempting to source
- #3066: @josegonzalez Validate that all application names are valid domain names
- #3052: @alexquick Remove bad config keys on load from app/global envfiles

### New Features

- #3073: @josegonzalez Add support for rhel
- #3039: @josegonzalez Enhance security-related upgrade process
- #3038: @shrmnk Add ps:stopall subcommand
- #3055: @michaelshobbs Update to herokuish v0.3.34
- #3045: @jcrben Remove nginx configuration files on debian purge

### Documentation

- #3072: @josegonzalez Remove all references to VHOST files from documentation
- #3069: @josegonzalez Remove potentially bad nginx template examples
- #3059: @lwm Add note for runtime host configuration for checks.
- #3041: @jcrben Point to unattended install instructions
- #3053: @mimischi Add plugin to manage Dockerfile location to documentation
- #3062: @shannara Change help run command be more explicit
- #3034: @znz Fix a typo in golang config.go source
- #3061: @tomdyson Fix plugin-triggers docs typo
- #3056: @raine Fix typo in config help output
- #3044: @takuti Fix links to port-management
- #3042: @josegonzalez Improve documentation around port handling.
2018-02-24 02:30:20 -05:00
Jose Diaz-Gonzalez
7d8c80f0cc feat: Add the ability to disable ANSI prefixes via DOKKU_DISABLE_ANSI_PREFIX_REMOVAL
To disable the removal, set the value of this variable to `true`.

Closes #2644
2018-02-19 21:33:10 -05:00
Jose Diaz-Gonzalez
46d63dfd0c Merge pull request #3073 from dokku/3046-rhel-support
feat: add support for rhel
2018-02-19 15:26:25 -05:00
Jose Diaz-Gonzalez
e1d1135ef1 fix: ensure the tar plugin also has the ansi sed call 2018-02-19 14:45:18 -05:00
Jose Diaz-Gonzalez
2271badaf5 feat: add support for rhel
The centos rpm packages should be installable on centos once this is merged and released. However, Dokku will not maintain an Rhel-specific repository as there is no way for us to feasibly test it.

Closes #3046
2018-02-19 14:31:17 -05:00
Jose Diaz-Gonzalez
b5e2b82248 Merge pull request #3072 from dokku/3064-remove-vhosts-references
docs: Remove all references to VHOST files from documentation
2018-02-19 14:28:25 -05:00
Jose Diaz-Gonzalez
43592174e6 docs: Remove all references to VHOST files from documentation
Users should never be in a position where they need to manually edit files managed by Dokku, and should be pushed to using the `domains` plugin where necessary.

Closes #3064

[ci skip]
2018-02-19 14:27:50 -05:00
Jose Diaz-Gonzalez
7fd1c7f89d fix: remove extra colon 2018-02-19 14:22:04 -05:00
Jose Diaz-Gonzalez
930094b45e chore: drop bionic 2018-02-19 14:22:04 -05:00
Jose Diaz-Gonzalez
1429c2d174 docs: add all supported ubuntu versions 2018-02-19 14:22:04 -05:00
Jose Diaz-Gonzalez
3a8ecff3ca feat: add support for pushing packages to all known ubuntu versions 2018-02-19 14:22:04 -05:00
Jose Diaz-Gonzalez
251b781ecd feat: make deb installation aware of later ubuntu versions
Refs #2263
2018-02-19 14:22:04 -05:00
Jose Diaz-Gonzalez
3491d9eff2 docs: reference the correct os version for installing the PPA
Refs #2263
2018-02-19 14:22:04 -05:00
Jose Diaz-Gonzalez
d43f9f730f feat: support any ubuntu version
Refs #2263
2018-02-19 14:22:04 -05:00
Jose Diaz-Gonzalez
a55fb34a77 fix: allow bootstrap.sh to function properly against version 1.0.0+
Refs #2263
2018-02-19 14:22:04 -05:00
Jose Diaz-Gonzalez
c4ba380627 Merge pull request #3071 from dokku/josegonzalez-patch-1
Do not grab restart policies if the deploy phase cannot be read
2018-02-19 14:21:13 -05:00
Jose Diaz-Gonzalez
9b1849e816 Merge pull request #3039 from dokku/1089-secure-updates
Enhance security-related upgrade process
2018-02-19 14:20:54 -05:00
Jose Diaz-Gonzalez
98a20e36cd feat: build the dokku-update package
Releases can be made by running `contrib/release-dokku-update`
2018-02-19 13:55:27 -05:00
Jose Diaz-Gonzalez
cad4cec050 fix: do not grab restart policies if the deploy phase cannot be read 2018-02-18 23:00:41 -05:00
Jose Diaz-Gonzalez
6c76038bfc feat: add dokku-update binary
This binary will be packaged separately from dokku and can be used to keep the system up to date.
2018-02-18 15:12:25 -05:00
Jose Diaz-Gonzalez
54079714c8 feat: allow rebuilding and restarting all applications via parallel 2018-02-17 23:15:15 -05:00
Jose Diaz-Gonzalez
77c63b8d98 fix: do not rebuild an app that has never been deployed 2018-02-17 23:15:15 -05:00
Jose Diaz-Gonzalez
8eb4246040 docs: add notes on patching operating systems for security
Refs #1089
2018-02-17 23:15:15 -05:00
Jose Diaz-Gonzalez
eddd518718 Merge pull request #3065 from dokku/3033-env-sourcing
feat: check if dokkurc files are readable before attempting to source
2018-02-17 23:07:40 -05:00
Jose Diaz-Gonzalez
38e039ab08 Merge pull request #3066 from dokku/3054-validate-app-names
fix: Validate that all application names are valid domain names
2018-02-17 19:19:05 -05:00
Jose Diaz-Gonzalez
16b8f2682b fix: Validate that all application names are valid domain names
Invalid application names will need to be manually cleaned up by the user, and as such this is a bc-break.

Closes #3054
2018-02-17 17:26:06 -05:00
Jose Diaz-Gonzalez
5eddb260f4 Merge pull request #3069 from dokku/josegonzalez-patch-1
Remove potentially bad nginx template examples
2018-02-17 15:57:35 -05:00
Jose Diaz-Gonzalez
cd32180f1a docs: remove potentially bad template examples
These examples do not include _all_ of the contents of the original template. Rather than having to keep them up to date and confuse users when we don't, lets just remove them. The section above contains a link to the current `nginx.conf.sigil` and should be referenced by our users instead.

Closes #3068

[ci skip]
2018-02-17 15:57:14 -05:00
Jose Diaz-Gonzalez
00a3ca856f feat: check if dokkurc files are readable before attempting to source
If the files are unreadable, exit immediately so developers take notice.

Closes #3033
2018-02-13 03:11:37 -05:00
Jose Diaz-Gonzalez
a80bd92f40 Merge pull request #3059 from lwm/host-header-notes
Add note for runtime host configuration for checks.
2018-02-13 02:43:32 -05:00
Jose Diaz-Gonzalez
d8878fdfe2 docs: remove reference to django application and make it a warning
This further clarifies the responsibility of the developer around managing checks in relation to their framework.
2018-02-13 02:38:57 -05:00
Jose Diaz-Gonzalez
124072df95 Merge pull request #3041 from jcrben/unattended-install
Point to unattended install instructions
2018-02-13 01:46:25 -05:00
Jose Diaz-Gonzalez
dbdefd972d Merge pull request #3038 from shrmnk/feature/ps-stopall
Feature: dokku ps:stopall
2018-02-13 01:44:05 -05:00
Jose Diaz-Gonzalez
26c533fde3 Merge pull request #3052 from alexquick/fix-invalid-config
Remove bad config keys on load from app/global envfiles
2018-02-13 01:43:04 -05:00
Jose Diaz-Gonzalez
faf284809b Merge pull request #3053 from mimischi/new-plugin
Add plugin to manage Dockerfile location to documentation
2018-02-13 01:42:38 -05:00
Jose Diaz-Gonzalez
a9927c24e2 Merge pull request #3062 from shannara/refactor-run-help-command
Change help run command be more explicit
2018-02-13 01:36:04 -05:00
Jose Diaz-Gonzalez
ff14323fdc fix: clarify docs on run subcommand
[ci skip]
2018-02-13 01:35:43 -05:00
Jose Diaz-Gonzalez
e7f8aeff8a docs: clarify help output for run subcommand
[ci skip]
2018-02-13 01:35:08 -05:00
Stanislas Leduc
6a9583b176 Change help run command be more explicit 2018-02-12 21:07:30 +01:00
Luke Murphy
2475b9e7ea Add note for runtime host configuration for checks.
Please see https://github.com/dokku/dokku/issues/2159 for motivation.

[ci skip]
2018-02-10 11:59:19 +01:00
Jose Diaz-Gonzalez
fe1275d4e7 Merge pull request #3034 from znz/fix-typo
Fix a typo [ci skip]
2018-02-08 12:00:31 -07:00
Jose Diaz-Gonzalez
236f388aec Merge pull request #3061 from tomdyson/patch-1
Fix plugin-triggers docs typo
2018-02-08 12:00:03 -07:00
Tom Dyson
ee864e4ff8 plugin-triggers docs typo 2018-02-08 18:58:38 +00:00
Jose Diaz-Gonzalez
2c0a7a687e Merge pull request #3056 from raine/patch-1
Fix typo in help output
2018-01-31 17:25:08 -05:00
Raine Virta
a932a421ce Fix typo 2018-02-01 00:21:55 +02:00
Jose Diaz-Gonzalez
6efac356f3 Merge pull request #3055 from dokku/mh/chore/update-herokuish
update to herokuish v0.3.34
2018-01-31 10:15:03 -05:00
Michael Hobbs
ef027c0e5f update to herokuish v0.3.34 2018-01-30 17:58:49 -07:00
Michael Gecht
bc8f2be582 Add dokku-dockerfile plugin to documentation
[ci skip]
2018-01-30 11:01:32 +01:00
Alex Quick
afeb521f07 feature: remove bad config vars from envfiles when loaded
resolves: #3036
2018-01-28 17:19:28 -05:00
Jose Diaz-Gonzalez
22a0ffd98d Merge pull request #3045 from jcrben/debian-postrm-dokku-purge
rm nginx configs on debian purge
2018-01-24 12:43:32 -05:00
Ben Creasy
800fd928ca rm nginx configs on debian purge 2018-01-23 23:21:30 -08:00
Jose Diaz-Gonzalez
e5d473f494 Merge pull request #3044 from takuti/fix-link
Docs: Fix links to port-management
2018-01-22 17:49:07 -05:00
Takuya Kitazawa
ed275d479b Docs: Fix links to port-management 2018-01-23 07:46:19 +09:00
Jose Diaz-Gonzalez
b5c1646b50 docs: these folks are no longer really involved. 2018-01-22 10:08:45 -05:00
Jose Diaz-Gonzalez
c09e102692 Merge pull request #3042 from dokku/port-management-docs
docs: Improve documentation around port handling.
2018-01-21 17:49:53 -05:00
Jose Diaz-Gonzalez
463c5b8120 docs: Improve documentation around port handling.
While there are a number of enhancements we could do to make port handling more seamless, this is a first step towards documenting the various oddities around port management for Docker vs Buildpack deploys.

Refs #2903
Closes #2970

[ci skip]
2018-01-21 17:46:44 -05:00
Ben Creasy
d79a4d1b5c docs: point to unattended install instructions
[ci skip]
2018-01-21 13:09:57 -08:00
Sherman K
57d4c93d2d Disable shellcheck SC1090 2018-01-19 08:36:55 +08:00
Sherman K
30922fc818 Implement improvements from #3039 2018-01-19 08:23:50 +08:00
Sherman K
59ca40f368 Replace docs using manual stopping of all apps with ps:stopall cmd 2018-01-19 00:37:26 +08:00
Sherman K
25bd4c8785 Update relevant docs with ps:stopall 2018-01-19 00:34:39 +08:00
Sherman K
41dd72dd3e Add ps:stopall command to stop all apps 2018-01-19 00:23:31 +08:00
Kazuhiro NISHIYAMA
59abb1c161 Fix a typo [ci skip] 2018-01-16 21:47:19 +09:00
Jose Diaz-Gonzalez
5ee42f876e Release 0.11.3
# History

## 0.11.3

### Bug Fixes

- #3031: @josegonzalez fix: ensure we respect DOKKU_DEPLOY_BRANCH when rebuilding applications

### New Features

- #3028: @josegonzalez Ensure parallel runs properly for non-restorable apps and moreutils parallel
- #3030: @josegonzalez feat: allow changing the system user the properties plugin uses
- #3024: @jcrben Use high-availability pool keyserver during tests
- #3017: @josegonzalez feat: add pre-start trigger for notifying on application start

### Documentation

- #3020: @gliwka Point to docs in the right version
- #3016: @josegonzalez Update nginx template example to use http2 when available
2018-01-12 18:12:27 -05:00
Jose Diaz-Gonzalez
af158d945a Merge pull request #3031 from dokku/3021-custom-branch-ps-rebuild
fix: ensure we respect DOKKU_DEPLOY_BRANCH when rebuilding applications
2018-01-12 16:26:35 -05:00
Jose Diaz-Gonzalez
28c409509c fix: declare DOKKU_DEPLOY_BRANCH 2018-01-12 13:42:41 -05:00
Jose Diaz-Gonzalez
19806636ad fix: ensure we respect DOKKU_DEPLOY_BRANCH when rebuilding applications
Closes #3021
2018-01-12 13:38:36 -05:00
Jose Diaz-Gonzalez
b90bb0cd38 Merge pull request #3028 from dokku/josegonzalez-patch-1
Ensure parallel runs properly for non-restorable apps and moreutils parallel
2018-01-12 06:07:58 -05:00
Jose Diaz-Gonzalez
b83f351a3e Merge pull request #3030 from dokku/system-user
feat: allow changing the system user the properties plugin uses
2018-01-12 05:29:41 -05:00
Jose Diaz-Gonzalez
95243b1757 fix: test was incorrect 2018-01-12 04:42:53 -05:00
Jose Diaz-Gonzalez
b250fe6aeb feat: allow changing the system user the properties plugin uses 2018-01-12 04:23:07 -05:00
Jose Diaz-Gonzalez
7a4ab91ecf fix: skip undeployed apps when parallel is not available 2018-01-12 01:33:29 -05:00
Jose Diaz-Gonzalez
f0ee6288fb feat: ensure we don't try to restore an app that wasn't deployed 2018-01-12 01:12:14 -05:00
Jose Diaz-Gonzalez
7330a849a5 fix: drop will-cite 2018-01-11 22:35:38 -05:00
Jose Diaz-Gonzalez
226a3da87d fix: use correct parameter for APP name 2018-01-11 00:12:41 -05:00
Jose Diaz-Gonzalez
58332d707b fix: ignore correct rule 2018-01-08 04:49:42 -05:00
Jose Diaz-Gonzalez
652530a4b4 fix: ignore shellcheck rule 2018-01-08 04:45:34 -05:00
Jose Diaz-Gonzalez
b6e7fb5839 refactor: ensure parallel runs properly for non-restorable apps and moreutils parallel
Refs #3023
2018-01-08 04:41:26 -05:00
Jose Diaz-Gonzalez
0db55bc6af Merge pull request #3024 from jcrben/update-key-server
[config] use high-availability pool keyserver
2018-01-08 03:13:25 -05:00
Ben Creasy
9fb5dc9759 [config] use high-availability pool keyserver 2017-12-31 13:32:45 -08:00
Jose Diaz-Gonzalez
b4ebd3bd75 Merge pull request #3020 from gliwka/point-to-right-version
Point to docs in the right version
2017-12-20 23:26:44 -05:00
Matthias Gliwka
52b586e8d2 Change subdomain to point to dokku github organization 2017-12-21 05:25:42 +01:00
Matthias Gliwka
cc2ca2aee0 Point to docs in the right version 2017-12-21 05:06:51 +01:00
Jose Diaz-Gonzalez
63bced7679 Merge pull request #3017 from dokku/2713-pre-start-trigger
feat: add pre-start trigger for notifying on application start
2017-12-19 09:24:23 -05:00
Jose Diaz-Gonzalez
76dd0252ee feat: add pre-start trigger for notifying on application start
Closes #2713
2017-12-19 00:55:10 -05:00
Jose Diaz-Gonzalez
ae1b0b3510 Merge pull request #3016 from dokku/josegonzalez-patch-1
Update nginx template example to use http2 when available
2017-12-18 20:22:09 -05:00
Jose Diaz-Gonzalez
693ec111b1 docs: update nginx template example to use http2 when available
Closes #2782
[ci skip]
2017-12-18 20:21:49 -05:00
Jose Diaz-Gonzalez
e10e62b1e9 Release 0.11.2
# History

## 0.11.2

### Bug Fixes

- #3014: @josegonzalez fix: handle case where DOKKU_DOCKERFILE_PORTS is an empty string
- #3013: @alexquick Fix some issues with config/network/repo help output
- #3012: @alexquick Fail when setting/unsetting invalid keys
- #3011: @alexquick Forward output from plugn triggers to user
- #3004: @josegonzalez Return/Exit 1 when an image being deployed is invalid

### Documentation

- #3015: @elia Tiny fixes to triggers documentation
2017-12-18 20:10:09 -05:00
Jose Diaz-Gonzalez
f425e23bdf Merge pull request #3015 from elia/patch-5
Tiny fixes to triggers documentation
2017-12-18 14:25:45 -05:00
Elia Schito
4c86c7bd26 Tiny fixes to triggers documentation
[ci skip]
2017-12-18 19:15:49 +01:00
Jose Diaz-Gonzalez
fa605b6a83 Merge pull request #3014 from dokku/dockerfile-network-ports
fix: handle case where DOKKU_DOCKERFILE_PORTS is an empty string
2017-12-17 00:56:48 -05:00
Jose Diaz-Gonzalez
1f08853fc7 fix: handle case where DOKKU_DOCKERFILE_PORTS is an empty string 2017-12-17 00:20:04 -05:00
Jose Diaz-Gonzalez
40421b32a4 Merge pull request #3013 from alexquick/fix-help
Fix some issues with config/network/repo help output
2017-12-16 23:50:09 -05:00
Jose Diaz-Gonzalez
f3d6190e18 Merge pull request #3012 from alexquick/fix-config-invalid-keys
Fail when setting/unsetting invalid keys
2017-12-16 23:49:53 -05:00
Jose Diaz-Gonzalez
46377071ea Merge pull request #3011 from alexquick/fix-config-restart-output
[config] forward output from plugn triggers to user
2017-12-16 19:35:26 -05:00
Alex Quick
5fbe28f672 [config] stream output of app-restart & post-config-update plugn triggers to stdout/err 2017-12-16 11:32:06 -05:00
Alex Quick
302d82a192 fix indentation for network/repo help 2017-12-15 10:06:45 -05:00
Alex Quick
061ea9bfd7 [config] fix help output
* `dokku:help --all` was getting mangled
* `dokku config:help` wasn't working
2017-12-15 10:06:19 -05:00
Alex Quick
f8e3bdc56b [config] forward output from plugn triggers to user 2017-12-15 09:37:28 -05:00
Alex Quick
92d7e8ce65 [config] let user know if they are unsetting a non-existent config key 2017-12-15 09:22:56 -05:00
Alex Quick
e7faec3e26 [config] fail on setting/unsetting invalid keys 2017-12-15 09:20:18 -05:00
Jose Diaz-Gonzalez
72a847a6f1 Merge pull request #3004 from dokku/2916-fail-on-invalid-image
fix: return/exit 1 when an image being deployed is invalid
2017-12-14 00:21:13 -05:00
Jose Diaz-Gonzalez
0e007a1196 fix: declare and set variables separately 2017-12-13 23:39:04 -05:00
Jose Diaz-Gonzalez
af626a51cc fix: set IMAGE variable correctly 2017-12-13 23:37:14 -05:00
Jose Diaz-Gonzalez
4bb221d89a Release 0.11.1
# History

## 0.11.1

### Bug Fixes

- #3010: @josegonzalez fix: route config_all to the `config` command to fix datastore plugin usage
- #3009: @josegonzalez fix: correct the guard around the config_export call in config_sub
- #3006: @josegonzalez fix: do not allow shadowing of the CACHE_DIR variable
- #3005: @josegonzalez fix: persist users in the dokku group through installations
- #3003: @josegonzalez Fix issues in apps:clone calls
- #3001: @josegonzalez fix: allow applications to begin with numeric values

### New Features

- #3002: @josegonzalez fix: omit redirection of docker build output
- #3000: @josegonzalez fix: remove golang files and triggers directory for packaging
2017-12-13 19:26:46 -05:00
Jose Diaz-Gonzalez
984388d191 Merge pull request #3010 from dokku/josegonzalez-patch-1
fix: route config_all to the `config` command to fix datastore plugin usage
2017-12-13 17:37:56 -05:00
Jose Diaz-Gonzalez
f0ef1daa15 fix: route config_all to the config command 2017-12-13 17:37:29 -05:00
Jose Diaz-Gonzalez
3d065bf35c Update functions 2017-12-13 17:17:10 -05:00
Jose Diaz-Gonzalez
f1c0432375 fix: revert always returning 1 on error in release_and_deploy 2017-12-13 15:54:43 -05:00
Jose Diaz-Gonzalez
21645247fb fix: scope non-zero return on invalid image to just the deploy command 2017-12-13 15:54:19 -05:00
Jose Diaz-Gonzalez
1a350796e5 Merge pull request #3009 from dokku/josegonzalez-patch-1
fix: correct the guard around the config_export call in config_sub
2017-12-13 15:52:16 -05:00
Jose Diaz-Gonzalez
5522cf63f7 fix: revert guard and pass app arg to config_export 2017-12-13 15:46:53 -05:00
Jose Diaz-Gonzalez
52d6143d97 fix: correct the guard around the config_export call in config_sub 2017-12-13 15:39:42 -05:00
Jose Diaz-Gonzalez
0fe5c645d6 Merge pull request #3002 from dokku/josegonzalez-patch-1
fix: omit redirection of docker build output
2017-12-13 10:42:00 -05:00
Jose Diaz-Gonzalez
85d04ee11a Merge pull request #3006 from dokku/2901-cache-dir-shadowing
fix: do not allow shadowing of the CACHE_DIR variable
2017-12-13 10:39:39 -05:00
Jose Diaz-Gonzalez
343c5fb5ca Merge pull request #3005 from dokku/2908-persist-dokku-group
fix: persist users in the dokku group through installations
2017-12-13 10:39:26 -05:00
Jose Diaz-Gonzalez
4ae56cf01c fix: call tags:deploy 2017-12-13 03:16:10 -05:00
Jose Diaz-Gonzalez
8336247cc1 Merge pull request #3003 from dokku/2978-clone-fixes
Fix issues in apps:clone calls
2017-12-13 01:47:57 -05:00
Jose Diaz-Gonzalez
3fe0b56fb8 feat: add test 2017-12-13 01:31:23 -05:00
Jose Diaz-Gonzalez
329e849894 fix: do not allow shadowing of the CACHE_DIR variable
Closes #2901
2017-12-13 01:27:29 -05:00
Jose Diaz-Gonzalez
70cee2df86 fix: persist users in the dokku group through installations
Closes #2908
2017-12-13 01:24:39 -05:00
Jose Diaz-Gonzalez
2a30f45177 fix: return/exit 1 when an image being deployed is invalid
Closes #2916
2017-12-13 01:02:24 -05:00
Jose Diaz-Gonzalez
6528c4511a fix: handle case in ubuntu 16.04 where popd may fail if the dokku user does not have rights to execute in the executing user's $PWD.
Closes #2978
2017-12-13 00:44:27 -05:00
Jose Diaz-Gonzalez
fe6f339890 feat: silence cpio 2017-12-13 00:43:18 -05:00
Jose Diaz-Gonzalez
c46efa54b4 fix: do not copy the cache directory to cloned applications 2017-12-13 00:42:45 -05:00
Jose Diaz-Gonzalez
3ef3f0218f fix: omit redirection of docker build output
[ci skip]
2017-12-12 17:28:50 -05:00
Jose Diaz-Gonzalez
59414fe231 Merge pull request #3001 from dokku/josegonzalez-patch-1
fix: allow applications to begin with numeric values
2017-12-12 13:13:57 -05:00
Jose Diaz-Gonzalez
052a14f13c fix: actually reference second app 2017-12-12 11:25:46 -05:00
Jose Diaz-Gonzalez
050fa7edf3 feat: add test for apps starting with numeric characters 2017-12-12 11:25:16 -05:00
Jose Diaz-Gonzalez
e9db130b38 Merge pull request #3000 from dokku/src-clean
fix: remove golang files and triggers directory for packaging
2017-12-12 11:13:00 -05:00
Jose Diaz-Gonzalez
39aefb95c2 fix: allow applications to begin with numeric values 2017-12-12 11:12:23 -05:00
Jose Diaz-Gonzalez
f1baa1f6a5 fix: remove golang files and triggers directory for packaging 2017-12-12 03:13:07 -05:00
Jose Diaz-Gonzalez
cd9c2d7dbe Release 0.11.0
# History

## 0.11.0

### Bug Fixes

- #2998: @josegonzalez Fix issues in release process
- #2993: @josegonzalez Add config_all alias for plugin usage
- #2972: @buckle2000 Correct typo in docker-options:remove error output
- #2964: @znz Remove unused variable
- #2967: @znz Fix indentation in test file
- #2963: @znz Correct typos in config plugin and remove potential infinite recursion issue
- #2951: @josegonzalez Handle case where the app directory is a symlink
- #2939: @znz Remove unnecessary lines
- #2945: @znz Fix network plugin version
- #2937: @michaelshobbs Strip restart flag from app_user_pre_deploy_trigger
- #2931: @josegonzalez Upgrade git package for CI
- #2928: @silverfix Do not overwrite the VHOST file during installation if it exists
- #2926: @vtavernier Remove leading forward slash from app name in git-upload-pack

### New Features

- #2985: @bitmand Build a custom dhparam file once for nginx and include it as default
- #2974: @josegonzalez Upgrade to herokuish 0.3.33
- #2973: @josegonzalez Allow usage of git 2.13.0+ by unsetting GIT_QUARANTINE_PATH during git worktree usage
- #2971: @miraculixx Add support for older virtualbox versions in official Dokku Vagrantfile
- #2966: @znz Simplify internal config functions to reduce duplication
- #2751: @alexquick Move config plugin to golang
- #2938: @michaelshobbs Upgrade to golang 1.9.1
- #2736: @josegonzalez Implement Network Plugin
- #2929: @michaelshobbs Add codacy config and coverage targets

### Documentation

- #2935: @jcrben Document how to make herokuish optional during the bootstrap installation
- #2982: @agorf Correct typo in user management docs
- #2981: @agorf Correct typos in process management docs
- #2969: @znz Correct comments on network triggers
- #2965: @znz Remove spaces from config subcommand help output to mirror help output of other subcommands
- #2954: @mrname Add vernemq community datastore plugin to docs
- #2944: @axilleas Fix syntax typo in debian installation docs
- #2932: @znz Update code comment to match documentation
- #2933: @znz Fix version number for network binding documentation
2017-12-12 02:52:29 -05:00
Jose Diaz-Gonzalez
2e0939702a fix: properly copy triggers into place 2017-12-12 02:52:22 -05:00
Jose Diaz-Gonzalez
fc4903c1c9 fix: set GOPATH globally 2017-12-12 02:14:19 -05:00
Jose Diaz-Gonzalez
3f408f1304 feat: copy golang binaries into place before usage 2017-12-12 01:49:44 -05:00
Jose Diaz-Gonzalez
e3eab48e4a Merge pull request #2998 from dokku/release-cleanup
Release cleanup
2017-12-12 01:16:14 -05:00
Jose Diaz-Gonzalez
39abbdc5dd fix: ensure the trigger is moved into the correct directory 2017-12-12 00:22:18 -05:00
Jose Diaz-Gonzalez
5d5ede2b85 revert: drop reference to CGO_ENABLED completely 2017-12-12 00:09:36 -05:00
Jose Diaz-Gonzalez
64252b282a hack: ignore libc dependency 2017-12-11 23:58:50 -05:00
Jose Diaz-Gonzalez
b449227467 revert: re-enable system net usage 2017-12-11 23:46:08 -05:00
Jose Diaz-Gonzalez
228eb9ed7a revert: re-enable CGO_ENABLED=0 2017-12-11 23:44:08 -05:00
Jose Diaz-Gonzalez
a999f9d4e5 fix: set the TRIGGERS make variable properly 2017-12-11 23:26:33 -05:00
Jose Diaz-Gonzalez
9b431321fa feat: use the built-in net package instead of linking to system 2017-12-11 23:22:27 -05:00
Jose Diaz-Gonzalez
a96c1d644a fix: turn off CGO for all go builds 2017-12-11 23:22:11 -05:00
Jose Diaz-Gonzalez
6bd6cad8fd refactor: simplify triggers targets 2017-12-11 23:21:14 -05:00
Jose Diaz-Gonzalez
58cc088445 feat: converge upon a more standard Makefile for golang plugins 2017-12-11 23:16:03 -05:00
Jose Diaz-Gonzalez
1d46208ac2 fix: ensure we have a src-clean make target for the config plugin 2017-12-11 23:00:25 -05:00
Jose Diaz-Gonzalez
465c6e9a62 fix: allow lintian to pass on hardening-no-relro 2017-12-11 22:59:38 -05:00
Jose Diaz-Gonzalez
7a8cc2687d fix: ensure we call apt-get update when calling apt-get install 2017-12-11 22:56:34 -05:00
Jose Diaz-Gonzalez
96ad5e8e5d fix: update SSHCOMMAND_URL to v0.7.0 2017-12-11 22:56:12 -05:00
Jose Diaz-Gonzalez
4cc215ea02 Merge pull request #2993 from dokku/josegonzalez-patch-1
fix: add config_all alias for plugin usage
2017-12-02 14:33:10 -05:00
Jose Diaz-Gonzalez
c10c58a1cd Merge pull request #2985 from bitmand/custom_nginx_dhparams
Build a custom dhparam file once for nginx and include it as default
2017-12-02 13:57:06 -05:00
Jose Diaz-Gonzalez
099653ca02 fix: add config_all alias for plugin usage 2017-12-02 13:55:34 -05:00
Lasse Brandt
84a6c6017d Build a custom dhparam file once for nginx and include it as default 2017-11-14 12:55:52 +01:00
Andrea Rabbaglietti
1ddef4183d Update run-on-external-volume.md 2017-11-12 20:11:53 +01:00
Jose Diaz-Gonzalez
9fcd9b0065 Merge pull request #2935 from jcrben/no-herokuish-option
docs: WIP on explaining optional herokuish
2017-11-12 13:33:05 -05:00
Jose Diaz-Gonzalez
dc9ebf867c docs: revise herokuish installation
[ci skio]
2017-11-12 13:28:36 -05:00
Jose Diaz-Gonzalez
3684c10a78 Merge pull request #2974 from dokku/josegonzalez-patch-1
feat: upgrade to herokuish 0.3.33
2017-11-11 14:28:39 -05:00
Jose Diaz-Gonzalez
10492587c2 Merge pull request #2982 from agorf/patch-2
Correct typo in user management docs
2017-11-11 13:51:15 -05:00
Jose Diaz-Gonzalez
bc93007c74 Merge pull request #2981 from agorf/patch-1
Correct typos in process management docs
2017-11-11 13:50:45 -05:00
Angelos Orfanakos
0e91a5bd0b Fix typo in user management docs 2017-11-11 13:35:52 +02:00
Angelos Orfanakos
75c7c2ebf0 Fix typos 2017-11-11 13:21:40 +02:00
Ben Creasy
6c57f1a08b docs: WIP on optional herokuish
[ci skip]
2017-11-09 22:38:22 -08:00
Jose Diaz-Gonzalez
59e5036456 feat: upgrade to herokuish 0.3.33 2017-11-05 16:09:11 -05:00
Jose Diaz-Gonzalez
158f10d321 Merge pull request #2973 from dokku/2796-git-quarantine
feat: allow usage of git 2.13.0+ by unsetting GIT_QUARANTINE_PATH during git worktree usage
2017-11-05 16:07:59 -05:00
Jose Diaz-Gonzalez
4a3047b170 feat: drop pinning of git version 2017-11-05 12:37:42 -05:00
Jose Diaz-Gonzalez
64a1c91b76 feat: allow usage of git 2.13.0+ by unsetting GIT_QUARANTINE_PATH during git worktree usage
Closes #2796
2017-11-05 12:34:47 -05:00
Jose Diaz-Gonzalez
39b879058d Merge pull request #2972 from buckle2000/patch-1
Correct typo in docker-options:remove error output
2017-11-05 12:26:36 -05:00
buckle2000
5ae9067750 Fix typo 2017-11-06 00:48:29 +08:00
Jose Diaz-Gonzalez
2af312ac03 Merge pull request #2971 from miraculixx/fix-2955
Add support for older virtualbox versions in official Dokku Vagrantfile
2017-11-04 13:04:24 -04:00
miraculixx
172bc87f32 resolve #2955 2017-11-04 14:14:02 +01:00
Jose Diaz-Gonzalez
83ef992155 Merge pull request #2969 from znz/fix-comments
Fix comments [ci skip]
2017-11-04 01:25:57 -04:00
Jose Diaz-Gonzalez
0df3f8d12d Merge pull request #2964 from znz/remove-unused
Remove unused variable
2017-11-03 18:08:00 -04:00
Jose Diaz-Gonzalez
23ee740c04 Merge pull request #2968 from znz/use-special-name
Use special name for global
2017-11-03 18:07:31 -04:00
Jose Diaz-Gonzalez
54d731aeee Merge pull request #2965 from znz/remove-spaces
Remove spaces like helps of other subcommands
2017-11-03 18:07:12 -04:00
Jose Diaz-Gonzalez
9481e7031d Merge pull request #2966 from znz/refactoring
Refactoring some codes
2017-11-03 18:07:01 -04:00
Jose Diaz-Gonzalez
70ba60e9e8 Merge pull request #2967 from znz/fix-indent
Fix indent
2017-11-03 18:05:38 -04:00
Jose Diaz-Gonzalez
04a5e8bedf Merge pull request #2963 from znz/fix-typos
Fix typos
2017-11-03 11:26:55 -04:00
Kazuhiro NISHIYAMA
9706f7a298 Fix comments [ci skip]
fix comments of `func main()`
closes #2946
2017-11-03 15:55:18 +09:00
Kazuhiro NISHIYAMA
cdd2b2028e Use special name for global
Use name with `<>` like `<unknown>` to distinguish global env and env of app named global
2017-11-03 13:41:49 +09:00
Kazuhiro NISHIYAMA
3eb7a13006 Fix indent 2017-11-03 13:30:18 +09:00
Kazuhiro NISHIYAMA
71763e18f6 Reduce copying args when global 2017-11-03 13:28:08 +09:00
Kazuhiro NISHIYAMA
e9506e80cb Reduce loading global env 2017-11-03 13:27:23 +09:00
Kazuhiro NISHIYAMA
33a540502a Remove spaces like helps of other subcommands 2017-11-03 12:51:40 +09:00
Kazuhiro NISHIYAMA
b8575a33f5 Remove unused variable 2017-11-03 12:47:30 +09:00
Kazuhiro NISHIYAMA
a3cd6f6e63 Fix typos 2017-11-03 12:42:00 +09:00
Jose Diaz-Gonzalez
85fa7a5bb0 Merge pull request #2751 from alexquick/feature-config-golang
Move config plugin to golang
2017-10-28 20:40:06 -04:00
Andrea Rabbaglietti
72d702a522 Add doc page 'Run Dokku on External Volume' 2017-10-27 14:01:11 +02:00
Alex Quick
90ee5d58c5 [config] use field names in struct literals 2017-10-24 09:12:20 -04:00
Jose Diaz-Gonzalez
ffac858566 Merge pull request #2954 from mrname/adding_vernemq_to_docs
adding vernemq plugin to docs
2017-10-23 16:06:35 -04:00
Justin Crown
0f10c94839 adding vernemq plugin to docs 2017-10-23 11:51:12 -07:00
Jose Diaz-Gonzalez
0581b38adf Merge pull request #2951 from dokku/josegonzalez-patch-1
fix: handle case where the app directory is a symlink
2017-10-22 14:06:15 -04:00
Jose Diaz-Gonzalez
576ec05a9e fix: handle case where the app directory is a symlink
Closes #2943
2017-10-21 13:52:08 -04:00
Jose Diaz-Gonzalez
6f4720adca Merge pull request #2939 from znz/remove-unnecessary-line
Remove unnecessary lines
2017-10-19 10:28:14 -04:00
Jose Diaz-Gonzalez
ab3249c76b Merge pull request #2945 from znz/fix-network-plugin-version
Fix network plugin version
2017-10-19 10:27:55 -04:00
Alex
2f7daad200 fix: typo on declare 2017-10-16 20:23:30 -04:00
Alex
6780d53c77 Merge branch 'master' of github.com:dokku/dokku into feature-config-golang 2017-10-16 20:22:28 -04:00
Kazuhiro NISHIYAMA
36fc689a5d Fix network plugin version
[ci skip]
2017-10-16 21:15:36 +09:00
Alex Quick
98c45b55b7 fix: newlines at eof 2017-10-16 02:21:38 -04:00
Alex Quick
1be66bd1bc [config] don't alias import 2017-10-16 02:09:26 -04:00
Alex Quick
91c2164e49 [config] refactor package structure 2017-10-15 20:10:46 -04:00
Jose Diaz-Gonzalez
9876b9e588 Merge pull request #2944 from axilleas/patch-1
Fix syntax typo in debian.md
2017-10-15 14:08:07 -04:00
Achilleas Pipinellis
58e36fee10 Fix syntax typo in debian.md
[ci skip]
2017-10-15 13:54:13 +03:00
Alex Quick
03830562c2 move around the members of configenv to make more sense 2017-10-12 23:49:22 -04:00
Alex Quick
430cc2b4ca [config] move PrettyPrintEnvEntries 2017-10-12 23:42:14 -04:00
Alex Quick
3f497908b5 [config] use named returns where applicable 2017-10-12 23:41:42 -04:00
Alex Quick
3422866909 [config] remove spurious newlines 2017-10-12 22:50:29 -04:00
Alex Quick
b84635baf7 [config] remove old code 2017-10-12 22:49:44 -04:00
Alex Quick
ad8bcecb5b [config] clean up PlugnTrigger and NewShellCmd 2017-10-12 22:38:18 -04:00
Alex Quick
c896ca700c [config] remove vestige of old test 2017-10-12 21:42:18 -04:00
Alex Quick
ecf67d3cdd [config] add eof newlines where needed 2017-10-12 21:40:26 -04:00
Alex Quick
e9b9091de5 [config] remove extra test targets 2017-10-12 21:35:33 -04:00
Kazuhiro NISHIYAMA
62b27d4007 Remove unnecessary lines
Because never reached when `VHOST` is regular file.
(reachable when `VHOST` is fifo, etc.)

[ci skip]
2017-10-11 20:58:26 +09:00
Michael Hobbs
cc3ccda90a Merge pull request #2938 from dokku/mh/chore/upgrade-golang
upgrade to golang 1.9.1
2017-10-10 10:11:52 -07:00
Michael Hobbs
dc79152fe0 upgrade to golang 1.9.1 2017-10-10 08:13:59 -07:00
Michael Hobbs
6b340c69b5 Merge pull request #2937 from dokku/mh/fix/strip-restart-flag
strip restart flag from app_user_pre_deploy_trigger
2017-10-09 16:03:04 -07:00
Michael Hobbs
f2ec959598 strip restart flag from app_user_pre_deploy_trigger 2017-10-09 15:33:09 -07:00
Jose Diaz-Gonzalez
b16c2876c4 Merge branch 'master' into feature-config-golang 2017-10-06 11:13:15 -04:00
Jose Diaz-Gonzalez
3f50097619 Merge pull request #2932 from znz/fix-comment
Fix comment
2017-10-06 11:12:58 -04:00
Jose Diaz-Gonzalez
28ca39266c Merge pull request #2933 from znz/fix-typo
Fix version number [ci skip]
2017-10-06 11:12:07 -04:00
Kazuhiro NISHIYAMA
6dcf695822 Fix version number [ci skip]
in document of Container network interface binding
2017-10-06 20:07:18 +09:00
Kazuhiro NISHIYAMA
aeba3f2269 Fix comment
[ci skip]
2017-10-06 20:01:35 +09:00
Jose Diaz-Gonzalez
1fb0e737c3 Merge pull request #2931 from dokku/josegonzalez-patch-1
fix: upgrade git package for CI
2017-10-05 23:15:55 -04:00
Jose Diaz-Gonzalez
462a648ac8 Merge pull request #2928 from silverfix/patch-1
fix: do not overwrite the VHOST file during installation if it exists
2017-10-05 22:32:58 -04:00
Jose Diaz-Gonzalez
6523163701 fix: upgrade git package for CI 2017-10-05 22:28:24 -04:00
Jose Diaz-Gonzalez
a9a9d0a898 Merge pull request #2926 from vtavernier/issue-2915
Fix #2915
2017-10-05 22:05:55 -04:00
Jose Diaz-Gonzalez
2851f2c63f fix: remove duplicate logging functions 2017-10-05 13:26:20 -04:00
Jose Diaz-Gonzalez
5e82b37147 Merge branch 'master' into feature-config-golang 2017-10-04 19:04:31 -04:00
Jose Diaz-Gonzalez
810ebffceb Merge pull request #2736 from dokku/2403-network-plugin
Implement Network Plugin
2017-10-04 18:55:41 -04:00
Jose Diaz-Gonzalez
adedd3af5d fix: avoid Hash Sum mismatch errors 2017-10-04 01:11:09 -04:00
Jose Diaz-Gonzalez
722f22e7f0 fix: avoid old gpg key error 2017-10-04 01:06:17 -04:00
Jose Diaz-Gonzalez
ad732bd42b feat: add network:report command 2017-10-04 00:58:29 -04:00
Michael Hobbs
fdbab2c291 fix test coverage deps 2017-10-02 16:57:45 -07:00
Michael Hobbs
8654783131 style tweaks 2017-10-02 16:50:05 -07:00
Michael Hobbs
b099d2c389 add more tests 2017-10-02 16:49:54 -07:00
Michael Hobbs
c9ea884e5d move coverage command to only run on ci 2017-10-02 16:36:12 -07:00
Michael Hobbs
fbf9077075 make test more flexible 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
5e32f9a89d refactor: go back to the old regex 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
690c32ceb8 fix: use the same method to trigger the client 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
7d73577952 refactor: use grep -E instead of egrep 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
edfec35177 feat: add symlinks to all network and proxy hooks 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
c2ee6e99c6 fix: update unconfigured client test regex 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
419d687c50 fix: remove proxy enabled checks when retrieving a container's ip and port 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
3ca5503b74 fix: actually echo the property 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
acde3d60a7 feat: allow users to bind to all interfaces when a proxy is enabled
- use a plugin trigger to see whether we should bind to all interfaces
- create a generic way of setting properties for a plugin
- migrate proxy-enabled to the new network property "bind-all-interfaces"
- add network:set subcommand
2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
7a4464a8ae feat: more loggers 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
096ba83f41 refactor: alphabetize more functions 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
04cd5eeb91 refactor: move all logging functions to their own file 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
9d287d0a5d refactor: alphabetize functions 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
af13d1247f refactor: consolidate DOKKU_DISABLE_PROXY usage into the proxy plugin 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
81ddef04ff refactor: drop direct access to PORT files 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
9ef7c385d4 refactor: drop extra sub-shell 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
dc00542b6f refactor: remove use of IP and PORT files from core-post-deploy plugin 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
7fe2f8593c refactor: remove unused IS_HEROKUISH_CONTAINER argument 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
20dca9fd46 fix: convert the containerIndex to a string to ensure it is properly passed to the plugn trigger 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
647efab2dd fix: ensure we always call proxy-build-config when calling ps_start 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
44282fd857 fix: Declare and assign separately to avoid masking return values. 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
1372522258 fix: Declare and assign separately to avoid masking return values. 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
27f247eabd fix: do not shadow id variable 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
a3abf8016b fix: correct lint errors 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
3b9f4ba63f fix: correct lint errors 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
92d6e76ea4 fix: ignore vendor directories 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
350efd8d53 chore: remove use of deprecated method 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
6f008d6643 fix: use correct conditional check for isHerokuishContainer 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
6e76831b5d fix: use correct flag parameter for app name 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
31333452c8 fix: refactor retrieval of network and docker inspect information 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
25759bcbb4 fix: use correct flag positional argument 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
72eb8a06f0 fix: respond to all review comments 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
1e8831d9a0 chore: remove unused nullglob 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
c788659b63 refactor: rewrite network plugin in golang 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
e74346f0dc fix: call correct command 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
5b592575e7 fix: call correct command 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
c43a3edfc6 fix: ensure ports are set to an array 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
94149c8445 fix: properly pass PROC_TYPE 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
7fd32fb3e8 fix: properly retrieve ports list 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
006eb452f1 fix: do not generate network config if there is no generated scale file 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
2c5190bf63 fix: set IS_HEROKUISH_CONTAINER=false to false by default 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
0cc9e42c59 fix: check IS_HEROKUISH_CONTAINER value check 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
b409af602a fix: call network-get-ipaddr correctly 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
b0afa778fb chore: minor cleanup 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
b8a4152e10 fix: call the correct method in the proxy-build-config hook 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
4949d1e33e fix: always pass in IS_HEROKUISH_CONTAINER 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
06a7cb2a3d fix: check correct variable 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
aee88d081d fix: add missing proxy/functions source call 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
f71d147a8f fix: add missing argument 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
dfad37ba23 fix: cleanup issues retrieving the port and ipaddr for a container 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
1a2ed28e5b docs: add documentation for all new triggers 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
054a1328f7 fix: thren => then 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
901ec7c213 refactor: retrieve ip and port for checks from the network plugin triggers 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
6fbd148597 fix: properly name variable to avoid reference issues 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
d7d5d373c9 feat: refactor to retrieve listeners from network plugin 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
a9e0f8b7be fix: ensure we write the ipaddr and port 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
f668bec210 docs: move dns and proxy management to new networking section 2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
1835b04809 feat: refactor to use network plugin
- Add proxy-build-config hook to rebuild network and proxy settings for an application
- Scope nginx:build-config to work only when it is the configured proxy for an application
- Refactor deploy code to interact with network plugin for computed and actual ipaddr/port settings
- Ensure the proxy-build-config plugin trigger is called on ps:restore
- Expose a few plugin triggers for retrieving networking information for a given APP/PROC_TYPE/CONTAINER_ID combination
2017-10-02 15:05:13 -07:00
Jose Diaz-Gonzalez
ec9b8be5f8 feat: implement first-pass at networking plugin
Implements help, `rebuild`, and `rebuildall` command.

Refs #2403
2017-10-02 15:05:13 -07:00
Michael Hobbs
8be92d9739 Merge pull request #2929 from dokku/mh/chore/codacy
add codacy config and coverage targets
2017-10-02 15:04:38 -07:00
Michael Hobbs
bbb38031f0 add codacy config and coverage targets 2017-10-02 14:41:03 -07:00
Jose Diaz-Gonzalez
c25ef5dc4c fix: Declare and assign separately to avoid masking return values 2017-10-02 11:57:50 -04:00
Jose Diaz-Gonzalez
093414b846 feat: add logging 2017-10-02 11:48:29 -04:00
Jose Diaz-Gonzalez
f664ad1cde fix: remove extra whitespace 2017-10-02 11:40:31 -04:00
Andrea Rabbaglietti
5e9306ad40 Fix #2927
Fix to prevent dokku upgrade on debian systems overwrites ${DOKKU_ROOT}/VHOST
2017-10-02 17:37:17 +02:00
Vincent Tavernier
c9af7e4cfa Fix #2915
Add forward slash cleanup of the app name for the git-upload-pack
command. Prevents is_valid_app_name from removing the application folder
on `git fetch`.
2017-10-02 09:29:30 +02:00
Alex Quick
5d72f145df [config] restore dokku config functionality and fix docs 2017-10-01 22:50:01 -04:00
Jose Diaz-Gonzalez
5b3506584a Release 0.10.5
# History

## 0.10.5

### Bug Fixes

- #2912: @josegonzalez Add missing depends statement for rsyslog
- #2906: @manuel-colmenero Check the location of nginx in a central way
- #2895: @josegonzalez cd to app directory when calling git worktree add

### Documentation

- #2922: @axilleas Clarify the minimum Nginx version for HTTP/2 support
- #2919: @wootwoot1234 Update nginx documentation surrounding file uploading for php buildpack users
- #2913: @znz Fix a typo in the rpm release script
- #2910: @buckle2000 Add a note about using the full git url for non-compliant toolchains
2017-10-01 15:12:30 -04:00
Jose Diaz-Gonzalez
27748f9576 Merge pull request #2922 from axilleas/docs/nginx-http2
Clarify the minimum Nginx version for HTTP/2 support
2017-10-01 14:46:34 -04:00
Jose Diaz-Gonzalez
e6f7d4a732 docs: remove unnecessary doc explanation
[ci skip]
2017-10-01 14:46:20 -04:00
Jose Diaz-Gonzalez
32b18a8a5c Merge pull request #2924 from dokku/josegonzalez-patch-1
fix: use a colon instead of a slash for remotes
2017-10-01 14:42:32 -04:00
Jose Diaz-Gonzalez
160a5c9760 fix: use a colon instead of a slash for remotes
Using a slash is broken as it will assume that is part of the remote name.

[ci skip]
2017-10-01 14:42:07 -04:00
Achilleas Pipinellis
dde1531f42 Clarify the minimum Nginx version for HTTP/2 support
Add docs for https://github.com/dokku/dokku/pull/2496

[ci skip]
2017-10-01 12:12:14 +02:00
Alex Quick
60e3b37d39 [config] trigger app restart through plugn rather than exec 2017-09-27 23:56:43 -04:00
Alex Quick
a8563489e7 [common] fix PlugnTrigger 2017-09-27 23:56:42 -04:00
Alex Quick
a86c037a91 [config] upgrade to godotenv 1.2.0 2017-09-27 23:56:42 -04:00
Jose Diaz-Gonzalez
523429b47f fix: ignore vendor directories 2017-09-27 23:56:42 -04:00
Alex Quick
a13722eec1 [config] update glide dependencies 2017-09-27 23:56:42 -04:00
Alex Quick
8e8b6d60f0 fix: Declare and assign separately to avoid masking return values. 2017-09-27 23:56:42 -04:00
Alex Quick
4808c047ee [config] make HasKey more idiomatic 2017-09-27 23:56:42 -04:00
Alex Quick
be5e81b246 [config] config:get exit with status 1 if key is not set in env 2017-09-27 23:56:42 -04:00
Jose Diaz-Gonzalez
a137ed64dc fix: Declare and assign separately to avoid masking return values. 2017-09-27 23:56:42 -04:00
Jose Diaz-Gonzalez
fc1129c728 fix: correct flake8 issues 2017-09-27 23:56:42 -04:00
Alex Quick
a22594b891 [config] update docs 2017-09-27 23:56:41 -04:00
Alex Quick
4f5c747c99 [config] add config:export --format shell 2017-09-27 23:56:41 -04:00
Alex Quick
e7a81a8f8b [config] error message when no key is given for config:get 2017-09-27 23:56:41 -04:00
Alex Quick
32414b343a [config] show empty config when ENV file doesn't exist yet 2017-09-27 23:56:41 -04:00
Alex Quick
eeb6e78fa4 [config] move to godotenv 2017-09-27 23:56:41 -04:00
Alex Quick
08aa2b9fa4 [config] improve logging and default command 2017-09-27 23:56:41 -04:00
Alex Quick
8b90d4ebf9 [config] move vendor to right place 2017-09-27 23:56:41 -04:00
Alex Quick
133fdc1f0a [config] support for old export-style config files 2017-09-27 23:56:41 -04:00
Alex Quick
e7e01ee838 [config] fix shellcheck 2017-09-27 23:56:40 -04:00
Alex Quick
12c9536a7b [config] test python buildpack too 2017-09-27 23:56:40 -04:00
Alex Quick
c20fbfccf6 [config] support for env bundles 2017-09-27 23:56:40 -04:00
Alex Quick
fd27d90303 [config] config:export --merge, --prefix, & --suffix 2017-09-27 23:56:40 -04:00
Alex Quick
686428a41a [config] lint fixes 2017-09-27 23:56:40 -04:00
Alex Quick
73e85b7df5 [config] preliminary Dockerfile support 2017-09-27 23:56:40 -04:00
Alex Quick
dfa241d6a9 [dockerfile] test new config stuff 2017-09-27 23:56:40 -04:00
Alex Quick
dd8e1fdf45 [config] no longer reenter dokku in config/functions 2017-09-27 23:56:40 -04:00
Alex Quick
21b091ab14 [config] update test-deploy-config to include odd characters 2017-09-27 23:56:40 -04:00
Alex Quick
416b499670 [nginx-proxy] remove trailing spaces from PROXY_PORT_MAP
this plugin used to rely on the fact that config
supressed trailing spaces
2017-09-27 23:56:39 -04:00
Alex Quick
dc90a889d7 [config] add config:set --encoded (base64)
You can now set b64encoded values. They are
stored decoded, this is so dokku over ssh can set
odd config values
```
config:set --encoded KEY=BASE_64_VALUE
```
2017-09-27 23:56:39 -04:00
Alex Quick
14757ca925 [config] change file format to match bash exports
got rid of nonstandard escaping/quoting so that
the disk file is a strict subset of valid bash exports
2017-09-27 23:56:39 -04:00
Alex Quick
7d865ccb1f [config] refactor makefile 2017-09-27 23:56:39 -04:00
Alex Quick
294d4b1f29 [config] first cut of config rewritten in golang
still to do:
* Rework disk format to be okay with quotes
* Fix Dockerfile deployments
* Dedup code in the subcommands
* Add --encode
* Add deploytests for the new stuff
* Restore some log messages (should I make some helpers in common?)
* Restore some functions that may be used by 3d-party plugins
2017-09-27 23:56:39 -04:00
Alex Quick
5e3184b61d [common] helper for go trigger plugn events 2017-09-27 23:56:39 -04:00
Alex Quick
e57e1408b2 [common] add NewTokenizedShellCmd to ShellCmd 2017-09-27 23:56:39 -04:00
Alex Quick
ef95d2bcd4 [config] test some config oddities 2017-09-27 23:56:39 -04:00
Jose Diaz-Gonzalez
d8602c52af Merge pull request #2919 from wootwoot1234/patch-1
Update nginx.md
2017-09-27 23:14:38 -04:00
Jose Diaz-Gonzalez
657bb1d2a1 docs: clarify Procfile/nginx.conf usage
[ci skip]
2017-09-27 23:14:23 -04:00
Tom
0bd6b041c8 Update nginx.md
Added an explanation of how to add additional nginx configuration to the `nginx.conf` file imported in a Procfile. Here's a related issue: https://github.com/dokku/dokku/issues/2917#issuecomment-332704867
2017-09-27 21:50:14 -05:00
Jose Diaz-Gonzalez
28077dff67 Merge pull request #2913 from znz/fix-typo
Fix a typo [ci skip]
2017-09-26 12:51:24 -04:00
Kazuhiro NISHIYAMA
68917f12fb Fix a typo [ci skip] 2017-09-26 20:55:15 +09:00
Jose Diaz-Gonzalez
bb1b657ac9 Merge pull request #2912 from dokku/josegonzalez-patch-1
fix: add depends statement for rsyslog
2017-09-25 14:55:37 -04:00
Jose Diaz-Gonzalez
07c83d4d32 fix: add depends statement for rsyslog
Refs #2911
2017-09-25 13:43:07 -04:00
Jose Diaz-Gonzalez
264109360b Merge pull request #2910 from buckle2000/master
Mention full git URL
2017-09-23 02:58:34 -04:00
Jose Diaz-Gonzalez
2278290b91 docs: reword note.
[ci skip]
2017-09-23 02:58:25 -04:00
buckle2000
23bcb4127a Update application-deployment.md
Well, please add a yellow "warning" background to the added backquote.
2017-09-23 14:53:35 +08:00
Jose Diaz-Gonzalez
8004f0962c Merge pull request #2906 from manuel-colmenero/master
fix: Check the location of nginx in a central way
2017-09-19 13:53:21 -04:00
Jose Diaz-Gonzalez
689f0443f3 chore: remove unnecessary dokku_log_fail
[ci skip]
2017-09-19 13:53:00 -04:00
Manuel Colmenero
441e864ea1 fix: Declare and assign separately to avoid masking return values
Fixes the introduced CI warnings.
2017-09-19 19:14:48 +02:00
Manuel Colmenero
4f17392bf1 fix: Move operator inside the brackets 2017-09-19 08:27:21 +02:00
Manuel Colmenero
deace7a03a fix: Remove unnecessary nesting 2017-09-19 08:26:55 +02:00
Manuel Colmenero
c49f81cd8b fix: Check first in $PATH for nginx, use sbin location as backup 2017-09-18 21:19:30 +02:00
Manuel Colmenero
bada02a122 Use double brackets instead of single ones 2017-09-18 21:09:03 +02:00
Manuel Colmenero
3d785360e1 fix: Check the location of nginx in a central way
- Now there's only a "single source of truth" for the location of the nginx
  binary.
- It is checked if it's there before it's needed.
2017-09-18 20:19:27 +02:00
Jose Diaz-Gonzalez
3a81c8f279 Merge pull request #2895 from dokku/2864-git-rebuild-in-dir
fix: Change to app directory when calling git worktree add
2017-09-02 14:33:08 -04:00
Jose Diaz-Gonzalez
9f64fdb9b6 fix: Change to app directory when calling git worktree add
Closes #2864
2017-09-02 14:10:47 -04:00
Jose Diaz-Gonzalez
e9873c58a8 Release 0.10.4
# History

## 0.10.4

### Bug Fixes

- #2894: @josegonzalez fix: bail if any step in the release process fails
- #2880: @josegonzalez fix: properly detect empty subcommands
- #2881: @josegonzalez Verify app name on git push
- #2858: @cstroe Use correct port number for the upstream.
- #2848: @josegonzalez Ensure https applications return an https url from `dokku url`
- #2839: @josegonzalez fix: skip clearing cache if we are not building a herokuish image

### New Features

- #2890: @michaelshobbs use circleci 2.0
- #2847: @scjody Add nginx ppa before installing Dokku
- #2850: @michaelshobbs add optional PROC_TYPE and CONTAINER_INDEX to docker-args-deploy plugn trigger
- #2840: @josegonzalez Add DYNO environment variable to run containers
- #2824: @josegonzalez Upgrade herokuish to version 0.3.31

### Documentation

- #2861: @adelq Use non-deprecated apps command
- #2878: @m0rth1um Add telegram notifications plugin
- #2876: @josegonzalez docs: clarify storage documentation caveats
- #2873: @josegonzalez docs: add a note on which docs to look at for customizing nginx docs
- #2867: @josegonzalez docs: cleanup help output for dokku shell
- #2859: @josegonzalez docs: use relative link for application deployment doc
- #2866: @josegonzalez Add missing migration guides
- #2863: @josegonzalez docs: fix syntax on getting started docs
- #2836: @fishnux Add a note regarding nginx dependency to installation docs
- #2834: @iansu Clarify port exposure in Dockerfile documentation
2017-09-02 13:15:23 -04:00
Jose Diaz-Gonzalez
a4a3bfc556 Merge pull request #2894 from dokku/release-error-catching
fix: bail if any step in the release process fails
2017-09-02 02:44:41 -04:00
Jose Diaz-Gonzalez
235115af9c Merge pull request #2880 from dokku/2849-empty-subcommand
fix: properly detect empty subcommands
2017-09-02 02:44:30 -04:00
Jose Diaz-Gonzalez
aa82042db2 fix: bail if any step in the release process fails 2017-09-01 23:51:15 -04:00
Jose Diaz-Gonzalez
e8f1ce501a fix: check that subcommand is non-zero in length 2017-09-01 23:43:58 -04:00
Jose Diaz-Gonzalez
a4f4bef1f6 fix: remove syntax error 2017-09-01 23:16:10 -04:00
Jose Diaz-Gonzalez
6aa315f815 fix: properly detect empty subcommands
Closes #2849
2017-09-01 23:16:10 -04:00
Jose Diaz-Gonzalez
15494d85a9 Merge pull request #2881 from dokku/2807-bad-app-name
Verify app name on git push
2017-09-01 11:59:49 -04:00
Michael Hobbs
787e2f106a Merge pull request #2890 from dokku/mh/chore/circle-2.0-machine-exec
use circleci 2.0
2017-08-29 13:53:21 -07:00
Michael Hobbs
4db991c891 use circleci 2.0 2017-08-29 13:12:03 -07:00
Jose Diaz-Gonzalez
ab11453fc8 feat: validate app name when running git functions 2017-08-19 19:16:40 -04:00
Jose Diaz-Gonzalez
1a5bea6dde refactor: extract app name validation 2017-08-19 19:16:16 -04:00
Jose Diaz-Gonzalez
5e0ea9c734 Merge pull request #2858 from cstroe/issue-2857-nginx-conf-with-multiple-expose-ports
Use correct port number for the upstream.
2017-08-19 19:08:13 -04:00
Jose Diaz-Gonzalez
68e628d384 Merge pull request #2861 from adelq/patch-1
Use non-deprecated apps command
2017-08-19 19:05:29 -04:00
Jose Diaz-Gonzalez
0babde74f3 docs: update uninstallation docs to clarify which subcommand to use for listing applications
[ci skip]
2017-08-19 19:03:20 -04:00
Jose Diaz-Gonzalez
42cee30187 Merge pull request #2878 from m0rth1um/patch-1
Add telegram notifications plugin
2017-08-19 18:31:36 -04:00
Moritz Mackiewicz
c50f1c8830 Update plugins.md 2017-08-19 19:01:41 +02:00
Jose Diaz-Gonzalez
1db9e16006 Merge pull request #2876 from dokku/josegonzalez-patch-1
docs: clarify storage documentation caveats
2017-08-17 15:05:49 -04:00
Jose Diaz-Gonzalez
3bf3bb433b docs: clarify user/group id
[ci skip]
2017-08-17 14:43:56 -04:00
Jose Diaz-Gonzalez
fa0b4b26ac docs: clarify storage documentation caveats
[ci skip]
2017-08-17 14:36:23 -04:00
Jose Diaz-Gonzalez
ec9f81b323 Merge pull request #2873 from dokku/jdg-customization-notes
docs: add a note on which docs to look at for customizing nginx docs
2017-08-15 11:26:08 -04:00
Jose Diaz-Gonzalez
c400bc8f03 docs: add a note on which docs to look at for customizing nginx docs
[ci skip]
2017-08-15 11:25:50 -04:00
Dmitry
fc2fb71396 docs: fix vertical scroll for the slack-channel section (#2869) 2017-08-14 06:36:55 -05:00
Jose Diaz-Gonzalez
e8287b839f Merge pull request #2867 from dokku/josegonzalez-patch-1
docs: cleanup help output for dokku shell
2017-08-10 17:30:00 -04:00
Jose Diaz-Gonzalez
fcd713b23c docs: cleanup help output for dokku shell
[ci skip]
2017-08-10 17:28:47 -04:00
Jose Diaz-Gonzalez
294f82c327 Merge pull request #2859 from dokku/josegonzalez-patch-1
docs: use relative link for application deployment doc
2017-08-09 17:25:57 -04:00
Jose Diaz-Gonzalez
0cc8ee6669 Merge pull request #2866 from dokku/josegonzalez-patch-2
Add missing migration guides
2017-08-09 17:25:46 -04:00
Jose Diaz-Gonzalez
e7a2284226 Create 0.10.0-migration-guide.md
[ci skip]
2017-08-09 17:23:51 -04:00
Jose Diaz-Gonzalez
64162a0bfd Create 0.9.0-migration-guide.md 2017-08-09 17:19:53 -04:00
Jose Diaz-Gonzalez
c2f92e07d9 Create 0.8.0-migration-guide.md 2017-08-09 17:15:30 -04:00
Jose Diaz-Gonzalez
29e44260a0 docs: add links to migration guides
[ci skip]
2017-08-09 17:07:06 -04:00
Jose Diaz-Gonzalez
e2bebe078a Merge pull request #2863 from dokku/josegonzalez-patch-2
docs: fix syntax on getting started docs
2017-08-08 01:10:18 -04:00
Jose Diaz-Gonzalez
d025a00d18 docs: fix syntax on getting started docs
[ci skip]
2017-08-08 01:09:49 -04:00
Adel Qalieh
db0b2bc93e Use non-deprecated apps command 2017-08-04 14:48:07 -04:00
Cosmin Stroe
0b2bea3fa9 Use upstream port in nginx.conf template 2017-08-04 12:26:35 -05:00
Cosmin Stroe
9156dea8b7 Revert "Fix upstream ports configuration."
This reverts commit 1f93169c43.
2017-08-04 12:20:35 -05:00
Cosmin Stroe
1f93169c43 Fix upstream ports configuration. 2017-08-04 02:21:31 -05:00
Cosmin Stroe
65990068cb Revert "Use correct port number for the upstream."
This reverts commit 52b45d74cb.
2017-08-04 00:24:12 -05:00
Jose Diaz-Gonzalez
4008919a3c docs: use relative link for application deployment doc
[ci skip]
2017-08-04 00:54:51 -04:00
Cosmin Stroe
52b45d74cb Use correct port number for the upstream. 2017-08-03 22:24:14 -05:00
Jose Diaz-Gonzalez
ee27ea76a6 Merge pull request #2847 from plotly/add-ppa-before-apt
Add nginx ppa before installing Dokku
2017-07-30 14:09:52 -04:00
Josh Manders
a85159425b Merge branch 'master' into add-ppa-before-apt 2017-07-26 22:19:25 -05:00
Michael Hobbs
ab69be6665 Merge pull request #2850 from dokku/mh/chore/optional-docker-args-deploy
add optional PROC_TYPE and CONTAINER_INDEX to docker-args-deploy plugn trigger
2017-07-26 10:36:02 -07:00
Michael Hobbs
68ca119ae0 add syslog plugin 2017-07-26 10:35:41 -07:00
Michael Hobbs
a0e05eaef0 add optional PROC_TYPE and CONTAINER_INDEX to docker-args-deploy plugn trigger 2017-07-26 09:04:14 -07:00
Jody McIntyre
34d80a18dc Merge branch 'master' into add-ppa-before-apt 2017-07-24 11:46:53 -04:00
Jose Diaz-Gonzalez
1a38b5533d Merge pull request #2848 from dokku/fix_app_url_with_https
Ensure https applications return an https url from `dokku url`
2017-07-23 14:34:17 -06:00
Jose Diaz-Gonzalez
7df06fb2f6 fix: ensure tests pass 2017-07-22 15:17:40 -06:00
Domonkos Czinke
0efb690992 Fix URL error and add test 2017-07-22 15:15:54 -06:00
Domonkos Czinke
5af42dc678 url command should return https if it's configured 2017-07-22 15:15:54 -06:00
Jose Diaz-Gonzalez
2b929a98e7 Merge pull request #2839 from dokku/2771-dockerfile-cache
fix: skip clearing cache if we are not building a herokuish image
2017-07-22 15:07:35 -06:00
Josh Manders
9aa3721aa3 Merge branch 'master' into add-ppa-before-apt 2017-07-22 13:11:22 -05:00
Jose Diaz-Gonzalez
5ee257304a Merge pull request #2840 from dokku/2837-dyno-run-env-var
Add DYNO environment variable to run containers
2017-07-21 13:49:15 -06:00
Jody McIntyre
4497a54b12 Add nginx ppa before installing Dokku
Fixes #2845
2017-07-21 15:41:33 -04:00
Jose Diaz-Gonzalez
13ff7f7b96 feat: add DYNO environment variable to run containers. Closes #2837 2017-07-17 03:53:42 -06:00
Jose Diaz-Gonzalez
0147d55302 fix: skip clearing cache if we are not building a herokuish image
Closes #2771
2017-07-17 00:30:35 -06:00
Josh Manders
2169fb3859 Merge pull request #2836 from fishnux/patch-1
Added a note on documentation (issue #2835)
2017-07-13 10:37:35 -05:00
fishnux
8f9e23a59d Reworded some bits on installation.md 2017-07-13 12:24:32 +01:00
fishnux
9735f73c38 Clarified nginx installation issue 2017-07-13 12:20:35 +01:00
fishnux
a8d60e13e1 Added a note on documentation (issue #2835)
Added a small note that points to issue #2835, since some Linux distros appear to install an old nginx version by default
2017-07-12 23:00:20 +01:00
Jose Diaz-Gonzalez
b843716113 Merge pull request #2834 from iansu/patch-1
Update dockerfiles.md
2017-07-10 15:26:03 -06:00
Jose Diaz-Gonzalez
f442e6fabf docs: clarify port exposing
[ci skip]
2017-07-10 15:24:35 -06:00
Ian Sutherland
e8e6660b2a Update dockerfiles.md
Added a note about port ordering in Dockerfile.
2017-07-10 14:32:12 -06:00
Jose Diaz-Gonzalez
6dd4e61e04 Merge pull request #2824 from dokku/josegonzalez-patch-1
Upgrade herokuish to version 0.3.31
2017-07-09 14:28:21 -06:00
Jose Diaz-Gonzalez
98fa428386 Release 0.10.3
# History

## 0.10.3

### Bug Fixes

- #2832: @josegonzalez fix: use python2.7 binary instead of python2 binary
2017-07-09 14:12:16 -06:00
Jose Diaz-Gonzalez
a145333fbd Merge pull request #2832 from dokku/josegonzalez-python27
fix: use python2.7 binary instead of python2 binary
2017-07-09 14:11:32 -06:00
Jose Diaz-Gonzalez
72491257c3 fix: use python2.7 binary instead of python2 binary
On hosts where python3 is the system default python env and there is a minimal server installation, Dokku will silently fail to return the values of json keys.
2017-07-08 17:54:12 -06:00
Jose Diaz-Gonzalez
b009da2710 Release 0.10.2
# History

## 0.10.2

### New Features

- #2827: @josegonzalez feat: allow installation of openresty instead of nginx
2017-07-03 03:40:46 -06:00
Jose Diaz-Gonzalez
def60a510c Merge pull request #2827 from dokku/openresty-support
feat: allow installation of openresty instead of nginx
2017-07-03 03:39:41 -06:00
Jose Diaz-Gonzalez
4ac68cfbaa feat: allow installation of openresty instead of nginx 2017-07-03 03:39:23 -06:00
Jose Diaz-Gonzalez
433a35fac2 Release 0.10.1
# History

## 0.10.1

### Bug Fixes

- #2826: @josegonzalez Fix HISTORY.md generator
2017-07-03 03:09:12 -06:00
Jose Diaz-Gonzalez
6c9746c55e Merge pull request #2826 from dokku/fix-release-notes
Fix HISTORY.md generator
2017-07-03 03:08:55 -06:00
Jose Diaz-Gonzalez
efa99d02b2 fix: set history headers properly
[ci skip]
2017-07-03 03:07:22 -06:00
Jose Diaz-Gonzalez
5269975753 fix: correct headers on release notes 2017-07-03 03:07:02 -06:00
Jose Diaz-Gonzalez
0bdc6e443e feat: Upgrade herokuish to version 0.3.31 2017-07-02 23:21:27 -06:00
Jose Diaz-Gonzalez
b1ac7ac991 Release 0.10.0
# History

## 0.10.0

### Bug Fixes

- #2820: @josegonzalez Require netcat in debian packaging
- #2774: @fruitl00p Include docker-options in the default `dokku`
- #2778: @zarqman Fix /etc/logrotate.d/dokku on debian
- #2747: @ebeigarts Update herokuish base image on updates using --pull
- #2739: @josegonzalez Use listener_port in nginx.conf.sigil
- #2735: @josegonzalez Ensure we can call ps:report without specifying an application
- #2733: @josegonzalez Add support for new docker package names
- #2730: @weyert Ignore the cache directory when cloning an app
- #2723: @weyert Call non-deprecated plugin:list method

### New Features

- #2803: @iSDP Adding related articles on the Docker Image Deployment page
- #2798: @znz Update CURL_CONNECT_TIMEOUT in docs
- #2795: @josegonzalez docs: Add documentation around adding build-time configuration variables
- #2791: @yazinsai Correct typo in persistent storage docs
- #2789: @h4ckninja Subject-verb agreement
- #2790: @flyinggrizzly Add entry for insecure connection issue in Rails
- #2788: @josegonzalez Flesh out uninstallation documentation
- #2784: @josegonzalez Document special dokku environment variables
- #2773: @znz Update year in footer [ci skip]
- #2768: @znz Ubuntu 12.04 is EOL
- #2769: @lucianopf Fix SlackButton for mobile devices.
- #2763: @ZiadSalah Update vagrant documentation for windows users
- #2764: @joshmanders Create PULL_REQUEST_TEMPLATE.md
- #2758: @AxelTheGerman Update doc location for dokku-git-rev community plugin
- #2757: @nodanaonlyzuul Fix typo from "To use a dockerfiles" to "To use a dockerfile" singular
- #2753: @abrkn Use short-hand method for shutting down all applications in upgrade docs
- #2746: @josegonzalez Add redirect for installation to advanced install docs
- #2738: @josegonzalez Add missing `NO_SSL_SERVER_NAME` to example template
- #2457: @john-doherty Update Digitalocean installation instructions
- #2725: @timaschew Fix typo in application management docs
- #2719: @joshco Clarify that nginx.conf.sigil must be committed to repository
- #2715: @josegonzalez Use urls that are linkable on github

### Documentation

- #2822: @josegonzalez refactor: allow skipping cleanup on a per-application basis
- #2754: @fzerorubigd Add support for set DOKKU_IMAGE per app
- #2815: @markstory Add stickler-ci configuration.
- #2809: @oliw Remove aufs step from Makefile
- #2785: @josegonzalez Add a release-plugin binary
- #2777: @stokarenko Turn on ps-post-stop hook.
- #2781: @fruitl00p Adds docker.io support
- #2766: @josegonzalez Upgrade to herokuish 0.3.29
- #2765: @josegonzalez Install python3-software-properties as an alternative to python-software-properties
- #2642: @chiedo Added better default nginx error pages
- #2678: @callahad Default to secure PCI-compliant SSL setup
- #2734: @josegonzalez Allow quieter report output
2017-07-02 22:08:13 -06:00
Jose Diaz-Gonzalez
4f6e714a9d Merge pull request #2822 from dokku/refactor-cleanup
refactor: allow skipping cleanup on a per-application basis
2017-07-02 21:22:54 -06:00
Jose Diaz-Gonzalez
85f7f22520 fix: add missing space 2017-07-02 17:20:04 -06:00
Jose Diaz-Gonzalez
79f8c1581c refactor: allow skipping cleanup on a per-application basis
Also move all cleanup-related logic into docker_cleanup method
2017-07-02 16:54:26 -06:00
Jose Diaz-Gonzalez
191ae25f63 Merge pull request #2754 from fzerorubigd/fzerorubigd-patch-1
add support for set DOKKU_IMAGE per app
2017-07-02 16:11:58 -06:00
Jose Diaz-Gonzalez
484f3f8299 Merge pull request #2820 from dokku/josegonzalez-patch-1
fix: require netcat in debian packaging
2017-06-30 21:53:11 -06:00
Jose Diaz-Gonzalez
da748b1170 fix: require netcat in debian packaging
Closes #2818

[ci skip]
2017-06-30 21:52:55 -06:00
Jose Diaz-Gonzalez
5835dbd9a4 Merge pull request #2815 from markstory/add-stickler
Add stickler-ci configuration.
2017-06-28 15:31:46 -06:00
Mark Story
f49405d4cf Add stickler-ci configuration.
In talking with @josegonzalez, stickler-ci.com helps reduce the amount of
time maintainers spend reviewing code by automatically giving style
feedback as pull request comments.

I've added linters for shell scripts and go files based on the linting
I could find in the existing make files.
2017-06-28 00:12:09 -04:00
Jose Diaz-Gonzalez
e6103cc49b Merge pull request #2809 from oliw/oliverw/remove-aufs-2
Remove aufs step from Makefile
2017-06-20 15:52:17 -06:00
oli
40001b7287 Remove aufs step from Makefile in favor of aufs provisioning provided by
official docker install script
2017-06-19 21:42:40 -07:00
Jose Diaz-Gonzalez
0e08134a7c Merge pull request #2803 from iSDP/master
Adding related articles on the Docker Image Deployment page
2017-06-10 18:26:58 -04:00
Jose Diaz-Gonzalez
1c6eacd756 docs: re-add new sections
[ci skip]
2017-06-09 14:38:14 -04:00
Jose Diaz-Gonzalez
bec6c6bd66 docs: fix header
[ci skip]
2017-06-09 14:37:26 -04:00
Rémon S
f459745402 Update images.md
Fixing Menu <--> Title mismatch.
2017-06-09 20:20:28 +02:00
Rémon S
65ebd90903 Create images.md
Fixing a little styling error (forgot to add list)
2017-06-09 20:17:44 +02:00
Rémon S
ea30cd8cd2 Create images.md
Added some related articles to make the transition from Docker to Dokku easier to understand.
2017-06-09 20:17:12 +02:00
Jose Diaz-Gonzalez
e6a1a27516 Merge pull request #2798 from znz/update-example-of-timeout
Update CURL_CONNECT_TIMEOUT in docs
2017-06-06 09:25:55 -06:00
Kazuhiro NISHIYAMA
79fea59713 Update CURL_CONNECT_TIMEOUT in docs
Current default of CURL_CONNECT_TIMEOUT is 90.
So 30 is shorter than default.
[ci skip]
2017-06-07 00:18:02 +09:00
Jose Diaz-Gonzalez
e0b03aafe8 Merge pull request #2795 from dokku/josegonzalez-patch-1
docs: Add documentation around adding build-time configuration variables
2017-05-31 17:58:10 -06:00
Jose Diaz-Gonzalez
5b782c1ff4 docs: Add documentation around adding build-time configuration variables
Refs #2776
Closes #1860

[ci skip]
2017-05-31 17:57:47 -06:00
Jose Diaz-Gonzalez
fd0a6905dd Merge pull request #2791 from yazinsai/patch-1
fix typo
2017-05-30 12:01:42 -06:00
Yazin
1e18299364 fix typo 2017-05-30 13:38:27 +01:00
Jose Diaz-Gonzalez
b937f57a72 Merge pull request #2789 from h4ckninja/patch-1
Subject-verb agreement
2017-05-29 15:07:55 -06:00
Jose Diaz-Gonzalez
3fe65fd3fb Merge pull request #2790 from flyinggrizzly/patch-1
Add entry for insecure connection issue in Rails
2017-05-29 14:49:06 -06:00
flyinggrizzly
460af1885a Update troubleshooting.md 2017-05-29 19:42:07 +01:00
flyinggrizzly
370e656209 Add entry for insecure connection issue in Rails
If an application is configured to enforce secure connections and SSL isn't configured for Dokku or the application, browsers will raise an Invalid Connection error.

Entry describes issue, a code resolution for Rails, and points users to the SSL docs.
2017-05-29 17:33:23 +01:00
h4ck ninja
337bc9d10e Subject-verb agreement 2017-05-28 19:00:48 -07:00
Jose Diaz-Gonzalez
8fa40b7a70 Merge pull request #2788 from dokku/josegonzalez-patch-1
docs: Flesh out uninstallation documentation
2017-05-25 22:36:06 -06:00
Jose Diaz-Gonzalez
af71b1b4b3 chore: remove extra whitespace
[ci skip]
2017-05-25 22:35:52 -06:00
Jose Diaz-Gonzalez
4f60297630 docs: link to uninstalling documenation 2017-05-25 22:35:19 -06:00
Jose Diaz-Gonzalez
11aa78a5f9 docs: Flesh out uninstallation documentation
[ci skip]
2017-05-25 22:34:10 -06:00
Jose Diaz-Gonzalez
f4be4ad28d Merge pull request #2785 from dokku/contrib-release-plugin
feat: add a release-plugin bin
2017-05-23 02:37:05 -06:00
Jose Diaz-Gonzalez
cd4ebf5ffc feat: add a release-plugin bin
This binary will allow users to easily script releasing plugins, including uploading private plugins to S3.

[ci skip]
2017-05-23 02:36:16 -06:00
Jose Diaz-Gonzalez
584d4a4619 Merge pull request #2784 from dokku/document-env-vars
Document special dokku environment variables
2017-05-23 01:53:12 -06:00
Jose Diaz-Gonzalez
5061f1e2c8 feat: document special dokku environment variables
This adds a table of environment variables that Dokku will use to change internal behavior.

Not all are fully documented/listed, but this should be enough to get people hacking.

[ci skip]
2017-05-23 01:52:38 -06:00
Jose Diaz-Gonzalez
8602fa9e01 Merge pull request #2774 from fruitl00p/docker-options-help
include docker-options in the default `dokku`
2017-05-22 10:21:14 -06:00
Jose Diaz-Gonzalez
ea10d23133 Merge pull request #2777 from stokarenko/turn-on-ps-post-stop
Turn on ps-post-stop hook.
2017-05-22 10:20:37 -06:00
Jose Diaz-Gonzalez
3d9714446a Merge pull request #2781 from fruitl00p/patch-5
Adds docker.io support
2017-05-19 11:03:06 -04:00
Jose Diaz-Gonzalez
ee14acf735 fix: update min docker-io package
[ci skip]
2017-05-19 11:02:56 -04:00
Robin Speekenbrink
7d9f133824 Adds docker.io support
This (small) PR adds the docker-io package from Ubuntu Xenial as supported docker version

fixes #2775
2017-05-19 16:49:56 +02:00
Jose Diaz-Gonzalez
07f6a26c3e Merge pull request #2778 from zarqman/fix-logrotate
fix /etc/logrotate.d/dokku on debian
2017-05-18 15:23:23 -04:00
thomas morgan
653d6ca1eb fix logrotate config on debian 2017-05-18 13:11:30 -06:00
Sergey Tokarenko
e1263bf55c Turn on ps-post-stop hook. 2017-05-17 20:39:56 +03:00
Robin Speekenbrink
ac96217ac3 aligned docker-options into the default 'dokku' listing of plugins
This PR should list the default enabled docker-options plugin in the help listing. This should ease the `discovery` of the plugin.
2017-05-16 09:26:48 +02:00
Jose Diaz-Gonzalez
d747e146a6 Merge pull request #2773 from znz/update-copyright-year
Update year in footer [ci skip]
2017-05-15 14:50:07 -04:00
Kazuhiro NISHIYAMA
58512b2dea Update year in footer [ci skip] 2017-05-15 21:46:04 +09:00
Jose Diaz-Gonzalez
3d24f376ec Merge pull request #2768 from znz/ubuntu-12.04-is-eol
Ubuntu 12.04 is EOL
2017-05-12 10:11:38 -06:00
Jose Diaz-Gonzalez
954a5dba0b Merge pull request #2769 from lucianopf/master
Fix SlackButton for mobile devices.
2017-05-12 09:59:46 -06:00
Luciano Pellacani Franca
e7e44d431a [ci skip] skip CI
[ci skip] skip CI
2017-05-12 08:04:35 -04:00
Luciano Pellacani Franca
9865908163 Fix SlackButton size with screen lower than 768px
Fix SlackButton size with screen lower than 768px
2017-05-12 08:00:57 -04:00
Kazuhiro NISHIYAMA
ff99cfe3f7 Ubuntu 12.04 is EOL
and not listed in Requirements of README.md.
[ci skip]
2017-05-12 18:09:57 +09:00
Jose Diaz-Gonzalez
944d2c6ac4 Merge pull request #2766 from dokku/2761-herokuish-upgrade
feat: upgrade to herokuish 0.3.29
2017-05-11 09:03:40 -06:00
Jose Diaz-Gonzalez
3b28f0103f feat: upgrade to herokuish 0.3.29
Closes #2761
2017-05-10 23:31:42 -06:00
Jose Diaz-Gonzalez
5d72c7f714 Merge pull request #2765 from dokku/2762-debian-stretch-support
fix: Install python3-software-properties as an alternative to python-software-properties
2017-05-10 23:20:13 -06:00
Jose Diaz-Gonzalez
92c8ca50d1 fix: Install python3-software-properties as an alternative to python-software-properties
Closes #2762

[ci skip]
2017-05-10 23:19:48 -06:00
Jose Diaz-Gonzalez
fb918af050 Merge pull request #2763 from ZiadSalah/Vagrant-Windows-Instructions-Patch
Update vagrant.md
2017-05-10 16:24:55 -06:00
Jose Diaz-Gonzalez
ff536c58df docs: move the messaging into the docblock
[ci skip]
2017-05-10 16:24:44 -06:00
Jose Diaz-Gonzalez
9ff3ae9860 Merge pull request #2764 from joshmanders/patch-1
Create PULL_REQUEST_TEMPLATE.md
2017-05-10 16:18:57 -06:00
Josh Manders
75fe75f7a9 Create PULL_REQUEST_TEMPLATE.md
Puts note about [ci skip] so that CI doesn't trigger when making PR's about docs.
2017-05-10 17:15:50 -05:00
ZiadSalah
79bfd0fd12 Update vagrant.md
Included instructions to run vagrant up dokku-windows if on a windows host
2017-05-10 22:53:10 +01:00
Jose Diaz-Gonzalez
41bbf0a62b Merge pull request #2758 from AxelTheGerman/patch-1
dokku-git-rev has moved to dokku-community
2017-05-08 22:32:27 -06:00
Axel Gustav
6f1206e8a9 dokku-git-rev has moved to dokku-community 2017-05-08 21:28:17 -07:00
Jose Diaz-Gonzalez
74ca540c18 Merge pull request #2757 from nodanaonlyzuul/adjust-small-typo-in-docker-section
Fix typo from "To use a dockerfiles" to "To use a dockerfile" singular
2017-05-08 14:33:10 -06:00
nodanaonlyzuul
36fb3aef22 Fix typo from "To use a dockerfiles" to "To use a dockerfile" singular 2017-05-08 16:23:30 -04:00
Jose Diaz-Gonzalez
694ae52d64 Merge pull request #2753 from abrkn/patch-1
Use short-hand method for shutting down all applications in upgrade docs
2017-05-01 23:39:33 -06:00
Jose Diaz-Gonzalez
ed48542fd8 fix: quote variables 2017-05-01 23:20:28 -06:00
fzerorubigd
4ab147a8a5 add support for set DOKKU_IMAGE per app
fixes #2745
2017-05-02 09:21:58 +04:30
Jose Diaz-Gonzalez
9d57baf5a9 docs: use --quiet flag
[ci skip]
2017-05-01 22:28:30 -06:00
Andreas Brekken
a5b1412d43 Update upgrading.md
Add short-hand method for shutting down all apps. Useful for users with large number of apps.
2017-05-02 11:25:08 +07:00
Jose Diaz-Gonzalez
6e16a1b76a Merge pull request #2747 from ebeigarts/update-herokuish-base-image
Update herokuish base image on updates using --pull
2017-04-27 15:36:58 -06:00
Edgars Beigarts
d468572bf7 Update herokuish base image on updates using --pull
Herokuish update fails if existing herokuish is used by other containers,
using docker build --pull will force to update also the base image.

Setting up herokuish (0.3.28) ...
Removing old herokuish image
Failed to remove image (gliderlabs/herokuish): Error response from daemon: conflict: unable to remove repository reference "gliderlabs/herokuish" (must force) - container dbf2298ab5a5 is using its referenced image 7d4a8d661476
Importing herokuish into docker (around 5 minutes)
2017-04-27 12:39:12 +03:00
Jose Diaz-Gonzalez
cc08da9600 Merge pull request #2746 from dokku/josegonzalez-patch-1
docs: add redirect for installation to advanced install docs
2017-04-26 17:39:36 -06:00
Jose Diaz-Gonzalez
f9f333ca0a docs: add redirect for installation to advanced install docs
[ci skip]
2017-04-26 17:39:11 -06:00
Jose Diaz-Gonzalez
02aca5aac5 Merge pull request #2739 from dokku/2676-listener-port
Use listener_port in nginx.conf.sigil
2017-04-24 09:31:37 -06:00
Jose Diaz-Gonzalez
e719da300f Merge pull request #2642 from chiedo/error-pages
Added better default nginx error pages
2017-04-22 20:27:41 -06:00
Jose Diaz-Gonzalez
a7b929a80e Update 400-error.html
Base it more closely on the rails application error page
2017-04-22 15:44:24 -06:00
Jose Diaz-Gonzalez
c05ceb0aff Update 500-error.html 2017-04-22 15:42:25 -06:00
Jose Diaz-Gonzalez
4194702442 Update 404-error.html
Base it more closely on the rails application error page
2017-04-22 15:42:06 -06:00
Jose Diaz-Gonzalez
04dda5e347 Update 500-error.html
Base it more closely on the rails application error page
2017-04-22 15:40:26 -06:00
Jose Diaz-Gonzalez
cde90620b0 docs: Use listener_port in nginx.conf.sigil example
Refs #2676
2017-04-22 15:18:20 -06:00
Jose Diaz-Gonzalez
dea195df26 fix: Use listener_port in nginx.conf.sigil
Closes #2676
2017-04-22 15:17:15 -06:00
Jose Diaz-Gonzalez
6a441d8ed5 Merge pull request #2738 from dokku/2714-nossl-server-name
Add missing `NO_SSL_SERVER_NAME` to example template
2017-04-22 14:56:26 -06:00
Jose Diaz-Gonzalez
7c6c8feb95 docs: add missing NO_SSL_SERVER_NAME to example template
Also add a link to the default `nginx.conf.sigil`.

[ci skip]
2017-04-22 14:56:09 -06:00
Jose Diaz-Gonzalez
18957dcf39 Merge pull request #2678 from callahad/modern-tls
Update the default cipher suite
2017-04-22 14:42:19 -06:00
Jose Diaz-Gonzalez
7d825f8be0 Merge pull request #2735 from dokku/2721-global-ps-report
Ensure we can call ps:report without specifying an application
2017-04-21 15:15:06 -06:00
Jose Diaz-Gonzalez
518757c47d Merge pull request #2733 from dokku/jg-2732-rpm-docker
fix: use or statements to add support for new docker packages
2017-04-21 15:14:46 -06:00
Jose Diaz-Gonzalez
593f7d42d8 feat: allow any version of docker-ee and docker-ce
[ci skip]
2017-04-21 14:27:24 -06:00
Jose Diaz-Gonzalez
39c117a3cc fix: update herokuish dependency for docker
[ci skip]
2017-04-21 14:26:14 -06:00
Jose Diaz-Gonzalez
4700104303 Merge pull request #2734 from dokku/quiet-report-output
Allow quieter report output
2017-04-21 10:33:17 -06:00
Jose Diaz-Gonzalez
bc4b9dc5f3 fix: only require the docker bin
Docker has this thing where they rebrand the debian package name once a year, and as YUM doesn't resolve anything like a "Provides" field, this is the best we can do (unless they all required the same metapackage).

Note that now we can't ensure a specific minor docker version via RPM, though I feel as though if you choose a crappy OS/package manager and we fail you, thats on you, not Dokku.

Closes #2732
2017-04-21 10:26:24 -06:00
Jose Diaz-Gonzalez
6d21ab20bd fix: minor stylistic change 2017-04-21 10:22:20 -06:00
Jose Diaz-Gonzalez
dea1c86a9b fix: Ensure we can call ps:report without specifying an application
Closes #2721
2017-04-21 00:58:08 -06:00
Jose Diaz-Gonzalez
15021d05c9 feat: allow quieter report output
Users should have the option of suppressing headers, which are not always useful when interacting with dokku in a programmatic fashion.
2017-04-21 00:53:35 -06:00
Jose Diaz-Gonzalez
4639f3c930 fix: use or statements to add support for new docker packages
Closes #2732
[ci skip]
2017-04-20 21:38:25 -06:00
Jose Diaz-Gonzalez
42860dd2a9 feat: require nginx 1.8.0+
[ci skip]
2017-04-20 21:35:29 -06:00
Jose Diaz-Gonzalez
df6ac90812 Merge pull request #2457 from john-doherty/patch-1
Added "Dokku setup using a Mac" steps
2017-04-20 21:08:04 -06:00
Jose Diaz-Gonzalez
53fbaec1fa Merge branch 'master' into patch-1 2017-04-20 21:07:54 -06:00
Jose Diaz-Gonzalez
2f819d1d1c docs: remove header
Also use the account associated with Dokku for referrals.

[ci skip]
2017-04-20 21:06:43 -06:00
Jose Diaz-Gonzalez
c74bd93c58 docs: Respond to comments in digitalocean docs
[ci skip]
2017-04-20 21:04:40 -06:00
Jose Diaz-Gonzalez
9f9ecca59c feat: support nginx 1.8.0 and up 2017-04-20 20:22:11 -06:00
Jose Diaz-Gonzalez
9e021f889f fix: disable ssl tickets
This makes Perfect Forward Secrecy useless.
2017-04-20 20:17:43 -06:00
Jose Diaz-Gonzalez
1c5896c3e3 fix: be pci compliant by default
Developers can override this in a custom nginx.conf.sigil.

While it may be backwards incompatible - and will therefore require a minor release - it does make things much more secure.
2017-04-20 20:15:38 -06:00
Jose Diaz-Gonzalez
4abad29b3a feat: set prefer_server_ciphers to on by default
[ci skip]
2017-04-20 20:14:10 -06:00
Jose Diaz-Gonzalez
3fab901097 fix: drop duplicate config values
[ci skip]
2017-04-20 20:13:44 -06:00
Jose Diaz-Gonzalez
6e0adaead0 Merge pull request #2730 from weyert/bugfix/2711
Fix ticket #2711
2017-04-20 15:19:37 -06:00
Jose Diaz-Gonzalez
55afe3a760 fix: quiet pushd and popd 2017-04-19 13:48:15 -06:00
Weyert de Boer
a61f7f44d6 Merge branch 'master' into bugfix/2711 2017-04-19 03:26:35 +01:00
Weyert de Boer
f0e0e20496 Use pushd and popd instead of cd 2017-04-19 03:26:00 +01:00
Weyert de Boer
3e4f91a78d Attempt to fix the clone command 2017-04-19 03:00:09 +01:00
Josh Manders
fb68a6f4b6 Merge pull request #2725 from timaschew/patch-1
docs: minor typo fix
2017-04-18 09:46:58 -05:00
Anton Wilhelm
5a611b73d0 minor typo fix 2017-04-18 11:28:09 +02:00
Jose Diaz-Gonzalez
7e36d74959 Merge pull request #2723 from weyert/bugfix/2722
Call non-deprecated plugin:list method
2017-04-17 11:01:07 -06:00
Weyert de Boer
442d2cc414 Ensure the plugin listing command is not the deprecated one but the new plugin:list one instead 2017-04-17 16:22:23 +01:00
Jose Diaz-Gonzalez
8cac7ee63f Merge pull request #2719 from joshco/master
clarify requirement to be checked into repo for buildpack apps
2017-04-17 00:38:45 -06:00
Josh
ab29554f3f clarify requirement to be checked into repo for buildpack apps 2017-04-16 12:26:37 -04:00
Jose Diaz-Gonzalez
2803c39fb5 Merge pull request #2715 from dokku/github-usable-docs
Use urls that are linkable on github
2017-04-13 23:24:34 -06:00
Jose Diaz-Gonzalez
0ba9393285 docs: use urls that are linkable on github 2017-04-13 23:09:46 -06:00
Jose Diaz-Gonzalez
6cb8b108db Release 0.9.4
# History

## 0.9.4

### Documentation

- #2710: @josegonzalez Quiet output for git-related commands
2017-04-10 18:36:04 -06:00
Jose Diaz-Gonzalez
9aef43d5a0 Merge pull request #2710 from dokku/quiet-git
Quiet output for git-related commands
2017-04-10 18:35:25 -06:00
Jose Diaz-Gonzalez
8dadc4cf50 fix: de-dent post-extract output 2017-04-10 17:12:46 -06:00
Jose Diaz-Gonzalez
45518fce6c fix: ensure git check-ref-format runs quietly 2017-04-10 17:12:32 -06:00
Jose Diaz-Gonzalez
b21f4b6470 Release 0.9.3
# History

## 0.9.3

### Bug Fixes

- #2706: @josegonzalez fix: ensure nginx conf.d directory exists when running nginx install hook
- #2701: @scjody Set SSH_USER for root commands

### New Features

- #2708: @josegonzalez Document that we will not do buildpack support in the issue tracker

### Documentation

- #2709: @michaelshobbs increase CURL_TIMEOUT and CURL_CONNECT_TIMEOUT defaults
- #2699: @mbreit Add support for git >= 2.11
2017-04-10 13:40:53 -06:00
Jose Diaz-Gonzalez
c52f60f9d7 Merge pull request #2709 from dokku/mh/fix/default-curl-timeouts
increase CURL_TIMEOUT and CURL_CONNECT_TIMEOUT defaults
2017-04-10 13:39:42 -06:00
Jose Diaz-Gonzalez
c815d732eb Merge pull request #2706 from dokku/2686-missing-nginx-dir
fix: ensure nginx conf.d directory exists when running nginx install hook
2017-04-10 12:48:25 -06:00
Michael Hobbs
18849c085a increase CURL_TIMEOUT and CURL_CONNECT_TIMEOUT defaults. fixes #2668 2017-04-10 11:34:09 -07:00
Jose Diaz-Gonzalez
cb62958095 Merge pull request #2708 from dokku/josegonzalez-patch-1
Document that we will not do buildpack support in the issue tracker
2017-04-10 07:46:49 -06:00
Jose Diaz-Gonzalez
4fcfad5df5 docs: Document that we will not do buildpack support in the issue tracker
[ci skip]
2017-04-10 07:46:23 -06:00
Jose Diaz-Gonzalez
5101096518 fix: ensure nginx conf.d directory exists when running nginx install hook
Closes #2686
2017-04-10 00:37:23 -06:00
Jose Diaz-Gonzalez
afef3b94d5 Merge pull request #2701 from plotly/set-ssh-user-for-root
Set SSH_USER for root commands
2017-04-10 00:28:50 -06:00
Jody McIntyre
73a84f90c5 Set SSH_USER for root commands
Previously, SSH_USER was not set for plugin:* or ssh-keys:add, which
contradicts the user-auth trigger documentation.

Fixes #2700
2017-04-07 12:46:09 -04:00
Jose Diaz-Gonzalez
918bc9efe8 Merge pull request #2699 from mbreit/git-worktree
Use git worktree in git_build_app_repo() for git >= 2.11
2017-04-05 11:03:10 -04:00
Moritz Breit
98619733b2 Use git worktree in git_build_app_repo() for git >= 2.11
Git 2.11.0 breaks the git clone approach in git_build_app_repo() in
25ab004c53

git worktree is a much simpler approach but only works for git >= 2.5
so it is not available in Ubuntu 14.04.

Fixes #2512.
2017-04-05 11:45:41 +02:00
Jose Diaz-Gonzalez
2fb712c3a2 Release 0.9.2
# History

## 0.9.2

### New Features

- #2698: @josegonzalez docs: Document that we only care about specific sections
- #2697: @callahad Restore installer note regarding AUFS on Linode
- #2694: @scjody Add documentation note re: git-pre-pull vs. auth

### Documentation

- #2695: @michaelshobbs add tests for pre/post deploy tasks
2017-04-05 00:21:24 -04:00
Jose Diaz-Gonzalez
0fa6503034 Merge pull request #2698 from dokku/josegonzalez-patch-1
docs: Document that we only care about specific sections
2017-04-04 17:05:32 -04:00
Jose Diaz-Gonzalez
fab97a377f docs: Document that we only care about specific sections
Also remove all extra sections that are unused to make this clearer.

[ci skip]
2017-04-04 16:53:15 -04:00
Jose Diaz-Gonzalez
811bf2f9c4 Merge pull request #2697 from callahad/warn-about-aufs-warning
Restore installer note regarding AUFS on Linode
2017-04-04 15:37:38 -04:00
Dan Callahan
20497dabb4 Restore installer note regarding AUFS on Linode
See discussion in: https://github.com/dokku/dokku/issues/2675
Upstream Docker bug: https://github.com/docker/docker/issues/32361
2017-04-04 14:35:09 -05:00
Jose Diaz-Gonzalez
0b430af077 Merge pull request #2694 from plotly/git-pre-pull-security-note
Add documentation note re: git-pre-pull vs. auth
2017-04-04 12:50:37 -04:00
Jody McIntyre
e42e7c3694 Add documentation note re: git-pre-pull vs. auth 2017-04-04 11:40:46 -04:00
Michael Hobbs
eeef120433 Merge pull request #2695 from dokku/mh/chore/deployment-tasks-tests
add tests for pre/post deploy tasks
2017-04-03 16:32:36 -07:00
Michael Hobbs
8950571acb add tests for pre/post deploy tasks 2017-04-03 12:34:41 -07:00
Jose Diaz-Gonzalez
a72a82e29b Release 0.9.1
# History

## 0.9.1

### Bug Fixes

- #2693: @josegonzalez fix: explicitly chown data and data/storage directories
2017-04-03 00:17:02 -04:00
Jose Diaz-Gonzalez
b6adc23bdd Merge pull request #2693 from dokku/josegonzalez-patch-1
fix: explicitly chown data and data/storage directories
2017-04-02 16:17:41 -04:00
Jose Diaz-Gonzalez
8677aadad7 fix: explicitly chown data and data/storage directories
Doing a recursive chown will otherwise screw up dockerfile-based app storage when the uid does not map to herokuish or similar.
2017-04-02 15:07:18 -04:00
Jose Diaz-Gonzalez
a4b8e59c3f Release 0.9.0
# History

## 0.9.0

### Bug Fixes

- #2691: @josegonzalez Fix package building when golang binaries are available
- #2671: @znz Fix variable name
- #2672: @callahad Fix logrotate on Debian
- #2666: @josegonzalez Use correct flag for build arguments when installing herokuish
- #2664: @pvalentim Fix remote name when using --remote option with apps:create

### New Features

- #2689: @mbreit Add dokku-monit to community plugin list
- #2683: @josegonzalez Ensure we have an example for adding keys as another user
- #2682: @josegonzalez Clarify supported stanzas in app.json
- #2679: @callahad Remove unnecessary Linode-specific instructions
- #2670: @znz Remove duplicated `(i.e. `

### Documentation

- #2685: @josegonzalez Pass shellcheck on os x
- #2677: @callahad Prefer HTTP2 to SPDY in nginx-vhosts
- #2673: @michaelshobbs Update to herokuish 0.3.27
- #2674: @michaelshobbs Update sshcommand to 0.7.0
- #2654: @ebeigarts Enable nginx and docker on system startup when using bootstrap.sh on CentOS
- #2546: @michaelshobbs Convert repo plugin to golang
2017-03-31 18:33:39 -06:00
Jose Diaz-Gonzalez
3a5d0716d4 Merge pull request #2691 from dokku/packaging
Fix package building when golang binaries are available
2017-03-31 18:12:44 -06:00
Jose Diaz-Gonzalez
b54a5b3f67 feat: add more lintian overrides for golang-based builds 2017-03-31 17:50:54 -06:00
Jose Diaz-Gonzalez
5b33bd5eda fix: clean up src files in tmp build dir 2017-03-31 17:50:34 -06:00
Jose Diaz-Gonzalez
6d55dd8884 fix: allow skipping go-clean 2017-03-31 17:50:16 -06:00
Jose Diaz-Gonzalez
0fae350256 fix: do not clean src files between builds
This breaks packaging for multiple systems, and should only be done in the tmp build dir.
2017-03-31 17:48:26 -06:00
Jose Diaz-Gonzalez
90015ab594 fix: ensure the Makefile is also removed when calling make src-clean 2017-03-31 17:27:08 -06:00
Jose Diaz-Gonzalez
28281ae4d4 fix: properly detect release builds 2017-03-31 17:08:03 -06:00
Jose Diaz-Gonzalez
4723b27f2c Merge pull request #2690 from znz/fix-contrib/release
Fix some bugs in contrib/release
2017-03-31 16:29:21 -06:00
Kazuhiro NISHIYAMA
de338f4da5 Fix a typo 2017-03-30 21:32:07 +09:00
Kazuhiro NISHIYAMA
d52eac7b35 Fix a typo 2017-03-30 21:31:15 +09:00
Kazuhiro NISHIYAMA
4d01e677ee Add missing $ 2017-03-30 21:30:33 +09:00
Kazuhiro NISHIYAMA
33daa88197 Add missing local 2017-03-30 21:29:59 +09:00
Kazuhiro NISHIYAMA
607a3d88ae CURRENT_VERSION used in fn-repo-update-history-and-commit 2017-03-30 21:27:35 +09:00
Kazuhiro NISHIYAMA
be082e2fe0 Escaping CURRENT_VERSION to avoid too replaced
like change fixed in 5173145653
2017-03-30 21:24:40 +09:00
Kazuhiro NISHIYAMA
27bd578405 $IS_RELEASE is true or false
`[[ "$IS_RELEASE" == "release" ]]` does never match,
because `fn-is-release` outputs `true` or `false` only.
2017-03-30 21:23:15 +09:00
Jose Diaz-Gonzalez
0962ebeadb Merge pull request #2689 from mbreit/dokku-monit-plugin
Add dokku-monit to community plugin list
2017-03-29 09:19:03 -06:00
Moritz Breit
95d9ca8945 Add dokku-monit to community plugin list 2017-03-29 10:00:43 +02:00
Jose Diaz-Gonzalez
e71cd7a939 Merge pull request #2684 from dokku/automated-release
feat: Allow triggering a release via the `contrib/release` script
2017-03-27 23:24:53 -06:00
Jose Diaz-Gonzalez
4bf301c913 chore: group single-line directives that are the same
[ci skip]
2017-03-27 09:32:48 -06:00
Jose Diaz-Gonzalez
0ea9e398bb Merge pull request #2685 from dokku/dockerfile-packaging
Pass shellcheck on os x
2017-03-26 16:23:33 -06:00
Jose Diaz-Gonzalez
2a6ea5d979 Merge pull request #2677 from callahad/prefer-http2
Prefer HTTP2 to SPDY in nginx-vhosts
2017-03-26 13:15:47 -06:00
Jose Diaz-Gonzalez
b8cde503c2 SC2178: Variable was used as an array but is now assigned a string 2017-03-26 05:03:16 -06:00
Jose Diaz-Gonzalez
89c8e1c6a5 SC2086: Double quote to prevent globbing and word splitting 2017-03-26 05:02:03 -06:00
Jose Diaz-Gonzalez
6c66e9850c SC2145: Argument mixes string and array. Use * or separate argument. 2017-03-26 05:00:43 -06:00
Jose Diaz-Gonzalez
fbcc8d8d6c SC2154: disable 2017-03-26 04:59:54 -06:00
Jose Diaz-Gonzalez
e2bbdc968d SC2162: read without -r mangle backslashes 2017-03-26 04:59:10 -06:00
Jose Diaz-Gonzalez
ed7d5623ad fix: attempt to pass shellcheck on os x 2017-03-26 04:38:35 -06:00
Jose Diaz-Gonzalez
217e491e59 feat: Allow triggering a release via the contrib/release script
- Requires docker, git, and package_cloud gems
- Requires the PACKAGECLOUD_API_TOKEN environment variable
- Builds both a deb and rpm, pushing both to packagecloud
- Upgrades the golang build environment to 1.7.5
- Combines both build Dockerfiles into a single, generic env
- Fixes issue where internal-functions file for tar plugin was not executable
- Ensures that built plugins have a callback to clean up their source files before packaging
- Adds support for “betafish” releases, which are untested versions of Dokku that are available via a separate packagecloud repository.
2017-03-25 17:56:42 -06:00
Jose Diaz-Gonzalez
101414dcd3 Merge pull request #2683 from dokku/josegonzalez-patch-1
docs: ensure we have an example for adding keys as another user
2017-03-24 17:35:20 -06:00
Jose Diaz-Gonzalez
edda1e6567 docs: ensure we have an example for adding keys as another user
Closes #2680

[ci skip]
2017-03-24 17:35:05 -06:00
Jose Diaz-Gonzalez
dd7439095a Merge pull request #2682 from dokku/josegonzalez-patch-1
docs: Clarify supported stanzas in app.json
2017-03-24 16:08:31 -06:00
Jose Diaz-Gonzalez
9e3ae9c37c docs: Clarify supported stanzas in app.json
Closes #2681

[ci skip]
2017-03-24 16:08:17 -06:00
Jose Diaz-Gonzalez
b1bd2c17a0 Merge pull request #2679 from callahad/remove-linode-docs
Remove unnecessary Linode-specific instructions
2017-03-23 14:58:48 -06:00
Dan Callahan
a939296981 Prefer HTTP2 to SPDY in nginx-vhosts
1.  SPDY has been deprecated and removed from modern browsers:
    http://caniuse.com/#feat=spdy

2.  HTTP/2 is present in all modern browsers:
    http://caniuse.com/#feat=http2

3.  SPDY and HTTP/2 are mutually exclusive in port-based `listen` directives:
    http://nginx.org/en/docs/http/ngx_http_core_module.html#listen

Caniuse suggests that 74% of global users have a browser that supports
HTTP/2, while only 27% have a browser that supports SPDY. Only IE11 and
Safari support both.

Therefore, when both are available, Dokku should choose HTTP/2 to
maximize the benefit to users.
2017-03-23 15:23:57 -05:00
Dan Callahan
23cfccf424 Remove unnecessary Linode-specific instructions
Modern versions of Docker work just fine on Linode's default kernel
thanks to the `overlay2` storage driver.

Closes #2675
2017-03-23 15:18:10 -05:00
Dan Callahan
071e746c45 Update the default cipher suite
This is the Modern preset from:
https://mozilla.github.io/server-side-tls/ssl-config-generator/
2017-03-23 15:11:57 -05:00
Jose Diaz-Gonzalez
eae2876187 Merge pull request #2673 from dokku/mh/chore/bump-herokuish
update to herokuish 0.3.27
2017-03-23 13:43:24 -06:00
Jose Diaz-Gonzalez
8730bbf0a9 Merge pull request #2674 from dokku/mh/chore/bump-sshcommand
update sshcommand to 0.7.0
2017-03-23 13:43:04 -06:00
Jose Diaz-Gonzalez
1f5e5e5c14 Merge pull request #2654 from ebeigarts/rpm-enable-docker-nginx
Enable nginx and docker on system startup when using bootstrap.sh on CentOS
2017-03-23 13:42:45 -06:00
Michael Hobbs
e8b6e33934 update sshcommand to 0.7.0 2017-03-22 09:33:53 -07:00
Jose Diaz-Gonzalez
9ee6c7aab6 Merge pull request #2671 from znz/fix-var-name
Fix variable name
2017-03-22 10:31:48 -06:00
Jose Diaz-Gonzalez
22a8b914d2 Merge pull request #2670 from znz/fix-typo
Remove duplicated `(i.e. `
2017-03-22 09:59:03 -06:00
Jose Diaz-Gonzalez
dfab96c72e Merge pull request #2672 from callahad/fix-logrotate-debian
Fix logrotate on Debian
2017-03-22 09:58:01 -06:00
Michael Hobbs
7c8fba8fc1 update to herokuish 0.3.27 2017-03-22 08:52:50 -07:00
Dan Callahan
85f4023965 Fix logrotate on Debian
Since we're creating logs as `root:dokku`, the logrotate configuration
needs an `su root dokku` line, just like `su syslog dokku` on ubuntu.
2017-03-22 08:39:46 -05:00
Kazuhiro NISHIYAMA
e9ee47a7c7 Fix variable name
`key` may not be `DOKKU_ROOT`.
2017-03-22 21:31:27 +09:00
Kazuhiro NISHIYAMA
a7c6127f2b Remove duplicated (i.e.
[ci skip]
2017-03-22 21:29:21 +09:00
Jose Diaz-Gonzalez
4e6a699140 Merge pull request #2666 from dokku/josegonzalez-patch-1
Use correct flag for build arguments when installing herokuish
2017-03-21 08:15:29 -06:00
Jose Diaz-Gonzalez
f71644faf6 Use correct flag for build arguments when installing herokuish
Closes #2665

[ci skip]
2017-03-21 08:15:07 -06:00
Michael Hobbs
9a6306c53b Merge pull request #2546 from dokku/mh-repo-golang
convert repo plugin to golang
2017-03-20 11:08:19 -07:00
Michael Hobbs
83d98fb6fb cleanup from master rebase 2017-03-20 09:18:54 -07:00
Michael Hobbs
c501574753 fix overlooked rename of struct method receiver var 2017-03-20 09:16:49 -07:00
Michael Hobbs
f0efdd2ed4 rename DokkuCmd to ShellCmd and use strings.Join instead of fmt.Sprintf 2017-03-20 09:16:49 -07:00
Michael Hobbs
177b45c49b use common.mk for common make variables. use -e when calling make. use golang:1.7.4 image. 2017-03-20 09:16:49 -07:00
Michael Hobbs
fc31b28ab6 restructure to build individual binaries 2017-03-20 09:16:49 -07:00
Michael Hobbs
e61475c7ea add plugin docs regarding compiled languages and command API 2017-03-20 09:15:43 -07:00
Michael Hobbs
c92c0fce37 remove non-existent targets from .PHONY 2017-03-20 09:15:43 -07:00
Michael Hobbs
1a0c308b65 better error msg language 2017-03-20 09:15:43 -07:00
Michael Hobbs
dffbad49b4 refactor out variadic form of GetDeployingAppImageName 2017-03-20 09:15:43 -07:00
Michael Hobbs
b6dffaabee convert repo plugin to golang 2017-03-20 09:15:43 -07:00
Jose Diaz-Gonzalez
8d83803763 Merge pull request #2664 from pvalentim/fix-remote-option
Fix remote name when using --remote option with apps:create
2017-03-20 09:43:37 -06:00
Pedro Valentim
85e5bd7c86 Fix remote name when using --remote option with apps:create 2017-03-20 13:11:14 +00:00
Jose Diaz-Gonzalez
6e4f023a7b Release 0.8.2 2017-03-19 16:20:39 -06:00
Jose Diaz-Gonzalez
8fb817f93c Merge pull request #2660 from dokku/plugin-tarball-support
feat: allow installation of plugins via tarball
2017-03-19 16:17:29 -06:00
Jose Diaz-Gonzalez
49abdb1b5c Merge pull request #2661 from dokku/non-quiet-package-builds
feat: do not run builds in quiet mode
2017-03-19 16:17:24 -06:00
Jose Diaz-Gonzalez
bba368a32d feat: allow installation of plugins via tarball 2017-03-19 16:16:45 -06:00
Jose Diaz-Gonzalez
eaccd8087c feat: do not run builds in quiet mode 2017-03-19 16:15:28 -06:00
Jose Diaz-Gonzalez
3c1fc4a7df Release 0.8.1 2017-03-19 14:06:32 -06:00
Jose Diaz-Gonzalez
c0027e5107 Merge pull request #2659 from jfw/master
Minor clarifications
2017-03-17 17:35:03 -06:00
Jeff Fein-Worton
ed6a4426c7 Minor clarifications 2017-03-17 16:32:33 -07:00
Jose Diaz-Gonzalez
e5a6cf48f7 Merge pull request #2657 from dokku/post-extract-trigger
Add post-extract plugin trigger
2017-03-16 05:51:04 -06:00
Jose Diaz-Gonzalez
dace6873df Add post-extract plugin trigger
This trigger allows you to modify the contents of an application *after* it has been extracted from git/tarball but *before* the image source type is detected. For example, you may wish to autogenerate a Dockerfile based on some other application contents before detecting what type of build process - herokuish or docker file - to use.
2017-03-16 04:25:18 -06:00
Jose Diaz-Gonzalez
d01460f19a Merge pull request #2656 from dokku/2628-fix-global-report-flags
fix: ensure we can call the report subcommand without an app while specifying flags
2017-03-16 03:39:42 -06:00
Jose Diaz-Gonzalez
97e35e796c fix: ensure we can call the report subcommand without an app while specifying flags
Closes #2628
2017-03-16 02:33:51 -06:00
Jose Diaz-Gonzalez
4de0e693ca Merge pull request #2618 from dokku/2356-storage-report
Implement docker-options:report and storage:report
2017-03-15 10:38:09 -06:00
Jose Diaz-Gonzalez
01b30e083f fix: redirect stderr to /dev/null in tests 2017-03-15 09:29:47 -06:00
Edgars Beigarts
7ba063c6bb Enable nginx and docker on system startup when using bootstrap.sh on CentOS 2017-03-15 14:52:29 +02:00
Jose Diaz-Gonzalez
0215e3ec91 fix: redirect domains:default stderr to /dev/null in tests 2017-03-15 03:17:31 -06:00
Jose Diaz-Gonzalez
91aa5255ec fix: ensure we redirect stderr to stdout for test 2017-03-15 02:55:09 -06:00
Jose Diaz-Gonzalez
0d1c8deb57 fix: redirect error output to /dev/null
The checks command is deprecated, so the warning was being captured.
2017-03-15 02:44:38 -06:00
Jose Diaz-Gonzalez
06d2ffaa14 feat: redirect warnings to stderr
Having warnings on stdout doesn’t convey to a user that it is a warning.
2017-03-15 02:44:38 -06:00
Jose Diaz-Gonzalez
6ae948523b fix: redirect error output to /dev/null
The docker-options command is deprecated, so the warning was being captured.
2017-03-15 02:44:38 -06:00
Jose Diaz-Gonzalez
9aaf289fb8 fix: use correct variable 2017-03-15 02:44:38 -06:00
Jose Diaz-Gonzalez
367f6bd5e8 fix: add missing source calls 2017-03-15 02:44:38 -06:00
Jose Diaz-Gonzalez
d9ff7c218d Add deprecation notice 2017-03-15 02:42:10 -06:00
Jose Diaz-Gonzalez
f5cce3c3a3 fix: pass shellcheck 2017-03-15 02:42:10 -06:00
Jose Diaz-Gonzalez
f1897c7a86 feat: implement docker-options:report command
Refs #2356
2017-03-15 02:42:10 -06:00
Jose Diaz-Gonzalez
25e44b5492 docs: use node-js-app as the app name, not node-js-sample 2017-03-15 02:42:10 -06:00
Jose Diaz-Gonzalez
b7dca68375 fix: use correct source path 2017-03-15 02:42:10 -06:00
Jose Diaz-Gonzalez
9bad0795e2 fix: add missing functions 2017-03-15 02:42:10 -06:00
Jose Diaz-Gonzalez
b7da215ab5 feat: implement storage:report command
Refs #2356
2017-03-15 02:42:10 -06:00
Jose Diaz-Gonzalez
35acce84ea chore: use correct path for sourcing 2017-03-15 02:42:10 -06:00
Jose Diaz-Gonzalez
a7f32197f3 refactor: move command to internal-functions 2017-03-15 02:42:10 -06:00
Jose Diaz-Gonzalez
ac8aff1f00 refactor: storage:default is now an alias for storage:help 2017-03-15 02:39:53 -06:00
Jose Diaz-Gonzalez
e99e0b02d4 refactor: move storage:help to internal-functions 2017-03-15 02:38:38 -06:00
Jose Diaz-Gonzalez
621b31839e Merge pull request #2650 from dokku/2627-bare-help-output
Fix help output for nginx and ssh-keys
2017-03-13 10:36:25 -06:00
Jose Diaz-Gonzalez
3c5335056c feat: allow plugin:help and plugin:list subcommands to be run without root 2017-03-12 21:46:58 -06:00
Jose Diaz-Gonzalez
30bf228dc9 docs: swap in plugin:list command 2017-03-12 21:29:25 -06:00
Jose Diaz-Gonzalez
e78a05d6fe feat: mark ps:default command as deprecated 2017-03-12 21:29:12 -06:00
Jose Diaz-Gonzalez
4930003008 feat: create repo:default alias for repo:help 2017-03-12 21:29:01 -06:00
Jose Diaz-Gonzalez
0153bc49bc feat: create tar:default alias for tar:help 2017-03-12 21:28:45 -06:00
Jose Diaz-Gonzalez
48503e9f40 fix: add missing import 2017-03-12 21:28:29 -06:00
Jose Diaz-Gonzalez
ef9b453aa8 refactor: mark storage:list as deprecated 2017-03-12 21:27:36 -06:00
Jose Diaz-Gonzalez
f5552da8ac chore: formatting 2017-03-12 21:26:54 -06:00
Jose Diaz-Gonzalez
6124f2693b feat: make plugin:default an alias of plugin:list 2017-03-12 21:26:46 -06:00
Jose Diaz-Gonzalez
2bcad2014b chore: unify error output when an app is not declared 2017-03-12 21:26:19 -06:00
Jose Diaz-Gonzalez
7bbad9f074 fix: ensure the help output for nginx/ssh-keys renders correctly
Closes #2627

[ci skip]
2017-03-12 21:24:43 -06:00
Jose Diaz-Gonzalez
a5ac4bb08b Merge pull request #2648 from dokku/josegonzalez-patch-1
docs: Note that the remote username is important
2017-03-10 19:47:38 -07:00
Jose Diaz-Gonzalez
3b2bb2ebc6 docs: Note that the remote username is important
[ci skip]
2017-03-10 19:47:26 -07:00
Jose Diaz-Gonzalez
40e4df7e78 Merge pull request #2647 from dokku/jg-2646
fix: properly escape post-install variables
2017-03-09 01:56:44 -07:00
Jose Diaz-Gonzalez
41d3b258bb fix: properly escape post-install variables
Closes #2646

[ci skip]
2017-03-09 01:56:27 -07:00
Chiedo
12b44c865b Exposed function to nginx template 2017-03-08 07:49:21 -05:00
Chiedo
58c2ad8e4b Attempt to fix plugin path 2017-03-07 16:10:46 -05:00
Chiedo
4c354bdcd6 lol 2017-03-07 15:53:16 -05:00
Chiedo
22f670d999 Fixed variable syntax in install script 2017-03-07 14:50:14 -05:00
Chiedo
e5f3dcaaef Quoted Variable usage 2017-03-07 14:38:19 -05:00
Chiedo
3f4b1e69c7 Requested improvements
- Moved the template files
- Replaced . with $PWD
- Made more descriptive errors in the templates
2017-03-07 14:28:38 -05:00
Chiedo
fa286caca2 Switched to templated error pages 2017-03-07 09:14:24 -05:00
Chiedo
3b78e65b2b Added better default nginx error pages 2017-03-06 15:05:58 -05:00
Jose Diaz-Gonzalez
df6f7803d0 Merge pull request #2639 from joshco/docs/alt-unix-users
Add documentation for how to grant other Unix accounts Dokku access
2017-03-06 06:34:26 -07:00
Josh Cohen
e870f844c6 Add documentation for how to grant other Unix accounts Dokku access
without giving them full sudo privileges.
2017-03-06 08:06:24 -05:00
Jose Diaz-Gonzalez
68192dcdbf Merge pull request #2638 from econya/speaking-documentation-link
Improve README with more speaking link to doc.
2017-03-06 02:55:20 -07:00
Felix Wolfsteller
926cb51906 Improve README with more speaking link to doc.
Also, add a full stop somewhere.
2017-03-06 10:23:08 +01:00
Jose Diaz-Gonzalez
e518571f83 Merge pull request #2622 from raphaklaus/master
Allow file names with multiple dots in certs:add command
2017-03-04 16:18:27 -07:00
Jose Diaz-Gonzalez
7586575cf8 Merge pull request #2637 from dokku/fix-ps-report-docs
docs: Add documentation surrounding flags that ps:report accepts
2017-03-04 16:18:03 -07:00
Jose Diaz-Gonzalez
31c9775ef4 docs: Add documentation surrounding flags that ps:report accepts
Closes #2631

[ci skip]
2017-03-04 16:17:27 -07:00
Raphael D. Pinheiro
30de268da7 Merge branch 'master' into master 2017-03-03 15:22:55 -03:00
Jose Diaz-Gonzalez
1e387b3b42 fix: support new docker packages
Refs #2636
2017-03-03 09:04:49 -07:00
raphaklaus
94af35b3b9 Merge branch 'master' of https://github.com/raphaklaus/dokku 2017-03-02 16:39:08 -03:00
raphaklaus
a3989aafaa add grep to find crt and key files 2017-03-02 16:38:25 -03:00
Michael Hobbs
87feed08f5 Merge pull request #2634 from dokku/mh/chore/upgrade-herokuish
update herokuish to 0.3.26
2017-03-02 10:23:57 -07:00
Raphael D. Pinheiro
86eca5af3a Merge branch 'master' into master 2017-03-02 12:01:17 -03:00
Michael Hobbs
246e54a293 update herokuish to 0.3.26 2017-02-28 17:02:33 -07:00
Jose Diaz-Gonzalez
16ff22b457 Merge pull request #2633 from drpoggi/patch-1
update ssl.md
2017-02-28 12:08:10 -07:00
David Poggi
f7a25eb480 update ssl.md
Make sure we're respecting the respectively ;)
2017-02-28 13:20:47 -05:00
Raphael D. Pinheiro
51f5dbcf26 Merge branch 'master' into master 2017-02-28 12:37:52 -03:00
Jose Diaz-Gonzalez
d79a79084e fix: bail early when checking ps output for an undeployed app
Closes #2630
2017-02-27 07:30:21 -07:00
Jose Diaz-Gonzalez
fe54718073 Merge pull request #2629 from znz/fix-certs-help
Fix `certs:help`
2017-02-27 07:13:20 -07:00
Kazuhiro NISHIYAMA
c1cef4f99e Fix certs:help
`certs` requires `app` argument like `certs:info`.
2017-02-27 23:04:54 +09:00
Jose Diaz-Gonzalez
d36f874d0e Merge pull request #2626 from znz/update-command-in-example
Update command in example
2017-02-27 06:49:22 -07:00
Kazuhiro NISHIYAMA
b0c577ddd7 Update command in example 2017-02-27 22:41:42 +09:00
raphaklaus
56b018b4c5 Merge branch 'master' of https://github.com/raphaklaus/dokku 2017-02-24 12:54:40 -03:00
Raphael D. Pinheiro
8bc7cdaaeb Merge branch 'master' into master 2017-02-24 12:42:42 -03:00
raphaklaus
adf0a9ee74 add domain_ssl tar for testing 2017-02-24 12:41:12 -03:00
Jose Diaz-Gonzalez
ba7f9b8f87 Merge pull request #2616 from dokku/2356-apps-report-cleanup
Replace apps subcommand with apps:list
2017-02-23 19:38:40 -07:00
Jose Diaz-Gonzalez
a3ff9b53a8 Merge pull request #2615 from dokku/2356-certs-report
Implement certs:report
2017-02-23 19:38:25 -07:00
Jose Diaz-Gonzalez
0b897df462 Merge pull request #2619 from dokku/2356-ssh-keys-report
Refactor ssh-keys:default
2017-02-23 19:38:11 -07:00
Jose Diaz-Gonzalez
b4899cdb21 Merge pull request #2620 from dokku/2356-proxy-report
Implement domains:report and proxy:report
2017-02-23 19:37:58 -07:00
Jose Diaz-Gonzalez
2fbe5a418f Merge pull request #2617 from dokku/2356-checks-report
Implement checks:report
2017-02-23 19:37:43 -07:00
Raphael D. Pinheiro
8a6bce3745 add multiple dots tar for testing 2017-02-23 16:33:36 -03:00
Raphael D. Pinheiro
b0777a44cb add test to certs:add with multiple dots
Add test to certs:add command to allow multiple dots in file name
2017-02-23 13:44:28 -03:00
Raphael D. Pinheiro
0c98a34094 enhance regex to allow multiple dots in file names
removed remaining *
2017-02-23 13:27:50 -03:00
Raphael D. Pinheiro
088b7f360e enhance regex to allow multiple dots in file names
things like mydomain.com.crt and mydomain.com.key will be better interpreted
2017-02-23 13:25:33 -03:00
Jose Diaz-Gonzalez
54429a095c feat: implement domains:report command
Also deprecate `domains:default` in favor of `domains:report`

Refs #2356
2017-02-20 23:17:35 -07:00
Jose Diaz-Gonzalez
282979eef4 refactor: move domains:help to internal-functions 2017-02-20 22:50:07 -07:00
Jose Diaz-Gonzalez
48653e5663 chore: properly name functions 2017-02-20 22:44:51 -07:00
Jose Diaz-Gonzalez
ec2e2bc4cc refactor: alias nginx:default to nginx:help 2017-02-20 22:39:53 -07:00
Jose Diaz-Gonzalez
885aa47b18 refactor: move nginx:help to internal-functions 2017-02-20 22:35:52 -07:00
Jose Diaz-Gonzalez
225840b79d refactor: move proxy:help to internal-functions 2017-02-20 21:52:05 -07:00
Jose Diaz-Gonzalez
0e899cdd13 feat: implement proxy:report command
Also deprecate `proxy:default` in favor of `proxy:report`

Refs #2356
2017-02-20 21:52:02 -07:00
Jose Diaz-Gonzalez
6906ead6ae Merge pull request #2592 from dokku/2535-dockerfile-ssl-port
fix: always set a default ssl port for apps with ssl enabled
2017-02-20 21:20:44 -07:00
Jose Diaz-Gonzalez
e441594981 chore: use correct source path 2017-02-20 20:11:53 -07:00
Jose Diaz-Gonzalez
448b6e9ac1 refactor: alias ssh-keys:default to ssh-keys:help 2017-02-20 20:09:09 -07:00
Jose Diaz-Gonzalez
a09560542b refactor: move ssh-keys:help to internal-functions 2017-02-20 20:08:38 -07:00
Jose Diaz-Gonzalez
adc3b24ed7 docs: use node-js-app as sample app name
[ci skip]
2017-02-20 20:04:07 -07:00
Jose Diaz-Gonzalez
4026291572 SC2005: Useless echo? Instead of 'echo $(cmd)', just use 'cmd'. 2017-02-20 19:22:18 -07:00
Jose Diaz-Gonzalez
59f6ad9479 Correct docs for checks:report
[ci skip]
2017-02-20 19:07:10 -07:00
Jose Diaz-Gonzalez
dd4960f1ce refactor: move checks:help to internal-functions 2017-02-20 18:19:37 -07:00
Jose Diaz-Gonzalez
3b3eefcb73 refactor: deprecate the checks command in favor of checks:report 2017-02-20 18:19:37 -07:00
Jose Diaz-Gonzalez
cbcb720228 feat: implement checks:report command
Refs #2356
2017-02-20 18:19:31 -07:00
Jose Diaz-Gonzalez
d73c07de68 cleanup: move from apps to apps:list subcommand for tests and docs 2017-02-20 17:24:09 -07:00
Jose Diaz-Gonzalez
cd3e637387 refactor: move apps:help to internal-functions 2017-02-20 17:22:41 -07:00
Jose Diaz-Gonzalez
9614f7dca2 feat: implement apps:list
Also deprecate the `apps` command in favor of `apps:list`
2017-02-20 17:18:29 -07:00
Jose Diaz-Gonzalez
84fab30c09 refactor: move certs:help into internal-functions 2017-02-20 17:11:53 -07:00
Jose Diaz-Gonzalez
cb71d8a0be fix: clean up certs help output 2017-02-20 16:51:46 -07:00
Jose Diaz-Gonzalez
507ae1de33 fix: ensure certs:info doesn’t output error information when ssl files are missing 2017-02-20 16:50:38 -07:00
Jose Diaz-Gonzalez
dcb88226b5 refactor: ensure that certs:default and certs:info are deprecated in favor of certs:report
Refs #2356
2017-02-20 16:47:14 -07:00
Jose Diaz-Gonzalez
51217521e3 feat: add certs:report
Refs #2356
2017-02-20 16:39:43 -07:00
Jose Diaz-Gonzalez
05bf33805f Merge pull request #2504 from mbtamuli/apps_report_subcommand
Adds the `report` subcommand for all plugin
2017-02-20 13:56:45 -07:00
Jose Diaz-Gonzalez
3506c100c7 Merge branch 'master' into apps_report_subcommand 2017-02-20 13:55:37 -07:00
Jose Diaz-Gonzalez
8639d1768c Merge pull request #2586 from bevand10/patch-1
Behind-proxy support for herokuish install
2017-02-20 13:50:04 -07:00
Jose Diaz-Gonzalez
779d281c57 Merge pull request #2612 from dokku/2609-ensure-vhost-file-existence
Ensure VHOST files exist before executing commands against them
2017-02-20 13:49:03 -07:00
Jose Diaz-Gonzalez
815630ffe1 Merge pull request #2613 from emveeoh/patch-2
Update linode.md to reflect latest Linode.com process
2017-02-19 20:04:38 -05:00
Michael van Olden
189366097e Update linode.md to reflect latest Linode.com process
[ci skip]
Linode now supports KVM virtualization on all VMs by default. So, this verbiage was completely removed.
GRUB 2 is now one of the default options in the Kernel Menu. The additional Ubuntu packages are no longer required. Wording changed to reflect updated instructions.
2017-02-19 20:01:57 -05:00
Jose Diaz-Gonzalez
7c30babdec fix: Ensure VHOST files exist before executing commands against them
Closes #2609
2017-02-19 19:57:09 -05:00
Jose Diaz-Gonzalez
618395df5e Merge pull request #2605 from andyjeffries/master
Added information on SSL_CERT_FILE build failure
2017-02-15 11:52:08 -05:00
Jose Diaz-Gonzalez
ef7d913cd7 Merge branch 'master' into master 2017-02-15 11:52:00 -05:00
Andy Jeffries
daa8faa3aa Added information on SSL_CERT_FILE build failure 2017-02-15 16:08:02 +00:00
Jose Diaz-Gonzalez
336ffc9b09 Update functions 2017-02-05 13:39:49 -05:00
Michael Hobbs
44b48a55a5 Merge pull request #2594 from dokku/mh/chore/upgrade-herokuish
upgrade to herokuish v0.3.25
2017-02-01 16:45:06 -08:00
Michael Hobbs
0de2c28c92 upgrade to herokuish v0.3.25 2017-02-01 11:52:19 -08:00
Dave Bevan
4f8bea8f35 Merge branch 'master' into patch-1 2017-01-30 10:01:10 +00:00
Jose Diaz-Gonzalez
aae7401888 fix: always set a default ssl port for apps with ssl enabled
Closes #2535
2017-01-30 03:04:02 -05:00
Dave Bevan
96a0c2531d Update deb.mk
Updates as requested
2017-01-27 12:02:55 +00:00
Jose Diaz-Gonzalez
99378af668 Merge pull request #2587 from dokku/2494-custom-deploy-branch
Allow specifying the deploy branch via DOKKU_DEPLOY_BRANCH
2017-01-26 11:23:36 -07:00
Dave Bevan
9f9b3374bd Make docker build --build-args optional
Change the proxy-sensing --build-args such that they only added if defined.
2017-01-26 10:34:02 +00:00
Jose Diaz-Gonzalez
2efcbcc9bb Merge pull request #2588 from dokku/2466-vagrant-ssh-config
Clarify when the `~/.ssh/config` settings need to match `vagrant ssh-config output`
2017-01-26 00:46:57 -07:00
Jose Diaz-Gonzalez
7cac755c98 Clarify when the ~/.ssh/config settings need to match vagrant ssh-config output
Closes #2466

[ci skip]
2017-01-26 00:46:35 -07:00
Jose Diaz-Gonzalez
0aeee7ea28 Allow specifying the deploy branch via DOKKU_DEPLOY_BRANCH
Closes #2494
2017-01-26 00:32:23 -07:00
Dave Bevan
f393fa0442 Behind-proxy support for herokuish install
Inject http proxy envvars to docker build command to allow package installation behind corporate proxies.

These envvars (http_proxy and https_proxy) are standard, and usually configured via system-wide /etc/profile.d files.

In cases where these envvars are not configured, the additions appear to be mute and non-destructive.
2017-01-25 17:37:26 +00:00
Jose Diaz-Gonzalez
f24e777921 Merge pull request #2583 from dokku/jg-apps-clone
feat: implement application cloning
2017-01-24 11:37:38 -07:00
Jose Diaz-Gonzalez
c82c9562b6 fix: use correct check for skipping a rebuild 2017-01-24 02:54:26 -07:00
Jose Diaz-Gonzalez
d473c1635f docs: add a note about errors that can occur for non-generic config
[ci skip]
2017-01-23 12:03:16 -07:00
Jose Diaz-Gonzalez
33a7619eac Update commands
[ci skip]
2017-01-22 22:55:40 -07:00
Jose Diaz-Gonzalez
dd517a3dd1 Update application-management.md
[ci skip]
2017-01-22 22:55:28 -07:00
Jose Diaz-Gonzalez
143b4802c3 fix: use correct verb
[ci skip]
2017-01-22 22:55:09 -07:00
Jose Diaz-Gonzalez
a564eae9f1 feat: implement application cloning
Application cloning can be used to setup review applications based on an existing application. This is useful in CI/CD pipelines where a developer may wish to verify code in a custom environment without overwriting a shared staging environment.
2017-01-22 21:39:30 -07:00
Jose Diaz-Gonzalez
83bf99c8d0 Merge pull request #2580 from znz/fix-font-url
Fix font URL
2017-01-20 09:11:45 -07:00
Kazuhiro NISHIYAMA
5173145653 Fix font URL
It is broken since
a00a9219da (diff-d93d3d701f4e262a6177c91d4e0b9a36R10)
2017-01-20 23:47:07 +09:00
Jose Diaz-Gonzalez
1f0173ad7b Merge pull request #2578 from dokku/josegonzalez-patch-1
Require specific versions for dokku-maintained packages
2017-01-19 17:34:26 -07:00
Jose Diaz-Gonzalez
bdb38ceaa8 Require specific versions for dokku-maintained packages
Closes #2450

[ci skip]
2017-01-19 17:34:09 -07:00
Jose Diaz-Gonzalez
bb0c587fff Merge pull request #2576 from znz/remove-unused
Remove unused variable
2017-01-19 17:22:46 -07:00
Kazuhiro NISHIYAMA
fec2f8e38e Remove unused variable 2017-01-20 00:26:51 +09:00
Jose Diaz-Gonzalez
b0afcee389 Merge pull request #2573 from ebeigarts/parallel-recomends
Recommend parallel package for faster ps:restore
2017-01-18 02:44:56 -07:00
Edgars Beigarts
33c9bc9908 Recommend parallel package for faster ps:restore 2017-01-18 09:25:08 +02:00
Jose Diaz-Gonzalez
e233e916aa docs: move sponsors and backers section up 2017-01-16 15:43:12 -07:00
Jose Diaz-Gonzalez
eb5d4d0708 docs: move badges to newline
[ci skip]
2017-01-16 15:42:25 -07:00
Jose Diaz-Gonzalez
3a8e80c530 fix: use correct markup for link
[ci skip]
2017-01-16 15:38:35 -07:00
Jose Diaz-Gonzalez
c72d7e0686 Merge pull request #2475 from pranavgoel25/update-docs
Minor readme and sponsor changes
2017-01-16 15:37:53 -07:00
Jose Diaz-Gonzalez
5b92085c29 Merge branch 'master' into update-docs 2017-01-16 15:37:36 -07:00
Jose Diaz-Gonzalez
4e7b1c77e3 Merge pull request #2557 from dokku/dokku-cli-improvements
Dokku cli improvements
2017-01-16 15:32:11 -07:00
Jose Diaz-Gonzalez
e83f3e0011 Merge pull request #2570 from OmgImAlexis/master
add dokku report command for 0.4.10+
2017-01-16 00:56:31 -07:00
Alexis Tyler
b874692d06 add dokku report command for 0.4.10+ 2017-01-16 18:25:20 +10:30
Jose Diaz-Gonzalez
b7511829ad Merge pull request #2569 from OmgImAlexis/patch-1
Reload nginx after adding default vhost file
2017-01-16 00:49:55 -07:00
Alexis Tyler
f5f2a5f171 Reload nginx after creating default vhost file 2017-01-16 18:12:11 +10:30
Jose Diaz-Gonzalez
12500d7d3c Merge pull request #2566 from dokku/josegonzalez-patch-1
Move "new as of" note to correct section
2017-01-15 01:36:37 -07:00
Jose Diaz-Gonzalez
927d569db5 Move "new as of" note to correct section
Also move note up.

[ci skip]
2017-01-15 01:07:12 -07:00
Jose Diaz-Gonzalez
eec41bf4e7 Merge pull request #2565 from dokku/josegonzalez-patch-1
Update persistent storage to reference the sample app as normal
2017-01-15 01:05:21 -07:00
Jose Diaz-Gonzalez
f0ecac5998 Update persistent storage to reference the sample app as normal
[ci skip]
2017-01-15 01:05:08 -07:00
Jose Diaz-Gonzalez
feaaf4f4b0 Merge pull request #2564 from ka7/spelling
Spelling
2017-01-14 14:42:27 -07:00
klemens
e09d093239 spelling fixes 2017-01-14 22:38:27 +01:00
klemens
fc4b7ce0ee spelling fixes 2017-01-14 22:35:24 +01:00
Jose Diaz-Gonzalez
dbf0de9e65 Merge pull request #2500 from dokku/2479-jg-suppress-output-on-submodule-success
Suppress output unless the `git submodule update` call fails
2017-01-14 14:13:48 -07:00
Jose Diaz-Gonzalez
8497bd6d70 chore: remove extra newline
[ci skip]
2017-01-14 14:08:22 -07:00
Jose Diaz-Gonzalez
67f05b8eed fix: show error message when there is no DOKKU_REMOTE_HOST available 2017-01-14 14:02:14 -07:00
Jose Diaz-Gonzalez
0f5dec1797 refactor: rename variable usage to DOKKU_REMOTE_HOST
This allows us to make it a local variable
2017-01-14 14:00:21 -07:00
Jose Diaz-Gonzalez
24c4f25dd0 fix: set DOKKU_GIT_REMOTE to a default of dokku 2017-01-14 13:58:45 -07:00
Jose Diaz-Gonzalez
ab93fefd5b Merge pull request #2508 from OmarShehata/master
Add default functions for all commands
2017-01-13 22:37:29 -07:00
Jose Diaz-Gonzalez
e726bb1df8 Merge pull request #2519 from tkalus/tk-2474-dup_nginx_server_name
Fix for #2474
2017-01-13 22:34:17 -07:00
Jose Diaz-Gonzalez
a8abd40abe Merge pull request #2555 from dokku/2463-enhanced-restore
Skip failing applications when running ps:restore on boot
2017-01-13 17:30:01 -07:00
Jose Diaz-Gonzalez
06fa58ff47 chore: remove extra space
[ci skip]
2017-01-13 17:29:51 -07:00
Jose Diaz-Gonzalez
0de746da4e fix shellcheck issues 2017-01-13 16:20:13 -07:00
Jose Diaz-Gonzalez
24552f2b9b Merge pull request #2560 from ebeigarts/rpm-doc
Improve install documentation on CentOS
2017-01-12 09:51:59 -07:00
Edgars Beigarts
90510378c8 Improve install documentation on CentOS 2017-01-12 13:28:39 +02:00
Jose Diaz-Gonzalez
a22f6596dc Merge pull request #2554 from dokku/2480-add-ssl-ports
Add ssl ports when generating a self-signed certificate
2017-01-10 14:00:04 -07:00
Jose Diaz-Gonzalez
c216b3be7f feat: add support for --global flag when calling dokku domains 2017-01-09 02:34:48 -07:00
Jose Diaz-Gonzalez
6e00064cb3 fix: Properly parse flags in the dokku client
- Respect the --app flag
- Respect the --trace flag
- Skip the second argument after both --app and --remote flags
- The `--global` flag should be set as is when specified after a “valid” command
- Fix issues when checking if the --app flag should be passed via ssh
- Use APP as the variable name for the current app
2017-01-09 02:33:45 -07:00
Jose Diaz-Gonzalez
594b41cc70 fix: properly handle argument parsing when skip is set to true
Previously, using the --app flag would mean that we would stop properly parsing all proceeding flags, so the --app flag would only work when set last.
2017-01-09 02:13:52 -07:00
Jose Diaz-Gonzalez
9272e40178 fix: skip following argument when current argument is --app 2017-01-09 02:12:18 -07:00
Jose Diaz-Gonzalez
e107c19dbf chore: remove extra local declarations 2017-01-09 01:31:10 -07:00
Justin Clark
13c78e8e9a Add exceptions back to dokku_client.sh for plugins that should not be passed an app name implicitly 2017-01-09 01:30:49 -07:00
Jose Diaz-Gonzalez
5ddcf06ce9 feat: add the ability to specify a remote via the --remote flag
Closes #2523
2017-01-09 01:15:22 -07:00
Jose Diaz-Gonzalez
70f3e3407f chore: prefix functions with fn- 2017-01-09 00:44:13 -07:00
Jose Diaz-Gonzalez
332c429e31 refactor: make variables local and move them into correct functions 2017-01-09 00:37:54 -07:00
Jose Diaz-Gonzalez
b23c602079 chore: remove extra whitespace in client
[ci skip]
2017-01-09 00:36:35 -07:00
Jose Diaz-Gonzalez
13ef76127d Suppress output unless the git submodule update call fails
This will give a bit more warning to developers as to what might be going on, allowing them to respond appropriately.

Closes #2479
2017-01-08 22:04:14 -07:00
Jose Diaz-Gonzalez
0e0012cca1 fix: remove extra closing tag 2017-01-08 21:43:37 -07:00
Jose Diaz-Gonzalez
37a2edc558 Merge pull request #2556 from dokku/cleanup-fonts
docs: use slightly better font style for docs
2017-01-08 21:38:05 -07:00
Jose Diaz-Gonzalez
2629be5651 docs: use slightly better font style for docs
- switch to native fonts
- use smaller sidebar text
- set proper line-height

[ci skip]
2017-01-08 21:37:44 -07:00
Jose Diaz-Gonzalez
815c612261 feat: add support for using parallel to restore apps
By using parallel, we take advantage of the fact that a server may have multiple cores, thus enabling restores to complete faster.

Refs #2463
2017-01-08 20:49:14 -07:00
Jose Diaz-Gonzalez
831fdeb030 fix: allow ps_start to fail during a ps:restore
Instead of blocking the start of each app based on whether the previous app started, we simply log and continue.

Closes #2463
2017-01-08 20:17:23 -07:00
Jose Diaz-Gonzalez
bcfa60ae98 feat: save the ssl certificate to the APP_SSL_PATH
This allows later retrieval of the csr in cases where the developer forgot to save it locally.
2017-01-08 19:36:17 -07:00
Jose Diaz-Gonzalez
82c11a2b2c fix: call post-certs-update on the application before updating domains
This ensures that we set the proper ssl ports.

Closes #2480
Closes #2528
2017-01-08 19:35:49 -07:00
Jose Diaz-Gonzalez
a967990be7 chore: remove unnecessary cd in certs:add
This was used before we started using `plugn` for triggering subshell calls to dokku.
2017-01-08 19:35:04 -07:00
Jose Diaz-Gonzalez
87573b81bb Release 0.8.0 2017-01-08 17:22:30 -07:00
Jose Diaz-Gonzalez
66ef66644f Merge pull request #2553 from dokku/release
Release code
2017-01-08 16:55:14 -07:00
Jose Diaz-Gonzalez
e46b0952e2 feat: add release-related Dockerfiles
These two docker files are used to create deb and rpm packages which are later extracted and pushed to packagecloud.

[ci skip]
2017-01-08 16:49:41 -07:00
Jose Diaz-Gonzalez
6ab9e04ba6 fix: allow overriding both DOKKU_VERSION and GIT_REV via environment variables 2017-01-08 16:41:05 -07:00
Jose Diaz-Gonzalez
4740ee1edc Merge pull request #2552 from dokku/build-on-osx
Build on osx
2017-01-08 05:25:45 -07:00
Jose Diaz-Gonzalez
f3113296ee fix: ensure man-db is installed when generating man pages
[ci skip]
2017-01-08 05:25:30 -07:00
Jose Diaz-Gonzalez
6c8c4de398 feat: skip checking for /etc/os-release
On OSX, this file does not exist

[ci skip]
2017-01-08 05:25:30 -07:00
Michael Hobbs
6d5d919a06 Merge pull request #2544 from dokku/mh-update-herokuish
update herokuish to 0.3.29
2017-01-03 10:52:50 -08:00
Michael Hobbs
7af00ef744 update herokuish to 0.3.29 2017-01-03 09:36:37 -08:00
Jose Diaz-Gonzalez
5f86962c06 Merge pull request #2539 from ebeigarts/dokku-rm
Fix dokku-installer.service removal
2016-12-28 14:07:04 -07:00
Edgars Beigarts
171e9625f6 Fix dokku-installer.service removal 2016-12-28 07:32:19 +02:00
Jose Diaz-Gonzalez
1f91b33f46 Merge pull request #2518 from dokku/josegonzalez-patch-1
Use same check for dockerfile apps during a tar build
2016-12-23 02:25:28 -07:00
Jose Diaz-Gonzalez
e6bd877b48 Merge pull request #2533 from facundomedica/patch-1
Solution to problem related to firewall
2016-12-16 13:53:26 -05:00
facundomedica
127dd7334f Update troubleshooting.md 2016-12-16 15:52:19 -03:00
facundomedica
3f219a3f8e Solution to problem related to firewall
Resume: Ubuntu 16.04 seems to have the firewall enabled by default, which prohibits the access to apps.
Original issue: https://github.com/dokku/dokku/issues/2532
2016-12-16 15:17:36 -03:00
Jose Diaz-Gonzalez
fb5cc76585 Merge pull request #2531 from slava-vishnyakov/patch-1
Document rebuilding app after mounting storage
2016-12-15 10:50:07 -05:00
Slava Vishnyakov
c5117cb42f Update application-deployment.md 2016-12-15 18:48:22 +03:00
Slava Vishnyakov
4c86f88816 Update application-deployment.md 2016-12-15 18:47:58 +03:00
Slava Vishnyakov
f100a3ee4c Update application-deployment.md 2016-12-15 18:46:52 +03:00
Slava Vishnyakov
a53c61b4d8 Update persistent-storage.md 2016-12-15 18:46:16 +03:00
Slava Vishnyakov
88f37028a2 Update application-deployment.md 2016-12-15 17:15:38 +03:00
Slava Vishnyakov
42b1666fbe Update persistent-storage.md 2016-12-15 17:15:00 +03:00
Slava Vishnyakov
de9f495e2c storage needs deploy too 2016-12-15 14:22:52 +03:00
Slava Vishnyakov
cda2e3d048 Re-deploying/restarting 2016-12-15 14:19:41 +03:00
Mriyam Tamuli
49b01143a0 Correct apps:report to not exit if one app is not deployed 2016-12-11 13:26:07 +05:30
Jose Diaz-Gonzalez
991bb4d7f0 Merge pull request #2526 from dokku/mh-deploy-tasks-bug
actually fail deploy when app.json script fails
2016-12-09 17:45:15 -07:00
Michael Hobbs
c9a1a94cc1 actually fail deploy when app.json script fails 2016-12-09 15:10:07 -08:00
Jose Diaz-Gonzalez
819608b940 Merge pull request #2525 from OmarShehata/patch-1
Plugin-triggers typo: dokkku -> dokku
2016-12-09 02:47:44 -07:00
Omar Shehata
dda58a82f9 Plugin-triggers typo: dokkku -> dokku 2016-12-09 03:46:25 -06:00
Turtle Kalus
eae3d463df Fix for dokku/dokku#2474
`SSL_SERVER_NAME` should contain items found in the ssl certs
(E.G. CommonName and AltNames), but not already in the `NOSSL_SERVER_NAME`
list. That will avoid the dups in the `nginx.conf` and kill the warning
initially cited in dokku/dokku#2474
2016-12-07 23:43:30 +00:00
Jose Diaz-Gonzalez
8f816c3433 Merge pull request #2522 from stackforgehq/fix/2521
Docs: Fix #2521
2016-12-07 11:19:46 -07:00
Josh Manders
88f2dc7f60 Docs: Fix #2521 2016-12-06 21:04:37 -06:00
Jose Diaz-Gonzalez
da44c240d7 Use same check for dockerfile apps during a tar build 2016-12-04 15:20:09 -07:00
Jose Diaz-Gonzalez
cd2ae7ea92 Merge pull request #2517 from dokku/josegonzalez-patch-1
Update docs regarding if the ssh-keys plugin should be in use
2016-12-03 20:23:26 -07:00
Jose Diaz-Gonzalez
23c71c8d69 Update docs regarding if the ssh-keys plugin should be in use
[ci skip]
2016-12-03 20:23:19 -07:00
Omar Shehata
58d774a316 Added default for storage plugin to list 2016-12-03 19:38:48 +00:00
Omar Shehata
f2a4f61920 Added ssh-keys plugin default to list 2016-12-03 19:36:11 +00:00
Omar Shehata
1f47803324 Added certs plugin default to info 2016-12-03 19:27:49 +00:00
Omar Shehata
0062227c57 Revert "Added certs default help function"
This reverts commit d001fcc896.
2016-12-03 19:08:25 +00:00
Omar Shehata
010c89e810 Revert "Added ssh-keys default help function"
This reverts commit 74db5b9d3b.
2016-12-03 19:08:02 +00:00
Omar Shehata
0fed122a99 Revert "Added storage default help function"
This reverts commit 4294793452.
2016-12-03 19:07:34 +00:00
Jose Diaz-Gonzalez
21feb6874a Merge pull request #2511 from IlyaSemenov/default_site_docs
Clarify instructions for arranging default nginx site
2016-12-02 18:31:04 -07:00
Jose Diaz-Gonzalez
ec1b0b530f Merge pull request #2515 from sgloutnikov/dreamhost_doc_update
Update DreamHost Cloud install instructions.
2016-12-02 18:30:03 -07:00
Stefan Gloutnikov
71ee7e73a7 Update DreamHost Cloud install instructions. 2016-12-02 12:53:39 +02:00
Mriyam Tamuli
a574a6db1c Quotes unquoted variable 2016-12-02 00:00:10 +05:30
Ilya Semenov
d4b85999af Clarify instructions for arranging default nginx site 2016-12-01 13:21:57 +07:00
Mriyam Tamuli
45f8b8ccc8 Adds the report subcommand to the ps plugin 2016-12-01 11:39:18 +05:30
Jose Diaz-Gonzalez
f7479250c3 Merge pull request #2510 from IlyaSemenov/domains_set
Add domains:set and domains:set-global commands
2016-11-28 18:18:51 -07:00
Jose Diaz-Gonzalez
0f448748e8 Merge pull request #2495 from dokku/jg-2469-create-authorized-keys
Create the user's `authorized_keys` file if it does not exist
2016-11-28 13:53:49 -07:00
Jose Diaz-Gonzalez
d5a013a973 Merge pull request #2496 from dokku/jg-2435-nginx-http2-detection
Detect nginx versions that support HTTP/2 well
2016-11-28 13:12:49 -07:00
Ilya Semenov
6a9b3f6df2 Add domains:set and domains:set-global commands 2016-11-28 22:44:06 +07:00
Jose Diaz-Gonzalez
8398ff7a76 Merge pull request #2509 from kjschulz/master
Map dokku-community user in plugins.md
2016-11-27 21:36:05 -07:00
John Schulz
4070779d41 Merge branch 'master' into kjschulz-master 2016-11-27 23:34:36 -05:00
John Schulz
cce2a41db6 Forgot to map dokku-community github user.
[ci skip]
2016-11-27 23:34:08 -05:00
Jose Diaz-Gonzalez
15ee3b2e62 Merge pull request #2506 from simonkotwicz/minor-doc-fixes
fix some typos in deployment docs
2016-11-27 21:30:11 -07:00
Simon Kotwicz
86b5b71f28 fix some typos in deployment docs 2016-11-27 22:22:21 -05:00
Mriyam Tamuli
d04b0f7cca Use dokku helpers to output to stderr 2016-11-28 08:46:30 +05:30
Omar Shehata
4294793452 Added storage default help function 2016-11-28 03:06:30 +00:00
Jose Diaz-Gonzalez
8058252426 Merge pull request #2505 from kjschulz/master
Add Dokku Wordpress plugin to docs
2016-11-27 20:05:08 -07:00
Omar Shehata
810ba72879 Added nginx default help function 2016-11-28 03:03:30 +00:00
Omar Shehata
74db5b9d3b Added ssh-keys default help function 2016-11-28 02:59:32 +00:00
Omar Shehata
80e0bcc743 Merge branch 'master' of https://github.com/dokku/dokku 2016-11-28 02:56:37 +00:00
Jose Diaz-Gonzalez
6f91a34f74 Merge pull request #2507 from dokku/josegonzalez-patch-1
Update upgrade docs to point out sshcommand and plugn upgrading as well
2016-11-27 19:55:23 -07:00
Jose Diaz-Gonzalez
a1d3477345 docs: upgrade sshcommand and plugn as well
[ci skip]
2016-11-27 19:55:02 -07:00
Omar Shehata
d001fcc896 Added certs default help function 2016-11-28 02:53:46 +00:00
Mriyam Tamuli
8d60d071df Docs and help text for apps:report subcommand 2016-11-27 19:24:57 +05:30
John Schulz
f71611f5a1 Updated author name to dokku-community 2016-11-26 18:24:52 -05:00
John Schulz
0d54423618 Removing outdated dokku-wordpress-template plugin 2016-11-26 15:19:02 -05:00
John Schulz
fcba766a75 Add Dokku Wordpress plugin to docs. 2016-11-26 14:53:43 -05:00
Mriyam Tamuli
608cdcf3c1 Adds the report subcommand to the apps plugin 2016-11-26 22:37:54 +05:30
Jose Diaz-Gonzalez
b6f57b32b0 Merge pull request #2503 from mlebkowski/patch-2
update the dokku-acl link
2016-11-25 12:18:57 -07:00
Maciej Łebkowski
e4fee97d9b update the dokku-acl link 2016-11-25 16:03:44 +01:00
Jose Diaz-Gonzalez
0dfe92100f Update plugins.md
[ci skip]
2016-11-24 09:37:03 -07:00
Jose Diaz-Gonzalez
7a2c1ba3ec Merge pull request #2497 from stackforgehq/docs/change-features-heading
make features heading more clear [skip ci]
2016-11-24 09:36:27 -07:00
Josh Manders
72aa611d2a make features heading more clear [skip ci] 2016-11-22 18:35:26 -06:00
Jose Diaz-Gonzalez
7cfbdf34ec Merge pull request #2485 from znz/fix-domains-add-global
Fix bug when VHOST without newline
2016-11-21 22:10:10 -07:00
Jose Diaz-Gonzalez
334eabafb5 Merge pull request #2489 from stackforgehq/feature/plugin-uninstall-trigger
add plugin uninstall trigger
2016-11-21 22:09:36 -07:00
Jose Diaz-Gonzalez
50b1c9d5c6 Detect nginx versions that support HTTP/2 well
Certain versions of nginx have bugs that prevent HTTP/2 from properly responding to all clients, thus causing applications to be unavailable.

Closes #2435
2016-11-21 19:33:50 -07:00
Jose Diaz-Gonzalez
4e25639de4 Create the user's authorized_keys file if it does not exist
Closes #2469
2016-11-21 19:08:33 -07:00
Josh Manders
63817fc6f3 add warning 2016-11-20 17:49:02 -06:00
Jose Diaz-Gonzalez
970647b4ae Merge pull request #2378 from knjcode/skip_finish_process_when_checks_disabled
Skip container finish processing when zero downtime is disabled
2016-11-20 16:46:14 -07:00
Jose Diaz-Gonzalez
ef113a475c Merge pull request #2484 from nahtnam/patch-1
Update troubleshooting.md
2016-11-20 16:19:43 -07:00
Jose Diaz-Gonzalez
9abe7e2b75 Merge pull request #2492 from dokku/jg-2481-proxy-command
Fix iteration on all apps for `dokku proxy` command
2016-11-20 16:19:10 -07:00
Jose Diaz-Gonzalez
f5ea960de3 Merge pull request #2493 from dokku/minor-doc-fixes
Clarify checks documentation
2016-11-20 16:15:33 -07:00
Jose Diaz-Gonzalez
8d6f32e1e3 docs: reword zero downtime docs to make them flow better
[ci skip]
2016-11-20 16:12:26 -07:00
Jose Diaz-Gonzalez
d7bc6976ed docs: Mention that ports are ignored in CHECKS doc
Closes #2487

[ci skip]
2016-11-20 16:07:05 -07:00
Jose Diaz-Gonzalez
f6c072fa2b docs: remove extra output 2016-11-20 15:38:01 -07:00
Jose Diaz-Gonzalez
95239a5731 docs: remove unnecessary example 2016-11-20 15:37:21 -07:00
Jose Diaz-Gonzalez
9951a16ccc docs: standardize on node-js-app as the app name
We’ll probably want to update this to whatever the hip language of the day is, but for now, having the same reference everywhere works.
2016-11-20 15:37:05 -07:00
Jose Diaz-Gonzalez
7ac47d2e61 Fix iteration on all apps for dokku proxy command
Closes #2481
2016-11-20 15:15:40 -07:00
Josh Manders
d4475e582d pass plugin to uninstall 2016-11-17 16:06:57 -06:00
Josh Manders
c4c7886037 add plugin uninstall trigger 2016-11-17 12:55:08 -06:00
Jose Diaz-Gonzalez
c98ab6684f Merge pull request #2488 from stackforgehq/docs/bump-font-size
Docs: Bump font size
2016-11-15 12:33:48 -05:00
Josh Manders
434672a8dd bump font size 2016-11-15 11:17:12 -06:00
Jose Diaz-Gonzalez
f6a0c3d5f8 Merge pull request #2486 from OmarShehata/patch-1
Fixing typo & broken link in docs
2016-11-15 08:24:04 -07:00
Omar Shehata
729677c41a Fixing broken link
The old link seems to not exist anymore. Not sure if this is what's intended to be linked to, but seems like the closest thing.
2016-11-15 09:12:38 -06:00
Omar Shehata
6c10fd4c39 Fixing typo
Changed from "Move information" to  "More information"
2016-11-15 09:09:11 -06:00
Kazuhiro NISHIYAMA
ccc44b0c16 Fix bug when VHOST without newline 2016-11-14 22:21:41 +09:00
nahtnam
faaf81d6e9 Update troubleshooting.md
Add `killed` symptom to troubleshooting guide.
2016-11-12 22:05:05 -08:00
Jose Diaz-Gonzalez
d7c8e47e78 Merge pull request #2464 from sseemayer/master
Remove duplicate SSL hostnames
2016-11-08 10:53:35 -07:00
Jose Diaz-Gonzalez
39ced08b12 Merge pull request #2452 from mbtamuli/resolve_duplicate_ssh_key
Solves SSH Key problem when admin user already exists
2016-11-06 14:48:00 -07:00
Jose Diaz-Gonzalez
e62f35f207 Merge pull request #2477 from ebeigarts/dokku-redeploy
Fix dokku-redeploy systemd script to start only after docker
2016-10-31 01:53:56 -06:00
Edgars Beigarts
14833e22cb Fix dokku-redeploy systemd script to start only after docker
According to https://docs.docker.com/engine/admin/host_integration/#/systemd
it should use After=docker.service and it works at least on CentOS 7.
2016-10-31 09:49:49 +02:00
Jose Diaz-Gonzalez
9c5783215f Merge pull request #2406 from dokku/2252-trigger-post-create
Use apps_create method when renaming an application. Closes #2252
2016-10-29 21:16:55 -06:00
Jose Diaz-Gonzalez
180582df2e Merge pull request #2407 from dokku/2367-core-post-deploy
Move core post-deploy triggers to core-post-deploy
2016-10-29 21:16:45 -06:00
Jose Diaz-Gonzalez
255a533708 Merge pull request #2470 from fteychene/patch-1
Add new community plugin : Build hook
2016-10-29 21:16:28 -06:00
Jose Diaz-Gonzalez
2d70a10a14 Merge pull request #2465 from polettix/2446-add-ssh-keys
Patch GH #2446 "Adding a file with two ssh-key..."
2016-10-29 21:16:02 -06:00
Jose Diaz-Gonzalez
58e2391cdb Merge pull request #2454 from onbjerg/patch-1
Return exit 1 in config:get if no ENV file exists (#2447)
2016-10-29 21:14:33 -06:00
Jose Diaz-Gonzalez
ab51c3b4b4 Merge pull request #2419 from ebeigarts/centos
Support for CentOS 7
2016-10-29 21:14:14 -06:00
Pranav Goel
2e1d8def40 Update SPONSORS.md 2016-10-29 14:30:42 +05:30
Pranav Goel
efa88d0087 Update README.md 2016-10-29 14:29:28 +05:30
Jose Diaz-Gonzalez
a7e4b7e3c6 Merge pull request #2472 from mainto/patch-1
Update plugins.md
2016-10-27 08:12:20 -06:00
Deokhyun Ko
25e5db5a5b Update plugins.md
Added "Access" plugin
2016-10-27 05:39:43 -06:00
Francois Teychene
aca8d0c682 Add new community plugin
Add new community plugin build hook.
This plugin provide a way for application to define scripts in their codebase to be executed before the project build (Dockerfile or Herokuish).

Use case :
A Java application with only an ADD of the generated fat jar in the Dockerfile.
The plugin allow the user to define a script to run the compilation before the docker build execution.
2016-10-20 15:04:16 +02:00
Edgars Beigarts
65c2cffc6a Fix sshcommand on CentOS with sudo
CentOS 7 resets path with $ sudo by default

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin
2016-10-19 17:25:54 +03:00
Flavio Poletti
a2bacd8096 Patch GH #2446 "Adding a file with two ssh-key..."
This is a proposed change for addressing GH #2446 "Adding a file with
two ssh-keys can result in an error" (see
https://github.com/dokku/dokku/issues/2446).

The following checks are performed:

- validity of key contents when read from a file
- key contents only contains one single line/key
- authorized_keys file is ultimately valid

The last test is an extension over the previous implementation in that
all lines in the file are checked.

The commit also includes extensions to the relevant test file to
excercise the new checks. It also takes care to save and then restore
the authorized_keys file.
2016-10-16 16:32:16 +02:00
Stefan Seemayer
030405b93d Remove duplicate SSL hostnames
Ref dokku/dokku-letsencrypt#76

Certificates provided by Let's Encrypt can have the domain provided in
the Subject Name field listed again in the Subject Alt Name fields,
leading to the same domain getting listed twice by get_ssl_hostnames()
that in turn leads to a duplicate server_name field in the nginx
configuration.

This patch adds a sort -u to ensure that every SSL hostname will only be
listed once.
2016-10-16 15:58:08 +02:00
Mriyam Tamuli
10bb4900c0 Correct indentation 2016-10-13 19:13:29 +05:30
Mriyam Tamuli
48b3dffecb Proper usernames 2016-10-13 15:55:59 +05:30
Mriyam Tamuli
056ff73c28 Proper usernames 2016-10-13 05:18:45 +05:30
John Doherty
62b5ca20df Added "Dokku setup using a Mac" steps
It would be great to add additional blocks for Windows and Linux
2016-10-11 00:33:01 +01:00
Jose Diaz-Gonzalez
3200c169f4 Expand the digitalocean documentation a bit
[ci skip]
2016-10-09 16:36:57 -06:00
Jose Diaz-Gonzalez
4f7e9d4d58 Clarify installation documentation.
[ci skip]
2016-10-09 16:34:24 -06:00
Oliver
d6443d7560 Return exit 1 in config:get if no ENV file exists 2016-10-08 19:15:39 +02:00
Mriyam Tamuli
35f1161453 Solves SSH Key problem when admin user already exists 2016-10-08 14:53:53 +05:30
Jose Diaz-Gonzalez
95dc3ca20e Merge pull request #2451 from mbtamuli/document_logs_plugin
Document the logs plugin
2016-10-07 18:42:05 -04:00
Mriyam Tamuli
28c29da166 Document the logs plugin 2016-10-08 04:05:51 +05:30
Jose Diaz-Gonzalez
c0d3b8c9a9 Merge pull request #2437 from vishnubhagwan/patch-1
Update installation.md
2016-09-29 10:29:23 -07:00
Michael Hobbs
1834ec8087 Merge pull request #2442 from znz/fix-is_tag_force_available
Fix `is_tag_force_available` bug when docker major version up
2016-09-29 07:55:50 -07:00
Kazuhiro NISHIYAMA
22c9441ddb Fix is_tag_force_available bug when docker major version up 2016-09-29 21:27:47 +09:00
vishnubhagwan
9018fee0e2 Update installation.md 2016-09-29 14:53:20 +05:30
vishnubhagwan
5ec1dea555 Update installation.md
Yep .... done as you said..
2016-09-29 14:31:21 +05:30
vishnubhagwan
6d002425bc Update installation.md
Removed bold sentence and blockquote remains
2016-09-29 00:52:16 +05:30
vishnubhagwan
93b47cb85f Update installation.md
Added blockquotes..
2016-09-29 00:33:29 +05:30
vishnubhagwan
b4cbaae757 Update installation.md 2016-09-28 23:53:57 +05:30
Jose Diaz-Gonzalez
11a945c86e Merge pull request #2433 from alexgleason/patch-2
Add robots.txt plugin to community docs
2016-09-27 12:59:31 -06:00
Alex Gleason
90f16945f1 Update plugins.md 2016-09-27 14:43:43 -04:00
Alex Gleason
f40e010ab0 Add robots.txt plugin to community docs 2016-09-26 17:18:50 -04:00
Edgars Beigarts
b771f0f809 Note the version when rpm will be added 2016-09-26 01:55:21 +03:00
Edgars Beigarts
f6488147bd Mention CentOS 7 in rpm docs 2016-09-26 01:55:21 +03:00
Edgars Beigarts
542f4dd430 Add RPM installation docs 2016-09-26 01:55:20 +03:00
Edgars Beigarts
288d72327d Add package_cloud instructions to release-process.md 2016-09-26 01:55:20 +03:00
Edgars Beigarts
7bf22df7c3 Use /etc/os-release that is more standartized 2016-09-26 01:55:20 +03:00
Edgars Beigarts
537906c504 Support CentOS in bootstrap.sh 2016-09-26 01:55:20 +03:00
Edgars Beigarts
dc879e2c4a Improve posinstall scripts with spellcheck 2016-09-26 01:55:20 +03:00
Edgars Beigarts
58f28c1aea Fix make lint 2016-09-26 01:55:20 +03:00
Edgars Beigarts
4e1a93224e No need to migrate old plugins on centos 2016-09-26 01:55:20 +03:00
Edgars Beigarts
0004dd53e1 Initial support for CentOS 7 2016-09-26 01:55:20 +03:00
Jose Diaz-Gonzalez
cf901c9bcc Merge pull request #2432 from dokku/josegonzalez-patch-1
Clarify DOKKU_SCALE docs
2016-09-25 12:27:55 -06:00
Jose Diaz-Gonzalez
b5cf371a55 Clarify DOKKU_SCALE docs
[ci skip]
2016-09-25 12:27:47 -06:00
Jose Diaz-Gonzalez
c4622a8255 Release 0.7.2 2016-09-25 02:15:30 -06:00
Jose Diaz-Gonzalez
c31133687c Fix plugin link
[ci skip]
2016-09-25 01:59:39 -06:00
Jose Diaz-Gonzalez
9be1f21e5f Update gitignore 2016-09-25 01:57:33 -06:00
Jose Diaz-Gonzalez
1b3b7175cc Merge pull request #2426 from dokku/2425_mh-tag-force-option
add force option on docker tag when available. closes #2425
2016-09-25 01:55:43 -06:00
Jose Diaz-Gonzalez
e739138ab5 Merge pull request #2431 from dokku/josegonzalez-patch-1
Add missing redirect for deployment/deployment-tasks
2016-09-25 01:39:54 -06:00
Jose Diaz-Gonzalez
f00930224e Add missing redirect for deployment/deployment-tasks
Closes #2430

[ci skip]
2016-09-25 01:39:36 -06:00
Jose Diaz-Gonzalez
16372845a8 Merge pull request #2429 from enisozgen/patch-1
Patch 1
2016-09-24 03:25:09 -06:00
Enis Özgen
02cde31efb Deleted duplicate line
line 101
2016-09-24 12:06:10 +03:00
Enis Özgen
d6205bff14 fix typo initialised to initialized 2016-09-24 11:56:46 +03:00
Jose Diaz-Gonzalez
aacfcbcb3e Merge pull request #2410 from IlyaSemenov/domains-help-tests
Clarify domains help, improve domains unit tests
2016-09-22 12:41:16 -06:00
Jose Diaz-Gonzalez
990431be3d Merge pull request #2416 from njaxx/patch-1
Adds a mention of manually adding nginx entry
2016-09-22 12:40:44 -06:00
Michael Hobbs
ef2bbc60df add force option on docker tag when available. closes #2425 2016-09-22 09:33:20 -07:00
Jose Diaz-Gonzalez
e5eb99276f Merge pull request #2423 from dokku/mh-update-herokuish
update to herokuish 0.3.19
2016-09-20 21:41:07 -06:00
Michael Hobbs
11f618d30c [ci skip] update to herokuish 0.3.19 2016-09-20 10:23:29 -07:00
Jose Diaz-Gonzalez
5b4b608a5d Merge pull request #2420 from c990802/patch-1
Documentation: Update command example  for consistency
2016-09-19 09:36:48 -06:00
Isaac Mayolas
1106212f18 Update command for consistency
Throughout the docs the app named `node-js-app` is used. An alternative app name, named `api` was used in this example. I propose an update for consistency.
2016-09-19 14:29:51 +02:00
Michael Hobbs
eb8afc4f34 Merge pull request #2418 from dokku/mh-plugn-0.2.2
use plugn 0.2.2
2016-09-16 11:00:08 -07:00
Michael Hobbs
9fdfb07c9b use plugn 0.2.2 2016-09-16 10:51:45 -07:00
Jose Diaz-Gonzalez
5d4a9f9d6d Merge pull request #2409 from dokku/2374-document-ps-rebuild-caveats
Document caveats around ps:rebuild and tags/tar deployed applications…
2016-09-16 09:07:09 -06:00
Jose Diaz-Gonzalez
6f68943c94 Merge pull request #2417 from PWAckerman/DYNO_environment_variable
Fixed double quotations in 'plugins/common/functions' dokku_deploy_cm…
2016-09-16 09:06:53 -06:00
PWAckerman
da2d00cf46 Fixed double quotations in 'plugins/common/functions' dokku_deploy_cmdwhere DYNO environment variable is set 2016-09-15 17:11:20 -04:00
njaxx
d26f8941bb Adds a mention of manually adding nginx entry
I was working on a Dockerfile deploy that was setup to listen on port 8844.  I wanted to add ssl and couldn't figure out why adding the ssl cert didn't making things 'just work'.  Since the `proxy:ports-add` step I discuss in this commit is run both `under the hood` and `sometimes`, I thought it might be worth issuing a PR for.
2016-09-14 15:18:54 -05:00
Ilya Semenov
9265bd8e37 Unified help texts and descriptions for domains add and remove commands 2016-09-08 13:21:30 +07:00
Jose Diaz-Gonzalez
d654c75a6b Add missing space
[ci skip]
2016-09-07 10:29:23 -04:00
Ilya Semenov
45f05615c4 Clarify domains help, improve domains unit tests 2016-09-07 20:28:32 +07:00
Jose Diaz-Gonzalez
7ccfdabc48 Document caveats around ps:rebuild and tags/tar deployed applications. Closes #2374
The tags and tar plugins do not necessarily build from source, and running `ps:rebuild` can have some unexpected output in certain cases. Rather than try to handle that complexity - it's a lot - documenting the edge cases is the most appropriate way forward.
2016-09-06 20:26:53 -04:00
Jose Diaz-Gonzalez
c3f39fe512 Merge pull request #2408 from jcscottiii/patch-1
Use $DOKKU_VHOST_ENABLE instead of $VHOST_ENABLE
2016-09-05 17:08:30 -04:00
James C Scott III
07786f5a15 Use $DOKKU_VHOST_ENABLE instead of $VHOST_ENABLE
Given a user wants to manually override the `vhost_enable` debian config, a user has to specify both $DOKKU_VHOST_ENABLE and $VHOST_ENABLE. This patch makes it rely on $DOKKU_VHOST_ENABLE like the others which use the `$DOKKU_` prefix
2016-09-05 14:54:52 -04:00
Jose Diaz-Gonzalez
d433614f17 Move deployment tasks to post-deploy hook
As deployment tasks can fail due to non-dokku related issues, moving them to post-deploy will ensure that dokku does not accidentally orphan applications.

Closes #2367
2016-09-05 00:15:39 -04:00
Jose Diaz-Gonzalez
2fc3a09b41 Move post-deploy trigger to core-post-deploy. Refs #2367
This avoids issues where community plugins may break core commands because of issues in the command output.
2016-09-05 00:04:06 -04:00
Jose Diaz-Gonzalez
67705afe3c Use apps_create method when renaming an application. Closes #2252
Since they are separate resources, triggering the normal app creation flow makes the most sense.

We still remove the cache directory because we want the correct cache permissions for the new application.
2016-09-04 19:26:00 -04:00
Jose Diaz-Gonzalez
0841888b67 Merge pull request #2405 from dokku/doc-cleanup
Doc cleanup
2016-09-03 15:53:14 -04:00
Jose Diaz-Gonzalez
344162da5e Clarify that the key_file is a path
[ci skip]
2016-09-03 15:51:47 -04:00
Jose Diaz-Gonzalez
e6b9283a6a Update attribution for plugins
[ci skip]
2016-09-03 15:51:35 -04:00
Jose Diaz-Gonzalez
5002f46bb8 Change ownership of plugins from heichblatt to josegonzalez
[ci skip]
2016-09-03 15:51:35 -04:00
Jose Diaz-Gonzalez
f7c00d06ca Add newsletter link to template. Closes #2373
[ci skip]
2016-09-03 15:51:35 -04:00
Jose Diaz-Gonzalez
7ac284bdb6 Document all commands under the ps plugin 2016-09-03 15:51:35 -04:00
Jose Diaz-Gonzalez
54708637cd Expand ssh-keys documentation to further explain command usage 2016-09-03 15:51:35 -04:00
Jose Diaz-Gonzalez
e3df81f020 Fix section headers
[ci skip]
2016-09-03 15:51:35 -04:00
Jose Diaz-Gonzalez
f26b3f1966 Use correct casing for Dokku name
lowercase should only be used to refer to the binary, not the project
2016-09-03 15:51:14 -04:00
Jose Diaz-Gonzalez
7cfeb090ed Merge pull request #2404 from bascht/patch-1
Fix docker build syntax
2016-09-03 13:04:20 -04:00
Bascht
6171cc881b Fix docker build syntax
Docker build expects both tag name and build directory as arguments.
2016-09-03 17:52:05 +02:00
Michael Hobbs
befb5a0dd9 [ci skip] docs: update arguments for check-deploy 2016-08-31 14:21:28 -07:00
knjcode
8200348f3c Skip container finish processing when zero downtime is disabled 2016-08-29 20:26:49 +09:00
Jose Diaz-Gonzalez
c731480360 Mark graphite plugin as beta
[ci skip]
2016-08-27 18:38:43 -04:00
Jose Diaz-Gonzalez
be8853e01f Merge pull request #2398 from dokku/josegonzalez-patch-1
Update compatibility of "other plugins"
2016-08-27 18:14:42 -04:00
Jose Diaz-Gonzalez
1243e50c6d Update compatibility of "other plugins"
Also deprecate/mark some as unmaintained

[ci skip]
2016-08-27 18:14:33 -04:00
Jose Diaz-Gonzalez
3acf446f2b Merge pull request #2397 from dokku/josegonzalez-patch-1
Update compatibility of dokku feature plugin
2016-08-27 18:02:17 -04:00
Jose Diaz-Gonzalez
d498177cdc Update compatibility of dokku feature plugin
Also move other plugins to deprecated/unmaintained sections

[ci skip]
2016-08-27 18:01:17 -04:00
Jose Diaz-Gonzalez
e642a4eb85 Move note down
[ci skip]
2016-08-27 17:53:25 -04:00
Jose Diaz-Gonzalez
d60a58ffdd Merge pull request #2396 from dokku/josegonzalez-patch-1
Deprecate multi-buildpack plugin
2016-08-27 17:52:14 -04:00
Jose Diaz-Gonzalez
3bbb3f22a8 Deprecate multi-buildpack plugin
This is handled by the core via herokuish.

[ci skip]
2016-08-27 17:52:04 -04:00
Jose Diaz-Gonzalez
3a1335dd2d Merge pull request #2395 from dokku/josegonzalez-patch-1
Deprecate sekjun9878/redis
2016-08-27 17:47:58 -04:00
Jose Diaz-Gonzalez
4bdbb54573 Deprecate sekjun9878/redis
[ci skip]
2016-08-27 17:47:50 -04:00
Jose Diaz-Gonzalez
45d9d7f951 Merge pull request #2394 from dokku/josegonzalez-patch-1
Deprecate old graphite plugin and add official graphite plugin
2016-08-27 17:38:26 -04:00
Jose Diaz-Gonzalez
9d3f9f55f7 Deprecate old graphite plugin and add official graphite plugin
[ci skip]
2016-08-27 17:38:16 -04:00
Jose Diaz-Gonzalez
e8fc4dc2e3 Update plugins.md 2016-08-27 17:34:41 -04:00
Jose Diaz-Gonzalez
5fe1b5b34b Merge pull request #2393 from dokku/jg-deprecate-process-managers
Deprecate all process manager plugins
2016-08-27 17:31:44 -04:00
Jose Diaz-Gonzalez
03c2218b88 Deprecate all process manager plugins
All process manager functionality has been merged into the Dokku core:

- v0.3.14: `ps` plugin to manage process scaling
- v0.7.0: restart-policy handling by the ps plugin

Users are encouraged to stop installing old process managers and use the core functionality.

[ci skip]
2016-08-27 17:31:31 -04:00
Jose Diaz-Gonzalez
35dca5570f Merge pull request #2392 from swg/patch-1
Use python2 in functions/get_json_*
2016-08-27 00:00:35 -04:00
swg
8f9c003a9f Use python2 in functions/get_json_*
On hosts where python3 is the system default python env, Dokku will silently fail to return the values of json keys.
2016-08-26 22:54:04 -04:00
Jose Diaz-Gonzalez
a00a9219da Release 0.7.1 2016-08-26 21:24:43 -04:00
Jose Diaz-Gonzalez
87d1af753a Merge pull request #2391 from dokku/2343-upgrade-sshcommand
Upgrade sshcommand to improve ssh-keys:list output
2016-08-26 21:04:57 -04:00
Jose Diaz-Gonzalez
3ef5c993af Upgrade sshcommand to improve ssh-keys:list output
Closes #2343
2016-08-26 19:45:13 -04:00
Jose Diaz-Gonzalez
14aad665b3 Merge pull request #2390 from dokku/stop-dokku-installer
Actually stop the dokku-installer service
2016-08-26 18:48:38 -04:00
Jose Diaz-Gonzalez
8b90a2c453 Actually stop the dokku-installer service
[ci skip]
2016-08-26 18:48:12 -04:00
Jose Diaz-Gonzalez
c57207447e Merge pull request #2387 from dokku/2379-find-workaround
Use pushd/popd to handle find warnings
2016-08-26 17:50:33 -04:00
Jose Diaz-Gonzalez
992301e9eb Merge pull request #2389 from dokku/2355-plugin-docs
Add plugin management documentation
2016-08-26 17:07:22 -04:00
Jose Diaz-Gonzalez
a506fd5b20 Add plugin management documentation
Closes #2355

[ci skip]
2016-08-26 17:06:17 -04:00
Michael Hobbs
a9358eaed7 hide stderr when using find 2016-08-26 13:46:05 -07:00
Jose Diaz-Gonzalez
eb4e3485fe Merge pull request #2388 from dokku/2384-proxy-scheme-docs
Add documentation for proxy ports scheme handling
2016-08-26 15:29:50 -04:00
Jose Diaz-Gonzalez
ab8063e88a Add documentation for proxy ports scheme handling
Closes #2384

[ci skip]
2016-08-26 15:29:17 -04:00
Michael Hobbs
c3f90add8c Merge pull request #2385 from dokku/mh-app-user
actually merge dokku-app-user into core
2016-08-26 12:20:39 -07:00
Jose Diaz-Gonzalez
600d872b76 Merge pull request #2358 from dokku/2339-jg-ssl-protocols
Guard against poodle vulnerability by default
2016-08-26 14:25:00 -04:00
Jose Diaz-Gonzalez
5a084d899c Fix link
[ci skip]
2016-08-26 14:19:55 -04:00
Jose Diaz-Gonzalez
e0e9c3f72c Merge pull request #2360 from xadh00m/fix_domain_validation
Allow hyphen in TLD
2016-08-26 14:17:17 -04:00
Jose Diaz-Gonzalez
a27cd84905 Merge pull request #2386 from dokku/0-7-migration-guide
Add a migration guide for 0.7.0
2016-08-26 14:16:51 -04:00
Michael Hobbs
b644e04038 default to herokuishuser and guard on DOKKU_APP_TYPE in app user pre-deploy trigger 2016-08-26 11:14:11 -07:00
Michael Hobbs
0e779e98c0 add docs for app user and persistent storage 2016-08-26 11:13:21 -07:00
Jose Diaz-Gonzalez
f46650d289 Add a migration guide for 0.7.0
[ci skip]
2016-08-26 14:11:56 -04:00
Michael Hobbs
204031306f actually merge dokku-app-user into core 2016-08-26 10:50:01 -07:00
Michael Hobbs
6e4ad6311b Merge pull request #2382 from alexgleason/patch-1
Fix typo "exampple" to "example"
2016-08-25 17:57:07 -07:00
Alex Gleason
36ed8e1fa8 Fix typo "exampple" to "example" 2016-08-25 18:25:36 -04:00
Michael Hobbs
b861f98868 Merge pull request #2381 from dokku/mh-fastfail-tests
fail rest of bats file on first test failure
2016-08-25 10:34:40 -07:00
Michael Hobbs
e23e491967 fail rest of bats file on first test failure 2016-08-25 09:27:06 -07:00
Jose Diaz-Gonzalez
4e4c8cebc4 Merge pull request #2377 from ebeigarts/fix-checks-with-proxy
Do not use http_proxy env variables for CHECKS
2016-08-19 10:53:52 -04:00
Edgars Beigarts
5fe9e19865 Do not use http_proxy env variables for CHECKS 2016-08-19 15:07:31 +03:00
Michael Hobbs
9923199760 Merge pull request #2371 from dokku/mh-update-plugin-repos
moved some repos to michaelshobbs
2016-08-15 12:43:30 -07:00
Michael Hobbs
776f1e4e58 [ci skip] moved some repos to michaelshobbs 2016-08-15 12:41:01 -07:00
Michael Hobbs
8dc5617104 [ci skip] for melvin at dokku.net
Thanks Melvin!
2016-08-15 10:13:50 -07:00
Justin Clark
c42cde0fb1 Merge pull request #2369 from dokku/u2mejc-issue2366
Fix ssh-keys:add permission error
2016-08-12 20:23:23 -07:00
Justin Clark
98ec2979ea Fix ssh-keys:add permission error 2016-08-12 16:01:05 -07:00
Mirko Geissler
36ee71cb0a Put hyphen at the end of group expression 2016-08-12 09:43:15 +02:00
Mirko Geissler
6f9662af50 Allow multiple hyphens in domain names 2016-08-11 13:08:20 +02:00
Mirko Geissler
83a8cd2f53 Allow hyphen in last host path part 2016-08-09 10:50:35 +02:00
Jose Diaz-Gonzalez
e3463613d4 Guard against poodle vulnerability by default
Closes #2339
2016-08-07 21:11:13 -04:00
Jose Diaz-Gonzalez
3651e56ca5 Merge pull request #2354 from dokku/josegonzalez-patch-2
Dockerfile deploys do not support mounted volumes
2016-08-06 15:44:25 -04:00
Jose Diaz-Gonzalez
434951028d Dockerfile deploys do not support mounted volumes
[ci skip]
2016-08-06 15:44:18 -04:00
Jose Diaz-Gonzalez
45e1a20d01 Merge pull request #2345 from johnfraney/patch-1
Update README.md
2016-08-04 21:08:21 -04:00
Jose Diaz-Gonzalez
59f9b50112 Merge pull request #2353 from miguelcobain/patch-2
Update plugin-creation.md
2016-08-04 12:28:22 -04:00
Jose Diaz-Gonzalez
a1e166065f Merge pull request #2352 from miguelcobain/patch-1
Update plugin-triggers.md
2016-08-04 12:28:10 -04:00
Miguel Andrade
89d1997d63 Update plugin-creation.md
Add a reminder to set the correct permissions for executable files.
2016-08-04 16:19:20 +01:00
Miguel Andrade
f3edf7dcd5 Update plugin-triggers.md
Fix typos
2016-08-04 16:17:28 +01:00
Jose Diaz-Gonzalez
03fb58b961 Merge pull request #2348 from dokku/josegonzalez-patch-2
Correct the version in use for ssh-keys
2016-08-02 14:02:36 -04:00
Jose Diaz-Gonzalez
97a55cd063 Correct the version in use for ssh-keys
[ci skip]
2016-08-02 13:50:03 -04:00
John Franey
65b9c2103f Update README.md
Add other officially supported distros (from https://github.com/dokku/dokku/issues/2263#issuecomment-231794588)
2016-08-02 11:05:11 -03:00
Jose Diaz-Gonzalez
3dfe6f67eb Merge pull request #2337 from dokku/josegonzalez-patch-1
Update deprecated plugins list
2016-07-31 15:49:09 -04:00
Jose Diaz-Gonzalez
9454971b1d Update deprecated plugins list
[ci skip]
2016-07-31 15:48:58 -04:00
Jose Diaz-Gonzalez
8e3710f69c Update description
[ci skip]
2016-07-31 15:11:03 -04:00
Jose Diaz-Gonzalez
fc0ab27332 Update package description to match what we promote
[ci skip]
2016-07-31 15:09:45 -04:00
933 changed files with 46138 additions and 10139 deletions

13
.circleci/config.yml Normal file
View File

@@ -0,0 +1,13 @@
version: 2.1
jobs:
noop:
docker:
- image: cimg/base:2020.01
steps:
- run: echo "this is a noop"
workflows:
noop:
jobs:
- noop

5
.codacy.yml Normal file
View File

@@ -0,0 +1,5 @@
exclude_paths:
- vendor/**/*
- tests/**/*
- "**_test.go"
- contrib/*

15
.dockerignore Normal file
View File

@@ -0,0 +1,15 @@
*Dockerfile
.dockerignore
.git
.vagrant
contrib
build
docs
tests
!build/dokku.deb
!tests/dhparam.pem
!contrib/dokku-installer.py
!contrib/dokku-update
!contrib/bash-completion
!contrib/docker
vendor

View File

@@ -14,3 +14,8 @@ indent_size = 4
insert_final_newline = true
indent_style = tab
indent_size = 4
[*.go]
insert_final_newline = true
indent_style = tab
indent_size = 4

15
.github/commands/ci-run vendored Executable file
View File

@@ -0,0 +1,15 @@
#!/usr/bin/env bash
set -eo pipefail
main() {
declare FILE_NAME="$1"
mkdir -p test-results/bats
pushd tests/unit >/dev/null
bats --report-formatter junit --output ../../test-results/bats "$FILE_NAME.bats"
popd >/dev/null
ls -lah test-results/bats
}
main "$@"

28
.github/commands/ci-setup vendored Executable file
View File

@@ -0,0 +1,28 @@
#!/usr/bin/env bash
set -eo pipefail
echo "=====> set hostname"
hostname
internal_ip="$(ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}')"
sudo hostname "dokku.me"
echo "dokku.me" | sudo tee /etc/hostname
hostname
sudo cat /etc/hostname
echo "=====> resolve dokku.me"
sudo apt -qq -y --no-install-recommends install net-tools
# dokku.me now resolves to 10.0.0.2. add 10.0.0.2/24 to eth0
ifconfig
sudo ip addr add 10.0.0.2/24 broadcast 10.0.0.255 dev eth0
echo "=====> install ci-dependencies"
make ci-dependencies
echo "=====> setup tests"
./tests/ci/setup.sh
echo "=====> dokku cleanup:skip"
echo 'export DOKKU_SKIP_CLEANUP=true' | sudo tee /home/dokku/.dokkurc/dokku_skip_cleanup
echo "=====> dokku report"
dokku report

9
.github/commands/matrix vendored Executable file
View File

@@ -0,0 +1,9 @@
#!/usr/bin/env python
import json
import os
keys = ["index"]
values = [[s.replace(".bats", "") for s in os.listdir("tests/unit/") if s.endswith(".bats")]]
zi = zip(keys, values)
data = json.dumps(dict(zi))
print(data.replace(" ", ""))

23
.github/workflows/bump-formula.yml vendored Normal file
View File

@@ -0,0 +1,23 @@
name: bump-formula
on:
push:
tags:
- '*'
jobs:
bump-formula:
runs-on: macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Get version
id: get_version
run: echo ::set-output name=version::${GITHUB_REF/refs\/tags\//}
- name: Bump Brew
env:
HOMEBREW_GITHUB_USERNAME: ${{ secrets.HOMEBREW_GITHUB_USERNAME }}
HOMEBREW_GITHUB_API_TOKEN: ${{ secrets.HOMEBREW_GITHUB_API_TOKEN }}
run: |
git config --global user.name 'Dokku Bot'
git config --global user.email no-reply@dokku.com
brew tap dokku/repo "https://$HOMEBREW_GITHUB_USERNAME:$HOMEBREW_GITHUB_API_TOKEN@github.com/dokku/homebrew-repo.git"
brew bump-formula-pr -f --no-browse --no-audit --no-fork --url "https://github.com/dokku/dokku/archive/${{ steps.get_version.outputs.version }}.tar.gz" dokku/repo/dokku

157
.github/workflows/ci.yml vendored Normal file
View File

@@ -0,0 +1,157 @@
name: CI
on:
pull_request:
branches:
- '*'
push:
branches:
- 'master'
jobs:
build:
name: build
runs-on: ubuntu-16.04
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
strategy:
fail-fast: true
steps:
- uses: actions/checkout@v2
- name: build package
run: ./tests/ci/setup.sh build
- name: set matrix for build
id: set-matrix
run: |
json=$(python .github/commands/matrix)
echo $json
echo "::set-output name=matrix::$(echo "$json")"
- name: upload packages
uses: actions/upload-artifact@v2
with:
name: build
path: build
unit-tests:
name: unit.${{ matrix.index }}
needs: build
runs-on: ubuntu-16.04
strategy:
fail-fast: false
matrix: ${{fromJson(needs.build.outputs.matrix)}}
steps:
- uses: actions/checkout@v2
- name: download packages
uses: actions/download-artifact@v1
with:
name: build
- name: ci-setup
run: ./.github/commands/ci-setup
# - name: start ssh session
# uses: luchihoratiu/debug-via-ssh@main
# with:
# NGROK_AUTH_TOKEN: ${{ secrets.NGROK_AUTH_TOKEN }}
# SSH_PASS: ${{ secrets.SSH_PASS }}
- name: run ci
timeout-minutes: 30
run: sudo -E ./.github/commands/ci-run ${{ matrix.index }}
- uses: actions/upload-artifact@v2
with:
name: test-results-${{ matrix.index }}
path: test-results
docker-deploy-tests:
name: docker
needs: build
runs-on: ubuntu-16.04
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v2
- name: download packages
uses: actions/download-artifact@v1
with:
name: build
- name: ci-setup
run: ./.github/commands/ci-setup
- name: test docker deploys
shell: bash
timeout-minutes: 20
run: |
./tests/ci/setup.sh docker
DOKKU_SSH_PORT=3022 sudo -E make -e test-ci-docker
go-tests:
name: go.${{ matrix.index }}
needs: build
runs-on: ubuntu-16.04
strategy:
fail-fast: false
matrix:
index: [0, 1, 2, 3]
env:
GITHUB_NODE_INDEX: ${{ matrix.index }}
steps:
- uses: actions/checkout@v2
- name: download packages
uses: actions/download-artifact@v1
with:
name: build
- name: ci-setup
run: ./.github/commands/ci-setup
- name: run go tests
run: |
export CIRCLE_SHA1=$GITHUB_SHA
echo "CODACY_TOKEN=$CODACY_TOKEN"
if [ "$CODACY_TOKEN" != "" ]; then
echo "Detected value for CODACY_TOKEN"
fi
case $GITHUB_NODE_INDEX in
0) sudo -E make -e lint-ci go-tests ci-go-coverage ;;
1) sudo -E make -e deploy-test-checks-root deploy-test-config ;;
2) sudo -E make -e deploy-test-multi ;;
3) sudo -E make -e deploy-test-go-fail-predeploy deploy-test-go-fail-postdeploy ;;
esac
- uses: actions/upload-artifact@v2
with:
name: coverage.${{ matrix.index }}
path: test-results/coverage
publish-test-results:
name: publish-test-results
needs: unit-tests
runs-on: ubuntu-16.04
# the build-and-test job might be skipped, we don't need to run this job then
if: success() || failure()
steps:
- name: download test-results
uses: actions/download-artifact@v2
with:
path: test-results
- name: Publish Unit Test Results
uses: docker://ghcr.io/enricomi/publish-unit-test-result-action:v1.6
with:
check_name: Unit Test Results
github_token: ${{ secrets.GITHUB_TOKEN }}
files: test-results/**/*.xml
comment_on_pr: false

68
.github/workflows/codeql-analysis.yml vendored Normal file
View File

@@ -0,0 +1,68 @@
# For most projects, this workflow file will not need changing; you simply need
# to commit it to your repository.
#
# You may wish to alter this file to override the set of languages analyzed,
# or to provide custom queries or build logic.
#
# ******** NOTE ********
# We have attempted to detect the languages in your repository. Please check
# the `language` matrix defined below to confirm you have the correct set of
# supported CodeQL languages.
# ******** NOTE ********
name: "CodeQL"
on:
push:
branches: [ master ]
pull_request:
# The branches below must be a subset of the branches above
branches: [ master ]
schedule:
- cron: '18 22 * * 2'
jobs:
analyze:
name: Analyze
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
language: [ 'go' ]
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
# Learn more:
# https://docs.github.com/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
steps:
- name: Checkout repository
uses: actions/checkout@v2
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
with:
languages: ${{ matrix.language }}
# If you wish to specify custom queries, you can do so here or in a config file.
# By default, queries listed here will override any specified in a config file.
# Prefix the list here with "+" to use these queries and those in the config file.
# queries: ./path/to/local/query, your-org/your-repo/queries@main
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
# ℹ️ Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

13
.gitignore vendored
View File

@@ -1,6 +1,13 @@
.vagrant
*.deb
*.rpm
.DS_Store
.ruby-version
.idea/
.vagrant
build/
data/
test-results/
stack.tgz
tmp
*.deb
.ruby-version
coverage.out
contrib/dokku-update-version

13
.stickler.yml Normal file
View File

@@ -0,0 +1,13 @@
---
linters:
shellcheck:
shell: bash
exclude: SC2034,SC1090,SC2191
golint:
files:
ignore:
- 'debian/*'
- 'docs/*'
- 'tests/*'
- '*/vendor/*'

View File

@@ -1,74 +0,0 @@
# Contributor Covenant Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
nationality, personal appearance, race, religion, or sexual identity and
orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at dokku@josediazgonzalez.com. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/

View File

@@ -1,17 +1,17 @@
# How to contribute
The Dokku project would love to welcome your contributions. There are
The Dokku project would love to welcome your contributions. There are
several ways to help out:
* Create an [issue](https://github.com/dokku/dokku/issues) on GitHub, if you
have found a bug
* Write test cases for open bug issues
* Write [test cases](http://dokku.viewdocs.io/dokku/development/testing/) for open bug issues
* Write patches for open bug/feature issues, preferably with test cases
included
* Contribute to the [documentation](http://dokku.viewdocs.io/dokku/)
* Come up with new ways to show off our [lovely logo](https://avatars1.githubusercontent.com/u/13455795)
* Come up with new ways, non-commercial to show off our [lovely logo](https://avatars1.githubusercontent.com/u/13455795)
* Blog about different ways you are using dokku
* [Sponsor](https://opencollective.com/dokku#support) the Dokku project financially
* Sponsor the Dokku project financially on [OpenCollective](https://opencollective.com/dokku#support) or [Patreon](https://www.patreon.com/dokku)
There are a few guidelines that we need contributors to follow so that we have
a chance of keeping on top of things.
@@ -25,7 +25,7 @@ a chance of keeping on top of things.
* [Which branch to base the work](#which-branch-to-base-the-work)
* [Submitting Changes](#submitting-changes)
* [When will my change be merged?](#when-will-my-change-be-merged)
* [Test cases and codesniffs](#test-cases-and-codesniffs)
* [Running tests locally](#running-tests-locally)
* [Additional Resources](#additional-resources)
## Reporting security issues
@@ -44,10 +44,10 @@ A great way to contribute to the project is to send a detailed report when you
encounter an issue. We always appreciate a well-written, thorough bug report,
and will thank you for it!
Sometimes dokku is missing a feature you need. In some cases, those features can
Sometimes Dokku is missing a feature you need. In some cases, those features can
be found in pre-existing [plugins](http://dokku.viewdocs.io/dokku/plugins/),
and we encourage our users to create and contribute such packages. From time to
time, we will also pull plugins into the dokku core when the task they solve is
time, we will also pull plugins into the Dokku core when the task they solve is
a common one for our users.
Check that [our issue database](https://github.com/dokku/dokku/issues)
@@ -55,26 +55,14 @@ doesn't already include that problem or suggestion before submitting an issue.
If you find a match, add a quick "+1" or "I have this problem too." Doing this
helps prioritize the most common problems and requests.
When reporting issues, please include your host OS (Ubuntu 14.04, Fedora 19,
etc). Please include:
* The output of `uname -a`.
* The output of `free -m`
* The output of `docker version`.
* The output of `docker -D info`.
* The output of `sigil -v`.
* The output of `docker run --rm -ti gliderlabs/herokuish:latest herokuish version`
* The output of `dokku version`.
* The output of `dokku plugin`.
Please also include the steps required to reproduce the problem if possible and
applicable. This information will help us review and fix your issue faster.
Our Issue Report Template is available [here](https://github.com/dokku/dokku/blob/master/ISSUE_TEMPLATE.md)
When reporting issues, please include all the information we ask for in our
[issue template](https://github.com/dokku/dokku/blob/master/ISSUE_TEMPLATE.md).
Not doing so will prolongue the support period, making it more difficult to support
you.
## Contributing
Before you contribute to the dokku project, there are a few things that you'll
Before you contribute to the Dokku project, there are a few things that you'll
need to do
* Make sure you have a [GitHub account](https://github.com/signup/free).
@@ -122,11 +110,11 @@ All changes should be be based on the latest master commit.
### When will my change be merged?
Be patient! The dokku maintainers will review all pull requests and comment as
Be patient! The Dokku maintainers will review all pull requests and comment as
quickly as possible. There may be some back and forth while the details of your
pull request are discussed.
In the unlikely event that your pull request does not get merged, the dokku
In the unlikely event that your pull request does not get merged, the Dokku
maintainers will either provide an alternative patch or guide you towards a
better solution to the problem at hand.
@@ -139,21 +127,10 @@ requests:
- backwards incompatible change (minor)
- major feature (minor)
### Test cases and codesniffs
### Running tests locally
Dokku tests require [bats](https://github.com/sstephenson/bats).
To run the test cases locally use the following command:
make ci-dependencies
make unit-tests deploy-tests
To run the shellcheck sniffs for Dokku coding standards:
make ci-dependencies
make lint
The [testing docs](http://dokku.viewdocs.io/dokku/development/testing/)
contains installation info for bats and shellcheck.
Please read the [testing docs](http://dokku.viewdocs.io/dokku/development/testing/),
which contains test setup information as well as tips for running tests.
# Additional Resources

56
Dockerfile Normal file
View File

@@ -0,0 +1,56 @@
FROM phusion/baseimage:0.11
CMD ["/sbin/my_init"]
ARG DOKKU_TAG=0.17.7
ARG DOKKU_GID=200
ARG DOKKU_UID=200
ARG DOKKU_HOSTNAME=dokku.invalid
ARG DOKKU_SKIP_KEY_FILE=true
ARG DOKKU_VHOST_ENABLE=false
ARG DOKKU_WEB_CONFIG=false
RUN addgroup --gid $DOKKU_GID dokku \
&& adduser --uid $DOKKU_UID --gid $DOKKU_GID --disabled-password --gecos "" "dokku"
COPY ./tests/dhparam.pem /tmp/dhparam.pem
COPY ./build/dokku.deb /tmp/dokku.deb
RUN echo "dokku dokku/hostname string $DOKKU_HOSTNAME" | debconf-set-selections \
&& echo "dokku dokku/skip_key_file boolean $DOKKU_SKIP_KEY_FILE" | debconf-set-selections \
&& echo "dokku dokku/vhost_enable boolean $DOKKU_VHOST_ENABLE" | debconf-set-selections \
&& echo "dokku dokku/web_config boolean $DOKKU_WEB_CONFIG" | debconf-set-selections \
&& curl -sSL https://packagecloud.io/dokku/dokku/gpgkey | apt-key add - \
&& echo "deb https://packagecloud.io/dokku/dokku/ubuntu/ bionic main" | tee /etc/apt/sources.list.d/dokku.list \
&& mkdir -p /etc/nginx/ \
&& cp /tmp/dhparam.pem /etc/nginx/dhparam.pem \
&& apt-get update -qq \
&& apt-get upgrade -qq -y \
&& apt-get -qq -y --no-install-recommends --only-upgrade install openssl openssh-server \
&& apt-get -qq -y --no-install-recommends install rsync /tmp/dokku.deb \
&& apt-get purge -qq -y syslog-ng-core \
&& apt-get autoremove -qq -y \
&& apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
WORKDIR /tmp
COPY ./docker .
RUN \
rsync -a /tmp/ / \
&& rm -rf /tmp/* \
&& rm /etc/runit/runsvdir/default/sshd/down \
&& chown -R dokku:dokku /home/dokku/ \
&& mkdir -p /skel/etc /skel/home /skel/var/lib/dokku /var/log/services \
&& mv /etc/ssh /skel/etc/ssh \
&& mv /home/dokku /skel/home/dokku \
&& mv /var/lib/dokku/config /skel/var/lib/dokku/config \
&& mv /var/lib/dokku/data /skel/var/lib/dokku/data \
&& ln -sf /mnt/dokku/etc/ssh /etc/ssh \
&& ln -sf /mnt/dokku/home/dokku /home/dokku \
&& ln -sf /mnt/dokku/var/lib/dokku/config /var/lib/dokku/config \
&& ln -sf /mnt/dokku/var/lib/dokku/data /var/lib/dokku/data \
&& mv /etc/my_init.d/00_regen_ssh_host_keys.sh /etc/my_init.d/15_regen_ssh_host_keys \
&& rm -f /etc/nginx/sites-enabled/default /usr/share/nginx/html/index.html /etc/my_init.d/10_syslog-ng.init \
&& rm -f /usr/local/openresty/nginx/conf/sites-enabled/default /usr/share/openresty/html/index.html \
&& sed -i '/imklog/d' /etc/rsyslog.conf \
&& rm -f /var/log/btmp /var/log/wtmp /var/log/*log /var/log/apt/* /var/log/dokku/*.log /var/log/nginx/* /var/log/openresty/*

2639
HISTORY.md

File diff suppressed because it is too large Load Diff

View File

@@ -1,19 +1,42 @@
Description of problem:
> If you're using Dokku - especially for commercial purposes - consider donating to project development via [OpenCollective](https://opencollective.com/dokku) or [Patreon](https://www.patreon.com/dokku). Funds go to general development, support, and infrastructure costs.
>
> If you'd like to sponsor specific functionality, see the project's [Sponsoring](https://github.com/dokku/.github/blob/master/SPONSORING.md) document.
>
> If you need help figuring out how to use a specific buildpack, are seeing an issue in during the buildpack process, or are having issues using multiple buildpacks, please see our [slack channels or github discussion board](http://dokku.viewdocs.io/dokku/getting-started/where-to-get-help/#monitored-locations). Issues pertaining to buildpacks may be closed and locked.
>
> If you need support for a version of Dokku that is more than a year old, your issue may be closed without an answer. Please upgrade to a recent version.
## Description of problem
Output of the following commands
### How reproducible
- `uname -a`:
- `free -m`:
- `docker version`:
- `docker -D info`:
- `sigil -v`:
- `docker run -ti gliderlabs/herokuish:latest herokuish version`:
- `dokku version`:
- `dokku plugin`:
- `docker inspect CONTAINER_ID` (if applicable):
(BEWARE: `docker inspect` will print environment variables for some commands, be sure you're not exposing any sensitive information when posting issues. You may replace these values with XXXXXXX):
- `cat /home/dokku/<app>/nginx.conf` (if applicable):
### Steps to Reproduce
1.
2.
3.
#### Actual Results
#### Expected Results
<-- Please replace APP_NAME with the name of your app -->
## Environment Information
### `dokku report APP_NAME` output
> This is required! Issues missing this information may be closed.
>
> 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?:
### Additional information
- Container Inspect Output (if applicable) via `dokku ps:inspect APP_NAME`
- The nginx configuration (if applicable) via `dokku nginx:show-config APP_NAME`
- Link to the exact repository being deployed (if possible/applicable):
- If a deploy is failing or behaving unexpectedly:
- Application name
@@ -21,25 +44,5 @@ Output of the following commands
- If using buildpacks, which custom buildpacks are in use
- If using a `Dockerfile`, the contents of that file
- If it exists, the contents of your `Procfile`.
- Output of failing dokku commands after running `dokku trace on`
(BEWARE: `trace on` will print environment variables for some commands, be sure you're not exposing any sensitive information when posting issues. You may replace these values with XXXXXXX):
Environment details (AWS, VirtualBox, physical, etc.):
How was dokku installed?:
How reproducible:
Steps to Reproduce:
1.
2.
3.
Actual Results:
Expected Results:
Additional info:
- Output of failing Dokku commands after running `dokku trace:on`
(BEWARE: `trace:on` will print environment variables for some commands, be sure you're not exposing any sensitive information when posting issues. You may replace these values with XXXXXX):

141
Makefile
View File

@@ -1,13 +1,22 @@
DOKKU_VERSION = master
DOKKU_VERSION ?= master
SSHCOMMAND_URL ?= https://raw.githubusercontent.com/dokku/sshcommand/v0.5.0/sshcommand
PLUGN_URL ?= https://github.com/dokku/plugn/releases/download/v0.2.1/plugn_0.2.1_linux_x86_64.tgz
SIGIL_URL ?= https://github.com/gliderlabs/sigil/releases/download/v0.4.0/sigil_0.4.0_Linux_x86_64.tgz
DOCKER_IMAGE_LABELER_VERSION ?= 0.2.2
HEROKUISH_VERSION ?= 0.5.19
PLUGN_VERSION ?= 0.6.1
PROCFILE_VERSION ?= 0.11.0
SIGIL_VERSION ?= 0.6.0
SSHCOMMAND_VERSION ?= 0.12.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_x86_64.tgz
PLUGN_URL ?= https://github.com/dokku/plugn/releases/download/v${PLUGN_VERSION}/plugn_${PLUGN_VERSION}_linux_x86_64.tgz
PROCFILE_UTIL_URL ?= https://github.com/josegonzalez/go-procfile-util/releases/download/v${PROCFILE_VERSION}/procfile-util_${PROCFILE_VERSION}_linux_x86_64.tgz
SIGIL_URL ?= https://github.com/gliderlabs/sigil/releases/download/v${SIGIL_VERSION}/sigil_${SIGIL_VERSION}_Linux_x86_64.tgz
SSHCOMMAND_URL ?= https://github.com/dokku/sshcommand/releases/download/v${SSHCOMMAND_VERSION}/sshcommand_${SSHCOMMAND_VERSION}_linux_x86_64.tgz
STACK_URL ?= https://github.com/gliderlabs/herokuish.git
PREBUILT_STACK_URL ?= gliderlabs/herokuish:latest
DOKKU_LIB_ROOT ?= /var/lib/dokku
PLUGINS_PATH ?= ${DOKKU_LIB_ROOT}/plugins
CORE_PLUGINS_PATH ?= ${DOKKU_LIB_ROOT}/core-plugins
PLUGIN_MAKE_TARGET ?= build-in-docker
# If the first argument is "vagrant-dokku"...
ifeq (vagrant-dokku,$(firstword $(MAKECMDGOALS)))
@@ -23,10 +32,14 @@ else
BUILD_STACK_TARGETS = build-in-docker
endif
.PHONY: all apt-update install version copyfiles man-db plugins dependencies sshcommand plugn docker aufs stack count dokku-installer vagrant-acl-add vagrant-dokku
include common.mk
.PHONY: all apt-update install version copyfiles copyplugin man-db plugins dependencies docker-image-labeler sshcommand procfile-util plugn docker aufs stack count dokku-installer vagrant-acl-add vagrant-dokku go-build
include tests.mk
include package.mk
include deb.mk
include rpm.mk
include arch.mk
all:
@@ -34,68 +47,115 @@ all:
install: dependencies version copyfiles plugin-dependencies plugins
release: deb-all package_cloud packer
package_cloud:
package_cloud push dokku/dokku/ubuntu/trusty herokuish*.deb
package_cloud push dokku/dokku/ubuntu/trusty sshcommand*.deb
package_cloud push dokku/dokku/ubuntu/trusty plugn*.deb
package_cloud push dokku/dokku/ubuntu/trusty dokku*.deb
packer:
packer build contrib/packer.json
go-build:
basedir=$(PWD); \
for dir in plugins/*; do \
if [ -e $$dir/Makefile ]; then \
$(MAKE) -e -C $$dir $(PLUGIN_MAKE_TARGET) || exit $$? ;\
fi ;\
done
go-build-plugin:
ifndef PLUGIN_NAME
$(error PLUGIN_NAME not specified)
endif
if [ -e plugins/$(PLUGIN_NAME)/Makefile ]; then \
$(MAKE) -e -C plugins/$(PLUGIN_NAME) $(PLUGIN_MAKE_TARGET) || exit $$? ;\
fi
go-clean:
basedir=$(PWD); \
for dir in plugins/*; do \
if [ -e $$dir/Makefile ]; then \
$(MAKE) -e -C $$dir clean ;\
fi ;\
done
copyfiles:
$(MAKE) go-build || exit 1
cp dokku /usr/local/bin/dokku
mkdir -p ${CORE_PLUGINS_PATH} ${PLUGINS_PATH}
rm -rf ${CORE_PLUGINS_PATH}/*
test -d ${CORE_PLUGINS_PATH}/enabled || PLUGIN_PATH=${CORE_PLUGINS_PATH} plugn init
test -d ${PLUGINS_PATH}/enabled || PLUGIN_PATH=${PLUGINS_PATH} plugn init
find plugins/ -mindepth 1 -maxdepth 1 -type d -printf '%f\n' | while read plugin; do \
rm -Rf ${CORE_PLUGINS_PATH}/available/$$plugin && \
rm -Rf ${PLUGINS_PATH}/available/$$plugin && \
rm -rf ${CORE_PLUGINS_PATH}/$$plugin && \
rm -rf ${PLUGINS_PATH}/$$plugin && \
cp -R plugins/$$plugin ${CORE_PLUGINS_PATH}/available && \
ln -s ${CORE_PLUGINS_PATH}/available/$$plugin ${PLUGINS_PATH}/available; \
find /var/lib/dokku/ -xtype l -delete;\
PLUGIN_PATH=${CORE_PLUGINS_PATH} plugn enable $$plugin ;\
PLUGIN_PATH=${PLUGINS_PATH} plugn enable $$plugin ;\
done
find plugins/ -mindepth 1 -maxdepth 1 -type d -printf '%f\n' | while read plugin; do $(MAKE) copyplugin PLUGIN_NAME=$$plugin; done
ifndef SKIP_GO_CLEAN
$(MAKE) go-clean
endif
chown dokku:dokku -R ${PLUGINS_PATH} ${CORE_PLUGINS_PATH} || true
$(MAKE) addman
addman: help2man
copyplugin:
ifndef PLUGIN_NAME
$(error PLUGIN_NAME not specified)
endif
rm -Rf ${CORE_PLUGINS_PATH}/available/$(PLUGIN_NAME) && \
rm -Rf ${PLUGINS_PATH}/available/$(PLUGIN_NAME) && \
rm -rf ${CORE_PLUGINS_PATH}/$(PLUGIN_NAME) && \
rm -rf ${PLUGINS_PATH}/$(PLUGIN_NAME) && \
cp -R plugins/$(PLUGIN_NAME) ${CORE_PLUGINS_PATH}/available && \
rm -rf ${CORE_PLUGINS_PATH}/available/$(PLUGIN_NAME)/src && \
ln -s ${CORE_PLUGINS_PATH}/available/$(PLUGIN_NAME) ${PLUGINS_PATH}/available; \
find /var/lib/dokku/ -xtype l -delete;\
PLUGIN_PATH=${CORE_PLUGINS_PATH} plugn enable $(PLUGIN_NAME) ;\
PLUGIN_PATH=${PLUGINS_PATH} plugn enable $(PLUGIN_NAME)
chown dokku:dokku -R ${PLUGINS_PATH} ${CORE_PLUGINS_PATH} || true
addman: help2man man-db
mkdir -p /usr/local/share/man/man1
help2man -Nh help -v version -n "configure and get information from your dokku installation" -o /usr/local/share/man/man1/dokku.1 dokku
mandb
version:
git describe --tags > ~dokku/VERSION 2> /dev/null || echo '~${DOKKU_VERSION} ($(shell date -uIminutes))' > ~dokku/VERSION
mkdir -p ${DOKKU_LIB_ROOT}
ifeq ($(DOKKU_VERSION),master)
git describe --tags > ${DOKKU_LIB_ROOT}/VERSION 2>/dev/null || echo '~${DOKKU_VERSION} ($(shell date -uIminutes))' > ${DOKKU_LIB_ROOT}/VERSION
else
echo $(DOKKU_VERSION) > ${DOKKU_LIB_ROOT}/STABLE_VERSION
endif
plugin-dependencies: plugn
plugin-dependencies: plugn procfile-util
sudo -E dokku plugin:install-dependencies --core
plugins: plugn docker
plugins: plugn procfile-util docker
sudo -E dokku plugin:install --core
dependencies: apt-update sshcommand plugn docker help2man man-db sigil
dependencies: apt-update docker-image-labeler sshcommand plugn procfile-util docker help2man man-db sigil dos2unix jq
$(MAKE) -e stack
apt-update:
apt-get update
apt-get update -qq
jq:
apt-get -qq -y --no-install-recommends install jq
dos2unix:
apt-get -qq -y --no-install-recommends install dos2unix
help2man:
apt-get install -qq -y help2man
apt-get -qq -y --no-install-recommends install help2man
man-db:
apt-get install -qq -y man-db
apt-get -qq -y --no-install-recommends install man-db
docker-image-labeler:
wget -qO /tmp/docker-image-labeler_latest.tgz ${DOCKER_IMAGE_LABELER_URL}
tar xzf /tmp/docker-image-labeler_latest.tgz -C /usr/local/bin
sshcommand:
wget -qO /usr/local/bin/sshcommand ${SSHCOMMAND_URL}
chmod +x /usr/local/bin/sshcommand
wget -qO /tmp/sshcommand_latest.tgz ${SSHCOMMAND_URL}
tar xzf /tmp/sshcommand_latest.tgz -C /usr/local/bin
sshcommand create dokku /usr/local/bin/dokku
procfile-util:
wget -qO /tmp/procfile-util_latest.tgz ${PROCFILE_UTIL_URL}
tar xzf /tmp/procfile-util_latest.tgz -C /usr/local/bin
plugn:
wget -qO /tmp/plugn_latest.tgz ${PLUGN_URL}
tar xzf /tmp/plugn_latest.tgz -C /usr/local/bin
@@ -104,30 +164,25 @@ sigil:
wget -qO /tmp/sigil_latest.tgz ${SIGIL_URL}
tar xzf /tmp/sigil_latest.tgz -C /usr/local/bin
docker: aufs
apt-get install -qq -y curl
egrep -i "^docker" /etc/group || groupadd docker
docker:
apt-get -qq -y --no-install-recommends install curl
grep -i -E "^docker" /etc/group || groupadd docker
usermod -aG docker dokku
ifndef CI
wget -nv -O - https://get.docker.com/ | sh
ifdef DOCKER_VERSION
apt-get install -qq -y docker-engine=${DOCKER_VERSION} || (apt-cache madison docker-engine ; exit 1)
apt-get -qq -y --no-install-recommends install docker-engine=${DOCKER_VERSION} || (apt-cache madison docker-engine ; exit 1)
endif
sleep 2 # give docker a moment i guess
endif
aufs:
ifndef CI
lsmod | grep aufs || modprobe aufs || apt-get install -qq -y linux-image-extra-`uname -r` > /dev/null
endif
stack:
ifeq ($(shell test -e /var/run/docker.sock && touch -c /var/run/docker.sock && echo $$?),0)
ifdef BUILD_STACK
@echo "Start building herokuish from source"
docker images | grep gliderlabs/herokuish || (git clone ${STACK_URL} /tmp/herokuish && cd /tmp/herokuish && IMAGE_NAME=gliderlabs/herokuish BUILD_TAG=latest VERSION=master make -e ${BUILD_STACK_TARGETS} && rm -rf /tmp/herokuish)
else
ifeq ($(shell echo ${PREBUILT_STACK_URL} | egrep -q 'http.*://|file://' && echo $$?),0)
ifeq ($(shell echo ${PREBUILT_STACK_URL} | grep -q -E 'http.*://|file://' && echo $$?),0)
@echo "Start importing herokuish from ${PREBUILT_STACK_URL}"
docker images | grep gliderlabs/herokuish || wget -nv -O - ${PREBUILT_STACK_URL} | gunzip -cd | docker import - gliderlabs/herokuish
else

1
PULL_REQUEST_TEMPLATE.md Normal file
View File

@@ -0,0 +1 @@
**Note:** If this PR is just doc changes, please put [ci skip] in the body that way tests do not run.

View File

@@ -1,43 +1,18 @@
# Dokku [![Build Status](https://img.shields.io/circleci/project/dokku/dokku/master.svg?style=flat-square "Build Status")](https://circleci.com/gh/dokku/dokku/tree/master) [![Ubuntu Package](https://img.shields.io/badge/package-ubuntu-brightgreen.svg?style=flat-square "Ubuntu Package")](https://packagecloud.io/dokku/dokku) [![Arch Package](https://img.shields.io/badge/package-arch-brightgreen.svg?style=flat-square "Arch Package")](https://aur.archlinux.org/packages/dokku/) [![IRC Network](https://img.shields.io/badge/irc-freenode-blue.svg?style=flat-square "IRC Freenode")](https://webchat.freenode.net/?channels=dokku) [![Slack Group](https://img.shields.io/badge/irc-slack-blue.svg?style=flat-square "Slack Group")](https://glider-slackin.herokuapp.com/) [![Documentation](https://img.shields.io/badge/docs-viewdocs-blue.svg?style=flat-square "Viewdocs")](http://dokku.viewdocs.io/dokku/)
# Dokku
[![Build Status](https://github.com/dokku/dokku/workflows/CI/badge.svg)](https://github.com/dokku/dokku/actions?query=workflow%3ACI)
[![Ubuntu Package](https://img.shields.io/badge/package-ubuntu-brightgreen.svg?style=flat-square "Ubuntu Package")](https://packagecloud.io/dokku/dokku)
[![Arch Package](https://img.shields.io/badge/package-arch-brightgreen.svg?style=flat-square "Arch Package")](https://aur.archlinux.org/packages/dokku/)
[![IRC Network](https://img.shields.io/badge/irc-freenode-blue.svg?style=flat-square "IRC Freenode")](https://webchat.freenode.net/?channels=dokku)
[![Slack Group](https://img.shields.io/badge/irc-slack-blue.svg?style=flat-square "Slack Group")](https://glider-slackin.herokuapp.com/)
[![Documentation](https://img.shields.io/badge/docs-viewdocs-blue.svg?style=flat-square "Viewdocs")](http://dokku.viewdocs.io/dokku/)
[![OpenCollective](https://opencollective.com/dokku/sponsors/badge.svg?style=flat-square)](#sponsors)
[![OpenCollective](https://opencollective.com/dokku/backers/badge.svg?style=flat-square)](#backers)
[![Gratipay](https://img.shields.io/gratipay/dokku.svg?style=flat-square)](https://gratipay.com/dokku/)
[![Patreon](https://img.shields.io/badge/patreon-donate-green.svg?style=flat-square)](https://www.patreon.com/dokku/)
Docker powered mini-Heroku. The smallest PaaS implementation you've ever seen.
## Requirements
- A fresh VM running Ubuntu `14.04 x64`
## Installing
To install the latest stable release, you can run the following commands as a user that has access to `sudo`:
wget https://raw.githubusercontent.com/dokku/dokku/v0.7.0/bootstrap.sh
sudo DOKKU_TAG=v0.7.0 bash bootstrap.sh
### Upgrading
[View the docs for upgrading](http://dokku.viewdocs.io/dokku/getting-started/upgrading/) from an older version of Dokku.
## Documentation
Full documentation - including advanced installation docs - are available online at [docs](http://dokku.viewdocs.io/dokku/)
## Support
You can use [Github Issues](https://github.com/dokku/dokku/issues), check [Troubleshooting](http://dokku.viewdocs.io/dokku/getting-started/troubleshooting/) in the documentation, or join us on [freenode in #dokku](https://webchat.freenode.net/?channels=%23dokku)
## Contribution
After checking [Github Issues](https://github.com/dokku/dokku/issues), the [Troubleshooting Guide](http://dokku.viewdocs.io/dokku/getting-started/troubleshooting/) or having a chat with us on [freenode in #dokku](https://webchat.freenode.net/?channels=%23dokku), feel free to fork and create a Pull Request.
While we may not merge your PR as is, they serve to start conversations and improve the general dokku experience for all users.
## Sponsors
See our list of past sponsors in the [SPONSORS](https://github.com/dokku/dokku/blob/master/SPONSORS.md) file.
Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/dokku#sponsor)]
<a href="https://opencollective.com/dokku/sponsor/0/website" target="_blank"><img src="https://opencollective.com/dokku/sponsor/0/avatar.svg"></a>
@@ -107,6 +82,49 @@ Support us with a monthly donation and help us continue our activities. [[Become
<a href="https://opencollective.com/dokku/backer/28/website" target="_blank"><img src="https://opencollective.com/dokku/backer/28/avatar.svg"></a>
<a href="https://opencollective.com/dokku/backer/29/website" target="_blank"><img src="https://opencollective.com/dokku/backer/29/avatar.svg"></a>
## Requirements
A fresh VM running any of the following operating systems:
- Ubuntu 16.04/18.04/20.04 x64 - Any currently supported release
- Debian 9+ x64
- CentOS 7 x64 *(experimental)*
- 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.
Otherwise, you will need to import the keypair manually after installation using `dokku ssh-keys:add`.
## Installation
To install the latest stable release, run the following commands as a user who has access to `sudo`:
```shell
wget https://raw.githubusercontent.com/dokku/dokku/v0.23.2/bootstrap.sh
sudo DOKKU_TAG=v0.23.2 bash bootstrap.sh
```
You can then proceed to the ip address or domain name associated with your server to complete the web-based installation.
If you wish for a more unattended installation method, see [these](http://dokku.viewdocs.io/dokku/getting-started/install/debian/#unattended-installation) docs.
### Upgrade
[View the docs](http://dokku.viewdocs.io/dokku/getting-started/upgrading/) for upgrading from an older version of Dokku.
## Documentation
Full documentation - including advanced installation docs - are available online at [http://dokku.viewdocs.io/dokku/](http://dokku.viewdocs.io/dokku/).
## Support
You can use [Github Issues](https://github.com/dokku/dokku/issues), check [Troubleshooting](http://dokku.viewdocs.io/dokku/getting-started/troubleshooting/) in the documentation, or join us on [freenode in #dokku](https://webchat.freenode.net/?channels=%23dokku).
## Contribution
After checking [Github Issues](https://github.com/dokku/dokku/issues), the [Troubleshooting Guide](http://dokku.viewdocs.io/dokku/getting-started/troubleshooting/) or having a chat with us on [freenode in #dokku](https://webchat.freenode.net/?channels=%23dokku), feel free to fork and create a Pull Request.
While we may not merge your PR as is, they serve to start conversations and improve the general Dokku experience for all users.
## License
[MIT License](https://github.com/dokku/dokku/blob/master/LICENSE) © Jeff Lindsay

View File

@@ -1,3 +0,0 @@
[Deis](http://deis.io)
[DigitalOcean](https://www.digitalocean.com/)

34
Vagrantfile vendored
View File

@@ -1,7 +1,7 @@
# -*- mode: ruby -*-
# vi: set ft=ruby :
BOX_NAME = ENV["BOX_NAME"] || "bento/ubuntu-14.04"
BOX_NAME = ENV["BOX_NAME"] || "bento/ubuntu-18.04"
BOX_CPUS = ENV["BOX_CPUS"] || "1"
BOX_MEMORY = ENV["BOX_MEMORY"] || "1024"
DOKKU_DOMAIN = ENV["DOKKU_DOMAIN"] || "dokku.me"
@@ -31,6 +31,12 @@ Vagrant::configure("2") do |config|
config.vm.provider :vmware_fusion do |v, override|
v.vmx["memsize"] = BOX_MEMORY
v.ssh_info_public = true
end
config.vm.provider :vmware_desktop do |v, override|
v.vmx["memsize"] = BOX_MEMORY
v.ssh_info_public = true
end
config.vm.define "empty", autostart: false
@@ -45,9 +51,11 @@ Vagrant::configure("2") do |config|
vm.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--natdnshostresolver1", "off"]
vb.customize ["modifyvm", :id, "--natdnsproxy1", "off"]
# enable NAT adapter cable https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=838999
vb.customize ["modifyvm", :id, "--cableconnected1", "on"]
end
vm.vm.provision :shell, :inline => "export DEBIAN_FRONTEND=noninteractive && apt-get update > /dev/null && apt-get -qq -y install git > /dev/null && cd /root/dokku && #{make_cmd}"
vm.vm.provision :shell, :inline => "export DEBIAN_FRONTEND=noninteractive && apt-get update -qq >/dev/null && apt-get -qq -y --no-install-recommends install git build-essential >/dev/null && cd /root/dokku && #{make_cmd}"
vm.vm.provision :shell, :inline => "cd /root/dokku && make dokku-installer"
vm.vm.provision :shell do |s|
s.inline = <<-EOT
@@ -64,8 +72,9 @@ Vagrant::configure("2") do |config|
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 > /dev/null && apt-get -qq -y install git > /dev/null"
vm.vm.provision :shell, :inline => "cd /vagrant/ && export DOKKU_BRANCH=`git symbolic-ref -q --short HEAD 2>/dev/null` && export DOKKU_TAG=`git describe --tags --exact-match 2>/dev/null` && cd /root/ && cp /vagrant/bootstrap.sh ./ && bash bootstrap.sh"
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"
vm.vm.provision :shell, :inline => "cd /vagrant/ && export DOKKU_BRANCH=`git symbolic-ref -q --short HEAD 2>/dev/null` && export DOKKU_TAG=`git describe --tags --exact-match 2>/dev/null` && cd /root/ && cp /vagrant/bootstrap.sh ./ && dos2unix bootstrap.sh && bash bootstrap.sh"
vm.vm.provision :shell, :inline => "cd /root/dokku && make dokku-installer"
end
config.vm.define "dokku-deb", autostart: false do |vm|
@@ -76,19 +85,30 @@ Vagrant::configure("2") do |config|
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 > /dev/null && apt-get -qq -y install git > /dev/null && cd /root/dokku && #{make_cmd}"
vm.vm.provision :shell, :inline => "export IS_RELEASE=true && cd /root/dokku && make deb-all"
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"
end
config.vm.define "build-arch", autostart: false do |vm|
vm.vm.box = "bugyt/archlinux"
vm.vm.synced_folder File.dirname(__FILE__), "/dokku"
vm.vm.synced_folder "#{File.dirname(__FILE__)}/../dokku-arch", "/dokku-arch"
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

View File

@@ -22,7 +22,11 @@ arch-setup:
arch-dokku: arch-setup
echo "-> Update package sums, create metadata file and test the build of the package"
ifeq ($(DOKKU_VERSION),master)
git describe --tags > /tmp/VERSION
else
echo $(DOKKU_VERSION) > /tmp/VERSION
endif
cat /tmp/VERSION | cut -d '-' -f 1 | cut -d 'v' -f 2 > /tmp/STABLE_VERSION
sed -i -e "s/pkgver=.*/pkgver=`cat /tmp/STABLE_VERSION`/" /dokku-arch/PKGBUILD
cd /dokku-arch; updpkgsums; mksrcinfo; makepkg -fd

View File

@@ -1,8 +1,9 @@
#!/usr/bin/env bash
set -eo pipefail; [[ $TRACE ]] && set -x
set -eo pipefail
[[ $TRACE ]] && set -x
# A script to bootstrap dokku.
# It expects to be run on Ubuntu 14.04 via 'sudo'
# It expects to be run on Ubuntu 16.04/18.04/20.04, or CentOS 7 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.
@@ -11,50 +12,78 @@ set -eo pipefail; [[ $TRACE ]] && set -x
# 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], CentOS [7], Ubuntu [16.04, 18.04, 20.04]"
log-fail() {
declare desc="log fail formatter"
echo "$@" 1>&2
exit 1
}
ensure-environment() {
local FREE_MEMORY
echo "Preparing to install $DOKKU_TAG from $DOKKU_REPO..."
if ! command -v apt-get &>/dev/null; then
echo "This installation script requires apt-get. For manual installation instructions, consult http://dokku.viewdocs.io/dokku/advanced-installation/"
exit 1
if [[ -z "$DOKKU_TAG" ]]; then
echo "Preparing to install $DOKKU_REPO..."
else
echo "Preparing to install $DOKKU_TAG from $DOKKU_REPO..."
fi
hostname -f > /dev/null 2>&1 || {
echo "This installation script requires that you have a hostname set for the instance. Please set a hostname for 127.0.0.1 in your /etc/hosts"
exit 1
hostname -f >/dev/null 2>&1 || {
log-fail "This installation script requires that you have a hostname set for the instance. Please set a hostname for 127.0.0.1 in your /etc/hosts"
}
FREE_MEMORY=$(grep MemTotal /proc/meminfo | awk '{print $2}')
if [[ "$FREE_MEMORY" -lt 1003600 ]]; then
echo "For dokku to build containers, it is strongly suggested that you have 1024 megabytes or more of free memory"
echo "If necessary, please consult this document to setup swap: http://dokku.viewdocs.io/dokku/advanced-installation/#vms-with-less-than-1gb-of-memory"
echo "If necessary, please consult this document to setup swap: http://dokku.viewdocs.io/dokku/getting-started/advanced-installation/#vms-with-less-than-1-gb-of-memory"
fi
}
install-requirements() {
echo "--> Ensuring we have the proper dependencies"
apt-get update -qq > /dev/null
if [[ $(lsb_release -sr) == "12.04" ]]; then
apt-get -qq -y install python-software-properties
fi
case "$DOKKU_DISTRO" in
debian)
if ! dpkg -l | grep -q software-properties-common; then
apt-get update -qq >/dev/null
apt-get -qq -y --no-install-recommends install software-properties-common
fi
;;
ubuntu)
if ! dpkg -l | grep -q software-properties-common; then
apt-get update -qq >/dev/null
apt-get -qq -y --no-install-recommends install software-properties-common
fi
add-apt-repository universe >/dev/null
apt-get update -qq >/dev/null
;;
esac
}
install-dokku() {
if [[ -n $DOKKU_BRANCH ]]; then
install-dokku-from-source "origin/$DOKKU_BRANCH"
elif [[ -n $DOKKU_TAG ]]; then
local DOKKU_SEMVER="${DOKKU_TAG//v}"
local DOKKU_SEMVER="${DOKKU_TAG//v/}"
major=$(echo "$DOKKU_SEMVER" | awk '{split($0,a,"."); print a[1]}')
minor=$(echo "$DOKKU_SEMVER" | awk '{split($0,a,"."); print a[2]}')
patch=$(echo "$DOKKU_SEMVER" | awk '{split($0,a,"."); print a[3]}')
use_plugin=false
# 0.4.0 implemented a `plugin` plugin
if [[ "$major" -eq "0" ]] && [[ "$minor" -ge "4" ]] && [[ "$patch" -ge "0" ]]; then
use_plugin=true
elif [[ "$major" -ge "1" ]]; then
use_plugin=true
fi
# 0.3.13 was the first version with a debian package
if [[ "$major" -eq "0" ]] && [[ "$minor" -eq "3" ]] && [[ "$patch" -ge "13" ]]; then
install-dokku-from-package "$DOKKU_SEMVER"
echo "--> Running post-install dependency installation"
dokku plugins-install-dependencies
# 0.4.0 implemented a `plugin` plugin
elif [[ "$major" -eq "0" ]] && [[ "$minor" -ge "4" ]] && [[ "$patch" -ge "0" ]]; then
elif [[ "$use_plugin" == "true" ]]; then
install-dokku-from-package "$DOKKU_SEMVER"
echo "--> Running post-install dependency installation"
sudo -E dokku plugin:install-dependencies --core
@@ -68,10 +97,14 @@ install-dokku() {
fi
}
install-dokku-from-source() {
local DOKKU_CHECKOUT="$1"
apt-get -qq -y install git make software-properties-common
if ! command -v apt-get &>/dev/null; then
log-fail "This installation script requires apt-get. For manual installation instructions, consult http://dokku.viewdocs.io/dokku/advanced-installation/"
fi
apt-get -qq -y --no-install-recommends install sudo git make software-properties-common
cd /root
if [[ ! -d /root/dokku ]]; then
git clone "$DOKKU_REPO" /root/dokku
@@ -84,36 +117,87 @@ install-dokku-from-source() {
}
install-dokku-from-package() {
case "$DOKKU_DISTRO" in
debian | ubuntu)
install-dokku-from-deb-package "$@"
;;
centos | rhel)
install-dokku-from-rpm-package "$@"
;;
*)
log-fail "Unsupported Linux distribution. For manual installation instructions, consult http://dokku.viewdocs.io/dokku/advanced-installation/"
;;
esac
}
in-array() {
declare desc="return true if value ($1) is in list (all other arguments)"
local e
for e in "${@:2}"; do
[[ "$e" == "$1" ]] && return 0
done
return 1
}
install-dokku-from-deb-package() {
local DOKKU_CHECKOUT="$1"
local NO_INSTALL_RECOMMENDS=${DOKKU_NO_INSTALL_RECOMMENDS:=""}
local OS_ID
if ! in-array "$DOKKU_DISTRO_VERSION" "16.04" "18.04" "20.04" "9" "10"; then
log-fail "Unsupported Linux distribution. Only the following versions are supported: $SUPPORTED_VERSIONS"
fi
if [[ -n $DOKKU_DOCKERFILE ]]; then
NO_INSTALL_RECOMMENDS=" --no-install-recommends "
fi
echo "--> Initial apt-get update"
apt-get update -qq > /dev/null
apt-get -qq -y install apt-transport-https
apt-get update -qq >/dev/null
apt-get -qq -y --no-install-recommends install apt-transport-https
echo "--> Installing docker"
if uname -r | grep -q linode; then
echo "--> NOTE: Using Linode? Docker might complain about missing AUFS support."
echo " See http://dokku.viewdocs.io/dokku/getting-started/install/linode/"
echo " Installation will continue in 10 seconds."
sleep 10
if ! command -v docker &>/dev/null; then
echo "--> Installing docker"
if uname -r | grep -q linode; then
echo "--> NOTE: Using Linode? Docker may complain about missing AUFS support."
echo " You can safely ignore this warning."
echo " Installation will continue in 10 seconds."
sleep 10
fi
export CHANNEL=stable
wget -nv -O - https://get.docker.com/ | sh
fi
OS_ID="$(lsb_release -cs 2>/dev/null || echo "bionic")"
if ! in-array "$DOKKU_DISTRO" "debian" "ubuntu"; then
DOKKU_DISTRO="ubuntu"
OS_ID="bionic"
fi
if [[ "$DOKKU_DISTRO" == "ubuntu" ]]; then
OS_IDS=("xenial" "bionic" "focal")
if ! in-array "$OS_ID" "${OS_IDS[@]}"; then
OS_ID="bionic"
fi
elif [[ "$DOKKU_DISTRO" == "debian" ]]; then
OS_IDS=("stretch" "buster")
if ! in-array "$OS_ID" "${OS_IDS[@]}"; then
OS_ID="buster"
fi
fi
wget -nv -O - https://get.docker.com/ | sh
echo "--> Installing dokku"
wget -nv -O - https://packagecloud.io/gpg.key | apt-key add -
echo "deb https://packagecloud.io/dokku/dokku/ubuntu/ trusty main" | tee /etc/apt/sources.list.d/dokku.list
apt-get update -qq > /dev/null
wget -nv -O - https://packagecloud.io/dokku/dokku/gpgkey | apt-key add -
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
[[ -n $DOKKU_VHOST_ENABLE ]] && echo "dokku dokku/vhost_enable boolean $VHOST_ENABLE" | sudo debconf-set-selections
[[ -n $DOKKU_WEB_CONFIG ]] && echo "dokku dokku/web_config boolean $DOKKU_WEB_CONFIG" | sudo debconf-set-selections
[[ -n $DOKKU_HOSTNAME ]] && echo "dokku dokku/hostname string $DOKKU_HOSTNAME" | sudo debconf-set-selections
[[ -n $DOKKU_VHOST_ENABLE ]] && echo "dokku dokku/vhost_enable boolean $DOKKU_VHOST_ENABLE" | sudo debconf-set-selections
[[ -n $DOKKU_WEB_CONFIG ]] && echo "dokku dokku/web_config boolean $DOKKU_WEB_CONFIG" | sudo debconf-set-selections
[[ -n $DOKKU_HOSTNAME ]] && echo "dokku dokku/hostname string $DOKKU_HOSTNAME" | sudo debconf-set-selections
[[ -n $DOKKU_SKIP_KEY_FILE ]] && echo "dokku dokku/skip_key_file boolean $DOKKU_SKIP_KEY_FILE" | sudo debconf-set-selections
[[ -n $DOKKU_KEY_FILE ]] && echo "dokku dokku/key_file string $DOKKU_KEY_FILE" | sudo debconf-set-selections
[[ -n $DOKKU_KEY_FILE ]] && echo "dokku dokku/key_file string $DOKKU_KEY_FILE" | sudo debconf-set-selections
[[ -n $DOKKU_NGINX_ENABLE ]] && echo "dokku dokku/nginx_enable string $DOKKU_NGINX_ENABLE" | sudo debconf-set-selections
if [[ -n $DOKKU_CHECKOUT ]]; then
# shellcheck disable=SC2086
@@ -124,7 +208,42 @@ install-dokku-from-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
DOKKU_DISTRO=$(. /etc/os-release && echo "$ID")
# shellcheck disable=SC1091
DOKKU_DISTRO_VERSION=$(. /etc/os-release && echo "$VERSION_ID")
export DEBIAN_FRONTEND=noninteractive
export DOKKU_REPO=${DOKKU_REPO:-"https://github.com/dokku/dokku.git"}

View File

@@ -1,20 +0,0 @@
machine:
pre:
- echo 'DOCKER_OPTS="-s btrfs -e lxc --userland-proxy=false"' | sudo tee -a /etc/default/docker
- sudo curl -L -o /usr/bin/docker 'https://s3-external-1.amazonaws.com/circle-downloads/docker-1.9.1-circleci-cp-workaround'
- sudo chmod 0755 /usr/bin/docker
services:
- docker
dependencies:
cache_directories:
- "~/docker"
override:
- ./tests/ci/parallel_runner.sh setup: { timeout: 300 }
- echo "export DOKKU_SKIP_CLEANUP=true" > /home/dokku/.dokkurc/dokku_skip_cleanup
# dokku.me now resolves to 10.0.0.2. add 10.0.0.2/24 to eth0
- sudo ip a a 10.0.0.2/24 broadcast 10.0.0.255 dev eth0
post:
- sudo -E make -e lint
test:
override:
- ./tests/ci/parallel_runner.sh testing: { parallel: true, timeout: 3600 }

46
common.mk Normal file
View File

@@ -0,0 +1,46 @@
GO_ARGS ?=
GO_PLUGIN_MAKE_TARGET ?= build
GO_REPO_ROOT := /go/src/github.com/dokku/dokku
BUILD_IMAGE := golang:1.15.6
GO_BUILD_CACHE ?= /tmp/dokku-go-build-cache
GO_MOD_CACHE ?= /tmp/dokku-go-mod-mod
.PHONY: build-in-docker build clean src-clean
build: $(BUILD)
build-in-docker: clean
mkdir -p /tmp/dokku-go-build-cache
docker run --rm \
-v $$PWD/../..:$(GO_REPO_ROOT) \
-v $(GO_BUILD_CACHE):/root/.cache \
-v $(GO_MOD_CACHE):/go/pkg/mod \
-e PLUGIN_NAME=$(PLUGIN_NAME) \
-e GO111MODULE=on \
-w $(GO_REPO_ROOT)/plugins/$(PLUGIN_NAME) \
$(BUILD_IMAGE) \
bash -c "GO_ARGS='$(GO_ARGS)' make -j4 $(GO_PLUGIN_MAKE_TARGET)" || exit $$?
clean:
rm -rf $(BUILD)
find . -xtype l -delete
commands: **/**/commands.go
go build -ldflags="-s -w" $(GO_ARGS) -o commands src/commands/commands.go
subcommands:
go build -ldflags="-s -w" $(GO_ARGS) -o subcommands/subcommands src/subcommands/subcommands.go
$(MAKE) $(SUBCOMMANDS)
subcommands/%:
ln -sf subcommands $@
src-clean:
rm -rf .gitignore src vendor Makefile *.go glide.* go.sum go.mod
triggers:
go build -ldflags="-s -w" $(GO_ARGS) -o triggers src/triggers/triggers.go
$(MAKE) $(TRIGGERS)
triggers/%:
ln -sf triggers $(shell echo $@ | cut -d '/' -f2)

31
contrib/bash-completion Normal file
View File

@@ -0,0 +1,31 @@
# bash completion for dokku -*- shell-script -*-
_dokku_complete_verify() {
declare desc="shows bash completion"
declare COMMAND="$1"
local COMMANDS=""
_dokku_complete_goals=$(cat "/var/cache/dokku-completion")
while read -r fn; do
if [[ -z "$COMMAND" ]] || [[ "$fn" == $COMMAND* ]]; then
COMMANDS="${COMMANDS};${fn}"
fi
done <<< "$_dokku_complete_goals"
echo "${COMMANDS#";"}"
}
_dokku() {
local cur prev
_get_comp_words_by_ref -n : cur
if [[ ! -f "/var/cache/dokku-completion" ]] || [[ ! -s "/var/cache/dokku-completion" ]]; then
dokku --quiet help --all | awk '/^ /{ print $1 }' | sort > "/var/cache/dokku-completion"
fi
opts=$(_dokku_complete_verify "${cur}")
COMPREPLY=($(IFS=";" compgen -W "$opts" -- "$cur"))
__ltrim_colon_completions "$cur"
} &&
complete -F _dokku dokku

View File

@@ -0,0 +1,6 @@
FROM ubuntu:18.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update -qq && apt-get -qq -y --no-install-recommends install gcc git build-essential wget ruby-dev ruby1.9.1 lintian rpm help2man man-db
RUN command -v fpm >/dev/null || sudo gem install fpm --no-ri --no-rdoc

View File

@@ -0,0 +1,16 @@
FROM dokku/build-base:0.0.1
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update -qq && apt-get -qq -y --no-install-recommends install gcc git build-essential wget ruby-dev ruby1.9.1 lintian rpm help2man man-db
RUN command -v fpm >/dev/null || sudo gem install fpm --no-ri --no-rdoc
ARG WORKDIR=/go/src/github.com/dokku/dokku
WORKDIR ${WORKDIR}
COPY . ${WORKDIR}
RUN make deb-dokku-update rpm-dokku-update
RUN ls -lha /tmp/

View File

@@ -0,0 +1,41 @@
FROM dokku/build-base:0.0.1
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update -qq && apt-get -qq -y --no-install-recommends install gcc git build-essential wget ruby-dev ruby1.9.1 lintian rpm help2man man-db
RUN command -v fpm >/dev/null || sudo gem install fpm --no-ri --no-rdoc
ARG GOLANG_VERSION
RUN wget -qO /tmp/go${GOLANG_VERSION}.linux-amd64.tar.gz https://storage.googleapis.com/golang/go${GOLANG_VERSION}.linux-amd64.tar.gz \
&& tar -C /usr/local -xzf /tmp/go${GOLANG_VERSION}.linux-amd64.tar.gz \
&& cp /usr/local/go/bin/* /usr/local/bin
ARG WORKDIR=/go/src/github.com/dokku/dokku
WORKDIR ${WORKDIR}
COPY Makefile ${WORKDIR}/
COPY *.mk ${WORKDIR}/
RUN make deb-setup rpm-setup sshcommand plugn
COPY . ${WORKDIR}
ARG PLUGIN_MAKE_TARGET
ARG DOKKU_VERSION=master
ARG DOKKU_GIT_REV
ARG IS_RELEASE=false
ENV GOPATH=/go
RUN PLUGIN_MAKE_TARGET=${PLUGIN_MAKE_TARGET} \
DOKKU_VERSION=${DOKKU_VERSION} \
DOKKU_GIT_REV=${DOKKU_GIT_REV} \
IS_RELEASE=${IS_RELEASE} \
SKIP_GO_CLEAN=true \
make version copyfiles \
&& make deb-dokku deb-sigil \
rpm-dokku rpm-sigil
RUN ls -lha /tmp/

52
contrib/copy-packages Normal file
View File

@@ -0,0 +1,52 @@
#!/usr/bin/env python2.7
import os
import requests
import shutil
import subprocess
from requests.auth import HTTPBasicAuth
PACKAGECLOUD_TOKEN = os.getenv('DOKKU_PACKAGECLOUD_TOKEN')
def download_file(filename, url):
r = requests.get(url, stream=True)
with open(filename, 'wb') as f:
shutil.copyfileobj(r.raw, f)
def upload_file(filename):
versions = [
"xenial"
"focal"
]
cmd_template = "package_cloud push dokku/dokku/ubuntu/{0} {1}"
for version in versions:
cmd = cmd_template.format(version, filename)
subprocess.call(cmd, shell=True)
def main():
auth = HTTPBasicAuth(PACKAGECLOUD_TOKEN, '')
base = requests.get('https://packagecloud.io/api/v1/repos/dokku/dokku/packages/deb/ubuntu/bionic.json',
auth=auth)
data = base.json()
urls = []
for package in data:
urls.append(package['versions_url'])
download_urls = {}
for url in urls:
base = requests.get('https://packagecloud.io{0}'.format(url),
auth=auth)
data = base.json()
for version in data:
download_urls['downloads/' + version['filename']] = version['download_url']
for filename, download_url in download_urls.items():
print("downloading {0}".format(filename))
download_file(filename, download_url)
upload_file(filename)
if __name__ == "__main__":
main()

8
contrib/dokku-docker-bin.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/usr/bin/env bash
set -eo pipefail
[[ $DOKKU_TRACE ]] && set -x && DOKKU_DOCKER_ENV="--env DOKKU_TRACE=on"
DOKKU_DOCKER_CONTAINER_NAME=${DOKKU_DOCKER_CONTAINER_NAME:=dokku}
# TODO: handle cases where we need a tty
# shellcheck disable=SC2086
docker exec $DOKKU_DOCKER_ENV -i "$DOKKU_DOCKER_CONTAINER_NAME" dokku "$@"

View File

@@ -1,42 +1,91 @@
#!/usr/bin/env python2.7
#!/usr/bin/env python3
import cgi
import json
import os
import SimpleHTTPServer
import SocketServer
import re
import shutil
try:
import SimpleHTTPServer
import SocketServer
except ImportError:
import http.server as SimpleHTTPServer
import socketserver as SocketServer
import subprocess
import sys
import threading
VERSION = 'v0.7.0'
VERSION = 'v0.23.2'
def bytes_to_string(b):
if type(b) == bytes:
encoding = sys.stdout.encoding
if encoding is None:
encoding = 'utf-8'
b = b.decode(encoding)
b = b.strip()
return b
def string_to_bytes(s):
if type(s) == str:
encoding = sys.stdout.encoding
if encoding is None:
encoding = 'utf-8'
s = s.encode(encoding)
return s
hostname = ''
try:
command = "bash -c '[[ $(dig +short $HOSTNAME) ]] && echo $HOSTNAME || wget -q -O - icanhazip.com'"
hostname = subprocess.check_output(command, shell=True)
if ':' in hostname:
hostname = ''
hostname = bytes_to_string(subprocess.check_output(command, shell=True))
except subprocess.CalledProcessError:
pass
key_file = os.getenv('KEY_FILE', '/root/.ssh/authorized_keys')
key_file = os.getenv('KEY_FILE', None)
if os.path.isfile('/home/ec2-user/.ssh/authorized_keys'):
key_file = '/home/ec2-user/.ssh/authorized_keys'
elif os.path.isfile('/home/ubuntu/.ssh/authorized_keys'):
key_file = '/home/ubuntu/.ssh/authorized_keys'
else:
key_file = '/root/.ssh/authorized_keys'
admin_keys = []
if os.path.isfile(key_file):
try:
command = "cat {0}".format(key_file)
admin_keys = subprocess.check_output(command, shell=True).strip().split("\n")
admin_keys = bytes_to_string(subprocess.check_output(command, shell=True)).strip().split("\n")
except subprocess.CalledProcessError:
pass
ufw_display = 'block'
try:
command = "sudo ufw status"
ufw_output = bytes_to_string(subprocess.check_output(command, shell=True).strip())
if "inactive" in ufw_output:
ufw_display = 'none'
except subprocess.CalledProcessError:
ufw_display = 'none'
nginx_dir = '/etc/nginx'
nginx_init = '/etc/init.d/nginx'
try:
command = "test -x /usr/bin/openresty"
subprocess.check_output(command, shell=True)
nginx_dir = '/usr/local/openresty/nginx/conf'
nginx_init = '/etc/init.d/openresty'
except subprocess.CalledProcessError:
pass
def check_boot():
if 'onboot' not in sys.argv:
return
init_dir = os.getenv('INIT_DIR', '/etc/init')
systemd_dir = os.getenv('SYSTEMD_DIR', '/etc/systemd/system')
nginx_dir = os.getenv('NGINX_DIR', '/etc/nginx/conf.d')
nginx_conf_dir = os.getenv('NGINX_CONF_DIR', '{0}/conf.d'.format(nginx_dir))
if os.path.exists(init_dir):
with open('{0}/dokku-installer.conf'.format(init_dir), 'w') as f:
@@ -53,8 +102,8 @@ def check_boot():
f.write("[Install]\n")
f.write("WantedBy=multi-user.target\n")
f.write("WantedBy=graphical.target\n")
if os.path.exists(nginx_dir):
with open('{0}/dokku-installer.conf'.format(nginx_dir), 'w') as f:
if os.path.exists(nginx_conf_dir):
with open('{0}/dokku-installer.conf'.format(nginx_conf_dir), 'w') as f:
f.write("upstream dokku-installer { server 127.0.0.1:2000; }\n")
f.write("server {\n")
f.write(" listen 80;\n")
@@ -63,18 +112,27 @@ def check_boot():
f.write(" }\n")
f.write("}\n")
subprocess.call('rm -f /etc/nginx/sites-enabled/*', shell=True)
subprocess.call('rm -f {0}/sites-enabled/*'.format(nginx_dir), shell=True)
sys.exit(0)
class GetHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
def write_content(self, content):
try:
self.wfile.write(content)
except TypeError:
self.wfile.write(string_to_bytes(content))
def do_GET(self):
content = PAGE.replace('{VERSION}', VERSION)
content = content.replace('{UFW_DISPLAY}', ufw_display)
content = content.replace('{HOSTNAME}', hostname)
content = content.replace('{AUTHORIZED_KEYS_LOCATION}', key_file)
content = content.replace('{ADMIN_KEYS}', "\n".join(admin_keys))
self.send_response(200)
self.end_headers()
self.wfile.write(content)
self.write_content(content)
def do_POST(self):
if self.path not in ['/setup', '/setup/']:
@@ -86,27 +144,54 @@ class GetHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
'REQUEST_METHOD': 'POST',
'CONTENT_TYPE': self.headers['Content-Type']})
vhost_enable = 'false'
dokku_root = os.getenv('DOKKU_ROOT', '/home/dokku')
dokku_user = os.getenv('DOKKU_SYSTEM_GROUP', 'dokku')
dokku_group = os.getenv('DOKKU_SYSTEM_USER', 'dokku')
vhost_enable = 'false'
vhost_filename = '{0}/VHOST'.format(dokku_root)
if 'vhost' in params and params['vhost'].value == 'true':
vhost_enable = 'true'
with open('{0}/VHOST'.format(dokku_root), 'w') as f:
f.write(params['hostname'].value)
with open(vhost_filename, 'w') as f:
f.write(params['hostname'].value.strip("/"))
shutil.chown(vhost_filename, dokku_user, dokku_group)
else:
try:
os.remove('{0}/VHOST'.format(dokku_root))
os.remove(vhost_filename)
except OSError:
pass
with open('{0}/HOSTNAME'.format(dokku_root), 'w') as f:
f.write(params['hostname'].value)
command = ['sshcommand', 'acl-add', 'dokku', 'admin']
for key in params['keys'].value.split("\n"):
hostname_filename = '{0}/HOSTNAME'.format(dokku_root)
with open(hostname_filename, 'w') as f:
f.write(params['hostname'].value.strip("/"))
shutil.chown(hostname_filename, dokku_user, dokku_group)
for (index, key) in enumerate(params['keys'].value.splitlines(), 1):
user = 'admin'
if self.admin_user_exists() is not None:
user = 'web-admin'
if self.web_admin_user_exists() is not None:
index = int(self.web_admin_user_exists()) + 1
elif self.web_admin_user_exists() is None:
index = 1
elif self.admin_user_exists() is None:
pass
else:
index = int(self.admin_user_exists()) + 1
user = user + str(index)
command = ['sshcommand', 'acl-add', 'dokku', user]
proc = subprocess.Popen(command, stdin=subprocess.PIPE)
proc.stdin.write(key)
try:
proc.stdin.write(key)
except TypeError:
proc.stdin.write(string_to_bytes(key))
proc.stdin.close()
proc.wait()
set_debconf_selection('boolean', 'nginx_enable', 'true')
set_debconf_selection('boolean', 'skip_key_file', 'true')
set_debconf_selection('boolean', 'vhost_enable', vhost_enable)
set_debconf_selection('boolean', 'web_config', 'false')
@@ -115,9 +200,34 @@ class GetHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):
if 'selfdestruct' in sys.argv:
DeleteInstallerThread()
content = json.dumps({'status': 'ok'})
self.send_response(200)
self.end_headers()
self.wfile.write(json.dumps({'status': 'ok'}))
self.write_content(content)
def web_admin_user_exists(self):
return self.user_exists('web-admin(\d+)')
def admin_user_exists(self):
return self.user_exists('admin(\d+)')
def user_exists(self, name):
command = 'dokku ssh-keys:list'
pattern = re.compile(r'NAME="' + name + '"')
proc = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE)
max_num = 0
exists = False
for line in proc.stdout:
m = pattern.search(bytes_to_string(line))
if m:
# User of the form `user` or `user#` exists
exists = True
max_num = max(max_num, int(m.group(1)))
if exists:
return max_num
else:
return None
def set_debconf_selection(debconf_type, key, value):
@@ -149,13 +259,13 @@ class DeleteInstallerThread(object):
thread.start()
def run(self):
command = "rm /etc/nginx/conf.d/dokku-installer.conf && /etc/init.d/nginx stop && /etc/init.d/nginx start"
command = "rm {0}/conf.d/dokku-installer.conf && {1} stop && {1} start".format(nginx_dir, nginx_init)
try:
subprocess.call(command, shell=True)
except:
pass
command = "rm -f /etc/init/dokku-installer.conf /etc/systemd/system/dokku-installer.service && stop dokku-installer"
command = "rm -f /etc/init/dokku-installer.conf /etc/systemd/system/dokku-installer.service && (stop dokku-installer || systemctl stop dokku-installer.service)"
try:
subprocess.call(command, shell=True)
except:
@@ -167,77 +277,157 @@ def main():
port = int(os.getenv('PORT', 2000))
httpd = SocketServer.TCPServer(("", port), GetHandler)
print "Listening on 0.0.0.0:{0}, CTRL+C to stop".format(port)
print("Listening on 0.0.0.0:{0}, CTRL+C to stop".format(port))
httpd.serve_forever()
PAGE = """
<html>
<head>
<meta charset="utf-8" />
<title>Dokku Setup</title>
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css" />
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous">
<style>
.bd-callout {
padding: 1.25rem;
margin-top: 1.25rem;
margin-bottom: 1.25rem;
border: 1px solid #eee;
border-left-width: .25rem;
border-radius: .25rem;
}
.bd-callout p:last-child {
margin-bottom: 0;
}
.bd-callout-info {
border-left-color: #5bc0de;
}
pre {
font-size: 80%;
margin-bottom: 0;
}
h1 small {
font-size: 50%;
}
h5 {
font-size: 1rem;
}
.container {
width: 640px;
}
.result {
padding-left: 20px;
}
input.form-control, textarea.form-control {
background-color: #fafbfc;
font-size: 14px;
}
input.form-control::placeholder, textarea.form-control::placeholder {
color: #adb2b8
}
</style>
</head>
<body>
<div class="container" style="width: 640px;">
<form id="form" role="form">
<h1>Dokku Setup <small>{VERSION}</small></h1>
<div class="form-group">
<h3><small style="text-transform: uppercase;">Admin Access</small></h3>
<label for="key">Public Key</label><br />
<textarea class="form-control" name="keys" rows="7" id="key">{ADMIN_KEYS}</textarea>
</div>
<div class="form-group">
<h3><small style="text-transform: uppercase;">Hostname Configuration</small></h3>
<div class="form-group">
<label for="hostname">Hostname</label>
<input class="form-control" type="text" id="hostname" name="hostname" value="{HOSTNAME}" />
<div class="container">
<form id="form" role="form">
<h1 class="pt-3">Dokku Setup <small class="text-muted">{VERSION}</small></h1>
<div class="alert alert-warning small" role="alert">
<strong>Warning:</strong> The SSH key filled out here can grant root access to the server. Please complete the setup as soon as possible.
</div>
<div class="checkbox">
<label><input id="vhost" name="vhost" type="checkbox" value="true"> Use <abbr title="Nginx will be run on port 80 and backend to your apps based on hostname">virtualhost naming</abbr> for apps</label>
<div class="row">
<div class="col">
<h3>Admin Access</h3>
<div class="form-group">
<label for="key">Public SSH Keys</label><br />
<textarea class="form-control" name="keys" rows="5" id="key" placeholder="Begins with 'ssh-rsa', 'ssh-dss', 'ssh-ed25519', 'ecdsa-sha2-nistp256', 'ecdsa-sha2-nistp384', or 'ecdsa-sha2-nistp521'">{ADMIN_KEYS}</textarea>
<small class="form-text text-muted">Public keys allow users to ssh onto the server as the <code>dokku</code> user, as well as remotely execute Dokku commands. They are currently auto-populated from: <code>{AUTHORIZED_KEYS_LOCATION}</code>, and can be changed later via the <a href="http://dokku.viewdocs.io/dokku/deployment/user-management/" target="_blank"><code>dokku ssh-keys</code></a> plugin.</small>
</div>
</div>
</div>
<p>Your app URLs will look like:</p>
<pre id="example">http://hostname:port</pre>
</div>
<button type="button" onclick="setup()" class="btn btn-primary">Finish Setup</button> <span style="padding-left: 20px;" id="result"></span>
</form>
<div class="row">
<div class="col">
<h3>Hostname Configuration</h3>
<div class="form-group">
<label for="hostname">Hostname</label>
<input class="form-control" type="text" id="hostname" name="hostname" value="{HOSTNAME}" placeholder="A hostname or ip address such as {HOSTNAME}" />
<small class="form-text text-muted">This will be used as the default host for all applications, and can be changed later via the <a href="http://dokku.viewdocs.io/dokku/configuration/domains/" target="_blank"><code>dokku domains:set-global</code></a> command.</small>
</div>
<div class="form-check">
<input class="form-check-input" type="checkbox" id="vhost" name="vhost" value="true">
<label class="form-check-label" for="vhost">Use virtualhost naming for apps</label>
<small class="form-text text-muted">When enabled, Nginx will be run on port 80 and proxy requests to apps based on hostname.</small>
<small class="form-text text-muted">When disabled, a specific port will be setup for each application on first deploy, and requests to that port will be proxied to the relevant app.</small>
</div>
<div class="alert alert-warning small mt-3 d-{UFW_DISPLAY}" role="alert">
<strong>Warning:</strong> UFW is active. To allow traffic to specific ports, run <code>sudo ufw allow PORT</code> for the port in question.
</div>
<div class="bd-callout bd-callout-info">
<h5>What will app URLs look like?</h5>
<pre><code id="example">http://hostname:port</code></pre>
</div>
</div>
</div>
<button type="button" onclick="setup()" class="btn btn-primary">Finish Setup</button> <span class="result"></span>
</form>
</div>
<div id="error-output"></div>
<script>
var $ = document.querySelector.bind(document)
function setup() {
if ($.trim($("#key").val()) == "") {
if ($("#key").value.trim() == "") {
alert("Your admin public key cannot be blank.")
return
}
if ($.trim($("#hostname").val()) == "") {
if ($("#hostname").value.trim() == "") {
alert("Your hostname cannot be blank.")
return
}
data = $("#form").serialize()
$("input,textarea,button").prop("disabled", true);
$.post('/setup', data)
.done(function() {
$("#result").html("Success!")
window.location.href = "http://progrium.viewdocs.io/dokku/deployment/application-deployment/";
var data = new FormData($("#form"))
var inputs = [].slice.call(document.querySelectorAll("input, textarea, button"))
inputs.forEach(function (input) {
input.disabled = true
})
var result = $(".result")
fetch("/setup", {method: "POST", body: data})
.then(function(response) {
if (response.ok) {
return response.json()
} else {
throw new Error('Server returned error')
}
})
.then(function(response) {
result.classList.add("text-success");
result.textContent = "Success! Redirecting in 3 seconds. .."
setTimeout(function() {
window.location.href = "http://dokku.viewdocs.io/dokku~{VERSION}/deployment/application-deployment/";
}, 3000);
})
.catch(function (error) {
result.classList.add("text-danger");
result.textContent = "Could not send the request"
})
.fail(function(data) {
$("#result").html("Something went wrong...")
$("#error-output").html(data.responseText)
});
}
function update() {
if ($("#vhost").is(":checked") && $("#hostname").val().match(/^(\d{1,3}\.){3}\d{1,3}$/)) {
if ($("#vhost").matches(":checked") && $("#hostname").value.match(/^(\d{1,3}\.){3}\d{1,3}$/)) {
alert("In order to use virtualhost naming, the hostname must not be an IP but a valid domain name.")
$("#vhost").prop('checked', false);
$("#vhost").checked = false;
}
if ($("#vhost").is(':checked')) {
$("#example").html("http://&lt;app-name&gt;."+$("#hostname").val())
if ($("#vhost").matches(':checked')) {
$("#example").textContent = "http://<app-name>."+$("#hostname").value
} else {
$("#example").html("http://"+$("#hostname").val()+":&lt;app-port&gt;")
$("#example").textContent = "http://"+$("#hostname").value+":<app-port>"
}
}
$("#vhost").change(update);
$("#hostname").change(update);
$("#vhost").addEventListener("change", update);
$("#hostname").addEventListener("input", update);
update();
</script>
</body>

112
contrib/dokku-update Executable file
View File

@@ -0,0 +1,112 @@
#!/usr/bin/env bash
set -eo pipefail
shopt -s nullglob
if [[ -r /etc/default/dokku ]]; then
# shellcheck disable=SC1091
source /etc/default/dokku
fi
export DOKKU_ROOT=${DOKKU_ROOT:=~dokku}
if [[ -f "$DOKKU_ROOT/dokkurc" ]]; then
if [[ -r $DOKKU_ROOT/dokkurc ]]; then
source "$DOKKU_ROOT/dokkurc"
else
echo "Unable to read $DOKKU_ROOT/dokkurc for sourcing" 1>&2
exit 1
fi
fi
if [[ -d $DOKKU_ROOT/.dokkurc ]]; then
for f in $DOKKU_ROOT/.dokkurc/*; do
if [[ -r "$f" ]]; then
source "$f"
else
echo "Unable to read $f for sourcing" 1>&2
exit 1
fi
done
fi
[[ $DOKKU_TRACE ]] && set -x
export DOKKU_LIB_ROOT=${DOKKU_LIB_PATH:="/var/lib/dokku"}
export PLUGIN_PATH=${PLUGIN_PATH:="$DOKKU_LIB_ROOT/plugins"}
export PLUGIN_ENABLED_PATH=${PLUGIN_ENABLED_PATH:="$PLUGIN_PATH/enabled"}
export DEBIAN_FRONTEND=noninteractive
dokku-log-info() {
declare desc="log info formatter"
echo "-----> $*"
}
dokku-log-verbose() {
declare desc="log verbose formatter"
echo " $*"
}
dokku-log-warn() {
declare desc="log warning formatter"
echo " ! $*" 1>&2
}
dokku-update-plugin() {
declare PLUGIN_NAME="$1"
if [[ -d "$PLUGIN_ENABLED_PATH/$PLUGIN_NAME/.git" ]]; then
dokku-log-verbose "Updating $PLUGIN_NAME"
dokku plugin:update "$PLUGIN_NAME"
fi
}
main() {
declare COMMAND="$1"
local DOKKU_DISTRO PLUGIN_NAME VERSION
if [[ -f "/etc/os-release" ]]; then
# shellcheck disable=SC1091
DOKKU_DISTRO=$(. /etc/os-release && echo "$ID")
fi
if [[ "$COMMAND" == "version" ]] || [[ "$COMMAND" == "-v" ]]; then
VERSION=UNRELEASED
if [[ -f "/var/lib/dokku-update/VERSION" ]]; then
VERSION="$(cat /var/lib/dokku-update/VERSION)"
fi
echo "dokku-update ${VERSION}"
exit 0
fi
dokku-log-info "Running system updates"
case "$DOKKU_DISTRO" in
arch)
yay -Syyua
;;
debian | ubuntu)
apt-get update -qq >/dev/null
apt-get -qq -y dist-upgrade
;;
centos | opensuse | rhel)
dokku-log-warn "Updating this operating system is not supported"
;;
*)
dokku-log-warn "Updating this operating system is not supported"
exit 1
;;
esac
# update all plugins
dokku-log-info "Updating all plugins"
for PLUGIN_NAME in $(dokku plugin:list | grep enabled | awk '$1=$1' | cut -d' ' -f1); do
dokku-update-plugin "$PLUGIN_NAME"
done
dokku plugin:install
# rebuild all applications
dokku-log-info "Rebuilding all applications"
dokku ps:rebuild --all
dokku-log-info "Waiting for old containers to stop"
sleep 120
dokku-log-info "Cleaning up"
dokku cleanup --global
}
main "$@"

View File

@@ -1,10 +1,10 @@
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
set -eo pipefail
[[ $DOKKU_TRACE ]] && set -x
export DOKKU_PORT=${DOKKU_PORT:=22}
export DOKKU_HOST=${DOKKU_HOST:=}
MOVES=(ABLE ABNORMA AGAIN AIREXPL ANG ANGER ASAIL ATTACK AURORA AWL BAN BAND BARE BEAT BEATED BELLY BIND BITE BLOC BLOOD BODY BOOK BREATH BUMP CAST CHAM CLAMP CLAP CLAW CLEAR CLI CLIP CLOUD CONTRO CONVY COOLHIT CRASH CRY CUT DESCRI D-FIGHT DIG DITCH DIV DOZ DRE DUL DU-PIN DYE EARTH EDU EG-BOMB EGG ELEGY ELE-HIT EMBODY EMPLI ENGL ERUPT EVENS EXPLOR EYES FALL FAST F-CAR F-DANCE FEARS F-FIGHT FIGHT FIR FIRE FIREHIT FLAME FLAP FLASH FLEW FORCE FRA FREEZE FROG G-BIRD GENKISS GIFT G-KISS G-MOUSE GRADE GROW HAMMER HARD HAT HATE H-BOMB HELL-R HEMP HINT HIT HU HUNT HYPNOSI INHA IRO IRONBAR IR-WING J-GUN KEE KICK KNIF KNIFE KNOCK LEVEL LIGH LIGHHIT LIGHT LIVE L-WALL MAD MAJUS MEL MELO MESS MILK MIMI MISS MIXING MOVE MUD NI-BED NOISY NOONLI NULL N-WAVE PAT PEACE PIN PLAN PLANE POIS POL POWDE POWE POWER PRIZE PROTECT PROUD RAGE RECOR REFLAC REFREC REGR RELIV RENEW R-FIGHT RING RKICK ROCK ROUND RUS RUSH SAND SAW SCISSOR SCRA SCRIPT SEEN SERVER SHADOW SHELL SHINE SHO SIGHT SIN SMALL SMELT SMOK SNAKE SNO SNOW SOU SO-WAVE SPAR SPEC SPID S-PIN SPRA STAM STARE STEA STONE STORM STRU STRUG STUDEN SUBS SUCID SUN-LIG SUNRIS SUPLY S-WAVE TAILS TANGL TASTE TELLI THANK TONKICK TOOTH TORL TRAIN TRIKICK TUNGE VOLT WA-GUN WATCH WAVE W-BOMB WFALL WFING WHIP WHIRL WIND WOLF WOOD WOR YUJA)
NAMES=(SEED GRASS FLOWE SHAD CABR SNAKE GOLD COW GUIKI PEDAL DELAN B-FLY BIDE KEYU FORK LAP PIGE PIJIA CAML LAT BIRD BABOO VIV ABOKE PIKAQ RYE SAN BREAD LIDEL LIDE PIP PIKEX ROK JUGEN PUD BUDE ZHIB GELU GRAS FLOW LAFUL ATH BALA CORN MOLUF DESP DAKED MIMI BOLUX KODA GELUD MONK SUMOY GEDI WENDI NILEM NILE NILEC KEZI YONGL HUDE WANLI GELI GUAIL MADAQ WUCI WUCI MUJEF JELLY SICIB GELU NELUO BOLI JIALE YED YEDE CLO SCARE AOCO DEDE DEDEI BAWU JIUG BADEB BADEB HOLE BALUX GES FANT QUAR YIHE SWAB SLIPP CLU DEPOS BILIY YUANO SOME NO YELA EMPT ZECUN XIAHE BOLEL DEJI MACID XIHON XITO LUCK MENJI GELU DECI XIDE DASAJ DONGN RICUL MINXI BALIY ZENDA LUZEL HELE5 0FENB KAIL JIAND CARP JINDE LAPU MUDE YIFU LINLI SANDI HUSI JINC OUMU OUMUX CAP KUIZA PUD TIAO FRMAN CLAU SPARK DRAGO BOLIU GUAIL MIYOU MIY QIAOK BEIL MUKEI RIDED MADAM BAGEP CROC ALIGE OUDAL OUD DADA HEHE YEDEA NUXI NUXIN ROUY ALIAD STICK QIANG LAAND PIQI PI PUPI DEKE DEKEJ NADI NADIO MALI PEA ELECT FLOWE MAL MALI HUSHU NILEE YUZI POPOZ DUZI HEBA XIAN SHAN YEYEA WUY LUO KEFE HULA CROW YADEH MOW ANNAN SUONI KYLI HULU HUDEL YEHE GULAE YEHE BLU GELAN BOAT NIP POIT HELAK XINL BEAR LINB MAGEH MAGEJ WULI YIDE RIVE FISH AOGU DELIE MANTE KONMU DELU HELU HUAN HUMA DONGF JINCA HEDE DEFU LIBY JIAPA MEJI HELE BUHU MILK HABI THUN GARD DON YANGQ SANAQ BANQ LUJ PHIX SIEI EGG)
random_number() {
fn-random-number() {
[[ -n "$1" ]] && RANGE="$1"
if [[ -n "$RANGE" ]]; then
number=$RANDOM
@@ -15,94 +15,149 @@ random_number() {
echo $number
}
random_name() {
NUM1=$(random_number ${#MOVES[@]})
NUM2=$(random_number ${#MOVES[@]})
NUM3=$(random_number ${#NAMES[@]})
fn-random-name() {
local NUM1 NUM2 NUM3 UPPER_APPNAME lower_appname
local MOVES=(ABLE ABNORMA AGAIN AIREXPL ANG ANGER ASAIL ATTACK AURORA AWL BAN BAND BARE BEAT BEATED BELLY BIND BITE BLOC BLOOD BODY BOOK BREATH BUMP CAST CHAM CLAMP CLAP CLAW CLEAR CLI CLIP CLOUD CONTRO CONVY COOLHIT CRASH CRY CUT DESCRI D-FIGHT DIG DITCH DIV DOZ DRE DUL DU-PIN DYE EARTH EDU EG-BOMB EGG ELEGY ELE-HIT EMBODY EMPLI ENGL ERUPT EVENS EXPLOR EYES FALL FAST F-CAR F-DANCE FEARS F-FIGHT FIGHT FIR FIRE FIREHIT FLAME FLAP FLASH FLEW FORCE FRA FREEZE FROG G-BIRD GENKISS GIFT G-KISS G-MOUSE GRADE GROW HAMMER HARD HAT HATE H-BOMB HELL-R HEMP HINT HIT HU HUNT HYPNOSI INHA IRO IRONBAR IR-WING J-GUN KEE KICK KNIF KNIFE KNOCK LEVEL LIGH LIGHHIT LIGHT LIVE L-WALL MAD MAJUS MEL MELO MESS MILK MIMI MISS MIXING MOVE MUD NI-BED NOISY NOONLI NULL N-WAVE PAT PEACE PIN PLAN PLANE POIS POL POWDE POWE POWER PRIZE PROTECT PROUD RAGE RECOR REFLAC REFREC REGR RELIV RENEW R-FIGHT RING RKICK ROCK ROUND RUS RUSH SAND SAW SCISSOR SCRA SCRIPT SEEN SERVER SHADOW SHELL SHINE SHO SIGHT SIN SMALL SMELT SMOK SNAKE SNO SNOW SOU SO-WAVE SPAR SPEC SPID S-PIN SPRA STAM STARE STEA STONE STORM STRU STRUG STUDEN SUBS SUCID SUN-LIG SUNRIS SUPLY S-WAVE TAILS TANGL TASTE TELLI THANK TONKICK TOOTH TORL TRAIN TRIKICK TUNGE VOLT WA-GUN WATCH WAVE W-BOMB WFALL WFING WHIP WHIRL WIND WOLF WOOD WOR YUJA)
local NAMES=(SEED GRASS FLOWE SHAD CABR SNAKE GOLD COW GUIKI PEDAL DELAN B-FLY BIDE KEYU FORK LAP PIGE PIJIA CAML LAT BIRD BABOO VIV ABOKE PIKAQ RYE SAN BREAD LIDEL LIDE PIP PIKEX ROK JUGEN PUD BUDE ZHIB GELU GRAS FLOW LAFUL ATH BALA CORN MOLUF DESP DAKED MIMI BOLUX KODA GELUD MONK SUMOY GEDI WENDI NILEM NILE NILEC KEZI YONGL HUDE WANLI GELI GUAIL MADAQ WUCI WUCI MUJEF JELLY SICIB GELU NELUO BOLI JIALE YED YEDE CLO SCARE AOCO DEDE DEDEI BAWU JIUG BADEB BADEB HOLE BALUX GES FANT QUAR YIHE SWAB SLIPP CLU DEPOS BILIY YUANO SOME NO YELA EMPT ZECUN XIAHE BOLEL DEJI MACID XIHON XITO LUCK MENJI GELU DECI XIDE DASAJ DONGN RICUL MINXI BALIY ZENDA LUZEL HELE5 0FENB KAIL JIAND CARP JINDE LAPU MUDE YIFU LINLI SANDI HUSI JINC OUMU OUMUX CAP KUIZA PUD TIAO FRMAN CLAU SPARK DRAGO BOLIU GUAIL MIYOU MIY QIAOK BEIL MUKEI RIDED MADAM BAGEP CROC ALIGE OUDAL OUD DADA HEHE YEDEA NUXI NUXIN ROUY ALIAD STICK QIANG LAAND PIQI PI PUPI DEKE DEKEJ NADI NADIO MALI PEA ELECT FLOWE MAL MALI HUSHU NILEE YUZI POPOZ DUZI HEBA XIAN SHAN YEYEA WUY LUO KEFE HULA CROW YADEH MOW ANNAN SUONI KYLI HULU HUDEL YEHE GULAE YEHE BLU GELAN BOAT NIP POIT HELAK XINL BEAR LINB MAGEH MAGEJ WULI YIDE RIVE FISH AOGU DELIE MANTE KONMU DELU HELU HUAN HUMA DONGF JINCA HEDE DEFU LIBY JIAPA MEJI HELE BUHU MILK HABI THUN GARD DON YANGQ SANAQ BANQ LUJ PHIX SIEI EGG)
UPPER_APPNAME="${MOVES[${NUM1}]}-${MOVES[${NUM2}]}-${NAMES[${NUM3}]}"
NUM1=$(fn-random-number ${#MOVES[@]})
NUM2=$(fn-random-number ${#MOVES[@]})
NUM3=$(fn-random-number ${#NAMES[@]})
[[ "$BASH_VERSION" =~ 4.* ]] && lower_appname=${UPPER_APPNAME,,}
[[ -z "$lower_appname" ]] && lower_appname=$(echo "$UPPER_APPNAME" | tr '[:upper:]' '[:lower:]')
echo "$lower_appname"
UPPER_APPNAME="${MOVES[${NUM1}]}-${MOVES[${NUM2}]}-${NAMES[${NUM3}]}"
[[ "$BASH_VERSION" =~ 4.* ]] && lower_appname=${UPPER_APPNAME,,}
[[ -z "$lower_appname" ]] && lower_appname=$(echo "$UPPER_APPNAME" | tr '[:upper:]' '[:lower:]')
echo "$lower_appname"
}
client_help_msg() {
echo "==> Configure the DOKKU_HOST environment variable or run $0 from a repository with a git remote named dokku"
echo "--> i.e. git remote add dokku dokku@<dokku-host>:<app-name>"
fn-client-help-msg() {
echo "=====> Configure the DOKKU_HOST environment variable or run $0 from a repository with a git remote named dokku"
echo " i.e. git remote add dokku dokku@<dokku-host>:<app-name>"
exit 20 # exit with specific status. only used in units tests for now
}
is_git_repo() {
git rev-parse &>/dev/null
fn-is-git-repo() {
git rev-parse &>/dev/null
}
has_dokku_remote() {
git remote show | grep dokku
fn-has-dokku-remote() {
git remote show | grep -E "^${DOKKU_GIT_REMOTE}\s"
}
if [[ -z $DOKKU_HOST ]]; then
if [[ -d .git ]] || git rev-parse --git-dir > /dev/null 2>&1; then
DOKKU_HOST=$(git remote -v 2>/dev/null | grep -Ei "^dokku" | head -n 1 | cut -f1 -d' ' | cut -f2 -d '@' | cut -f1 -d':' 2>/dev/null || true)
else
client_help_msg
fn-dokku-host() {
declare DOKKU_GIT_REMOTE="$1" DOKKU_HOST="$2"
if [[ -z "$DOKKU_HOST" ]]; then
if [[ -d .git ]] || git rev-parse --git-dir >/dev/null 2>&1; then
DOKKU_HOST=$(git remote -v 2>/dev/null | grep -Ei "^${DOKKU_GIT_REMOTE}\s" | head -n 1 | cut -f1 -d' ' | cut -f2 -d '@' | cut -f1 -d':' 2>/dev/null || true)
fi
fi
fi
export DOKKU_PORT=${DOKKU_PORT:=22}
if [[ -z "$DOKKU_HOST" ]]; then
fn-client-help-msg
fi
if [[ ! -z $DOKKU_HOST ]]; then
_dokku() {
appname=""
if [[ -d .git ]] || git rev-parse --git-dir > /dev/null 2>&1; then
echo "$DOKKU_HOST"
}
main() {
declare CMD="$1" APP_ARG="$2"
local APP="" DOKKU_GIT_REMOTE="dokku" DOKKU_REMOTE_HOST=""
local cmd_set=false next_index=1 skip=false args=("$@")
for arg in "$@"; do
if [[ "$skip" == "true" ]]; then
next_index=$((next_index + 1))
skip=false
continue
fi
is_flag=false
[[ "$arg" =~ ^--.* ]] && is_flag=true
if [[ "$arg" == "--app" ]]; then
APP=${args[$next_index]}
skip=true
shift 2
elif [[ "$arg" == "--remote" ]]; then
DOKKU_GIT_REMOTE=${args[$next_index]}
skip=true
shift 2
elif [[ "$arg" =~ ^--.* ]]; then
[[ "$cmd_set" == "true" ]] && [[ "$is_flag" == "false" ]] && APP_ARG="$arg" && break
[[ "$arg" == "--trace" ]] && export DOKKU_TRACE=1 && set -x
else
if [[ "$cmd_set" == "true" ]] && [[ "$is_flag" == "false" ]]; then
APP_ARG="$arg"
break
else
CMD="$arg"
cmd_set=true
fi
fi
next_index=$((next_index + 1))
done
DOKKU_REMOTE_HOST="$(fn-dokku-host "$DOKKU_GIT_REMOTE" "$DOKKU_HOST")"
if [[ -z "$APP" ]]; then
if [[ -d .git ]] || git rev-parse --git-dir >/dev/null 2>&1; then
set +e
appname=$(git remote -v 2>/dev/null | grep -Ei "dokku@$DOKKU_HOST" | head -n 1 | cut -f2 -d'@' | cut -f1 -d' ' | cut -f2 -d':' 2>/dev/null)
APP=$(git remote -v 2>/dev/null | grep -Ei "dokku@$DOKKU_REMOTE_HOST" | head -n 1 | cut -f2 -d'@' | cut -f1 -d' ' | cut -f2 -d':' 2>/dev/null)
set -e
else
echo "This is not a git repository"
echo " ! This is not a git repository" 1>&2
fi
case "$1" in
apps:create)
if [[ -z "$2" ]]; then
appname=$(random_name)
counter=0
while ssh -p "$DOKKU_PORT" "dokku@$DOKKU_HOST" apps 2>/dev/null| grep -q "$appname"; do
if [[ $counter -ge 100 ]]; then
echo "Error: could not reasonably generate a new app name. try cleaning up some apps..."
ssh -p "$DOKKU_PORT" "dokku@$DOKKU_HOST" apps
exit 1
else
appname=$(random_name)
counter=$((counter+1))
fi
done
else
appname="$2"
fi
if git remote add dokku "dokku@$DOKKU_HOST:$appname"; then
echo "-----> Dokku remote added at $DOKKU_HOST"
echo "-----> Application name is $appname"
else
echo "! Dokku remote not added! Do you already have a dokku remote?"
return
fi
;;
apps:destroy)
is_git_repo && has_dokku_remote && git remote remove dokku
;;
esac
[[ -n "$@" ]] && [[ -n "$appname" ]] && app_arg="--app $appname"
# echo "ssh -o LogLevel=QUIET -p $DOKKU_PORT -t dokku@$DOKKU_HOST -- $app_arg $@"
# shellcheck disable=SC2068,SC2086
ssh -o LogLevel=QUIET -p $DOKKU_PORT -t dokku@$DOKKU_HOST -- $app_arg $@
}
if [[ "$0" == "dokku" ]] || [[ "$0" == *dokku_client.sh ]] || [[ "$0" == $(which dokku) ]]; then
_dokku "$@"
exit $?
fi
else
client_help_msg
case "$CMD" in
apps:create)
if [[ -z "$APP" ]] && [[ -z "$APP_ARG" ]]; then
APP=$(fn-random-name)
counter=0
while ssh -p "$DOKKU_PORT" "dokku@$DOKKU_REMOTE_HOST" apps 2>/dev/null | grep -q "$APP"; do
if [[ $counter -ge 100 ]]; then
echo " ! Could not reasonably generate a new app name. Try cleaning up some apps..." 1>&2
ssh -p "$DOKKU_PORT" "dokku@$DOKKU_REMOTE_HOST" apps
exit 1
else
APP=$(random_name)
counter=$((counter + 1))
fi
done
elif [[ -z "$APP" ]]; then
APP="$APP_ARG"
fi
if git remote add "$DOKKU_GIT_REMOTE" "dokku@$DOKKU_REMOTE_HOST:$APP"; then
echo "-----> Dokku remote added at ${DOKKU_REMOTE_HOST} called ${DOKKU_GIT_REMOTE}"
echo "-----> Application name is ${APP}"
else
echo " ! Dokku remote not added! Do you already have a dokku remote?" 1>&2
return
fi
;;
apps:destroy)
fn-is-git-repo && fn-has-dokku-remote && git remote remove "$DOKKU_GIT_REMOTE"
;;
esac
[[ " apps certs help ls nginx shell storage trace version " == *" $CMD "* ]] && unset APP
[[ " certs:chain domains:add-global domains:remove-global domains:set-global ps:restore " == *" $CMD "* ]] && unset APP
[[ "$CMD" =~ events*|plugin*|ssh-keys* ]] && unset APP
[[ -n "$APP_ARG" ]] && [[ "$APP_ARG" == "--global" ]] && unset APP
[[ -n "$@" ]] && [[ -n "$APP" ]] && app_arg="--app $APP"
# echo "ssh -o LogLevel=QUIET -p $DOKKU_PORT -t dokku@$DOKKU_REMOTE_HOST -- $app_arg $@"
# shellcheck disable=SC2068,SC2086
ssh -o LogLevel=QUIET -p $DOKKU_PORT -t dokku@$DOKKU_REMOTE_HOST -- $app_arg $@ || {
ssh_exit_code="$?"
echo " ! Failed to execute dokku command over ssh: exit code $?" 1>&2
echo " ! If there was no output from Dokku, ensure your configured SSH Key can connect to the remote server" 1>&2
return $ssh_exit_code
}
}
if [[ "$0" == "dokku" ]] || [[ "$0" == *dokku_client.sh ]] || [[ "$0" == $(which dokku) ]]; then
main "$@"
exit $?
fi

View File

@@ -19,10 +19,10 @@
"sleep 30",
"echo '--> Updating apt repositories'",
"sudo apt-get update -qq > /dev/null",
"sudo apt-get update -qq >/dev/null",
"echo '--> Installing make requirement'",
"sudo apt-get -qq -y install build-essential",
"sudo apt-get -qq -y --no-install-recommends install build-essential",
"cd /tmp && make install-from-deb",
"rm /root/.ssh/authorized_keys"

407
contrib/release-dokku Executable file
View File

@@ -0,0 +1,407 @@
#!/usr/bin/env bash
set -eo pipefail
[[ $TRACE ]] && set -x
readonly ROOT_DIR="$(cd "$(dirname "$(dirname "${BASH_SOURCE[0]}")")" && pwd)"
readonly TMP_WORK_DIR="$(mktemp -d "/tmp/dokku-release.XXXXXX")"
readonly DOKKU_GIT_REV="$(git rev-parse HEAD)"
trap 'rm -rf "$TMP_WORK_DIR" >/dev/null' RETURN INT TERM EXIT
log-info() {
# shellcheck disable=SC2034
declare desc="Log info formatter"
echo "$*"
}
log-error() {
# shellcheck disable=SC2034
declare desc="Log error formatter"
echo "! $*" 1>&2
}
log-fail() {
# shellcheck disable=SC2034
declare desc="Log fail formatter"
log-error "$*"
exit 1
}
fn-build-dokku() {
declare desc="Builds dokku packages within a docker container"
declare IS_RELEASE="$1" DOKKU_VERSION="$2"
local NAME GOLANG_VERSION
if [[ -z "$DOKKU_VERSION" ]]; then
log-error "Invalid deb file specified"
return 1
fi
NAME="dokku:build"
[[ "$IS_RELEASE" == "true" ]] && NAME="dokku:build-release"
[[ -n "$DOKKU_VERSION" ]] || DOKKU_VERSION="master"
pushd "$ROOT_DIR" >/dev/null
GOLANG_VERSION="$(grep BUILD_IMAGE common.mk | cut -d' ' -f3 | cut -d':' -f2)"
docker build \
--build-arg DOKKU_VERSION="$DOKKU_VERSION" \
--build-arg DOKKU_GIT_REV="$DOKKU_GIT_REV" \
--build-arg IS_RELEASE="$IS_RELEASE" \
--build-arg PLUGIN_MAKE_TARGET="build" \
--build-arg GOLANG_VERSION="$GOLANG_VERSION" \
-f "contrib/build-dokku.Dockerfile" \
-t "$NAME" .
return "$?"
}
fn-extract-package() {
declare desc="Extract packages from a docker container to the root directory"
declare IS_RELEASE="$1" PACKAGE_NAME="$2"
local NAME
if [[ -z "$PACKAGE_NAME" ]]; then
log-error "Invalid deb file specified"
return 1
fi
NAME="dokku:build"
[[ "$IS_RELEASE" == "true" ]] && NAME="dokku:build-release"
log-info "(extract-package) writing ${PACKAGE_NAME} to correct path"
docker run --rm --entrypoint cat "$NAME" "/tmp/${PACKAGE_NAME}" >"${ROOT_DIR}/build/${PACKAGE_NAME}"
return "$?"
}
fn-in-array() {
declare desc="return true if value ($1) is in list (all other arguments)"
local e
for e in "${@:2}"; do
[[ "$e" == "$1" ]] && return 0
done
return 1
}
fn-is-release() {
declare desc="Checks if a given run is a release run"
declare RELEASE="$1"
local IS_RELEASE=false
if [[ "$RELEASE" == "major" ]] || [[ "$RELEASE" == "minor" ]] || [[ "$RELEASE" == "patch" ]]; then
IS_RELEASE=true
fi
echo "$IS_RELEASE"
}
fn-version-current() {
declare desc="Retrieves the current version of dokku"
pushd "$ROOT_DIR" >/dev/null
grep Version debian/control | cut -d' ' -f2
}
fn-version-next() {
declare desc="Calculates the next version name of dokku"
declare CURRENT_VERSION="$1" RELEASE="$2"
local major minor patch short_object
major=$(echo "$CURRENT_VERSION" | awk '{split($0,a,"."); print a[1]}')
minor=$(echo "$CURRENT_VERSION" | awk '{split($0,a,"."); print a[2]}')
patch=$(echo "$CURRENT_VERSION" | awk '{split($0,a,"."); print a[3]}')
if [[ "$RELEASE" == "major" ]]; then
major=$((major + 1))
minor="0"
patch="0"
elif [[ "$RELEASE" == "minor" ]]; then
minor=$((minor + 1))
patch="0"
elif [[ "$RELEASE" == "patch" ]]; then
patch=$((patch + 1))
else
short_object=$(git log --oneline | tail -n 1 | cut -d' ' -f1)
echo "${CURRENT_VERSION}build+$(echo "$DOKKU_GIT_REV" | cut -c1-${#short_object})"
return 0
fi
echo "${major}.${minor}.${patch}"
}
fn-publish-package() {
declare desc="Publishes a package to packagecloud"
declare IS_RELEASE="$1" RELEASE_TYPE="$2" PACKAGE_NAME="$3"
local REPOSITORY=dokku/dokku-betafish DIST=ubuntu EXIT_CODE=0
local OS_ID ex
[[ "$IS_RELEASE" == "true" ]] && REPOSITORY=dokku/dokku
[[ "$RELEASE_TYPE" == "rpm" ]] && DIST=el/7
if [[ "$DIST" == "ubuntu" ]]; then
OS_IDS=("xenial" "bionic" "focal")
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"
ex="$?"
if [[ "$ex" -ne "0" ]]; then
EXIT_CODE="$ex"
fi
done
DIST=debian
OS_IDS=("stretch" "buster")
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"
ex="$?"
if [[ "$ex" -ne "0" ]]; then
EXIT_CODE="$ex"
fi
done
else
log-info "(release-dokku) pushing ${RELEASE_TYPE} to packagecloud.com/${REPOSITORY}/${DIST}"
package_cloud push "${REPOSITORY}/${DIST}" "$PACKAGE_NAME"
EXIT_CODE="$?"
fi
return "$EXIT_CODE"
}
fn-replace-version() {
declare desc="Replaces the version within a file"
local CURRENT_VERSION="$1"
local NEXT_VERSION="$2"
local FILENAME="$3"
sed -i.bak "s/${CURRENT_VERSION//./\.}/$NEXT_VERSION/g" "$FILENAME" && rm "$FILENAME.bak"
git add "$FILENAME"
}
fn-repo-merged-requests() {
declare desc="Retrieves all pull request ids since a given release of dokku"
declare TAG="$1"
git log "v${TAG}..HEAD" --oneline | grep "Merge pull request" | cut -d' ' -f 5 | cut -d '#' -f2
}
fn-repo-push-tags() {
declare desc="Pushes tags and the repository to github"
declare IS_RELEASE="$1"
if [[ "$IS_RELEASE" == "false" ]]; then
return
fi
pushd "$ROOT_DIR" >/dev/null
git push --tags origin master
}
fn-repo-update() {
declare desc="Updates files within the repository for a given release"
declare IS_RELEASE="$1" CURRENT_VERSION="$2" NEXT_VERSION="$3"
log-info "(release-dokku) Replacing ${CURRENT_VERSION} with ${NEXT_VERSION}"
for f in plugins/*/plugin.toml; do
fn-replace-version "$CURRENT_VERSION" "$NEXT_VERSION" "$f"
done
if [[ "$IS_RELEASE" == "false" ]]; then
return
fi
fn-replace-version "$CURRENT_VERSION" "$NEXT_VERSION" contrib/dokku-installer.py
fn-replace-version "$CURRENT_VERSION" "$NEXT_VERSION" debian/control
fn-replace-version "$CURRENT_VERSION" "$NEXT_VERSION" Dockerfile
fn-replace-version "$CURRENT_VERSION" "$NEXT_VERSION" docs/advanced-usage/plugin-management.md
fn-replace-version "$CURRENT_VERSION" "$NEXT_VERSION" docs/assets/favicons/browserconfig.xml
fn-replace-version "$CURRENT_VERSION" "$NEXT_VERSION" docs/assets/favicons/manifest.json
fn-replace-version "$CURRENT_VERSION" "$NEXT_VERSION" docs/assets/style.css
fn-replace-version "$CURRENT_VERSION" "$NEXT_VERSION" docs/development/release-process.md
fn-replace-version "$CURRENT_VERSION" "$NEXT_VERSION" docs/getting-started/install/docker.md
fn-replace-version "$CURRENT_VERSION" "$NEXT_VERSION" docs/getting-started/installation.md
fn-replace-version "$CURRENT_VERSION" "$NEXT_VERSION" docs/home.html
fn-replace-version "$CURRENT_VERSION" "$NEXT_VERSION" docs/template.html
fn-replace-version "$CURRENT_VERSION" "$NEXT_VERSION" README.md
if [[ "$RELEASE" == 'patch' ]]; then
fn-replace-version "$CURRENT_VERSION" "$NEXT_VERSION" docs/assets/versions.json
else
versions=$(python -c 'import json,sys;d=json.load(sys.stdin);d["max-versions"].append("'"${NEXT_VERSION}"'"); print(json.dumps(d, indent=2, sort_keys=True))' <docs/assets/versions.json)
echo "$versions" >docs/assets/versions.json
git add docs/assets/versions.json
fi
if [[ "$IS_RELEASE" == "false" ]]; then
return
fi
log-info "(release-dokku) Adding HISTORY.md, committing and tagging"
fn-repo-update-history-and-commit "$CURRENT_VERSION" "$NEXT_VERSION"
git tag "v${NEXT_VERSION}"
}
fn-repo-update-history-and-commit() {
declare desc="Updates the history file and commits the changes"
declare CURRENT_VERSION="$1" NEXT_VERSION="$2"
local PULL_REQUEST_ID TITLE AUTHOR TYPE CHANGELOG_TEXT
local COMMIT_MESSAGE HISTORY HISTORY_CONTENTS HISTORY_DOCUMENTATION HISTORY_ENHANCEMENT HISTORY_BC_BREAK HISTORY_REFACTOR HISTORY_BUG HISTORY_OTHER HISTORY_TESTS ISSUE_FILE
pushd "$ROOT_DIR" >/dev/null
mkdir -p /tmp/github-data
for PULL_REQUEST_ID in $(fn-repo-merged-requests "$CURRENT_VERSION"); do
ISSUE_FILE="/tmp/github-data/${PULL_REQUEST_ID}.json"
if [[ ! -f "$ISSUE_FILE" ]]; then
curl -sS "https://api.github.com/repos/dokku/dokku/issues/${PULL_REQUEST_ID}" >"$ISSUE_FILE"
fi
TITLE="$(jq -r '.title' "$ISSUE_FILE")"
AUTHOR="$(jq -r '.user.login' "$ISSUE_FILE")"
TYPE="$(jq -r '.labels[] | select( .name | contains("type") ) | .name' "$ISSUE_FILE" | cut -d' ' -f2)"
CHANGELOG_TEXT="- #${PULL_REQUEST_ID}: @${AUTHOR} ${TITLE}"
if [[ "$TYPE" == "bc-break" ]]; then
HISTORY_BC_BREAK="${HISTORY_BC_BREAK}"$'\n'"$CHANGELOG_TEXT"
elif [[ "$TYPE" == "bug" ]]; then
HISTORY_BUG="${HISTORY_BUG}"$'\n'"$CHANGELOG_TEXT"
elif [[ "$TYPE" == "documentation" ]]; then
HISTORY_DOCUMENTATION="${HISTORY_DOCUMENTATION}"$'\n'"$CHANGELOG_TEXT"
elif [[ "$TYPE" == "enhancement" ]]; then
HISTORY_ENHANCEMENT="${HISTORY_ENHANCEMENT}"$'\n'"$CHANGELOG_TEXT"
elif [[ "$TYPE" == "refactor" ]]; then
HISTORY_REFACTOR="${HISTORY_REFACTOR}"$'\n'"$CHANGELOG_TEXT"
elif [[ "$TYPE" == "tests" ]]; then
HISTORY_TESTS="${HISTORY_TESTS}"$'\n'"$CHANGELOG_TEXT"
else
HISTORY_OTHER="${HISTORY_OTHER}"$'\n'"$CHANGELOG_TEXT"
fi
done
HISTORY="# History"
HISTORY="${HISTORY}"$'\n\n'"## ${NEXT_VERSION}"
HISTORY="${HISTORY}"$'\n\n'"Install/update via the bootstrap script:"
HISTORY="${HISTORY}"$'\n\n'"\`\`\`shell"
HISTORY="${HISTORY}"$'\n'"wget https://raw.githubusercontent.com/dokku/dokku/v${NEXT_VERSION}/bootstrap.sh"
HISTORY="${HISTORY}"$'\n'"sudo DOKKU_TAG=v${NEXT_VERSION} bash bootstrap.sh"
HISTORY="${HISTORY}"$'\n'"\`\`\`"
if [[ -f "docs/appendices/${NEXT_VERSION}-migration-guide.md" ]]; then
HISTORY="${HISTORY}"$'\n\n'"See the [${NEXT_VERSION} migration guide](/docs/appendices/${NEXT_VERSION}-migration-guide.md) for more information on migrating to ${NEXT_VERSION}."
fi
if [[ "$HISTORY_BC_BREAK" ]]; then
HISTORY="${HISTORY}"$'\n\n'"### Backwards Compatibility Breaks"
HISTORY="${HISTORY}"$'\n'"$HISTORY_BC_BREAK"
fi
if [[ "$HISTORY_BUG" ]]; then
HISTORY="${HISTORY}"$'\n\n'"### Bug Fixes"
HISTORY="${HISTORY}"$'\n'"$HISTORY_BUG"
fi
if [[ "$HISTORY_ENHANCEMENT" ]]; then
HISTORY="${HISTORY}"$'\n\n'"### New Features"
HISTORY="${HISTORY}"$'\n'"$HISTORY_ENHANCEMENT"
fi
if [[ "$HISTORY_REFACTOR" ]]; then
HISTORY="${HISTORY}"$'\n\n'"### Refactors"
HISTORY="${HISTORY}"$'\n'"$HISTORY_REFACTOR"
fi
if [[ "$HISTORY_DOCUMENTATION" ]]; then
HISTORY="${HISTORY}"$'\n\n'"### Documentation"
HISTORY="${HISTORY}"$'\n'"$HISTORY_DOCUMENTATION"
fi
if [[ "$HISTORY_TESTS" ]]; then
HISTORY="${HISTORY}"$'\n\n'"### Tests"
HISTORY="${HISTORY}"$'\n'"$HISTORY_TESTS"
fi
if [[ "$HISTORY_OTHER" ]]; then
HISTORY="${HISTORY}"$'\n\n'"### Other"
HISTORY="${HISTORY}"$'\n'"$HISTORY_OTHER"
fi
sed -i.bak '1d' HISTORY.md && rm HISTORY.md.bak
HISTORY_CONTENTS="$(cat HISTORY.md)"
echo -e "$HISTORY\n$HISTORY_CONTENTS" >HISTORY.md
git add HISTORY.md
COMMIT_MESSAGE="Release ${NEXT_VERSION}"$'\n\n'"${HISTORY}"
git commit -m "${COMMIT_MESSAGE}"
}
fn-require-bin() {
declare desc="Checks that a binary exists"
declare BINARY="$1"
if ! command -v "$BINARY" &>/dev/null; then
log-fail "Missing ${BINARY}, please install it"
fi
}
fn-build-docker-image() {
declare desc="Builds the dokku docker image and tags it with the given version"
declare VERSION="$1"
docker build -t "dokku/dokku:$VERSION" .
}
main() {
declare RELEASE="$1"
local CURRENT_VERSION NEXT_VERSION IS_RELEASE
local VALID_RELEASE_LEVELS=("major" "minor" "patch" "betafish" "build")
if [[ "$RELEASE" == '--trace' ]]; then
shift 1
RELEASE="$1"
TRACE=1 && set -x
fi
if [[ -z "$RELEASE" ]]; then
log-fail "Argument 1 must be one of [major, minor, patch, betafish, build], none given"
fi
if ! fn-in-array "$RELEASE" "${VALID_RELEASE_LEVELS[@]}"; then
log-fail "Argument 1 must be one of [major, minor, patch, betafish, build], '${RELEASE}' given"
fi
log-info "Creating $RELEASE release"
mkdir -p "build"
fn-require-bin "docker"
fn-require-bin "git"
if [[ "$RELEASE" != "build" ]]; then
fn-require-bin "package_cloud"
[[ -n "$PACKAGECLOUD_TOKEN" ]] || log-fail "Missing PACKAGECLOUD_TOKEN environment variable"
fi
CURRENT_VERSION="$(fn-version-current)"
NEXT_VERSION="$(fn-version-next "$CURRENT_VERSION" "$RELEASE")"
IS_RELEASE="$(fn-is-release "$RELEASE")"
fn-repo-update "$IS_RELEASE" "$CURRENT_VERSION" "$NEXT_VERSION"
fn-build-dokku "$IS_RELEASE" "$NEXT_VERSION" || log-fail "Error building 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"
cp -f "build/dokku_${NEXT_VERSION}_amd64.deb" build/dokku.deb
if [[ "$RELEASE" != "build" ]]; then
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" || log-fail "Error building docker image"
if [[ "$IS_RELEASE" == "true" ]]; then
docker tag "dokku/dokku:$NEXT_VERSION" "dokku/dokku:latest"
docker push "dokku/dokku:$NEXT_VERSION"
docker push "dokku/dokku:latest"
fi
fn-repo-push-tags "$IS_RELEASE"
fi
if [[ "$IS_RELEASE" != "true" ]]; then
git reset -q HEAD plugins/*/plugin.toml
git checkout -- plugins/*/plugin.toml
fi
echo "build/dokku_${NEXT_VERSION}_amd64.deb" >build/deb-filename
echo "build/dokku-${NEXT_VERSION}-1.x86_64.rpm" >build/rpm-filename
}
main "$@"

160
contrib/release-dokku-update Executable file
View File

@@ -0,0 +1,160 @@
#!/usr/bin/env bash
set -eo pipefail
[[ $TRACE ]] && set -x
readonly ROOT_DIR="$(cd "$(dirname "$(dirname "${BASH_SOURCE[0]}")")" && pwd)"
readonly TMP_WORK_DIR="$(mktemp -d "/tmp/dokku-release.XXXXXX")"
readonly DOKKU_GIT_REV="$(git rev-parse HEAD)"
trap 'rm -rf "$TMP_WORK_DIR" >/dev/null' RETURN INT TERM EXIT
log-info() {
# shellcheck disable=SC2034
declare desc="Log info formatter"
echo "$*"
}
log-error() {
# shellcheck disable=SC2034
declare desc="Log error formatter"
echo "! $*" 1>&2
}
log-fail() {
# shellcheck disable=SC2034
declare desc="Log fail formatter"
log-error "$*"
exit 1
}
fn-build-dokku() {
declare desc="Builds dokku packages within a docker container"
pushd "$ROOT_DIR" >/dev/null
docker build \
-f "contrib/build-dokku-update.Dockerfile" \
-t dokku-update:build .
return "$?"
}
fn-extract-package() {
declare desc="Extract packages from a docker container to the root directory"
declare PACKAGE_NAME="$1"
if [[ -z "$PACKAGE_NAME" ]]; then
log-error "Invalid deb file specified"
return 1
fi
log-info "(extract-package) writing ${PACKAGE_NAME} to correct path"
docker run --rm --entrypoint cat dokku-update:build "/tmp/${PACKAGE_NAME}" >"${ROOT_DIR}/build/${PACKAGE_NAME}"
return "$?"
}
fn-publish-package() {
declare desc="Publishes a package to packagecloud"
declare IS_RELEASE="$1" RELEASE_TYPE="$2" PACKAGE_NAME="$3"
local REPOSITORY=dokku/dokku-betafish DIST=ubuntu
local OS_ID ex EXIT_CODE=0
[[ "$IS_RELEASE" == "true" ]] && REPOSITORY=dokku/dokku
[[ "$RELEASE_TYPE" == "rpm" ]] && DIST=el/7
if [[ "$DIST" == "ubuntu" ]]; then
OS_IDS=("xenial" "bionic" "focal")
for OS_ID in "${OS_IDS[@]}"; do
log-info "(release-dokku-update) pushing ${RELEASE_TYPE} to packagecloud.com/${REPOSITORY}/${DIST}"
package_cloud push "${REPOSITORY}/${DIST}/${OS_ID}" "$PACKAGE_NAME"
ex="$?"
if [[ "$ex" -ne "0" ]]; then
EXIT_CODE="$ex"
fi
done
DIST=debian
OS_IDS=("stretch" "buster")
for OS_ID in "${OS_IDS[@]}"; do
log-info "(release-dokku-update) pushing ${RELEASE_TYPE} to packagecloud.com/${REPOSITORY}/${DIST}"
package_cloud push "${REPOSITORY}/${DIST}/${OS_ID}" "$PACKAGE_NAME"
ex="$?"
if [[ "$ex" -ne "0" ]]; then
EXIT_CODE="$ex"
fi
done
else
log-info "(release-dokku-update) pushing ${RELEASE_TYPE} to packagecloud.com/${REPOSITORY}/${DIST}"
package_cloud push "${REPOSITORY}/${DIST}" "$PACKAGE_NAME"
EXIT_CODE="$?"
fi
return "$EXIT_CODE"
}
fn-in-array() {
declare desc="return true if value ($1) is in list (all other arguments)"
local e
for e in "${@:2}"; do
[[ "$e" == "$1" ]] && return 0
done
return 1
}
fn-is-release() {
declare desc="Checks if a given run is a release run"
declare RELEASE="$1"
local IS_RELEASE=false
if [[ "$RELEASE" == "major" ]] || [[ "$RELEASE" == "minor" ]] || [[ "$RELEASE" == "patch" ]]; then
IS_RELEASE=true
fi
echo "$IS_RELEASE"
}
fn-require-bin() {
declare desc="Checks that a binary exists"
declare BINARY="$1"
if ! command -v "$BINARY" &>/dev/null; then
log-fail "Missing ${BINARY}, please install it"
fi
}
main() {
declare RELEASE="$1"
local NEXT_VERSION
local VALID_RELEASE_LEVELS=("major" "minor" "patch" "betafish" "build")
if [[ "$RELEASE" == '--trace' ]]; then
shift 1
RELEASE="$1"
TRACE=1 && set -x
fi
if [[ -z "$RELEASE" ]]; then
log-fail "Argument 1 must be one of [major, minor, patch, betafish, build], none given"
fi
if ! fn-in-array "$RELEASE" "${VALID_RELEASE_LEVELS[@]}"; then
log-fail "Argument 1 must be one of [major, minor, patch, betafish, build], '${RELEASE}' given"
fi
mkdir -p "build"
fn-require-bin "docker"
if [[ "$RELEASE" != "build" ]]; then
fn-require-bin "package_cloud"
[[ -n "$PACKAGECLOUD_TOKEN" ]] || log-fail "Missing PACKAGECLOUD_TOKEN environment variable"
fi
NEXT_VERSION="$(grep DOKKU_UPDATE_VERSION deb.mk | head -n1 | cut -d'=' -f2 | xargs)"
IS_RELEASE="$(fn-is-release "$RELEASE")"
fn-build-dokku || log-fail "Error building package"
fn-extract-package "dokku-update_${NEXT_VERSION}_amd64.deb" || log-fail "Error extracting deb package"
fn-extract-package "dokku-update-${NEXT_VERSION}-1.x86_64.rpm" || log-fail "Error extracting rpm package"
if [[ "$RELEASE" != "build" ]]; then
fn-publish-package "$IS_RELEASE" "deb" "build/dokku-update_${NEXT_VERSION}_amd64.deb" || log-fail "Error publishing deb package"
fn-publish-package "$IS_RELEASE" "rpm" "build/dokku-update-${NEXT_VERSION}-1.x86_64.rpm" || log-fail "Error publishing rpm package"
fi
}
main "$@"

175
contrib/release-plugin Executable file
View File

@@ -0,0 +1,175 @@
#!/usr/bin/env bash
set -eo pipefail
[[ $TRACE ]] && set -x
readonly TMP_WORK_DIR="$(mktemp -d "/tmp/dokku-plugin-release.XXXXXX")"
trap 'rm -rf "$TMP_WORK_DIR" >/dev/null' RETURN INT TERM EXIT
log-info() {
# shellcheck disable=SC2034
declare desc="Log info formatter"
echo "$*"
}
log-error() {
# shellcheck disable=SC2034
declare desc="Log error formatter"
echo "! $*" 1>&2
}
log-fail() {
# shellcheck disable=SC2034
declare desc="Log fail formatter"
log-error "$*"
exit 1
}
fn-github-download-release() {
declare REPO_NAME="$1" VERSION="$2"
if [[ -n "$DOKKU_PLUGIN_GITHUB_ACCESS_TOKEN" ]]; then
curl -L "https://api.github.com/repos/${REPO_NAME}/tarball/${VERSION}?access_token=${DOKKU_PLUGIN_GITHUB_ACCESS_TOKEN}"
else
curl -L "https://api.github.com/repos/${REPO_NAME}/tarball/${VERSION}"
fi
}
fn-replace-version() {
declare desc="Replaces the version within a file"
local CURRENT_VERSION="$1"
local NEXT_VERSION="$2"
local FILENAME="$3"
sed -i.bak "s/${CURRENT_VERSION//./\.}/$NEXT_VERSION/g" "$FILENAME" && rm "$FILENAME.bak"
git add "$FILENAME"
}
fn-require-bin() {
declare desc="Checks that a binary exists"
declare BINARY="$1"
if ! command -v "$BINARY" &>/dev/null; then
log-fail "Missing ${BINARY}, please install it"
fi
}
main() {
local RELEASE="$1" AWS_RELEASE="$2"
local CURRENT_VERSION FILENAME NEXT_VERSION ORG_REPO_NAME REPO_NAME major minor patch
if [[ -z "$RELEASE" ]]; then
cat <<'EOF'
requirements:
- this is run in a plugin folder
- a `plugin.toml` exists
- the plugin is versioned via git
usage:
# the following commands make these assumptions
# - the plugin's folder name is dokku-example, as is the remote repository
# - the current version is `0.0.1` in the `plugin.toml`
# create the alias
alias release-dokku-plugin="path/to/dokku/contrib/release-plugin"
# make a specific kind of release
release-dokku-plugin patch # creates a 0.0.2 release
release-dokku-plugin minor # creates a 0.1.0 release
release-dokku-plugin major # creates a 1.0.0 release
# release private plugins as tarballs to S3
# note that the plugin *must* exist on github for this to work
export DOKKU_PLUGIN_GITHUB_ACCESS_TOKEN="some-github-token"
export DOKKU_PLUGIN_S3_BUCKET="example"
export DOKKU_PLUGIN_S3_PATH="some/path"
# will upload the versioned tarball url to s3://example/some/path/dokku-plugin-name-0.0.1.tar.gz
release-dokku-plugin patch
EOF
return
fi
fn-require-bin "git"
if [[ "$AWS_RELEASE" != "true" ]] && [[ "$AWS_RELEASE" != "false" ]]; then
local AWS_RELEASE=true
fi
if [[ "$AWS_RELEASE" == "true" ]] && [[ -z "$DOKKU_PLUGIN_GITHUB_ACCESS_TOKEN" ]]; then
log-info "You are running this without a DOKKU_PLUGIN_GITHUB_ACCESS_TOKEN environment variable."
log-info "Doing so disables uploading releases to S3, which may be necessary for installing private plugins."
while true; do
read -rp "Do you wish to continue? " yn
case $yn in
[Yy]*) break ;;
[Nn]*) exit ;;
*) echo "Please answer yes or no." ;;
esac
done
fi
if [[ "$AWS_RELEASE" == "true" ]]; then
fn-require-bin "aws"
fn-require-bin "curl"
if [[ -z "$DOKKU_PLUGIN_S3_BUCKET" ]]; then
log-fail "No DOKKU_PLUGIN_S3_BUCKET environment variable set"
fi
if [[ -z "$DOKKU_PLUGIN_S3_PATH" ]]; then
log-fail "No DOKKU_PLUGIN_S3_PATH environment variable set"
fi
fi
if [[ ! -f plugin.toml ]]; then
log-error "No plugin.toml found"
return 1
fi
if [[ ! -d .git ]]; then
log-error "No git repository found"
return 1
fi
CURRENT_VERSION=$(grep version plugin.toml | cut -d '"' -f2)
major=$(echo "$CURRENT_VERSION" | awk '{split($0,a,"."); print a[1]}')
minor=$(echo "$CURRENT_VERSION" | awk '{split($0,a,"."); print a[2]}')
patch=$(echo "$CURRENT_VERSION" | awk '{split($0,a,"."); print a[3]}')
if [[ "$RELEASE" == "major" ]]; then
major=$((major + 1))
minor="0"
patch="0"
elif [[ "$RELEASE" == "minor" ]]; then
minor=$((minor + 1))
patch="0"
elif [[ "$RELEASE" == "patch" ]]; then
patch=$((patch + 1))
else
log-error "Invalid release type specified"
return 1
fi
NEXT_VERSION="${major}.${minor}.${patch}"
fn-replace-version "$CURRENT_VERSION" "$NEXT_VERSION" plugin.toml
git add plugin.toml
git commit -m "Release ${NEXT_VERSION}"
git tag "${NEXT_VERSION}"
git push --tags origin master
git fetch
ORG_REPO_NAME="$(git remote -v | grep origin | HEAD -n1 | cut -d':' -f2 | cut -d'.' -f1)"
REPO_NAME="$(echo "$ORG_REPO_NAME" | cut -d'/' -f2)"
FILENAME="${REPO_NAME}-${NEXT_VERSION}.tar.gz"
if [[ "$AWS_RELEASE" == "true" ]]; then
DOKKU_PLUGIN_S3_BUCKET="${DOKKU_PLUGIN_S3_BUCKET%/}"
DOKKU_PLUGIN_S3_PATH="${DOKKU_PLUGIN_S3_PATH%/}"
if [[ "$DOKKU_PLUGIN_S3_PATH" != "/" ]]; then
DOKKU_PLUGIN_S3_PATH="${DOKKU_PLUGIN_S3_PATH}/"
fi
fn-github-download-release "$ORG_REPO_NAME" "$NEXT_VERSION" >"${TMP_WORK_DIR}/${FILENAME}"
aws s3 cp "${TMP_WORK_DIR}/${FILENAME}" "s3://${DOKKU_PLUGIN_S3_BUCKET}/${DOKKU_PLUGIN_S3_PATH}${FILENAME}" --acl public-read
fi
}
main "$@"

189
deb.mk
View File

@@ -1,35 +1,14 @@
HEROKUISH_DESCRIPTION = 'Herokuish uses Docker and Buildpacks to build applications like Heroku'
HEROKUISH_REPO_NAME ?= gliderlabs/herokuish
HEROKUISH_VERSION ?= 0.3.18
HEROKUISH_ARCHITECTURE = amd64
HEROKUISH_PACKAGE_NAME = herokuish_$(HEROKUISH_VERSION)_$(HEROKUISH_ARCHITECTURE).deb
BUILD_DIRECTORY ?= /tmp
DOKKU_DESCRIPTION = 'Docker powered mini-Heroku in around 100 lines of Bash'
DOKKU_DESCRIPTION = 'Docker powered PaaS that helps you build and manage the lifecycle of applications'
DOKKU_REPO_NAME ?= dokku/dokku
DOKKU_ARCHITECTURE = amd64
define PLUGN_DESCRIPTION
Hook system that lets users extend your application with plugins
Plugin triggers are simply scripts that are executed by the system.
You can use any language you want, so long as the script is
executable and has the proper language requirements installed
endef
PLUGN_REPO_NAME ?= dokku/plugn
PLUGN_VERSION ?= 0.2.1
PLUGN_ARCHITECTURE = amd64
PLUGN_PACKAGE_NAME = plugn_$(PLUGN_VERSION)_$(PLUGN_ARCHITECTURE).deb
PLUGN_URL = https://github.com/dokku/plugn/releases/download/v$(PLUGN_VERSION)/plugn_$(PLUGN_VERSION)_linux_x86_64.tgz
define SSHCOMMAND_DESCRIPTION
Turn SSH into a thin client specifically for your app
Simplifies running a single command over SSH, and
manages authorized keys (ACL) and users in order to do so.
endef
SSHCOMMAND_REPO_NAME ?= dokku/sshcommand
SSHCOMMAND_VERSION ?= 0.5.0
SSHCOMMAND_ARCHITECTURE = amd64
SSHCOMMAND_PACKAGE_NAME = sshcommand_$(SSHCOMMAND_VERSION)_$(SSHCOMMAND_ARCHITECTURE).deb
SSHCOMMAND_URL ?= https://raw.githubusercontent.com/dokku/sshcommand/v$(SSHCOMMAND_VERSION)/sshcommand
DOKKU_UPDATE_DESCRIPTION = 'Binary that handles updating Dokku and related systems'
DOKKU_UPDATE_REPO_NAME ?= dokku/dokku
DOKKU_UPDATE_VERSION ?= 0.2.0
DOKKU_UPDATE_ARCHITECTURE = amd64
DOKKU_UPDATE_PACKAGE_NAME = dokku-update_$(DOKKU_UPDATE_VERSION)_$(DOKKU_UPDATE_ARCHITECTURE).deb
define SIGIL_DESCRIPTION
Standalone string interpolator and template processor
@@ -48,146 +27,63 @@ ifndef IS_RELEASE
IS_RELEASE = true
endif
export PLUGN_DESCRIPTION
export SIGIL_DESCRIPTION
export SSHCOMMAND_DESCRIPTION
.PHONY: install-from-deb deb-all deb-herokuish deb-dokku deb-plugn deb-setup deb-sshcommand deb-sigil
.PHONY: install-from-deb deb-all deb-dokku deb-dokku-update deb-setup deb-sigil
install-from-deb:
@echo "--> Initial apt-get update"
sudo apt-get update -qq > /dev/null
sudo apt-get install -qq -y apt-transport-https
sudo apt-get update -qq >/dev/null
sudo apt-get -qq -y --no-install-recommends install apt-transport-https
@echo "--> Installing docker"
wget -nv -O - https://get.docker.com/ | sh
@echo "--> Installing dokku"
wget -nv -O - https://packagecloud.io/gpg.key | apt-key add -
@echo "deb https://packagecloud.io/dokku/dokku/ubuntu/ trusty 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 install -yy dokku
wget -nv -O - https://packagecloud.io/dokku/dokku/gpgkey | apt-key add -
@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
deb-all: deb-setup deb-herokuish deb-dokku deb-plugn deb-sshcommand deb-sigil
mv /tmp/*.deb .
deb-all: deb-setup deb-dokku deb-sigil deb-dokku-update
mv $(BUILD_DIRECTORY)/*.deb .
@echo "Done"
deb-setup:
@echo "-> Updating deb repository and installing build requirements"
@sudo apt-get update -qq > /dev/null
@sudo DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true apt-get install -qq -y gcc git build-essential wget ruby-dev ruby1.9.1 lintian > /dev/null 2>&1
@command -v fpm > /dev/null || sudo gem install fpm --no-ri --no-rdoc
@sudo apt-get update -qq >/dev/null
@sudo DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true apt-get -qq -y --no-install-recommends install gcc git build-essential wget ruby-dev ruby1.9.1 lintian >/dev/null 2>&1
@command -v fpm >/dev/null || sudo gem install fpm --no-ri --no-rdoc
@ssh -o StrictHostKeyChecking=no git@github.com || true
deb-herokuish:
rm -rf /tmp/tmp /tmp/build $(HEROKUISH_PACKAGE_NAME)
mkdir -p /tmp/tmp /tmp/build
deb-dokku: /tmp/build-dokku/var/lib/dokku/GIT_REV
rm -f $(BUILD_DIRECTORY)/dokku_*_$(DOKKU_ARCHITECTURE).deb
@echo "-> Creating deb files"
@echo "#!/usr/bin/env bash" >> /tmp/tmp/post-install
@echo "sleep 5" >> /tmp/tmp/post-install
@echo "count=\`sudo docker images | grep gliderlabs/herokuish | wc -l\`" >> /tmp/tmp/post-install
@echo 'if [ "$$count" -ne 0 ]; then' >> /tmp/tmp/post-install
@echo " echo 'Removing old herokuish image'" >> /tmp/tmp/post-install
@echo " sudo docker rmi gliderlabs/herokuish" >> /tmp/tmp/post-install
@echo "fi" >> /tmp/tmp/post-install
@echo "echo 'Importing herokuish into docker (around 5 minutes)'" >> /tmp/tmp/post-install
@echo "sudo docker build -t gliderlabs/herokuish /var/lib/herokuish 1> /dev/null" >> /tmp/tmp/post-install
@echo "-> Cloning repository"
git clone -q "https://github.com/$(HEROKUISH_REPO_NAME).git" --branch "v$(HEROKUISH_VERSION)" /tmp/tmp/herokuish > /dev/null
rm -rf /tmp/tmp/herokuish/.git /tmp/tmp/herokuish/.gitignore
@echo "-> Copying files into place"
mkdir -p "/tmp/build/var/lib"
cp -rf /tmp/tmp/herokuish /tmp/build/var/lib/herokuish
@echo "-> Creating $(HEROKUISH_PACKAGE_NAME)"
sudo fpm -t deb -s dir -C /tmp/build -n herokuish -v $(HEROKUISH_VERSION) -a $(HEROKUISH_ARCHITECTURE) -p $(HEROKUISH_PACKAGE_NAME) --deb-pre-depends 'docker-engine-cs (>= 1.9.1) | docker-engine (>= 1.9.1)' --deb-pre-depends sudo --after-install /tmp/tmp/post-install --url "https://github.com/$(HEROKUISH_REPO_NAME)" --description $(HEROKUISH_DESCRIPTION) --license 'MIT License' .
mv *.deb /tmp
deb-dokku:
rm -rf /tmp/tmp /tmp/build dokku_*_$(DOKKU_ARCHITECTURE).deb
mkdir -p /tmp/tmp /tmp/build
cp -r debian /tmp/build/DEBIAN
mkdir -p /tmp/build/usr/bin
mkdir -p /tmp/build/usr/share/doc/dokku
mkdir -p /tmp/build/usr/share/dokku/contrib
mkdir -p /tmp/build/usr/share/lintian/overrides
mkdir -p /tmp/build/usr/share/man/man1
mkdir -p /tmp/build/var/lib/dokku/core-plugins/available
cp dokku /tmp/build/usr/bin
cp LICENSE /tmp/build/usr/share/doc/dokku/copyright
find . -name ".DS_Store" -depth -exec rm {} \;
cp -r plugins/* /tmp/build/var/lib/dokku/core-plugins/available
find plugins/ -mindepth 1 -maxdepth 1 -type d -printf '%f\n' | while read plugin; do touch /tmp/build/var/lib/dokku/core-plugins/available/$$plugin/.core; done
$(MAKE) help2man
$(MAKE) addman
cp /usr/local/share/man/man1/dokku.1 /tmp/build/usr/share/man/man1/dokku.1
gzip -9 /tmp/build/usr/share/man/man1/dokku.1
cp contrib/dokku-installer.py /tmp/build/usr/share/dokku/contrib
git describe --tags > /tmp/build/var/lib/dokku/VERSION
cat /tmp/build/var/lib/dokku/VERSION | cut -d '-' -f 1 | cut -d 'v' -f 2 > /tmp/build/var/lib/dokku/STABLE_VERSION
cat /tmp/build-dokku/var/lib/dokku/VERSION | cut -d '-' -f 1 | cut -d 'v' -f 2 > /tmp/build-dokku/var/lib/dokku/STABLE_VERSION
ifneq (,$(findstring false,$(IS_RELEASE)))
sed -i.bak -e "s/^/`date +%s`:/" /tmp/build/var/lib/dokku/STABLE_VERSION && rm /tmp/build/var/lib/dokku/STABLE_VERSION.bak
sed -i.bak -e "s/^/`date +%s`:/" /tmp/build-dokku/var/lib/dokku/STABLE_VERSION && rm /tmp/build-dokku/var/lib/dokku/STABLE_VERSION.bak
endif
rm /tmp/build/DEBIAN/lintian-overrides
mv debian/lintian-overrides /tmp/build/usr/share/lintian/overrides/dokku
git rev-parse HEAD > /tmp/build/var/lib/dokku/GIT_REV
sed -i "s/^Version: .*/Version: `cat /tmp/build/var/lib/dokku/STABLE_VERSION`/g" /tmp/build/DEBIAN/control
dpkg-deb --build /tmp/build "/tmp/dokku_`cat /tmp/build/var/lib/dokku/STABLE_VERSION`_$(DOKKU_ARCHITECTURE).deb"
lintian "/tmp/dokku_`cat /tmp/build/var/lib/dokku/STABLE_VERSION`_$(DOKKU_ARCHITECTURE).deb"
deb-plugn:
rm -rf /tmp/tmp /tmp/build $(PLUGN_PACKAGE_NAME)
mkdir -p /tmp/tmp /tmp/build /tmp/build/usr/bin
cp -r debian /tmp/build-dokku/DEBIAN
rm -f /tmp/build-dokku/DEBIAN/lintian-overrides
cp debian/lintian-overrides /tmp/build-dokku/usr/share/lintian/overrides/dokku
sed -i.bak "s/^Version: .*/Version: `cat /tmp/build-dokku/var/lib/dokku/STABLE_VERSION`/g" /tmp/build-dokku/DEBIAN/control && rm /tmp/build-dokku/DEBIAN/control.bak
dpkg-deb --build /tmp/build-dokku "$(BUILD_DIRECTORY)/dokku_`cat /tmp/build-dokku/var/lib/dokku/VERSION`_$(DOKKU_ARCHITECTURE).deb"
lintian "$(BUILD_DIRECTORY)/dokku_`cat /tmp/build-dokku/var/lib/dokku/VERSION`_$(DOKKU_ARCHITECTURE).deb"
@echo "-> Downloading package"
wget -q -O /tmp/tmp/plugn-$(PLUGN_VERSION).tgz $(PLUGN_URL)
cd /tmp/tmp/ && tar zxf /tmp/tmp/plugn-$(PLUGN_VERSION).tgz
@echo "-> Copying files into place"
cp /tmp/tmp/plugn /tmp/build/usr/bin/plugn && chmod +x /tmp/build/usr/bin/plugn
@echo "-> Creating $(PLUGN_PACKAGE_NAME)"
sudo fpm -t deb -s dir -C /tmp/build -n plugn \
--version $(PLUGN_VERSION) \
--architecture $(PLUGN_ARCHITECTURE) \
--package $(PLUGN_PACKAGE_NAME) \
--url "https://github.com/$(PLUGN_REPO_NAME)" \
--maintainer "Jose Diaz-Gonzalez <dokku@josediazgonzalez.com>" \
--category utils \
--description "$$PLUGN_DESCRIPTION" \
deb-dokku-update:
rm -rf /tmp/dokku-update*.deb dokku-update*.deb
echo "${DOKKU_UPDATE_VERSION}" > contrib/dokku-update-version
sudo fpm -t deb -s dir -n dokku-update \
--version $(DOKKU_UPDATE_VERSION) \
--architecture $(DOKKU_UPDATE_ARCHITECTURE) \
--package $(BUILD_DIRECTORY)/$(DOKKU_UPDATE_PACKAGE_NAME) \
--depends 'dokku' \
--url "https://github.com/$(DOKKU_UPDATE_REPO_NAME)" \
--description $(DOKKU_UPDATE_DESCRIPTION) \
--license 'MIT License' \
.
mv *.deb /tmp
deb-sshcommand:
rm -rf /tmp/tmp /tmp/build $(SSHCOMMAND_PACKAGE_NAME)
mkdir -p /tmp/tmp /tmp/build /tmp/build/usr/local/bin
@echo "-> Downloading package"
wget -q -O /tmp/tmp/sshcommand-$(SSHCOMMAND_VERSION) $(SSHCOMMAND_URL)
@echo "-> Copying files into place"
mkdir -p "/tmp/build/usr/local/bin"
cp /tmp/tmp/sshcommand-$(SSHCOMMAND_VERSION) /tmp/build/usr/local/bin/sshcommand
chmod +x /tmp/build/usr/local/bin/sshcommand
@echo "-> Creating $(SSHCOMMAND_PACKAGE_NAME)"
sudo fpm -t deb -s dir -C /tmp/build -n sshcommand \
--version $(SSHCOMMAND_VERSION) \
--architecture $(SSHCOMMAND_ARCHITECTURE) \
--package $(SSHCOMMAND_PACKAGE_NAME) \
--url "https://github.com/$(SSHCOMMAND_REPO_NAME)" \
--maintainer "Jose Diaz-Gonzalez <dokku@josediazgonzalez.com>" \
--category admin \
--description "$$SSHCOMMAND_DESCRIPTION" \
--license 'MIT License' \
.
mv *.deb /tmp
contrib/dokku-update=/usr/local/bin/dokku-update \
contrib/dokku-update-version=/var/lib/dokku-update/VERSION
deb-sigil:
rm -rf /tmp/tmp /tmp/build $(SIGIL_PACKAGE_NAME)
@@ -204,11 +100,10 @@ deb-sigil:
sudo fpm -t deb -s dir -C /tmp/build -n gliderlabs-sigil \
--version $(SIGIL_VERSION) \
--architecture $(SIGIL_ARCHITECTURE) \
--package $(SIGIL_PACKAGE_NAME) \
--package $(BUILD_DIRECTORY)/$(SIGIL_PACKAGE_NAME) \
--url "https://github.com/$(SIGIL_REPO_NAME)" \
--maintainer "Jose Diaz-Gonzalez <dokku@josediazgonzalez.com>" \
--category utils \
--description "$$SIGIL_DESCRIPTION" \
--license 'MIT License' \
.
mv *.deb /tmp

6
debian/config vendored
View File

@@ -1,5 +1,6 @@
#!/bin/bash
set -eo pipefail; [[ $TRACE ]] && set -x
set -eo pipefail
[[ $TRACE ]] && set -x
if [[ -e /usr/share/debconf/confmodule ]]; then
# shellcheck disable=SC1091
@@ -14,9 +15,10 @@ db_go || true
db_get "dokku/web_config"
if [ $RET = "true" ]; then
exit 0
exit 0
fi
db_input "high" "dokku/nginx_enable" || true
db_input "high" "dokku/hostname" || true
db_input "high" "dokku/vhost_enable" || true
if [ "$ACTION" != "reconfigure" ]; then

8
debian/control vendored
View File

@@ -1,11 +1,11 @@
Package: dokku
Version: 0.7.0
Version: 0.23.2
Section: web
Priority: optional
Architecture: amd64
Depends: locales, git, make, curl, gcc, man-db, sshcommand, gliderlabs-sigil, docker-engine-cs (>= 1.9.1) | docker-engine (>= 1.9.1), software-properties-common, python-software-properties
Recommends: herokuish
Pre-Depends: nginx, dnsutils, cgroupfs-mount | cgroup-lite, plugn, sudo, python2.7, debconf
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, software-properties-common, procfile-util (>= 0.11.0), python-software-properties | python3-software-properties, rsyslog, dos2unix, jq
Recommends: herokuish (>= 0.3.4), parallel, 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>
Description: Docker-powered PaaS that helps build and manage the lifecycle of applications
Dokku is an extensible, open source Platform as a Service

View File

@@ -1,3 +1,15 @@
dokku: command-with-path-in-maintainer-script postinst:16 /usr/bin/sshcommand
dokku: maintainer-script-calls-systemctl postinst:87
dokku: command-with-path-in-maintainer-script postinst:22 /usr/bin/sshcommand
dokku: maintainer-script-calls-systemctl postinst:98
dokku: changelog-file-missing-in-native-package
dokku: statically-linked-binary
dokku: unstripped-binary-or-object
# The Go compiler is currently unable to produce read-only relocations
# (it produces static binaries).
dokku: hardening-no-relro
# Built golang binaries link to libc
dokku: missing-dependency-on-libc
# Temporary python dependency until #2247 is resolved
dokku: python-script-but-no-python-dep usr/share/dokku/contrib/dokku-installer.py

208
debian/postinst vendored
View File

@@ -1,11 +1,17 @@
#!/bin/bash
set -eo pipefail; [[ $TRACE ]] && set -x
set -eo pipefail
[[ $TRACE ]] && set -x
if [[ -e /usr/share/debconf/confmodule ]]; then
# shellcheck disable=SC1091
. /usr/share/debconf/confmodule
fi
if [[ -r /etc/default/dokku ]]; then
# shellcheck disable=SC1091
source /etc/default/dokku
fi
readonly DOKKU_ROOT="${DOKKU_ROOT:-/home/dokku}"
readonly DOKKU_LIB_ROOT="${DOKKU_LIB_PATH:-/var/lib/dokku}"
@@ -20,103 +26,141 @@ call-sshcommand() {
fi
}
case "$1" in
abort-upgrade|abort-remove|abort-deconfigure)
;;
setup-user() {
echo "Setting up dokku user"
call-sshcommand create dokku /usr/bin/dokku
grep -i -E "^docker" /etc/group || groupadd docker
usermod -aG docker dokku
mkdir -p "$DOKKU_ROOT/.ssh" "$DOKKU_ROOT/.dokkurc"
touch "$DOKKU_ROOT/.ssh/authorized_keys"
chown -R dokku:dokku "$DOKKU_ROOT/.ssh" "${DOKKU_ROOT}/.dokkurc"
}
configure)
mandb
[ ! -x /usr/bin/docker.io ] || ln -sf /usr/bin/docker.io /usr/local/bin/docker
modprobe aufs || echo "WARNING: Restart server to finish installing dokku!"
call-sshcommand create dokku /usr/bin/dokku
setup-storage() {
echo "Setting up storage directories"
mkdir -p "${DOKKU_LIB_ROOT}/data" "${DOKKU_LIB_ROOT}/data/storage"
chown dokku:dokku "${DOKKU_LIB_ROOT}/data"
}
egrep -i "^docker" /etc/group || groupadd docker
usermod -aG docker dokku
setup-plugins() {
echo "Setting up plugin directories"
# should be replaced by `plugn init`
mkdir -p "${DOKKU_LIB_ROOT}/core-plugins/available" "${DOKKU_LIB_ROOT}/plugins/available"
mkdir -p "${DOKKU_LIB_ROOT}/core-plugins/enabled" "${DOKKU_LIB_ROOT}/plugins/enabled"
touch "${DOKKU_LIB_ROOT}/core-plugins/config.toml" "${DOKKU_LIB_ROOT}/plugins/config.toml"
echo "Setting up storage directories"
mkdir -p ${DOKKU_LIB_ROOT}/data ${DOKKU_LIB_ROOT}/data/storage
chown dokku:dokku -R ${DOKKU_LIB_ROOT}/data
echo "Migrating old plugins"
find ${DOKKU_LIB_ROOT}/plugins/ -mindepth 1 -maxdepth 1 -type d -printf '%f\n' | while read -r plugin; do
if [ "$plugin" = "available" ] || [ "$plugin" = "enabled" ]; then
continue
elif [ -f ${DOKKU_LIB_ROOT}/plugins/$plugin/.core ]; then
rm -rf ${DOKKU_LIB_ROOT}/plugins/$plugin
elif [ ! -d ${DOKKU_LIB_ROOT}/plugins/available/$plugin ]; then
mv ${DOKKU_LIB_ROOT}/plugins/$plugin ${DOKKU_LIB_ROOT}/plugins/available
fi
done
echo "Setting up plugin directories"
# should be replaced by `plugn init`
mkdir -p ${DOKKU_LIB_ROOT}/core-plugins/available ${DOKKU_LIB_ROOT}/plugins/available
mkdir -p ${DOKKU_LIB_ROOT}/core-plugins/enabled ${DOKKU_LIB_ROOT}/plugins/enabled
touch ${DOKKU_LIB_ROOT}/core-plugins/config.toml ${DOKKU_LIB_ROOT}/plugins/config.toml
db_get "dokku/nginx_enable"
echo "Enabling all core plugins"
find "${DOKKU_LIB_ROOT}/core-plugins/available" -mindepth 1 -maxdepth 1 -type d -printf '%f\n' | while read -r plugin; do
if [ "$plugin" = "nginx-vhosts" ] && [ "$RET" = "false" ]; then
echo "Skipping enable of nginx-vhosts plugin"
continue
elif [ ! -d "${DOKKU_LIB_ROOT}/plugins/available/$plugin" ]; then
ln -s "${DOKKU_LIB_ROOT}/core-plugins/available/$plugin" "${DOKKU_LIB_ROOT}/plugins/available/$plugin"
PLUGIN_PATH="${DOKKU_LIB_ROOT}/core-plugins" plugn enable "$plugin"
PLUGIN_PATH="${DOKKU_LIB_ROOT}/plugins" plugn enable "$plugin"
fi
done
find -L "${DOKKU_LIB_ROOT}" -type l -delete
chown dokku:dokku -R "${DOKKU_LIB_ROOT}/plugins" "${DOKKU_LIB_ROOT}/core-plugins"
echo "Migrating old plugins"
find ${DOKKU_LIB_ROOT}/plugins/ -mindepth 1 -maxdepth 1 -type d -printf '%f\n' | while read -r plugin; do
if [ "$plugin" = "available" ] || [ "$plugin" = "enabled" ]; then
continue
elif [ -f ${DOKKU_LIB_ROOT}/plugins/$plugin/.core ]; then
rm -rf ${DOKKU_LIB_ROOT}/plugins/$plugin
elif [ ! -d ${DOKKU_LIB_ROOT}/plugins/available/$plugin ]; then
mv ${DOKKU_LIB_ROOT}/plugins/$plugin ${DOKKU_LIB_ROOT}/plugins/available;
fi
done
echo "Install all core plugins"
dokku plugin:install --core
}
echo "Enabling all core plugins"
find ${DOKKU_LIB_ROOT}/core-plugins/available -mindepth 1 -maxdepth 1 -type d -printf '%f\n' | while read -r plugin; do
if [ ! -d ${DOKKU_LIB_ROOT}/plugins/available/$plugin ]; then
ln -s ${DOKKU_LIB_ROOT}/core-plugins/available/$plugin ${DOKKU_LIB_ROOT}/plugins/available/$plugin;
PLUGIN_PATH=${DOKKU_LIB_ROOT}/core-plugins plugn enable $plugin
PLUGIN_PATH=${DOKKU_LIB_ROOT}/plugins plugn enable $plugin
fi
done
find -L ${DOKKU_LIB_ROOT} -type l -delete
chown dokku:dokku -R ${DOKKU_LIB_ROOT}/plugins ${DOKKU_LIB_ROOT}/core-plugins
setup-sshcommand() {
echo "Ensure proper sshcommand path"
echo '/usr/bin/dokku' >"${DOKKU_ROOT}/.sshcommand"
if [[ -f .ssh/authorized_keys ]]; then
sed -i.bak 's#/usr/local/bin/dokku#/usr/bin/dokku#' "${DOKKU_ROOT}/.ssh/authorized_keys"
rm "${DOKKU_ROOT}/.ssh/authorized_keys"
fi
}
echo "Ensure proper sshcommand path"
echo '/usr/bin/dokku' > "${DOKKU_ROOT}/.sshcommand"
if [[ -f .ssh/authorized_keys ]]; then
sed -i.bak 's#/usr/local/bin/dokku#/usr/bin/dokku#' "${DOKKU_ROOT}/.ssh/authorized_keys"
rm "${DOKKU_ROOT}/.ssh/authorized_keys"
setup-dokku-installer() {
NGINX_ROOT="/etc/nginx"
[[ -x /usr/bin/openresty ]] && NGINX_ROOT="/usr/local/openresty/nginx/conf"
if command -v "python3" &>/dev/null; then
sed -i '1 s/^.*$/#!\/usr\/bin\/env python3/' /usr/share/dokku/contrib/dokku-installer.py
elif command -v "python2.7" &>/dev/null; then
sed -i '1 s/^.*$/#!\/usr\/bin\/env python2.7/' /usr/share/dokku/contrib/dokku-installer.py
fi
if [[ -f "$NGINX_ROOT/conf.d/dokku-installer.conf" ]]; then
echo "Setting up dokku-installer"
/usr/share/dokku/contrib/dokku-installer.py onboot
if command -v systemctl &>/dev/null; then
echo "Enabling dokku-installer"
systemctl enable dokku-installer
fi
echo "Install all core plugins"
dokku plugin:install --core
rm -f ${DOKKU_ROOT}/VERSION
cp ${DOKKU_LIB_ROOT}/STABLE_VERSION ${DOKKU_ROOT}/VERSION
if [[ -f /etc/nginx/conf.d/dokku-installer.conf ]]; then
echo "Setting up dokku-installer"
/usr/share/dokku/contrib/dokku-installer.py onboot
if command -v systemctl &>/dev/null; then
echo "Enabling dokku-installer"
systemctl enable dokku-installer
fi
installer_status="$(service dokku-installer status 2> /dev/null || true)"
if echo $installer_status | grep -Eq "(inactive|waiting)" > /dev/null; then
echo "Starting dokku-installer"
service dokku-installer start || echo "Unable to start dokku-installer"
fi
installer_status="$(service dokku-installer status 2>/dev/null || true)"
if echo $installer_status | grep -Eq "(inactive|waiting)" >/dev/null; then
echo "Starting dokku-installer"
service dokku-installer start || echo "Unable to start dokku-installer"
fi
fi
}
db_get "dokku/web_config"
if [ "$RET" = "true" ]; then
db_stop
exit 0
fi
dpkg-handling() {
db_get "dokku/web_config"
if [ "$RET" = "true" ]; then
db_stop
exit 0
fi
if [ -f "${DOKKU_ROOT}/VHOST" ]; then
echo "VHOST file detected, skipping modification"
else
db_get "dokku/vhost_enable"
if [ "$RET" = "true" ]; then
db_get "dokku/hostname"
echo "$RET" > "${DOKKU_ROOT}/VHOST"
else
rm -f "${DOKKU_ROOT}/VHOST"
db_get "dokku/hostname"
echo "Setting VHOST contents to $RET"
echo "$RET" >"${DOKKU_ROOT}/VHOST"
fi
fi
db_get "dokku/hostname"
echo "$RET" >"${DOKKU_ROOT}/HOSTNAME"
if [ -z "${DEBCONF_RECONFIGURE}" ]; then
db_get "dokku/key_file"
if [ -f "$RET" ]; then
call-sshcommand acl-add dokku default <"$RET" || true
fi
fi
}
case "$1" in
abort-upgrade | abort-remove | abort-deconfigure) ;;
\
configure)
mandb
[ ! -x /usr/bin/docker.io ] || ln -sf /usr/bin/docker.io /usr/local/bin/docker
if [[ -f /sbin/modprobe ]]; then
modprobe aufs || echo "WARNING: Restart server to finish installing dokku!"
fi
db_get "dokku/hostname"
echo "$RET" > "${DOKKU_ROOT}/HOSTNAME"
if [ -z "${DEBCONF_RECONFIGURE}" ]; then
db_get "dokku/key_file"
if [ -f "$RET" ]; then
call-sshcommand acl-add dokku default < "$RET" || true
fi
fi
setup-user
setup-storage
setup-plugins
setup-sshcommand
setup-dokku-installer
dpkg-handling
;;
*)

18
debian/postrm vendored
View File

@@ -1,5 +1,6 @@
#!/bin/bash
set -eo pipefail; [[ $TRACE ]] && set -x
set -eo pipefail
[[ $TRACE ]] && set -x
if [[ -e /usr/share/debconf/confmodule ]]; then
# shellcheck disable=SC1091
@@ -11,20 +12,27 @@ readonly DOKKU_LIB_ROOT="${DOKKU_LIB_PATH:-/var/lib/dokku}"
readonly DOKKU_LOGS_DIR="${DOKKU_LOGS_DIR:="/var/log/dokku"}"
main() {
if [[ -f /etc/systemd/system/dokku-installer.conf ]] || [[ -f /etc/init/dokku-installer.conf ]]; then
if [[ -f /etc/systemd/system/dokku-installer.service ]] || [[ -f /etc/init/dokku-installer.conf ]]; then
service dokku-installer stop || true
fi
rm -f /etc/init/dokku-installer.conf
rm -f /etc/init/dokku-redeploy.conf
rm -f /etc/systemd/system/dokku-installer.conf
rm -f /etc/systemd/system/dokku-installer.service
rm -f /etc/systemd/system/dokku-redeploy.service
rm -f /etc/update-motd.d/99-dokku
(nginx -t && service nginx reload) || true
db_get "dokku/nginx_enable"
if [ "$RET" = "true" ]; then
(nginx -t && service nginx reload) || true
fi
if [[ "$1" == "purge" ]]; then
rm -f ${DOKKU_ROOT}/.dokkurc ${DOKKU_ROOT}/dokkurc ${DOKKU_ROOT}/tls
rm -f /usr/local/openresty/nginx/conf/conf.d/dokku.conf
rm -f /usr/local/openresty/nginx/conf/conf.d/dokku-installer.conf
rm -f /etc/nginx/conf.d/dokku.conf
rm -f /etc/nginx/conf.d/dokku-installer.conf
rm -rf ${DOKKU_ROOT}/.dokkurc ${DOKKU_ROOT}/dokkurc ${DOKKU_ROOT}/tls
rm -f ${DOKKU_ROOT}/.ssh/authorized_keys ${DOKKU_ROOT}/.sshcommand
rm -f ${DOKKU_ROOT}/ENV ${DOKKU_ROOT}/HOSTNAME ${DOKKU_ROOT}/VERSION
rm -rf ${DOKKU_ROOT}/.cache

81
debian/preinst vendored
View File

@@ -1,54 +1,79 @@
#!/bin/bash
set -eo pipefail; [[ $TRACE ]] && set -x
set -eo pipefail
[[ $TRACE ]] && set -x
if [[ -e /usr/share/debconf/confmodule ]]; then
# shellcheck disable=SC1091
. /usr/share/debconf/confmodule
fi
setup_dokku_installer() {
NGINX_BASE_PATH="$1"
NGINX_INIT_NAME="$2"
NGINX_CONF="${NGINX_BASE_PATH}/conf.d/dokku-installer.conf"
rm -f $NGINX_CONF
touch $NGINX_CONF
{
echo 'upstream dokku-installer { server 127.0.0.1:2000; }'
echo 'server {'
echo ' listen 80;'
echo ' location / {'
echo ' proxy_pass http://dokku-installer;'
echo ' }'
echo '}'
} >>$NGINX_CONF
rm -f $NGINX_BASE_PATH/sites-enabled/*
DOKKU_DISTRO="$(
. /etc/os-release >/dev/null 2>&1 || true
echo "$ID"
)"
case "$DOKKU_DISTRO" in
debian)
/usr/sbin/invoke-rc.d "$NGINX_INIT_NAME" reload || /usr/sbin/invoke-rc.d "$NGINX_INIT_NAME" start
;;
ubuntu)
if [[ -x /usr/bin/sv ]]; then
/usr/bin/sv reload "$NGINX_INIT_NAME" || /usr/bin/sv start "$NGINX_INIT_NAME"
else
"/etc/init.d/$NGINX_INIT_NAME" reload || "/etc/init.d/$NGINX_INIT_NAME" start
fi
;;
esac
}
case "$1" in
install)
db_get "dokku/web_config"
if [ "$RET" = "true" ]; then
NGINX_CONF="/etc/nginx/conf.d/dokku-installer.conf"
rm -f $NGINX_CONF
touch $NGINX_CONF
{
echo 'upstream dokku-installer { server 127.0.0.1:2000; }'
echo 'server {'
echo ' listen 80;'
echo ' location / {'
echo ' proxy_pass http://dokku-installer;'
echo ' }'
echo '}'
} >> $NGINX_CONF
rm -f /etc/nginx/sites-enabled/*
service nginx reload || /etc/init.d/nginx reload
exit 0
if [[ -x /usr/bin/openresty ]]; then
setup_dokku_installer "/usr/local/openresty/nginx/conf" "openresty"
else
setup_dokku_installer "/etc/nginx" "nginx"
fi
fi
db_get "dokku/skip_key_file"
if [ -z "${DEBCONF_RECONFIGURE}" ] && [ "$RET" != "true" ]; then
db_get "dokku/key_file"
if [ ! -f "$RET" ]; then
echo "Error: keyfile '$RET' not found."
echo " you can enter a new keyfile path when you restart the installation."
db_reset "dokku/key_file"
exit 1
echo "Error: keyfile '$RET' not found." >&2
echo " To deploy, you will need to generate a keypair and add with 'dokku ssh-keys:add'." >&2
db_reset "dokku/key_file"
fi
fi
;;
upgrade)
;;
upgrade) ;;
abort-upgrade)
;;
\
abort-upgrade) ;;
*)
\
*)
echo "preinst called with unknown argument \`$1'" >&2
exit 1
;;

35
debian/prerm vendored
View File

@@ -1,38 +1,39 @@
#!/bin/bash
set -eo pipefail; [[ $TRACE ]] && set -x
set -eo pipefail
[[ $TRACE ]] && set -x
readonly DOKKU_ROOT="${DOKKU_ROOT:-/home/dokku}"
readonly DOKKU_LIB_ROOT="${DOKKU_LIB_PATH:-/var/lib/dokku}"
ps_backtrace() {
if [ $# -lt 1 ]; then
echo "Usage: $0 PID" > /dev/stderr
echo "Usage: $0 PID" >/dev/stderr
exit 1
fi
declare -i pid=$1;
ppid=0;
header_modifier="";
while : ; do
declare -i pid=$1
ppid=0
header_modifier=""
while :; do
if [ $ppid -ne 0 ]; then
header_modifier=h;
fi;
ppid=$(ps -o ppid= $pid);
ps uww $header_modifier -p $pid;
header_modifier=h
fi
ppid=$(ps -o ppid= $pid)
ps uww $header_modifier -p $pid
if [ $pid -eq 1 ]; then
break;
fi;
pid=$ppid;
done;
break
fi
pid=$ppid
done
}
main() {
# HACK: Ensure that we only delete data when purging dokku from the system
if ps_backtrace $BASHPID 2> /dev/null | grep dpkg | grep -- "--purge" > /dev/null; then
if ps_backtrace $BASHPID 2>/dev/null | grep dpkg | grep -- "--purge" >/dev/null; then
echo "Processing purge"
echo "Destroying deployed applications"
for app in $(DOKKU_QUIET_OUTPUT=1 dokku apps); do
for app in $(DOKKU_QUIET_OUTPUT=1 dokku apps:list); do
dokku --force apps:destroy $app
done
@@ -40,7 +41,7 @@ main() {
echo "Disabling all core plugins"
find ${DOKKU_LIB_ROOT}/core-plugins/available -mindepth 1 -maxdepth 1 -type d -printf '%f\n' | while read -r plugin; do
if [ ! -d ${DOKKU_LIB_ROOT}/plugins/available/$plugin ]; then
rm ${DOKKU_LIB_ROOT}/plugins/available/$plugin;
rm ${DOKKU_LIB_ROOT}/plugins/available/$plugin
PLUGIN_PATH=${DOKKU_LIB_ROOT}/core-plugins plugn disable $plugin
PLUGIN_PATH=${DOKKU_LIB_ROOT}/plugins plugn disable $plugin
fi

5
debian/templates vendored
View File

@@ -22,3 +22,8 @@ Template: dokku/key_file
Description: Keyfile for initial user:
Type: string
Default: /root/.ssh/id_rsa.pub
Template: dokku/nginx_enable
Description: Enable nginx-vhosts plugin?
Type: boolean
Default: true

View File

@@ -0,0 +1,4 @@
PATH=/usr/local/bin:/usr/bin:/bin
SHELL=/bin/bash
*/5 * * * * root /usr/bin/dokku ps:retire >> /var/log/dokku/retire.log 2>&1

View File

@@ -0,0 +1,9 @@
/var/log/services/*[!0-9z] {
daily
missingok
rotate 7
compress
delaycompress
notifempty
copytruncate
}

View File

@@ -0,0 +1,73 @@
#!/bin/bash
set -eo pipefail
log-info() {
declare desc="Log info formatter"
echo " $*" 1>&2
}
log-fail() {
declare desc="Log fail formatter"
echo "! $*" 1>&2
exit 1
}
main() {
local NGINX_ROOT
if [[ ! -d /mnt/dokku ]]; then
log-info "Creating missing /mnt/dokku"
mkdir -p /mnt/dokku
fi
directories=("/etc/ssh" "/home/dokku" "/var/lib/dokku/config" "/var/lib/dokku/data")
for dir in "${directories[@]}"; do
if [[ ! -e "$dir" ]]; then
log-info "Copying ${dir} skel into place"
mkdir -p "/mnt/dokku${dir}"
rsync -a "/skel${dir}/" "${dir}/" || log-fail "Unable to copy ${dir} skel into place"
fi
# chown mount directories to "dokku:dokku"
if [[ "$dir" != "/etc/ssh" ]]; then
find "$dir" -print0 | xargs -0 chown -h dokku:dokku
fi
done
if [[ -f /mnt/dokku/plugin-list ]]; then
while read line; do
dokku plugin:install "$(echo "$line" | awk '{print $2}')" "$(echo "$line" | cut -d':' -f1)"
done </mnt/dokku/plugin-list
fi
if [[ -n "$DOKKU_HOSTNAME" ]]; then
echo "dokku dokku/hostname string $DOKKU_HOSTNAME" | debconf-set-selections
echo "dokku dokku/vhost_enable boolean true" | debconf-set-selections
dokku --quiet domains:set-global "$DOKKU_HOSTNAME"
fi
if [[ -x /usr/local/bin/docker ]]; then
mkdir -p /home/dokku/.dokkurc
echo "export DOCKER_BIN=/usr/local/bin/docker" >"/home/dokku/.dokkurc/DOCKER_BIN"
fi
NGINX_ROOT="/etc/nginx"
if [[ -x /usr/bin/openresty ]]; then
NGINX_ROOT="/usr/local/openresty/nginx/conf"
rm -rf /etc/runit/runsvdir/default/nginx
else
rm -rf /etc/runit/runsvdir/default/openresty
fi
if [[ ! -f "/mnt/dokku${NGINX_ROOT}/dhparam.pem" ]]; then
mkdir -p "/mnt/dokku${NGINX_ROOT}"
openssl dhparam -out "/mnt/dokku${NGINX_ROOT}/dhparam.pem" 2048
fi
mkdir -p "${NGINX_ROOT}/conf.d"
cp -f "/mnt/dokku${NGINX_ROOT}/dhparam.pem" "${NGINX_ROOT}/dhparam.pem"
chown root:root "${NGINX_ROOT}/dhparam.pem"
chown root:root "${NGINX_ROOT}/conf.d"
}
main "$@"

View File

@@ -0,0 +1,15 @@
#!/bin/bash
exec >>/var/log/services/dokku-restore
exec 2>&1
if [[ "$1" -ne 0 ]]; then
echo "Error restoring dokku apps! Retrying in 30 seconds..."
exec sleep 30
exit 0
fi
echo "Done restoring dokku apps."
exec sleep infinity
exit 0

View File

@@ -0,0 +1,9 @@
#!/bin/bash
exec >>/var/log/services/dokku-restore
exec 2>&1
echo "Running dokku-restore"
cd /tmp || exit 1
exec dokku ps:restore

View File

@@ -0,0 +1,7 @@
#!/bin/bash
exec >>/var/log/services/nginx
exec 2>&1
echo "Running nginx"
exec /usr/sbin/nginx -c /etc/nginx/nginx.conf -g "daemon off;"

View File

@@ -0,0 +1,7 @@
#!/bin/bash
exec >>/var/log/services/openresty
exec 2>&1
echo "Running openresty"
exec /usr/bin/openresty -c /usr/local/openresty/nginx/conf/nginx.conf -g "daemon off;"

View File

@@ -0,0 +1,7 @@
#!/bin/bash
exec >>/var/log/services/rsyslog
exec 2>&1
echo "Running rsyslog"
exec /usr/sbin/rsyslogd -n

View File

@@ -0,0 +1 @@
dokku ALL=NOPASSWD:SETENV:/usr/bin/docker,/usr/bin/docker-image-labeler

20
docker/usr/local/bin/docker Executable file
View File

@@ -0,0 +1,20 @@
#!/usr/bin/env bash
set -eo pipefail
[[ $TRACE ]] && set -x
main() {
declare desc="re-runs docker commands as sudo"
local DOCKER_BIN=""
if [[ -x "/usr/bin/docker" ]]; then
DOCKER_BIN="/usr/bin/docker"
fi
if [[ -z "$DOCKER_BIN" ]]; then
echo "! No docker binary found" 1>&2
exit 1
fi
sudo -E "$DOCKER_BIN" "$@"
}
main "$@"

View File

@@ -0,0 +1,20 @@
#!/usr/bin/env bash
set -eo pipefail
[[ $TRACE ]] && set -x
main() {
declare desc="re-runs docker-image-labeler commands as sudo"
local DOCKER_IMAGE_LABELER_BIN=""
if [[ -x "/usr/bin/docker-image-labeler" ]]; then
DOCKER_IMAGE_LABELER_BIN="/usr/bin/docker-image-labeler"
fi
if [[ -z "$DOCKER_IMAGE_LABELER_BIN" ]]; then
echo "! No docker-image-labeler binary found" 1>&2
exit 1
fi
sudo -E "$DOCKER_IMAGE_LABELER_BIN" "$@"
}
main "$@"

View File

@@ -0,0 +1,30 @@
user www-data;
worker_processes auto;
pid /run/openresty.pid;
include /usr/local/openresty/nginx/conf/modules-enabled/*.conf;
events {
worker_connections 768;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /usr/local/openresty/nginx/conf/mime.types;
default_type application/octet-stream;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
access_log /var/log/openresty/access.log;
error_log /var/log/openresty/error.log;
gzip on;
include /usr/local/openresty/nginx/conf/conf.d/*.conf;
include /usr/local/openresty/nginx/conf/sites-enabled/*;
}

View File

@@ -2,16 +2,67 @@
> The backup plugin was deprecated in 0.4.x, below are backup recommendations for 0.5.x and later.
## Backup and Migration Tutorial
The best plan for disaster recovery is to always keep multiple (remote) copies of your local repo, static assets and periodic database dumps. Backups should be regularly tested for data integrity and completeness.
Because Dokku is git based, rebuilding a deployed app is as easy as pushing from git. You can push to a new server by updating the dokku remote in you local app's repo.
## TLDR
> Warning: This method has many caveats. Please read this entire document before assuming these backups work as expected, and test your backups on a regular basis.
### Creating a backup
To create a backup, run the following command at a time when not executing any Dokku commands or app deployments:
```shell
export BACKUP_TIME=$(date +%Y-%m-%d-%H-%M)
sudo mkdir -p /var/lib/dokku/services
sudo chown dokku:dokku /var/lib/dokku/services
mkdir -p /tmp/dokku-backups/
sudo tar -czvf "/tmp/dokku-backups/${BACKUP_TIME}.tar.gz" /home/dokku /var/lib/dokku/config /var/lib/dokku/data /var/lib/dokku/services /var/lib/dokku/plugins
```
This will create a point-in-time backup of your entire Dokku installation in the `/tmp/dokku-backups` directory. This backup may be moved offsite to another location via rsync, sftp, or some other protocol.
It is recommended that backups are regularly cleaned from the originating server and tested as necessary.
### Restoring a backup
To extract the backup onto another server, copy the backup to the server and extract it using the following command.
```shell
sudo tar -xzvf path/to/dokku/backup.tar.gz -C /
```
At this point, all datastores should be individually started and checked for data integrity. Once this is complete, individual applications can be rebuilt. Please consult the [process management documentation](/docs/deployment/process-management.md#rebuilding-apps) for more information on how to rebuild applications.
## Caveats
### App config
Application config is largely held in a small number of places:
- `/var/lib/dokku/config`: Properties set and managed by plugins
- `/var/lib/dokku/data`: Files generated or extracted by various plugins
- `/home/dokku`: Certain parts of Dokku core store data in this location
Compressing these directories when no Dokku commands are running is enough to ensure a complete backup of the system.
### Code Repositories
Because Dokku is git based, rebuilding a deployed app is as easy as pushing from git. You can push to a new server by updating the `dokku` remote in you local app's repo.
```shell
git remote rm dokku
git remote add dokku dokku@[dokku.me:dokku.me]
git push dokku [master]
```
## Databases
### Docker Image and Tar-based Apps
These applications may fail to rebuild via the normal `ps:rebuild` method. Redeploy these apps by running the original commands used to deploy them
### Datastores
> Please note that point-in-time backups of the `/var/lib/dokku/services` directory may contain partially written data due to how various datastores work. Consult the official datastore documentation for the best documentation surrounding proper backup and restore procedures.
Some plugins, like the official [dokku-postgres](https://github.com/dokku/dokku-postgres) plugin, have built-in commands that allow non-volatile data be exported and imported.
@@ -22,16 +73,26 @@ dokku postgres:export [db_name] > [db_name].dump
dokku postgres:import [db_name] < [db_name].dump
```
## Volumes and Static Assets
Additionally, data for official datastores is located in the `/var/lib/dokku/services` directory. If the directory is restored and the plugin is available, a `dokku $SERVICE:start` may be enough to restart the service with the underlying data, so long as the datastore version does not change and the underlying data is not corrupt. If this is the case, it may be necessary to re-import all the data onto a fresh version of the datastore service.
Dokku doesn't enforce a [300mb](https://devcenter.heroku.com/articles/slug-compiler#slug-size) limit on apps, but it's best practice to keep binary assets outside of git. Since containers are considered volatile in Dokku, external stores like s3 or storage mounts should be used for non-volatile items like user uploads. The dokku storage core plugin can be used to mount local directories / volumes inside the docker container.
### Plugins
See the [persistent storage documentation](/dokku/advanced-usage/persistent-storage/) for more details.
The plugin directory is contained at the `/var/lib/dokku/plugins` directory. Core plugins will automatically be included in new installs, but custom plugins may not. The aforementioned `tar` creation command will back all plugins up, and the `tar` extract command will restore the plugins.
Note that restoring a plugin will not trigger any `install` or `dependencies` triggers. You will need to run these manually. See the [plugin management documentation](/docs/advanced-usage/plugin-management.md#installing-a-plugin) for more information on how to trigger these two hooks.
## Disaster Recovery
### Volumes and Static Assets
The best plan for disaster recovery is to always keep multiple (remote) copies of your local repo, static assets and periodic database dumps. In case of an emergency when your git repo and backups are completely lost, you can recover the last pushed copy from your remote dokku server (assuming you still have the ssh key).
Dokku doesn't enforce a [300mb](https://devcenter.heroku.com/articles/slug-compiler#slug-size) limit on apps, but it's best practice to keep binary assets outside of git. Since containers are considered volatile in Dokku, external stores like s3 or storage mounts should be used for non-volatile items like user uploads. The Dokku storage core plugin can be used to mount local directories / volumes inside the docker container.
System administrators are highly encouraged to store persistent data in app-specific subdirectories of the path `/var/lib/dokku/data/storage`. This will help ensure restores of the aforementioned primary Dokku directories will restore service to all apps.
See the [persistent storage documentation](/docs/advanced-usage/persistent-storage.md) for more information on how to attach persistent storage to your application.
## Recovering app code
In case of an emergency when your git repo and backups are completely lost, you can recover the last pushed copy from your remote Dokku server (assuming you still have the ssh key).
```shell
mkdir [app-name] ; cd !$

View File

@@ -2,57 +2,78 @@
> New as of 0.5.0
Sometimes you need to run a command on at deployment time, but before an app is completely deployed.
Common use cases include:
Sometimes you need to run a command on deployment time, but before an app is completely deployed. Common use cases include:
* Checking a database is initialised
* Checking a database is initialized
* Running database migrations
* Any commands required to set up the server (e.g. something like a Django `collectstatic`)
## `app.json` and `scripts.dokku`
To support this, Dokku provides support for a special `release` command within your app's `Procfile`, as well as a special `scripts.dokku` key inside of your app's `app.json` file. Be aware that all commands are run within the context of the built docker image - no commands affect the host unless there are volume mounts attached to your app.
Dokku accomplishes this by using an `app.json` file. The format in use is similar to format of Heroku's [app.json](https://devcenter.heroku.com/articles/app-json-schema).
However, dokku currently only supports the nodes `scripts.dokku.predeploy` and `scripts.dokku.postdeploy`.
For buildpack apps, simply place an `app.json` file in the root of your repository.
For dockerfile apps, place `app.json` in the configured `WORKDIR` directory; otherwise dokku defaults to the buildpack app behavior of looking in `/app`.
>NOTE: postdeploy changes are *NOT* committed to the app image.
Each "phase" has different expectations and limitations:
### Example app.json
- `app.json`: `scripts.dokku.predeploy`
- When to use: This should be used if your app does not support arbitrary build commands and you need to make changes to the built image.
- Are changes committed to the image at this phase: Yes
- Example use-cases
- Bundling assets in a slightly different way
- Installing a custom package from source or copying a binary into place
- `app.json`: `scripts.dokku.postdeploy`
- When to use: This should be used in conjunction with external systems to signal the completion of your deploy.
- Are changes committed to the image at this phase: No
- Example use-cases
- Notifying slack that your app is deployed
- Coordinating traffic routing with a central load balancer
- `Procfile`: `release`
- When to use: This should be used in conjunction with external systems to signal the completion of your app image build.
- Are changes committed to the image at this phase: No
- Example use-cases
- Sending CSS, JS, and other assets from your app’s slug to a CDN or S3 bucket
- Priming or invalidating cache stores
- Running database migrations
Additionally, if using a Dockerfile with an `ENTRYPOINT`, the deployment task is passed to that entrypoint as is.
Please keep the above in mind when utilizing deployment tasks.
> To execute commands on the host during a release phase, see the [plugin creation documentation](/docs/development/plugin-creation.md) docs for more information on building your own custom plugin.
## `app.json` deployment tasks
Dokku provides limited support for the `app.json` manifest from Heroku (documentation available [here](https://devcenter.heroku.com/articles/app-json-schema)). The keys available for use with Deployment Tasks are:
- `scripts.dokku.predeploy`: This is run _after_ an app's docker image is built, but _before_ any containers are scheduled. Changes made to your image are committed at this phase.
- `scripts.dokku.postdeploy`: This is run _after_ an app's containers are scheduled. Changes made to your image are *not* committed at this phase.
For buildpack-based deployments, the location of the `app.json` file should be at the root of your repository. Dockerfile-based app deploys should have the `app.json` in the configured `WORKDIR` directory; otherwise Dokku defaults to the buildpack app behavior of looking in `/app`.
> Warning: Any failed `app.json` deployment task will fail the deploy. In the case of either phase, a failure will not affect any running containers.
The following is an example `app.json` file. Please note that only the `scripts.dokku.predeploy` and `scripts.dokku.postdeploy` tasks are supported by Dokku at this time. All other fields will be ignored and can be omitted.
```json
{
"name": "barebones nodejs",
"description": "A barebones Node.js app using Express 4.",
"keywords": [
"nodejs",
"express"
],
"repository": "https://github.com/michaelshobbs/node-js-sample",
"scripts": {
"dokku": {
"predeploy": "touch /app/predeploy.test",
"postdeploy": "curl https://some.external.api.service.com/deployment?state=success"
}
},
"env": {
"SECRET_TOKEN": {
"description": "A secret key for verifying the integrity of signed cookies.",
"value": "secret"
},
"WEB_CONCURRENCY": {
"description": "The number of processes to run.",
"generator": "echo 5"
}
},
"image": "gliderlabs/herokuish",
"addons": [
"dokku-postgres",
"dokku-redis"
],
"buildpacks": [
{
"url": "https://github.com/heroku/heroku-buildpack-nodejs"
}
]
}
}
```
## Procfile Release command
> New as of 0.14.0
The `Procfile` also supports a special `release` command which acts in a similar way to the [Heroku Release Phase](https://devcenter.heroku.com/articles/release-phase). This command is executed _after_ an app's docker image is built, but _before_ any containers are scheduled. This is also run _after_ any command executed by `scripts.dokku.predeploy`.
To use the `release` command, simply add a `release` stanza to your Procfile.
```Procfile
release: curl https://some.external.api.service.com/deployment?state=built
```
Unlike the `scripts.dokku.predeploy` command, changes made during by the `release` command are *not* persisted to disk.
> Warning: scaling the release command up will likely result in unspecified issues within your deployment, and is highly discouraged.

View File

@@ -5,15 +5,16 @@
Pass [options](https://docs.docker.com/engine/reference/run/) to Docker during Dokku's `build`, `deploy` and `run` phases
```
docker-options <app> [phase(s)] # Display app's Docker options for all phases (or comma separated phase list)
docker-options:add <app> <phase(s)> OPTION # Add Docker option to app for phase (comma-separated phase list)
docker-options:clear <app> [<phase(s)>...] # Clear a docker options from application
docker-options:remove <app> <phase(s)> OPTION # Remove Docker option from app for phase (comma-separated phase list)
docker-options:report [<app>] [<flag>] # Displays a docker options report for one or more apps
```
> When specifying multiple phases, they **must** be comma-separated _without_ spaces in between each phase, like so:
>
> ```shell
> dokku docker-options:add myapp deploy,run "-v /home/dokku/logs/myapp:/app/logs"
> dokku docker-options:add node-js-app deploy,run "-v /var/log/node-js-app:/app/logs"
> ```
## About Dokku phases
@@ -22,59 +23,103 @@ Dokku deploys your application in multiple "phases" and the `docker-options` plu
- `build`: the container that executes the appropriate buildpack
- `deploy`: the container that executes your running/deployed application
- `run`: the container that executes any arbitrary command via `dokku run myapp`
- `run`: the container that executes any arbitrary command via `dokku run`
Manipulation of docker options will not restart running containers. This enables multiple options to be set/unset before final application. As such, changing an app's docker options must be followed by a `dokku ps:rebuild` in order to take effect.
More information on supported Docker options can be found here: https://docs.docker.com/engine/reference/commandline/run/.
## Examples
### Add Docker options
Add some options for the deployed/running app and when executing [`dokku run`](/dokku/deployment/one-off-processes/):
Add some options for the deployed/running app and when executing [`dokku run`](/docs/deployment/one-off-processes.md):
```shell
# Mount a host volume in a Docker container: "-v /host/path:/container/path"
dokku docker-options:add myapp deploy "-v /home/dokku/logs/myapp:/app/logs"
dokku docker-options:add myapp run "-v /home/dokku/logs/myapp:/app/logs"
dokku docker-options:add node-js-app deploy "-v /var/log/node-js-app:/app/logs"
dokku docker-options:add node-js-app run "-v /var/log/node-js-app:/app/logs"
```
> Note: When [mounting a host directory](https://docs.docker.com/engine/reference/run/#volume-shared-filesystems) in a Dokku app you should first create that directory as user `dokku` and then mount the directory under `/app` in the container using `docker-options` as above. Otherwise the app will lack write permission in the directory.
### Output Docker options
```shell
dokku docker-options myapp
```
```
Deploy options:
-v /home/dokku/logs/myapp:/app/logs
Run options:
-v /home/dokku/logs/myapp:/app/logs
```
### Remove a Docker option
```shell
dokku docker-options:remove myapp run "-v /home/dokku/logs/myapp:/app/logs"
dokku docker-options:remove node-js-app run "-v /var/log/node-js-app:/app/logs"
```
## Advanced usage
### Clear all Docker options for an app
In your applications folder `/home/dokku/app_name` create a file called `DOCKER_OPTIONS_RUN` (or `DOCKER_OPTIONS_BUILD` or `DOCKER_OPTIONS_DEPLOY`).
Inside this file list one Docker option per line. For example:
Docker options can be removed for a specific app using the `docker-options:clear` command.
```shell
--link container_name:alias
-v /host/path:/container/path
-v /another/container/path
dokku docker-options:clear node-js-app
```
The above example will result in the following options being passed to Docker during `dokku run`:
```
-----> Clearing docker-options for node-js-app on all phases
```
One or more valid phases can also be specified. Phases are comma delimited, and specifying an invalid phase will result in an error.
```shell
--link container_name:alias -v /host/path:/container/path -v /another/container/path
dokku docker-options:clear node-js-app run
```
You may also include comments (lines beginning with a #) and blank lines in the DOCKER_OPTIONS file.
```
-----> Clearing docker-options for node-js-app on phase run
```
Move information on Docker options can be found here: http://docs.docker.io/en/latest/reference/run/ .
```shell
dokku docker-options:clear node-js-app build,run
```
```
-----> Clearing docker-options for node-js-app on phase build
-----> Clearing docker-options for node-js-app on phase run
```
### Displaying docker-options reports for an app
> New as of 0.8.1
You can get a report about the app's docker-options status using the `docker-options:report` command:
```shell
dokku docker-options:report
```
```
=====> node-js-app docker options information
Docker options build:
Docker options deploy: -v /var/log/node-js-app:/app/logs
Docker options run: -v /var/log/node-js-app:/app/logs
=====> python-sample docker options information
Docker options build:
Docker options deploy:
Docker options run:
=====> ruby-sample docker options information
Docker options build:
Docker options deploy:
Docker options run:
```
You can run the command for a specific app also.
```shell
dokku docker-options:report node-js-app
```
```
=====> node-js-app docker options information
Docker options build:
Docker options deploy: -v /var/log/node-js-app:/app/logs
Docker options run: -v /var/log/node-js-app:/app/logs
```
You can pass flags which will output only the value of the specific information you want. For example:
```shell
dokku docker-options:report node-js-app --docker-options-build
```

View File

@@ -36,10 +36,8 @@ Jul 3 16:10:02 dokku.me dokku[128114]: INVOKED: docker-args-run( nhl )
Jul 3 16:10:03 dokku.me dokku[128136]: INVOKED: post-release-buildpack( pythonapp )
Jul 3 16:10:03 dokku.me dokku[128195]: INVOKED: pre-deploy( pythonapp )
Jul 3 16:10:23 dokku.me dokku[129253]: INVOKED: docker-args-deploy( pythonapp )
Jul 3 16:10:24 dokku.me dokku[129337]: INVOKED: bind-external-ip( pythonapp )
Jul 3 16:10:24 dokku.me dokku[129451]: INVOKED: check-deploy( pythonapp 6274ced0d4be11af4490cd18abaf77cdd593f025133f403d984e80d86a39acec web 5000 10.0.16.80 )
Jul 3 16:10:35 dokku.me dokku[129561]: INVOKED: docker-args-deploy( pythonapp )
Jul 3 16:10:35 dokku.me dokku[129649]: INVOKED: bind-external-ip( pythonapp )
Jul 3 16:10:36 dokku.me dokku[129760]: INVOKED: check-deploy( pythonapp ac88a56ee4161ff37e4b92d1498c3eadc91f0aa7c8b81b44fc077e2a51d54cc0 worker )
Jul 3 16:10:46 dokku.me dokku[129851]: INVOKED: post-deploy( pythonapp )
Jul 3 16:10:46 dokku.me dokku[129945]: INVOKED: nginx-pre-reload( pythonapp )
@@ -56,29 +54,28 @@ dokku events:list
```
=====> Events currently logged
docker-args-build
pre-delete
post-deploy
receive-app
pre-release-buildpack
nginx-pre-reload
docker-args-deploy
post-build-buildpack
post-domains-update
post-release-dockerfile
check-deploy
git-pre-pull
git-post-pull
nginx-hostname
bind-external-ip
pre-deploy
post-delete
dependencies
pre-build-buildpack
docker-args-build
docker-args-deploy
docker-args-run
pre-build-dockerfile
post-release-buildpack
git-post-pull
git-pre-pull
nginx-hostname
nginx-pre-reload
post-build-buildpack
post-build-dockerfile
post-delete
post-deploy
post-domains-update
post-release-buildpack
post-release-dockerfile
pre-build-buildpack
pre-build-dockerfile
pre-delete
pre-deploy
pre-release-buildpack
pre-release-dockerfile
receive-app
update
```
```

View File

@@ -2,47 +2,113 @@
> New as of 0.5.0
The preferred method to mount external containers to a dokku managed container, is to use the dokku storage plugin.
The preferred method to mount external containers to a Dokku managed container, is to use the Dokku storage plugin.
```
storage:list <app> # List bind mounts for app's container(s) (host:container)
storage:mount <app> <host-dir:container-dir> # Create a new bind mount
storage:report [<app>] [<flag>] # Displays a checks report for one or more apps
storage:unmount <app> <host-dir:container-dir> # Remove an existing bind mount
```
## Ideology and Background
> The storage plugin is compatible with storage mounts created with the docker-options. The storage plugin will only list mounts from the deploy/run phase.
The storage plugin requires explicit paths on the host side. This is intentional to ensure that new users avoid running into unexpected results with implicit paths that may not exist (a feature deprecate in [Docker 1.9.0](https://github.com/docker/docker/releases/tag/v1.9.0])). The container directory is created for the mount point in the container. Any existing directory contents are not accessible after a mount is added to the container. Dokku creates a new directory `/var/lib/dokku/data/storage` during installation, it's the general consensus that new users should use this directory. Mounts are only available at run and deploy times, you must redeploy (restart) an app to mount or unmount to an existing app's container.
The storage plugin supports the following mount points:
- explicit paths that exist on the host
- docker volumes
There are a few caveats to using the persistent storage plugin:
- Using implicit paths that do not exist are no longer supported, and actually deprecated in [Docker 1.9.0](https://github.com/docker/docker/releases/tag/v1.9.0). When you specify a persistent storage mount, the host directory is **not** autocreated by either Dokku or Docker.
- We recommend using the directory `/var/lib/dokku/data/storage` directory as the root host path for mounts, and we create this on Dokku installation.
- Mounts are only available at run and deploy times, and you **must** redeploy (restart) an app to mount or unmount to an existing app's container.
- When a directory is mounted, any existing files within the container will be overwritten. If you are writing assets during the build process and then replace the directory with a mount, those files will no longer exist. This is a Docker limitation.
- Paths are mounted within the container at the root of the disk - `/` - and are **not** relative to `/app` (for buildpacks deploys) or the `WORKDIR` (for Dockerfile/Docker images).
- For applications using buildpack deploys, the host directory should be owned by the user and group id `32767`. This is due to how permissions within Herokuish - which builds the Docker images - works. For Dockerfile or Docker image deployments, please use the user and group id which corresponds to the one running the process within the container.
## Usage
This example demonstrates how to mount the recommended directory to `/storage` inside the container:
This example demonstrates how to mount the recommended directory to `/storage` inside an application called `node-js-app`:
```shell
dokku storage:mount app-name /var/lib/dokku/data/storage:/storage
# we use a subdirectory inside of the host directory to scope it to just the app
dokku storage:mount node-js-app /var/lib/dokku/data/storage/node-js-app:/storage
```
Dokku will then mount the shared contents of `/var/lib/dokku/data/storage` to `/storage` inside the container.
Dokku will then mount the shared contents of `/var/lib/dokku/data/storage/node-js-app` to `/storage` inside the container.
Once you have mounted persistent storage, you will also need to restart the application. See the
[process scaling documentation](/docs/deployment/process-management.md) for more information.
```shell
dokku ps:restart app-name
```
A more complete workflow may require making a custom directory for your application and mounting it within your `/app/storage` directory instead. The mount point is *not* relative to your application's working directory, and is instead relative to the root of the container.
```shell
# creating storage for the app 'ruby-rails-sample'
mkdir -p /var/lib/dokku/data/storage/ruby-rails-sample
# creating storage for the app 'node-js-app'
mkdir -p /var/lib/dokku/data/storage/node-js-app
# ensure the proper user has access to this directory
chown -R dokku:dokku /var/lib/dokku/data/storage/ruby-rails-sample
chown -R dokku:dokku /var/lib/dokku/data/storage/node-js-app
# as of 0.7.x, you should chown using the `32767` user and group id
chown -R 32767:32767 /var/lib/dokku/data/storage/ruby-rails-sample
# as of 0.7.x, you should chown using the `32767` user and group id for buildpack deploys
# For dockerfile deploys, substitute the user and group id in use within the image
chown -R 32767:32767 /var/lib/dokku/data/storage/node-js-app
# mount the directory into your container's /app/storage directory, relative to root
dokku storage:mount app-name /var/lib/dokku/data/storage/app-name:/app/storage
dokku storage:mount app-name /var/lib/dokku/data/storage/node-js-app:/app/storage
```
You can mount one or more directories as desired by following the above pattern.
### Displaying storage reports for an app
> New as of 0.8.1
You can get a report about the app's storage status using the `storage:report` command:
```shell
dokku storage:report
```
```
=====> node-js-app storage information
Storage build mounts:
Storage deploy mounts: -v /var/lib/dokku/data/storage/node-js-app:/app/storage
Storage run mounts: -v /var/lib/dokku/data/storage/node-js-app:/app/storage
=====> python-sample storage information
Storage build mounts:
Storage deploy mounts:
Storage run mounts:
=====> ruby-sample storage information
Storage build mounts:
Storage deploy mounts:
Storage run mounts:
```
You can run the command for a specific app also.
```shell
dokku storage:report node-js-app
```
```
=====> node-js-app storage information
Storage build mounts:
Storage deploy mounts: -v /var/lib/dokku/data/storage/node-js-app:/app/storage
Storage run mounts: -v /var/lib/dokku/data/storage/node-js-app:/app/storage
```
You can pass flags which will output only the value of the specific information you want. For example:
```shell
dokku storage:report node-js-app --storage-deploy-mounts
```
## Use Cases
### Persistent storage
@@ -63,14 +129,22 @@ Your app may have services that are running in memory and need to be backed up l
### Build phase
By default, dokku will only bind storage mounts during the deploy and run phases. Under certain conditions, one might want to bind a storage mount during the build phase. This can be accomplished by using the `docker-options` plugin directly.
By default, Dokku will only bind storage mounts during the deploy and run phases. Under certain conditions, one might want to bind a storage mount during the build phase. This can be accomplished by using the `docker-options` plugin directly.
```shell
dokku docker-options:add <app> "-v /tmp/python-test:/opt/test"
dokku docker-options:add node-js-app build "-v /tmp/python-test:/opt/test"
```
NOTE: **This can cause data loss** if you bind a mount under `/app` in buildpack apps as herokuish will attempt to remove the original app path during the build phase.
You cannot use mounted volumes during the build phase of a Dockerfile deploy. This is because Docker does not support volumes when executing `docker build`.
## Docker-Options Note
> Note: **This can cause data loss** if you bind a mount under `/app` in buildpack apps as herokuish will attempt to remove the original app path during the build phase.
The storage plugins is compatible with storage mounts created with the docker-options. The storage plugin will only list mounts from the deploy phase.
## Application User and Persistent Storage file ownership (buildpack apps only)
> New as of 0.7.1
By default, Dokku will execute your buildpack application processes as the `herokuishuser` user. You may override this by setting the `DOKKU_APP_USER` config variable.
> NOTE: this user must exist in your herokuish image.
Additionally, the default `docker-local` scheduler that comes with Dokku will ensure your storage mounts are owned by either `herokuishuser` or the overridden value you have set in `DOKKU_APP_USER`. See the [docker-local scheduler documentation](/docs/advanced-usage/schedulers/docker-local.md#disabling-chown-of-persistent-storage) docs for more information.

View File

@@ -0,0 +1,208 @@
# Plugin Management
> New as of 0.4.0
```
plugin:disable <name> # Disable an installed plugin (third-party only)
plugin:enable <name> # Enable a previously disabled plugin
plugin:install [--core|git-url [--committish tag|branch|commit|--name custom-plugin-name]] # Optionally download git-url (with custom tag/committish) & run install trigger for active plugins (or only core ones)
plugin:installed <name> # Checks if a plugin is installed
plugin:install-dependencies [--core] # Run install-dependencies trigger for active plugins (or only core ones)
plugin:list # Print active plugins
plugin:trigger <args...>. # Trigger an arbitrary plugin hook
plugin:uninstall <name> # Uninstall a plugin (third-party only)
plugin:update [name [committish]] # Optionally update named plugin from git (with custom tag/committish) & run update trigger for active plugins
```
```shell
# for 0.3.x
cd /var/lib/dokku/plugins
git clone <git url>
dokku plugins-install
```
> These commands require `root` permissions as the `install` and `install-dependencies` plugin triggers may utilize commands such as `apt-get`. For non-core plugins, please inspect those plugins before running the following command as `root` user.
## Usage
### Listing Plugins
Installed plugins can be listed via the `plugin:list` command:
```shell
dokku plugin:list
```
```
plugn: dev
00_dokku-standard 0.23.2 enabled dokku core standard plugin
20_events 0.23.2 enabled dokku core events logging plugin
app-json 0.23.2 enabled dokku core app-json plugin
apps 0.23.2 enabled dokku core apps plugin
build-env 0.23.2 enabled dokku core build-env plugin
buildpacks 0.23.2 enabled dokku core buildpacks plugin
certs 0.23.2 enabled dokku core certificate management plugin
checks 0.23.2 enabled dokku core checks plugin
common 0.23.2 enabled dokku core common plugin
config 0.23.2 enabled dokku core config plugin
docker-options 0.23.2 enabled dokku core docker-options plugin
domains 0.23.2 enabled dokku core domains plugin
enter 0.23.2 enabled dokku core enter plugin
git 0.23.2 enabled dokku core git plugin
logs 0.23.2 enabled dokku core logs plugin
network 0.23.2 enabled dokku core network plugin
nginx-vhosts 0.23.2 enabled dokku core nginx-vhosts plugin
plugin 0.23.2 enabled dokku core plugin plugin
proxy 0.23.2 enabled dokku core proxy plugin
ps 0.23.2 enabled dokku core ps plugin
repo 0.23.2 enabled dokku core repo plugin
resource 0.23.2 enabled dokku core resource plugin
scheduler-docker-local 0.23.2 enabled dokku core scheduler-docker-local plugin
shell 0.23.2 enabled dokku core shell plugin
ssh-keys 0.23.2 enabled dokku core ssh-keys plugin
storage 0.23.2 enabled dokku core storage plugin
tags 0.23.2 enabled dokku core tags plugin
tar 0.23.2 enabled dokku core tar plugin
trace 0.23.2 enabled dokku core trace plugin
```
> Warning: All plugin commands other than `plugin:list` and `plugin:help` require sudo access and must be run directly from the Dokku server.
### Checking if a plugin is installed
You can check if a plugin has been installed via the `plugin:installed` command:
```shell
dokku plugin:installed postgres
```
### Installing a plugin
Installing a plugin is easy as well using the `plugin:install` command. This command will also trigger the `install` pluginhook on all existing plugins.
The most common usage is to install a plugin from a url. This url may be any of the following:
- `git`: For git+ssh based plugin repository clones.
- `ssh`: For git+ssh based plugin repository clones.
- `file`: For copying plugins from a path on disk.
- `https`: For http based plugin repository clones.
Additionally, any urls with the extensions `.tar.gz` or `.tgz` are treated as Gzipped Tarballs for installation purposes and will be downloaded and extracted into place.
```shell
dokku plugin:install https://github.com/dokku/dokku-postgres.git
```
```
-----> Cloning plugin repo https://github.com/dokku/dokku-postgres.git to /var/lib/dokku/plugins/available/postgres
Cloning into 'postgres'...
remote: Counting objects: 646, done.
remote: Total 646 (delta 0), reused 0 (delta 0), pack-reused 646
Receiving objects: 100% (646/646), 134.24 KiB | 0 bytes/s, done.
Resolving deltas: 100% (406/406), done.
Checking connectivity... done.
-----> Plugin postgres enabled
```
For git-based plugin installation, a commit SHA-like object may be specified (tag/branch/commit sha) via the `--committish` argument and Dokku will attempt to install the specified commit object.
```shell
# where 2.0.0 is a potential git tag
dokku plugin:install https://github.com/dokku/dokku-postgres.git --committish 2.0.0
```
Plugin names are interpolated based on the repository name minus the `dokku-` prefix. If the plugin being installed has a name other than what matches the repository name - or another name is desired - the `--name` flag can be used to override this interpolation.
```shell
dokku plugin:install https://github.com/dokku/smoke-test-plugin.git --name smoke-test-plugin
```
The `--core` flag may also be indicated as the sole argument, though it is only for installation of core plugins, and thus not useful for end-user installations.
```shell
dokku plugin:install --core
```
Finally, all flags may be omitted to trigger the `install` procedures for both core and third-party plugins:
```shell
dokku plugin:install
```
### Installing plugin dependencies
In some cases, plugins will have system-level dependencies. These are not automatically installed via `plugin:install`, and must be separately via the `plugin:install-dependencies` command. This will run through all the `dependencies` trigger for all plugins.
```shell
dokku plugin:install-dependencies
```
This command may also target _just_ core plugins via the `--core` flag. This is usually only useful for source-based installs of Dokku.
```shell
dokku plugin:install-dependencies --core
```
### Updating a plugin
An installed, third-party plugin can be updated can updated via the `plugin:update` command. This should be done after any upgrades of Dokku as there may be changes in the internal api that require an update of how the plugin interfaces with Dokku.
Please note that this command is only valid for plugin installs that were backed by a git-repository.
```shell
dokku plugin:update postgres
```
```
Plugin (postgres) updated
```
An optional commit SHA-like object may be specified.
```shell
dokku plugin:update postgres 2.0.0
```
### Uninstalling a plugin
Third party plugins can be uninstalled using the `plugin:uninstall` command:
```shell
dokku plugin:uninstall postgres
```
```
-----> Plugin postgres uninstalled
```
### Disabling a plugin
Disabling a plugin can also be useful for debugging whether a third-party plugin is causing issues in a Dokku installation. Another common use case is for disabling core functionality for replacement with a third-party plugin.
```shell
dokku plugin:disable postgres
```
```
-----> Plugin postgres disabled
```
### Enabling a plugin
Disabled plugins can be re-enabled via the `plugin:enable` command.
```shell
dokku plugin:enable postgres
```
```
-----> Plugin postgres enabled
```
### Triggering a plugin trigger
The `plugin:trigger` can be used to call any internal plugin trigger. This may have unintended consequences, and thus should only be called for development or debugging purposes.
```shell
dokku plugin:trigger some-internal-trigger args-go-here
```

View File

@@ -1,142 +0,0 @@
# Proxy Management
> New as of 0.5.0, Enhanced in 0.6.0
```
proxy <app> # Show proxy settings for app
proxy:disable <app> # Disable proxy for app
proxy:enable <app> # Enable proxy for app
proxy:ports <app> # List proxy port mappings for app
proxy:ports-add <app> <scheme>:<host-port>:<container-port> [<scheme>:<host-port>:<container-port>...] # Set proxy port mappings for app
proxy:ports-clear <app> # Clear all proxy port mappings for app
proxy:ports-remove <app> <host-port> [<host-port>|<scheme>:<host-port>:<container-port>...] # Unset proxy port mappings for app
proxy:set <app> <proxy-type> # Set proxy type for app
```
In Dokku 0.5.0, port proxying was decoupled from the `nginx-vhosts` plugin into the proxy plugin. Dokku 0.6.0 introduced the ability to map host ports to specific container ports. In the future this will allow other proxy software - such as HAProxy or Caddy - to be used in place of nginx.
## Container network interface binding
> New as of 0.5.0
By default, the deployed docker container running your app's web process will bind to the internal docker network interface (i.e. `docker inspect --format '{{ .NetworkSettings.IPAddress }}' $CONTAINER_ID`). This behavior can be modified per app by disabling the proxy (i.e. `dokku proxy:disable <app>`). In this case, the container will bind to an external interface (i.e. `0.0.0.0`) and your app container will be directly accessible by other hosts on your network.
> If a proxy is disabled, dokku will bind your container's port to a random port on the host for every deploy, e.g. `0.0.0.0:32771->5000/tcp`.
By way of example, in the default case, each container is bound to the docker interface:
```shell
docker ps
```
```
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
1b88d8aec3d1 dokku/node-js-app:latest "/bin/bash -c '/star About a minute ago Up About a minute node-js-app.web.1
```
As such, the container's IP address will be an internal IP, and thus it is only accessible on the host itself:
```
docker inspect --format '{{ .NetworkSettings.IPAddress }}' node-js-app.web.1
```
```
172.17.0.6
```
However, you can disable the internal proxying via the `proxy:disable` command so that it will listen on the host's IP address:
```shell
dokku proxy:disable node-js-app
# container bound to all interfaces
docker ps
```
```
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
d6499edb0edb dokku/node-js-app:latest "/bin/bash -c '/star About a minute ago Up About a minute 0.0.0.0:49153->5000/tcp node-js-app.web.1
```
## Proxy port mapping
> New as of 0.6.0
You can now configure `host -> container` port mappings with the `proxy:ports-*` commands. This mapping is currently supported by the built-in nginx-vhosts plugin.
To inspect the port mapping for a given application, use the `proxy:ports` command:
```shell
dokku proxy:ports node-js-app
```
```
-----> Port mappings for node-js-app
-----> scheme host port container port
http 80 5000
```
The above application is listening on the host's port `80`, which we can test via curl:
```shell
curl http://node-js-app.dokku.me
```
```
Hello World!
```
There are cases where we may wish for the service to be listening on more than one port, such as port 8080. Normally, this would not be possible:
```shell
curl http://node-js-app.dokku.me:8080
```
```
curl: (7) Failed to connect to node-js-app.dokku.me port 8080: Connection refused
```
However, we can use the `proxy:ports-add` command to add a second external port mapping - `8080` - to our application's port `5000`.
```shell
dokku proxy:ports-add node-js-app http:8080:5000
```
```
-----> Setting config vars
DOKKU_PROXY_PORT_MAP: http:80:5000 http:8080:5000
-----> Configuring node-js-app.dokku.me...(using built-in template)
-----> Creating http nginx.conf
-----> Running nginx-pre-reload
Reloading nginx
```
We can now test that port 80 still responds properly:
```shell
curl http://node-js-app.dokku.me
```
```
Hello World!
```
And our new listening port of `8080` also works:
```shell
curl http://node-js-app.dokku.me:8080
```
```
Hello World!
```
You can also remove a port mapping that is no longer necessary:
```shell
dokku proxy:ports-remove node-js-app http:80:5000
```
By default, buildpack apps and dockerfile apps **without** explicitly exposed ports (i.e. using the `EXPOSE` directive) will be configured with a listener on port `80` (and additionally a listener on 443 if ssl is enabled) that will proxy to the application container on port `5000`. Dockerfile apps **with** explicitly exposed ports will be configured with a listener on each exposed port and will proxy to that same port of the deployed application container.
> NOTE: This default behavior **will not** be automatically changed on subsequent pushes and must be manipulated with the `proxy:ports-*` syntax detailed above.

View File

@@ -3,15 +3,17 @@
> New as of 0.6.0
```
repo:gc <app> # Runs 'git gc --agressive' against the application's repo
repo:gc <app> # Runs 'git gc --aggressive' against the application's repo
repo:purge-cache <app> # Deletes the contents of the build cache stored in the repository
```
The repository plugin is meant to allow users to perform management commands against a repository.
## Git Garbage Collection
## Usage
This will run a git gc --agressive against the applications repo. This is performed on the Dokku host, and not within an application container.
### Git Garbage Collection
This will run a git gc --aggressive against the applications repo. This is performed on the Dokku host, and not within an application container.
```shell
dokku repo:gc node-js-app
@@ -25,7 +27,7 @@ Writing objects: 100% (396/396), done.
Total 396 (delta 79), reused 315 (delta 0)
```
## Clearing Application cache
### Clearing Application cache
Building containers with buildpacks currently results in a persistent `cache` directory between deploys. If you need to clear this cache directory for any reason, you may do so by running the following shell command:

View File

@@ -0,0 +1,341 @@
# Resource Management
> New as of 0.15.0
```
resource:limit [--process-type <process-type>] [RESOURCE_OPTS...] <app> # Limit resources for a given app/process-type combination
resource:limit-clear [--process-type <process-type>] <app> # Limit resources for a given app/process-type combination
resource:report [<app>] [<flag>] # Displays a resource report for one or more apps
resource:reserve [--process-type <process-type>] [RESOURCE_OPTS...] <app> # Reserve resources for a given app/process-type combination
resource:reserve-clear [--process-type <process-type>] <app> # Reserve resources for a given app/process-type combination
```
The resource plugin is meant to allow users to limit or reserve resources for a given app/process-type combination.
## Usage
By default, Dokku allows unlimited resource access to apps deployed on a server. In some cases, it may be desirable to limit this on a per-app or per-process-type basis. The `resource` plugin allows management of both resource "limits" and resource "reservations", where each resource request type has specific meaning to the scheduler in use for a given app.
> Warning: The meaning of a values and it's units are specific to the scheduler in use for a given app. If a value is incorrect for a scheduler, this may result in containers failing to start correctly. If a scheduler does not support a given resource type combination, it will be ignored. All resource commands require an app rebuild or deploy in order to take effect.
Valid resource options include:
- `--cpu`
- `--memory`
- `--memory-swap`
- `--network`
- `--network-ingress`
- `--network-egress`
- `--nvidia-gpu`
See the [Supported Resource Management Properties](/docs/advanced-usage/schedulers/docker-local.md#supported-resource-management-properties) section of the docker local scheduler documentation for more information on how each resource limit maps to Docker.
Resource limits and reservations are applied only during the `run` and `deploy` phases of an application, and will not impact the `build` phase of an application.
### Resource Limits
When specified and supported, a resource limit will ensure that your app does not go _over_ the specified value. If this occurs, the underlying scheduler may either cap resource utilization, or it may decide to terminate and reschedule your process.
Resource limits may be set via the `resource:limit` command:
```shell
dokku resource:limit --memory 100 node-js-app
```
```
=====> Setting resource limits for node-js-app
memory: 100
```
Multiple resources can be limited in a single call:
```shell
dokku resource:limit --cpu 100 --memory 100 node-js-app
```
```
=====> Setting resource limits for node-js-app
cpu: 100
memory: 100
```
Resources can also be limited on a per-process type basis. If specified, this will override any generic limits set for the app.
```shell
dokku resource:limit --cpu 100 --memory 100 --process-type worker node-js-app
```
```
=====> Setting resource limits for node-js-app (worker)
cpu: 100
memory: 100
```
A resource value can be individually cleared by setting the value to the special value `clear`.
```shell
dokku resource:limit --cpu clear node-js-app
```
```
=====> Setting resource limits for node-js-app
cpu: cleared
```
#### Displaying Resource Limits
Running the `resource:limit` command without any flags will display the currently configured default app limits.
```shell
dokku resource:limit node-js-app
```
```
=====> resource limits node-js-app information [defaults]
cpu:
memory:
memory-swap: 100
network: 100
network-ingress:
network-egress:
nvidia-gpu:
```
This may also be combined with the `--process-type` flag to see app limits on a process-type level. Note that the displayed values are not merged with the defaults.
```shell
dokku resource:limit --process-type web node-js-app
```
```
=====> resource limits node-js-app information (web)
cpu: 100
memory: 100
memory-swap:
network:
network-ingress:
network-egress:
nvidia-gpu:
```
#### Clearing Resource Limits
In cases where the values are incorrect - or there is no desire to limit resources - resource limits may be cleared using the `resource:limit-clear` command.
```shell
dokku resource:limit-clear node-js-app
```
```
-----> Clearing resource limit for node-js-app
```
Defaults can also be cleared by leaving the app unspecified.
```shell
dokku resource:limit-clear
```
```
-----> Clearing default resource limits
```
### Resource Reservations
When specified and supported, a resource reservation will ensure that your server has _at least_ the specified resources before placing a given app's process. If there a resource exhaustion, future rebuilds and deploys may fail.
Resource reservations may be set via the `resource:reserve` command:
```shell
dokku resource:reserve --memory 100 node-js-app
```
```
=====> Setting resource reservation for node-js-app
memory: 100
```
Multiple resources can be limited in a single call:
```shell
dokku resource:reserve --cpu 100 --memory 100 node-js-app
```
```
=====> Setting resource reservation for node-js-app
cpu: 100
memory: 100
```
Resources can also be limited on a per-process type basis. If specified, this will override any generic limits set for the app.
```shell
dokku resource:reserve --cpu 100 --memory 100 --process-type worker node-js-app
```
```
=====> Setting resource reservation for node-js-app (worker)
cpu: 100
memory: 100
```
A resource value can be individually cleared by setting the value to the special value `clear`.
```shell
dokku resource:reserve --cpu clear node-js-app
```
```
=====> Setting resource reservation for node-js-app
cpu: cleared
```
#### Displaying Resource Reservations
Running the `resource:reserve` command without any flags will display the currently configured default app reservations.
```shell
dokku resource:reserve node-js-app
```
```
=====> resource reservation node-js-app information [defaults]
cpu: 100
memory: 100
memory-swap:
network:
network-ingress:
network-egress:
nvidia-gpu:
```
This may also be combined with the `--process-type` flag to see app reservations on a process-type level. Note that the displayed values are not merged with the defaults.
```shell
dokku resource:reserve --process-type web node-js-app
```
```
=====> resource reservation node-js-app information (web)
cpu: 100
memory: 100
memory-swap:
network:
network-ingress:
network-egress:
nvidia-gpu:
```
#### Clearing Resource Reservations
In cases where the values are incorrect - or there is no desire to reserve resources - resource reservations may be cleared using the `resource:reserve-clear` command.
```shell
dokku resource:reserve-clear node-js-app
```
```
-----> Clearing resource reservation for node-js-app
```
Defaults can also be cleared by leaving the app unspecified.
```shell
dokku resource:reserve-clear
```
```
-----> Clearing default resource reservation
```
### Displaying resource reports for an app
You can get a report about the app's resource status using the `resource:report` command:
```shell
dokku resource:report
```
```
=====> node-js-app resource information
web limit cpu:
web limit memory: 1024
web limit memory swap: 0
web limit network: 10
web limit network ingress:
web limit network egress:
web limit nvidia gpu:
web reservation cpu:
web reservation memory: 512
web reservation memory swap:
web reservation network: 8
web reservation network ingress:
web reservation network egress:
web reservation nvidia gpu:
=====> python-sample resource information
web limit cpu:
web limit memory:
web limit memory swap:
web limit network:
web limit network ingress:
web limit network egress:
web limit nvidia gpu:
web reservation cpu:
web reservation memory:
web reservation memory swap:
web reservation network:
web reservation network ingress:
web reservation network egress:
web reservation nvidia gpu:
=====> ruby-sample resource information
web limit cpu:
web limit memory:
web limit memory swap:
web limit network:
web limit network ingress:
web limit network egress:
web limit nvidia gpu:
web reservation cpu:
web reservation memory:
web reservation memory swap:
web reservation network:
web reservation network ingress:
web reservation network egress:
web reservation nvidia gpu:
```
You can run the command for a specific app also.
```shell
dokku resource:report node-js-app
```
```
=====> node-js-app resource information
web limit cpu:
web limit memory: 1024
web limit memory swap: 0
web limit network: 10
web limit network ingress:
web limit network egress:
web limit nvidia gpu:
web reservation cpu:
web reservation memory: 512
web reservation memory swap:
web reservation network: 8
web reservation network ingress:
web reservation network egress:
web reservation nvidia gpu:
```
You can pass flags which will output only the value of the specific information you want. For example:
```shell
# Note the periods in the flag name
dokku resource:report node-js-app --resource-web.limit.memory
```
```
1024
```

View File

@@ -0,0 +1,10 @@
# Alternative Schedulers
In addition to the built-in [docker-local scheduler](/docs/advanced-usage/schedulers/docker-local.md), Dokku also supports two scheduler plugins:
- [Kubernetes](https://github.com/dokku/dokku-scheduler-kubernetes)
- [Nomad](https://github.com/dokku/dokku-scheduler-nomad)
These scheduler implementations may not be complete, though provide enough functionality for a user to get an app deployed via the underlying scheduler.
For users that require additional functionality, please refer to the [Sponsoring Documentation](https://github.com/dokku/.github/blob/master/SPONSORING.md).

View File

@@ -0,0 +1,83 @@
# Docker Local Scheduler
> Subcommands new as of 0.12.12
```
scheduler-docker-local:report [<app>] [<flag>] # Displays a scheduler-docker-local report for one or more apps
scheduler-docker-local:set <app> <key> (<value>) # Set or clear a scheduler-docker-local property for an app
```
> New as of 0.12.0
Dokku natively includes functionality to manage application lifecycles for a single server using the `scheduler-docker-local` plugin. It is the default scheduler, but as with all schedulers, it is set on a per-application basis. The scheduler can currently be overridden by running the following command:
```shell
dokku config:set node-js-app DOCKER_SCHEDULER=docker-local
```
As it is the default, unsetting the `DOCKER_SCHEDULER` config variable is also a valid way to reset the scheduler.
```shell
dokku config:unset node-js-app DOCKER_SCHEDULER
```
## Usage
### Disabling chown of persistent storage
The `scheduler-docker-local` plugin will ensure your storage mounts are owned by either `herokuishuser` or the overridden value you have set in `DOKKU_APP_USER`. 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 disable-chown true
```
Once set, you may re-enable it by setting a blank value for `disable-chown`:
```shell
dokku scheduler-docker-local:set node-js-app disable-chown
```
## Implemented 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.
- `check-deploy`
- `core-post-deploy`
- `post-app-clone-setup`
- `post-app-rename-setup`
- `post-create`
- `post-delete`
- `pre-deploy`
- `pre-restore`
- `scheduler-app-status`
- `scheduler-deploy`
- `scheduler-docker-cleanup`
- `scheduler-inspect`
- `scheduler-is-deployed`
- `scheduler-logs`
- `scheduler-logs-failed`
- `scheduler-retire`
- `scheduler-run`
- `scheduler-stop`
- `scheduler-tags-create`
- `scheduler-tags-destroy`
## Supported Resource Management Properties
The `docker-local` scheduler supports a minimal list of resource _limits_ and _reservations_. The following properties are supported:
### 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.
- memory: (docker option: `--memory`) should be specified with a suffix of `b` (bytes), `k` (kilobytes), `m` (megabytes), `g` (gigabytes).
- See the ["Memory" section](https://docs.docker.com/config/containers/resource_constraints/#memory) of the Docker Runtime Options documentation for more information.
- memory-swap: (docker option: `--memory-swap`) should be specified with a suffix of `b` (bytes), `k` (kilobytes), `m` (megabytes), `g` (gigabytes)
- See the ["Memory" section](https://docs.docker.com/config/containers/resource_constraints/#memory) of the Docker Runtime Options documentation for more information.
- 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
- memory: (docker option: `--memory-reservation`) should be specified with a suffix of `b` (bytes), `k` (kilobytes), `m` (megabytes), `g` (gigabytes)
- See the ["Memory" section](https://docs.docker.com/config/containers/resource_constraints/#memory) of the Docker Runtime Options documentation for more information.

View File

@@ -0,0 +1,13 @@
# 0.10.0 Migration Guide
## PCI Compliance
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.
## 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.

View File

@@ -0,0 +1,93 @@
# 0.20.0 Migration Guide
## Removals
### Command removals
The following commands were previously deprecated and were removed in this release.
- `apps`: Use `apps:list` instead.
- `certs`: Use `certs:report` instead.
- `certs:info`: Use `certs:report` instead.
- `checks`: Use `checks:report` instead.
- `docker-options`: Use `docker-options:report` instead.
- `domains`: Use `domains:report` instead.
- `plugin`: Use `plugin:list` instead.
- `proxy`: Use `proxy:report` instead.
- `trace`: Use `trace:on` or `trace:off` instead.
- `ps`: Use `enter` with a container ID instead to run `ps auxww` within a container.
The refactor of the proxy plugin removes the following functions from being sourced in plugins:
- `proxy#get_app_proxy_port_map()`
- `proxy#list_app_proxy_ports()`
- `proxy#filter_app_proxy_ports()`
- `proxy#add_proxy_ports()`
- `proxy#remove_proxy_ports()`
- `proxy#set_proxy_ports()`
The informal policy is to allow removal of functions within a `functions` file if they are not used in OSS plugins. Should you be affected by any such removals, please file an issue to expose the functionality via a plugin trigger.
### Function renames
- `tar#tar_in_cmd` was renamed to `tar#cmd-tar-in`. Users should avoid using `cmd-*` commands directly, and instead file an issue to have them exposed via a plugin trigger.
- `tar#tar_from_cmd` was renamed to `tar#cmd-tar-from`. Users should avoid using `cmd-*` commands directly, and instead file an issue to have them exposed via a plugin trigger.
### Remove support for Unsupported Operating Systems
Dokku will no longer distribute packages for Ubuntu versions that have reached either End of Life or End of Standard Support (for LTS releases). This currently includes the following releases:
- Ubuntu 14.04 (trusty)
- Ubuntu 14.10 (utopic)
- Ubuntu 15.04 (vivid)
- Ubuntu 15.10 (wily)
- Ubuntu 16.10 (yakkety)
- Ubuntu 17.04 (zesty)
- Ubuntu 17.10 (artful)
Dokku will no longer distribute packages for Debian versions that are not `stable` or `oldstable`. This currently includes the following releases:
- Debian 7 (wheezy)
- Debian 8 (jessie)
### App report flags
The `--git-sha` flag was moved from the `apps:report` command to the `git:report` command.
## App report output
When an app is not deployed, the `apps:report` command no longer shows the message `not deployed`. Please use the `--deployed` flag on `ps:report` instead to see if the app has been deployed.
## Changes
### App report flags
The following changes on the `apps:report` command were made in this release:
- The `--deploy-source` flag was renamed to `--app-deploy-source`.
- The `--locked` flag was renamed to `--app-locked`.
### Network report flags
The following changes on the `network:report` command were made in this release:
- The `--network-listeners` flag was renamed to `--network-web-listeners`.
### Plugin Triggers
- The `network-get-port` trigger was incorrectly documented to have the `isHerokuishContainer` argument as the third argument. The code has been fixed to respect the documentation.
- The `network-get-listeners` trigger now takes an additional `processType` argument. If not specified, it defaults to `web`. This default will be removed in an upcoming release.
## Deprecations
- `nginx:show-conf` has been deprecated in favor of `nginx:show-config`.
- `proxy#is_app_proxy_enabled()` is deprecated in favor of `plugn trigger proxy-is-enabled`.
- `proxy#get_app_proxy_type()` is deprecated in favor of `plugn trigger proxy-type`.
- `apps#apps_create()` is deprecated in favor of `plugn trigger app-create`.
- `apps#apps_destroy()` is deprecated in favor of `plugn trigger app-destroy`.
- `apps#apps_exists()` is deprecated in favor of `plugn trigger app-exists`.
- `apps#apps_maybe_create()` is deprecated in favor of `plugn trigger app-maybe-create`.
- `plugin trigger network-get-listeners` usage without a second `processType` argument is deprecated.
- `.NGINX_PORT` variable usage within `nginx.conf.sigil` templates is deprecated in favor of `.PROXY_PORT`.
- `.NGINX_SSL_PORT` variable usage within `nginx.conf.sigil` templates is deprecated in favor of `.PROXY_SSL_PORT`.
- `.DOKKU_APP_LISTENERS` variable usage within `nginx.conf.sigil` templates is deprecated in favor of `.DOKKU_APP_WEB_LISTENERS`.

View File

@@ -0,0 +1,18 @@
# 0.21.0 Migration Guide
## Changes
The `tls` name is no longer a reserved app name, and can be used by applications. This was previously a reserved app name due to it's use as a place for global SSL certificate files; Dokku has not supported global SSL certificates for many releases, and thus there is no need to reserve the name.
## Deprecations
- `git#git_deploy_branch()` is deprecated in favor of `plugn trigger git-deploy-branch`.
- The `config` command is deprecated in favor of `config:show`.
- Usage of this command in conjunction with either the `--export` or `--shell` flag is deprecated in favor of `config:export --format` with the correct format value (`exports` or `shell`, respectively).
- The `nginx:build-config` command is deprecated in favor of `proxy:build-config`.
## Removals
The `apps:destroy` command no longer takes a second argument `force`. Instead, this can be passed as the `--force` flag, either globally or as a flag to the command itself.
The `proxy:enable` and `proxy:disable` no longer restart apps when setting the `DOKKU_DISABLE_PROXY` environment variable. A future release will disable usage of `DOKKU_DISABLE_PROXY` altogether.

View File

@@ -0,0 +1,27 @@
# 0.22.0 Migration Guide
## Deprecations
- Calling `logs:failed` without either a `<name>` or the `--all` flag is deprecated.
## Changes
- Underscores are no longer valid characters in app names. Please rename applications before upgrading.
- Process type names specified in Procfile may no longer use characters not valid in DNS Label Names ([RFC 1123](https://tools.ietf.org/html/rfc1123)).
- The minimum Docker version is now 17.05.0.
- The `common.GetDeployingAppImageName()` function now returns an `error` as the second return argument instead of calling `common.LogFail()` internally.
- Setting `DOKKU_DISABLE_ANSI_PREFIX_REMOVAL` is deprecated; Dokku 0.23.0 will avoid removing the `remote:` ansi prefix entirely. No warning will be added in this release.
## Removals
The `ps` command has had a few removals as a result of a rewrite to Golang:
- The `ps:set-restart-policy` command has been removed in favor the `ps:set` command.
- The `ps:restart-policy` command has been removed in favor of the `ps:report` command.
- The `ps:rebuildall` command has been removed in favor of calling the `ps:rebuild` with the `--all` flag instead of an app name.
- The `ps:restartall` command has been removed in favor of calling the `ps:restart` with the `--all` flag instead of an app name.
- The `ps:stopall` command has been removed in favor of calling the `ps:stop` with the `--all` flag instead of an app name.
- The `ps:startall` command has been removed in favor of calling the `ps:start` with the `--all` flag instead of an app name.
- The `DOKKU_PROCFILE` file is no longer located in the git directory for a given app on the server. It's location is currently not exposed.
- The `procfile-get-command` plugin trigger no longer takes a `procfile path` as the final argument.
- All `ps` functions have been removed. Please us a trigger as appropriate or file a PR to have a new trigger/wrapper function added.

View File

@@ -0,0 +1,8 @@
# 0.23.0 Migration Guide
## Changes
- The `plugin:list` command no longer outputs the version for the `plugn` binary.
- Users building docker images that run Dokku will need to use a new sudoer wrapper for the `docker-image-labeler` binary to work correctly. A reference version has been placed in the `docker` skeleton directory. This should only impact platform developers, and users of our Docker image will already have the file available.
- The `dokku` user's cron is now in use by Dokku itself. Customizations will be overwritten. Users are encouraged to use a cron entry in `/etc/cron.d/dokku` to avoid this issue.
- As of 0.23.0, Dokku will now inject the `max-size` log driver option for applications. This is restricted to app-configured log driver values empty, `local` or `json-file` in 0.23.1 to increase setup compatibility. Users who configure alternative log drivers at the system level will need to either set the global `max-size` property to `unlimited` or switch to the built-in `vector` logging support.

View File

@@ -1,17 +1,17 @@
# 0.5.0 Migration Guide
## nginx-vhosts
## `nginx-vhosts` plugin
- 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](/dokku/configuration/nginx/#available-template-variables)
- A detailed list of template variables can be found [here](/docs/configuration/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/myapp` on the dokku server
- Check out an example template [here](/dokku/configuration/nginx/)
- 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)
- Support for server-wide SSL certs have been dropped in favor of using the `certs` plugin
- `dokku certs:add myapp < certs.tar`
- `dokku certs:add node-js-app < certs.tar`
- All domains for an SSL-enabled app will be redirected to https by default
- This can be overridden with a custom template
- Replaced "magic" `NO_VHOST` variable with `domains:enable/disable`
@@ -20,6 +20,6 @@
## Dockerfile apps with exposed ports
- Dockerfiles with `EXPOSE` clauses will get [all **tcp** ports proxied by default](/dokku/deployment/methods/dockerfiles/#exposed-ports)
- Dockerfiles with `EXPOSE` clauses will get [all **tcp** ports proxied by default](/docs/deployment/methods/dockerfiles.md#exposed-ports)
- Note that nginx will proxy the same port numbers to listen publicly
- UDP ports can be exposed by disabling the [nginx proxy](/dokku/advanced-usage/proxy-management/) with `dokku proxy:disable myapp`
- UDP ports can be exposed by disabling the [nginx proxy](/docs/advanced-usage/proxy-management.md) with `dokku proxy:disable node-js-app`

View File

@@ -1,28 +1,28 @@
# 0.6.0 Migration Guide
## zero-downtime deployment
## Zero-downtime deployment
- You can now **actually** disable zero-downtime deployments per-app and per-process-type
- Some config variables have been moved around
- `DOKKU_CHECKS_ENABLED` has been migrated to `DOKKU_CHECKS_SKIPPED`
- `DOKKU_CHECKS_DISABLED` is now a thing
- The values for the above can be a comma-separated list of process-types or the literal string `_all_`
- See the [updated `checks`](/dokku/deployment/zero-downtime-deploys/) docs for more info
- See the [updated `checks`](/docs/deployment/zero-downtime-deploys.md) docs for more info
## proxy port mapping
## Proxy port mapping
- You can now configure host -> container proxy port mappings
- The UI is handled by the [proxy](/dokku/advanced-usage/proxy-management/) interface plugin by setting the `DOKKU_PROXY_PORT_MAP` config variable in the format of `scheme:host-port:container-port`. The default `nginx-vhosts` proxy plugin supports both the `http` and `https` schemes.
- The UI is handled by the [proxy](/docs/advanced-usage/proxy-management.md) interface plugin by setting the `DOKKU_PROXY_PORT_MAP` config variable in the format of `scheme:host-port:container-port`. The default `nginx-vhosts` proxy plugin supports both the `http` and `https` schemes.
- Default port mappings
- buildpack apps will be set to `http:80:5000` and will also include `https:443:5000` if SSL is enabled.
- dockerfile apps with explicitly exposed ports (i.e. using the `EXPOSE` directive) will be configured with a listener on each exposed port that proxies to the same port of the deployed application container.
- You may override this behavior with the [`proxy:ports-*` commands](/dokku/advanced-usage/proxy-management/) or by directly setting `DOKKU_PROXY_PORT_MAP` with the `config:set` command
- You may override this behavior with the [`proxy:ports-*` commands](/docs/advanced-usage/proxy-management.md) or by directly setting `DOKKU_PROXY_PORT_MAP` with the `config:set` command
- dockerfile apps without explicitly exposed ports will behave the same as a buildpack app
- NOTE: These defaults **are not** automatically changed on subsequent pushes and must be manipulated with the aforementioned commands
## calling the dokku binary
## Calling the `dokku` binary
- Plugins should *not* call the dokku binary directly. Clients using the `--app` argument are potentially broken, amongst others, when doing so. Instead, please source the `functions` file for a given plugin when attempting to call dokku internal functions. As a result, the following dokku commands are no longer publicly exposed:
- Plugins should *not* call the `dokku` binary directly. Clients using the `--app` argument are potentially broken, amongst others, when doing so. Instead, please source the `functions` file for a given plugin when attempting to call Dokku internal functions. As a result, the following Dokku commands are no longer publicly exposed:
- `dokku build`
- `dokku receive`
- `dokku release`

View File

@@ -0,0 +1,13 @@
# 0.7.0 Migration Guide
## Persistent Storage
We should now properly handle file ownership for mounted directories. This was enhanced in 0.7.1. See the [persistent storage documentation](/docs/advanced-usage/persistent-storage.md) for more details.
## Restart Policies
If you previously managed container restart policies via docker-options, these can now be managed natively via the built-in `ps` plugin. There is no migration necessary. See the [restart policy documentation](/docs/deployment/process-management.md#restart-policies) for more details.
## SSH Keys
Dokku now has an `ssh-keys` plugin that can be used to manage ssh keys for the `dokku` user on the host operating system. See the [user management documentation](/docs/deployment/user-management.md) for more details.

View File

@@ -0,0 +1,19 @@
# 0.8.0 Migration Guide
## Domain Management
You can now set global and app domains via `domains:set` and `domains:set-global`. See the [domains documentation](/docs/configuration/domains/) for more details.
## Plugin Uninstallation
A new `uninstall` plugin trigger was introduced. This functionality may be in use for newer plugins, so be aware that older Dokku versions may require manual cleanup.
See the [uninstall trigger documentation](/docs/development/plugin-triggers/#uninstall) for implementation instructions.
## Deployment Tasks
Should a pre or post deployment task fail, we now fail the entire deploy.
## Nginx HTTP2 Support
Due to bugs in Nginx, the minimum version for HTTP2 is now 1.11.5.

View File

@@ -0,0 +1,12 @@
# 0.9.0 Migration Guide
## Golang Migration
There is an ongoing migration to rewrite Dokku in Golang. The reasons are beyond the scope of this document, but this may impact any patches you have for Dokku. As of 0.9.0, only the `repo` plugin is in Golang.
The following shall remain true, regardless of the state of our rewrite:
- You will be able to write custom plugins in any language.
- You will be able to enable or disable core plugins.
- `plugn` will continue to be used for executing plugin triggers.
- We will provide bash wrappers that can be sourced to execute core functionality that is implemented in golang.

BIN
docs/assets/dokku-large.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

3006
docs/assets/dokku.ai Normal file

File diff suppressed because one or more lines are too long

View File

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

View File

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

View File

@@ -1,7 +1,7 @@
body {
font-family: 'Open Sans', sans-serif;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
font-size: 62.5%;
font-weight: 400;
font-size: 12px;
padding-bottom: 40px;
color: #5a5a5a;
-webkit-font-smoothing: antialiased;
@@ -20,8 +20,8 @@ h1 {
}
.header .heading {
color: #fff;
font-size: 23px;
margin: 0;
font-size: 2.4em;
margin: 7px 0 0 0;
padding: 0 0 0 1em;
}
.header a {
@@ -35,28 +35,37 @@ h1 {
background-size: contain;
background-repeat: no-repeat;
}
.header .nav-item a {
font-size: 1.6em;
}
.header .navbar-brand a {
background-image: url(https://cdn.rawgit.com/dokku/dokku/v0.7.0/docs/assets/dokku.png);
background-image: url(https://cdn.jsdelivr.net/gh/dokku/dokku@v0.23.2/docs/assets/dokku.png);
text-indent: 40px;
}
.blurb {
color: #424242;
background-color: #ededed;
background-image: url(https://cdn.rawgit.com/dokku/dokku/v0.7.0/docs/assets/gplaypattern.png);
background-image: url(https://cdn.jsdelivr.net/gh/dokku/dokku@v0.23.2/docs/assets/gplaypattern.png);
padding: 45px 0;
text-align: center;
}
.blurb h2 {
font-size: 3.5em;
}
.blurb p {
font-size: 17px;
font-size: 1.9em;
font-weight: 300;
margin: 18px 0;
text-align: center;
}
.blurb .btn-lg {
font-size: 2.2em;
}
.quickstart-code {
display: block;
line-height: 1.3em;
margin: 45px auto;
max-width: 750px;
max-width: 860px;
padding: 0;
}
.quickstart-code .title {
@@ -66,8 +75,8 @@ h1 {
box-shadow: 0 3px 0 rgba(0, 0, 0, 0.5);
color: #444;
display: block;
font-size: 1.6em;
font-weight: 400;
font-size: 14px;
margin: 0 20px;
padding: 3px 0;
text-align: center;
@@ -105,6 +114,7 @@ h1 {
border-top: 1px solid #bcbcbc;
box-shadow: 0 5px 30px rgba(0, 0, 0, 0.3);
display: none;
font-size: 1.4em;
font-family: Menlo, Consolas, "Courier New", Courier, "Liberation Mono", monospace;
margin: 0 20px;
padding: 20px;
@@ -138,9 +148,10 @@ h1 {
}
.alternate-instructions {
display: block;
font-size: 1.6em;
line-height: 1.3em;
margin: 45px auto;
max-width: 750px;
max-width: 860px;
padding: 0;
text-align: center;
}
@@ -166,12 +177,14 @@ h1 {
.featurette img {
width: 400px;
}
.slack-channel {
.slack-channel,
.sponsors {
background-color: #EEF1F7;
font-size: 16px;
font-size: 1.6em;
font-weight: 300;
margin-bottom: 2.5em;
padding: 2.5em 0;
padding-top: 2.5em;
padding-bottom: 2.5em;
text-align: center
}
.slack-channel .inline-container {
@@ -187,30 +200,38 @@ h1 {
.slack-button img {
height: 1em;
}
.team-members img {
-moz-box-shadow: 4px 4px 8px 0px rgba(0,0,0,0.75);
.sponsors {
background-color: #272822;
color: #FCFCFC;
}
.sponsors a {
color: #f0ad4e;
}
.sponsors .backer img,
.sponsors .sponsor img {
-webkit-border-radius: 3px;
-webkit-box-shadow: 4px 4px 8px 0px rgba(0,0,0,0.75);
border-radius: 3px;
border: 8px solid white;
box-shadow: 4px 4px 8px 0px rgba(0,0,0,0.75);
display: block;
height: 200px;
border: 8px solid gray;
margin: 20px auto 20px auto;
max-width: 192px;
}
.team-members .fund-link {
.sponsors .backer img {
-webkit-border-radius: 50%;
border-radius: 50%;
border: 0;
}
.sponsors img:hover {
-moz-box-shadow: 4px 4px 8px 0px rgba(0,0,0,0.75);
-webkit-box-shadow: 4px 4px 8px 0px rgba(0,0,0,0.75);
box-shadow: 0px 0px 32px 0px rgba(0,0,0,0.75);
}
.sponsors .fund-link {
display: block;
font-size: 80%;
font-size: .8em;
}
.team-member {
min-height: 320px;
}
.team-member-image img:last-child { display: none }
.team-member-image:hover img:first-child { display: none; }
.team-member-image:hover img:last-child { display: inline-block; }
.list-group-item {
border: none;
font-size: 1.1em;
font-weight: normal;
padding: .2rem .5rem;
color: #157577;
@@ -231,7 +252,7 @@ a.list-group-item {
text-transform: uppercase;
}
.table-of-contents {
font-size: 0.8em;
font-size: 1.2em;
padding: 1em;
margin: 0 0 0.5em 0.5em;
}
@@ -246,35 +267,35 @@ a.list-group-item {
-webkit-font-smoothing: antialiased;
box-sizing: border-box;
color: rgb(71, 74, 84);
font-size: 14px;
font-size: 1.6em;
font-weight: normal;
height: 20px;
line-height: 20px;
line-height: 1.5;
text-align: left;
}
.markdown-body h1 {
border-bottom: 1px solid #dfdfdf;
color: #444;
font-size: 24px;
font-size: 1.6em;
padding-bottom: 1em;
margin-top: 0;
text-rendering: optimizelegibility;
}
.markdown-body h2 {
font-size: 17px;
font-size: 1.3em;
font-weight: 700;
color: #555;
margin-top: 2em;
text-transform: uppercase;
}
.markdown-body h3 {
font-size: 15px;
font-size: 1.2em;
font-weight: 700;
color: #555;
margin: 1em 0;
}
.markdown-body h4 {
font-size: 14px;
font-size: 1.1em;
font-weight: 700;
color: #555;
margin: 1em 0;
@@ -296,7 +317,7 @@ a.list-group-item {
right: 0;
width: auto;
height: auto;
font-size: 0.9em;
font-size: 1.2em;
border-radius: 0 0 0 5px;
padding: 0 0.5em;
text-shadow: none;
@@ -320,7 +341,6 @@ code {
padding-top: 0.2em;
padding-bottom: 0.2em;
margin: 0;
font-size: 85%;
background-color: #fff;
background-color: rgba(0, 0, 0, 0.06);
color: #333;
@@ -368,6 +388,11 @@ blockquote {
border-left: 4px solid #ef5b58;
background-color: #f9ad76;
}
.warning {
border-left: 4px solid #cd2512;
background-color: #d1675f;
color: white;
}
.fa:before {
-webkit-font-smoothing: antialiased
}
@@ -416,10 +441,9 @@ blockquote {
font-weight: 700;
text-transform: uppercase;
margin: 0;
font-size: 14px;
font-size: 1.3em;
}
.git-improve {
font-size: 20px;
vertical-align: -2px;
padding-left: 8px;
}
@@ -434,7 +458,6 @@ blockquote {
.icon-improve {
color: #bdbdb5;
padding: 2px 9px 0 10px;
font-size: 14px;
}
a .fa {
display: inline-block;
@@ -585,7 +608,7 @@ ul.fas li .fa-large:before, ul.fas li .fa-large:before {
background-image: -ms-linear-gradient(-45deg, rgba(0, 0, 0, 0.04) 25%, transparent 25%, transparent 50%, rgba(0, 0, 0, 0.04) 50%, rgba(0, 0, 0, 0.04) 75%, transparent 75%, transparent);
background-image: linear-gradient(135deg, rgba(0, 0, 0, 0.04) 25%, transparent 25%, transparent 50%, rgba(0, 0, 0, 0.04) 50%, rgba(0, 0, 0, 0.04) 75%, transparent 75%, transparent);
font-family: "Roboto", Corbel, Avenir, "Lucida Grande", "Lucida Sans", sans-serif;
font-size: 14px;
font-size: 1.6em;
text-align: center;
background-color: #ffe761;
}
@@ -602,18 +625,20 @@ ul.fas li .fa-large:before, ul.fas li .fa-large:before {
height: auto
}
}
.button.slack-button > img {
width: inherit;
}
@media (min-width: 768px) {
.col-md-offset-right-2 {
margin-right: 20.666667%;
}
.quickstart-code shell {
font-size: 14px;
}
.quickstart-code {
line-height: 22px;
}
.featurette-heading {
font-size: 50px;
font-size: 5em;
}
}
@media (min-width: 992px) {

View File

@@ -1 +1,25 @@
{ "max-versions": [ "0.3.26", "0.4.14", "0.5.8", "0.6.5", "0.7.0" ] }
{
"max-versions": [
"0.3.26",
"0.4.14",
"0.5.8",
"0.6.5",
"0.7.2",
"0.8.2",
"0.9.4",
"0.10.5",
"0.11.6",
"0.12.13",
"0.13.4",
"0.14.6",
"0.15.5",
"0.16.4",
"0.17.9",
"0.18.5",
"0.19.13",
"0.20.4",
"0.21.4",
"0.22.9",
"0.23.2"
]
}

View File

@@ -1,47 +1,16 @@
# Clients
Given the constraints, running dokku commands remotely via SSH is fine. For certain configurations, the extra complication of manually invoking ssh can be a burden.
Given the constraints, running Dokku commands remotely via SSH is fine. For certain configurations, the extra complication of manually invoking ssh can be a burden.
While dokku does not yet have an official client, there are a multitude of ways in which you can interact with your dokku installation. The easiest is to use the **bash** client, though you may wish to use another.
The easiest way to interact with Dokku remotely is by using the official client. Documented below are the various clients that you may wish to use.
## (bash, zsh, etc.) `dokku_client.sh`
## Official Client
Of all methods, this is the *most* official method of interacting with your dokku installation. It is a bash script that interacts with a remote dokku installation via ssh. It is available in `contrib/dokku_client.sh` in the root of the dokku repository.
To install, simply clone the dokku repository down and add the `dokku` alias pointing at the script:
```shell
git clone git@github.com:dokku/dokku.git ~/.dokku
# optional: make sure that the dokku_client.sh version matches your dokku version
cd ~/.dokku
git checkout <tag/branch>
# add the following to either your
# .bashrc, .bash_profile, or .profile file
alias dokku='$HOME/.dokku/contrib/dokku_client.sh'
```
Alternatively, if using another shell such as **zsh**, create an alias command which invokes the script using **bash**:
```shell
# zsh: add the following to either .zshenv or .zshrc
alias dokku='bash $HOME/.dokku/contrib/dokku_client.sh'
# fish: add the following to ~/.config/fish/config.fish
alias dokku 'bash $HOME/.dokku/contrib/dokku_client.sh'
# csh: add the following to .cshrc
alias dokku 'bash $HOME/.dokku/contrib/dokku_client.sh'
```
Configure the `DOKKU_HOST` environment variable or run `dokku` from a repository with a git remote named dokku pointed at your dokku host in order to use the script as normal.
You can also configure a `DOKKU_PORT` environment variable if you are running ssh on a non-standard port. This defaults to `22`.
See the [remote commands documentation](/docs/deployment/remote-commands.md) for more information on how to install and use the official client.
## (nodejs) dokku-toolbelt
Dokku-toolbelt is a node-based cli wrapper that proxies requests to the dokku command running on remote hosts. You can install it via the following shell command (assuming you have nodejs and npm installed):
Dokku-toolbelt is a node-based cli wrapper that proxies requests to the Dokku command running on remote hosts. You can install it via the following shell command (assuming you have nodejs and npm installed):
```shell
npm install -g dokku-toolbelt
@@ -51,7 +20,7 @@ See [documentation here](https://www.npmjs.com/package/dokku-toolbelt) for more
## (python) dokku-client
dokku-client is an extensible python-based cli wrapper for remote dokku hosts. You can install it via the following shell command (assuming you have python and pip installed):
dokku-client is an extensible python-based cli wrapper for remote Dokku hosts. You can install it via the following shell command (assuming you have python and pip installed):
```shell
pip install dokku-client
@@ -61,7 +30,7 @@ See [documentation here](https://github.com/adamcharnock/dokku-client) for more
## (ruby) Dokku CLI
Dokku CLI is a rubygem that acts as a client for your dokku installation. You can install it via the following shell command (assuming you have ruby and rubygems installed):
Dokku CLI is a rubygem that acts as a client for your Dokku installation. You can install it via the following shell command (assuming you have ruby and rubygems installed):
```shell
gem install dokku-cli
@@ -71,7 +40,7 @@ See [documentation here](https://github.com/SebastianSzturo/dokku-cli) for more
## (ruby) DokkuClient
DokkuClient is another rubygem that acts as a client for your dokku installation with built-in support for certain external plugins. You can install it via the following shell command (assuming you have ruby and rubygems installed):
DokkuClient is another rubygem that acts as a client for your Dokku installation with built-in support for certain external plugins. You can install it via the following shell command (assuming you have ruby and rubygems installed):
```shell
gem install dokku_client
@@ -81,7 +50,7 @@ See [documentation here](https://github.com/netguru/dokku_client) for more infor
## (ruby) Dokkufy
Dokkufy is a rubygem that handles automation of certain tasks, such as dokku setup, plugin installation, etc. You can install it via the following shell command (assuming you have ruby and rubygems installed):
Dokkufy is a rubygem that handles automation of certain tasks, such as Dokku setup, plugin installation, etc. You can install it via the following shell command (assuming you have ruby and rubygems installed):
```shell
gem install dokkufy
@@ -91,7 +60,7 @@ See [documentation here](https://github.com/cbetta/dokkufy) for more information
## (ruby) Dockland
Dockland is a rubygem that acts as a client for your dokku installation. You can install it via the following shell command (assuming you have ruby and rubygems installed):
Dockland is a rubygem that acts as a client for your Dokku installation. You can install it via the following shell command (assuming you have ruby and rubygems installed):
```shell
gem install dockland

View File

@@ -2,58 +2,50 @@
Dokku itself is built out of plugins and uses [plugn](https://github.com/dokku/plugn) for its plugin system. In essence a plugin is a collection of scripts that will be run based on naming convention.
Let's take a quick look at the current dokku nginx plugin that's shipped with dokku by default.
Let's take a quick look at the current Dokku nginx plugin that's shipped with Dokku by default.
nginx-vhosts/
├── plugin.toml # plugin metadata
├── commands # contains additional commands
├── install # runs on dokku installation
├── install # runs on Dokku installation
└── post-deploy # runs after an app is deployed
## Installing a plugin
```shell
# This command requires `root` permissions as the `install` and `install-dependencies`
# plugin triggers may utilize commands such as `apt-get`. For non-core plugins, please
# inspect those plugins before running the following command as `root` user.
sudo dokku plugin:install <git_url> [--committish tag/branch/commit|--name custom-plugin-name]
# previous versions (0.3.x and below) of dokku require a manual process to install plugins
cd /var/lib/dokku/plugins
git clone <git url>
dokku plugins-install
```
[See the plugin management documentation](/docs/advanced-usage/plugin-management.md).
## Creating your own plugin
[See the full documentation](/dokku/development/plugin-creation/).
[See the full documentation](/docs/development/plugin-creation.md).
## Official Plugins (Beta)
## Official Plugins
The following plugins are available and provided by dokku maintainers. Where noted, these plugins should be considered beta software and may not have been used as thoroughly as community plugins. Please file issues against their respective issue trackers.
The following plugins are available and provided by Dokku maintainers. Please file issues against their respective issue trackers.
| Plugin | Author | Compatibility |
| ------------------------------------------------------------------------------------------------- | --------------------- | --------------------- |
| [CouchDB (beta)](https://github.com/dokku/dokku-couchdb) | [dokku][] | 0.4.0+ |
| [Elasticsearch (beta)](https://github.com/dokku/dokku-elasticsearch-plugin) | [dokku][] | 0.4.0+ |
| [MariaDB (beta)](https://github.com/dokku/dokku-mariadb-plugin) | [dokku][] | 0.4.0+ |
| [Memcached (beta)](https://github.com/dokku/dokku-memcached-plugin) | [dokku][] | 0.4.0+ |
| [Mongo (beta)](https://github.com/dokku/dokku-mongo-plugin) | [dokku][] | 0.4.0+ |
| [MySQL (beta)](https://github.com/dokku/dokku-mysql-plugin) | [dokku][] | 0.4.0+ |
| [Nats (beta)](https://github.com/dokku/dokku-nats) | [dokku][] | 0.4.0+ |
| [Postgres (beta)](https://github.com/dokku/dokku-postgres-plugin) | [dokku][] | 0.4.0+ |
| [RabbitMQ (beta)](https://github.com/dokku/dokku-rabbitmq-plugin) | [dokku][] | 0.4.0+ |
| [Redis (beta)](https://github.com/dokku/dokku-redis-plugin) | [dokku][] | 0.4.0+ |
| [RethinkDB (beta)](https://github.com/dokku/dokku-rethinkdb-plugin) | [dokku][] | 0.4.0+ |
| [CouchDB](https://github.com/dokku/dokku-couchdb) | [dokku][] | 0.4.0+ |
| [Elasticsearch](https://github.com/dokku/dokku-elasticsearch-plugin) | [dokku][] | 0.4.0+ |
| [Grafana/Graphite/Statsd](https://github.com/dokku/dokku-graphite-grafana) | [dokku][] | 0.4.0+ |
| [MariaDB](https://github.com/dokku/dokku-mariadb-plugin) | [dokku][] | 0.4.0+ |
| [Memcached](https://github.com/dokku/dokku-memcached-plugin) | [dokku][] | 0.4.0+ |
| [Mongo](https://github.com/dokku/dokku-mongo-plugin) | [dokku][] | 0.4.0+ |
| [MySQL](https://github.com/dokku/dokku-mysql-plugin) | [dokku][] | 0.4.0+ |
| [Nats](https://github.com/dokku/dokku-nats) | [dokku][] | 0.4.0+ |
| [Postgres](https://github.com/dokku/dokku-postgres-plugin) | [dokku][] | 0.4.0+ |
| [RabbitMQ](https://github.com/dokku/dokku-rabbitmq-plugin) | [dokku][] | 0.4.0+ |
| [Redis](https://github.com/dokku/dokku-redis-plugin) | [dokku][] | 0.4.0+ |
| [RethinkDB](https://github.com/dokku/dokku-rethinkdb-plugin) | [dokku][] | 0.4.0+ |
| [Copy Files to Image](https://github.com/dokku/dokku-copyfiles-to-image) | [dokku][] | 0.4.0+ |
| [HTTP Auth (beta)](https://github.com/dokku/dokku-http-auth) | [dokku][] | 0.4.0+ |
| [Let's Encrypt (beta)](https://github.com/dokku/dokku-letsencrypt) | [dokku][] | 0.4.0+ |
| [Maintenance mode (beta)](https://github.com/dokku/dokku-maintenance) | [dokku][] | 0.4.0+ |
| [Redirect (beta)](https://github.com/dokku/dokku-redirect) | [dokku][] | 0.4.0+ |
| [HTTP Auth](https://github.com/dokku/dokku-http-auth) | [dokku][] | 0.4.0+ |
| [Let's Encrypt](https://github.com/dokku/dokku-letsencrypt) | [dokku][] | 0.4.0+ |
| [Maintenance mode](https://github.com/dokku/dokku-maintenance) | [dokku][] | 0.4.0+ |
| [Redirect](https://github.com/dokku/dokku-redirect) | [dokku][] | 0.4.0+ |
| [Registry](https://github.com/dokku/dokku-registry) | [dokku][] | 0.12.0+
## Community plugins
Note: The following plugins have been supplied by our community and may not have been tested by dokku maintainers.
> Warning: The following plugins have been supplied by our community and may not have been tested by Dokku maintainers.
[256dpi]: https://github.com/256dpi
[abossard]: https://github.com/dudagroup
@@ -66,23 +58,27 @@ Note: The following plugins have been supplied by our community and may not have
[Aluxian]: https://github.com/Aluxian
[Aomitayo]: https://github.com/Aomitayo
[apmorton]: https://github.com/apmorton
[Benjamin-Dobell]: https://github.com/Benjamin-Dobell
[artofrawr]: https://github.com/artofrawr
[badsyntax]: https://github.com/badsyntax
[basgys]: https://github.com/basgys
[Benjamin-Dobell]: https://github.com/Benjamin-Dobell
[blag]: https://github.com/blag
[cameron-martin]: https://github.com/cameron-martin
[candlewaster]: https://notabug.org/candlewaster
[cedricziel]: https://github.com/cedricziel
[cef]: https://github.com/cef
[cjblomqvist]: https://github.com/cjblomqvist
[crisward]: https://github.com/crisward
[cu12]: https://github.com/cu12
[darkpixel]: https://github.com/darkpixel
[dokku]: https://github.com/dokku
[dokku-community]: https://github.com/dokku-community
[dyson]: https://github.com/dyson
[F4-Group]: https://github.com/F4-Group
[fermuch]: https://github.com/fermuch
[fgrehm]: https://github.com/fgrehm
[Flink]: https://github.com/Flink
[fomojola]: https://github.com/fomojola
[gdi2290]: https://github.com/gdi2290
[heichblatt]: https://github.com/heichblatt
[hughfletcher]: https://github.com/hughfletcher
[iamale]: https://github.com/iamale
[ignlg]: https://github.com/ignlg
@@ -92,20 +88,26 @@ Note: The following plugins have been supplied by our community and may not have
[jagandecapri]: https://github.com/jagandecapri
[jeffutter]: https://github.com/jeffutter
[jlachowski]: https://github.com/jlachowski
[josegonzalez]: https://github.com/josegonzalez
[Kloadut]: https://github.com/Kloadut
[krisrang]: https://github.com/krisrang
[luxifer]: https://github.com/luxifer
[m0rth1um]: https://github.com/m0rth1um
[Maciej Łebkowski]: https://github.com/mlebkowski
[matto1990]: https://github.com/matto1990
[mbreit]: https://github.com/mbreit
[mbriskar]: https://github.com/mbriskar
[michaelshobbs]: https://github.com/michaelshobbs
[mikecsh]: https://github.com/mikecsh
[mikexstudios]: https://github.com/mikexstudios
[mimischi]: https://github.com/mimischi
[mixxorz]: https://github.com/mixxorz
[mlebkowski]: https://github.com/mlebkowski
[motin]: https://github.com/motin
[mrname]: https://github.com/mrname
[musicglue]: https://github.com/musicglue
[neam]: https://github.com/neam
[nickcharlton]: https://github.com/nickcharlton
[nickstenning]: https://github.com/nickstenning
[nornagon]: https://github.com/nornagon
[ohardy]: https://github.com/ohardy
@@ -125,6 +127,11 @@ Note: The following plugins have been supplied by our community and may not have
[thrashr888]: https://github.com/thrashr888
[wmluke]: https://github.com/wmluke
[Zenedith]: https://github.com/Zenedith
[fteychene]: https://github.com/fteychene
[sarendsen]: https://github.com/sarendsen
[baikunz]: https://github.com/baikunz
[lazyatom]: https://github.com/lazyatom
[ollej]: https://github.com/ollej
### Datastores
@@ -132,20 +139,19 @@ Note: The following plugins have been supplied by our community and may not have
| Plugin | Author | Compatibility |
| ------------------------------------------------------------------------------------------------- | --------------------- | --------------------- |
| [MariaDB](https://github.com/Kloadut/dokku-md-plugin) | [Kloadut][] | 0.3.x |
| [MariaDB (single container)](https://github.com/ohardy/dokku-mariadb) | [ohardy][] | 0.3.x |
| [MariaDB (single container)](https://github.com/krisrang/dokku-mariadb) | [krisrang][] | 0.3.26+ |
| [PostgreSQL](https://github.com/jlachowski/dokku-pg-plugin) | [jlachowski][] | 0.3.x |
| [PostgreSQL (single container)](https://github.com/ohardy/dokku-psql) | [ohardy][] | 0.3.x |
| [PostgreSQL (single container)](https://github.com/Flink/dokku-psql-single-container) | [Flink][] | 0.3.26+ |
| [MariaDB](https://github.com/Kloadut/dokku-md-plugin) | [Kloadut][] | 0.3.x |
| [MariaDB (single container)](https://github.com/ohardy/dokku-mariadb) | [ohardy][] | 0.3.x |
| [MariaDB (single container)](https://github.com/krisrang/dokku-mariadb) | [krisrang][] | 0.3.26+ |
| [PostgreSQL](https://github.com/jlachowski/dokku-pg-plugin) | [jlachowski][] | 0.3.x |
| [PostgreSQL (single container)](https://github.com/ohardy/dokku-psql) | [ohardy][] | 0.3.x |
| [PostgreSQL (single container)](https://github.com/Flink/dokku-psql-single-container) | [Flink][] | 0.3.26+ |
#### Caching
| Plugin | Author | Compatibility |
| ------------------------------------------------------------------------------------------------- | --------------------- | --------------------- |
| [Nginx Cache](https://github.com/Aluxian/dokku-nginx-cache) | [Aluxian][] | 0.5.0+ |
| [Redis](https://github.com/sekjun9878/dokku-redis-plugin) | [sekjun9878][] | 0.3.26+ |
| [Redis (single container)](https://github.com/ohardy/dokku-redis) | [ohardy][] | 0.3.x |
| [Redis (single container)](https://github.com/ohardy/dokku-redis) | [ohardy][] | 0.3.x |
| [Varnish](https://github.com/Zenedith/dokku-varnish-plugin) | [Zenedith][] | Varnish cache between nginx and application with base configuration|
#### Queuing
@@ -155,6 +161,7 @@ Note: The following plugins have been supplied by our community and may not have
| [RabbitMQ](https://github.com/jlachowski/dokku-rabbitmq-plugin) | [jlachowski][] | 0.3.x |
| [RabbitMQ (single container)](https://github.com/jlachowski/dokku-rabbitmq-single-plugin) | [jlachowski][] | 0.3.x |
| [ElasticMQ (SQS compatible)](https://github.com/cu12/dokku-elasticmq) | [cu12][] | 0.5.0+ |
| [VerneMQ (MQTT Broker)](https://github.com/SpinifexGroup/dokku-vernemq) | [mrname][] | 0.4.0+ |
#### Other
@@ -164,117 +171,124 @@ Note: The following plugins have been supplied by our community and may not have
| [FakeSNS](https://github.com/cu12/dokku-fake_sns) | [cu12][] | 0.5.0+ |
| [InfluxDB](https://github.com/basgys/dokku-influxdb) | [basgys][] | 0.4.x |
| [RethinkDB](https://github.com/stuartpb/dokku-rethinkdb-plugin) | [stuartpb][] | 0.3.x |
| [Headless Chrome](https://github.com/lazyatom/dokku-chrome) | [lazyatom][] | 0.8.1+ |
[dccee02]: https://github.com/jeffutter/dokku-riakcs-plugin/commit/dccee02702e7001851917b7814e78a99148fb709
### Process Managers
| Plugin | Author | Compatibility |
| ------------------------------------------------------------------------------------------------- | --------------------- | --------------------- |
| [Circus](https://github.com/apmorton/dokku-circus) | [apmorton][] | |
| [Forego](https://github.com/iskandar/dokku-forego) | [iskandar][] | Compatible with 0.2.x |
| [Forego](https://github.com/Flink/dokku-forego) | [Flink][] | 0.4.0+ |
| [Logging Supervisord](https://github.com/sehrope/dokku-logging-supervisord) | [sehrope][] | 0.4.0+ |
| [Monit](https://github.com/cjblomqvist/dokku-monit) | [cjblomqvist][] | 0.3.x |
| [Shoreman ](https://github.com/statianzo/dokku-shoreman) | [statianzo][] | 0.3.x |
| [Supervisord](https://github.com/statianzo/dokku-supervisord) | [statianzo][] | 0.3.x |
[c77cbf1]: https://github.com/dokku/dokku/commit/c77cbf1d3ae07f0eafb85082ed7edcae9e836147
[28de3ec]: https://github.com/dokku/dokku/commit/28de3ecaa3231a223f83fd8d03f373308673bc40
### Dokku Features
### Plugins Implementing New Dokku Functionality
| Plugin | Author | Compatibility |
| ------------------------------------------------------------------------------------------------- | --------------------- | --------------------- |
| [App name as env](https://github.com/cjblomqvist/dokku-app-name-env) | [cjblomqvist][] | 0.3.x |
| [App User](https://github.com/expa/dokku-app-user) | [michaelshobbs][] | 0.4.0+ |
| [Docker Direct](https://github.com/josegonzalez/dokku-docker-direct) | [josegonzalez][] | 0.4.0+ |
| [Dokku Clone](https://github.com/crisward/dokku-clone) | [crisward][] | 0.4.0+ |
| [Docker Direct](https://github.com/heichblatt/dokku-docker-direct) | [heichblatt][] | |
| [Dokku Copy App Config Files](https://github.com/alexkruegger/dokku-app-configfiles) | [alexkruegger][] | Compatible with 0.3.17+ |
| [Dokku Copy App Config Files](https://github.com/heichblatt/dokku-supply-config) | [heichblatt][] | |
| [Dokku Name](https://github.com/alex-sherwin/dokku-name) | [alex-sherwin][] | dokku >= [c77cbf1][] |
| [Dokku Registry](https://github.com/agco-adm/dokku-registry)<sup>1</sup> | [agco-adm][] | 0.4.0+ |
| [Dokku Require](https://github.com/crisward/dokku-require)<sup>2</sup> | [crisward][] | 0.4.0+ |
| [git rev-parse HEAD in env](https://github.com/cjblomqvist/dokku-git-rev) | [cjblomqvist][] | 0.4.0+ |
| [Graduate (Environment Management)](https://github.com/glassechidna/dokku-graduate) | [Benjamin-Dobell][] | 0.3.14+ |
| [Dokku Copy App Config Files](https://github.com/josegonzalez/dokku-supply-config) | [josegonzalez][] | 0.4.0+ |
| [Dockerfile custom path](https://github.com/mimischi/dokku-dockerfile) | [mimischi][] | 0.8.0+ |
| [Dokku Require](https://github.com/crisward/dokku-require)<sup>1</sup> | [crisward][] | 0.4.0+ |
| [Global Certificates](https://github.com/josegonzalez/dokku-global-cert) | [josegonzalez][] | 0.5.0+ |
| [Graduate (Environment Management)](https://github.com/glassechidna/dokku-graduate) | [Benjamin-Dobell][] | 0.4.0+ |
| [Haproxy tcp load balancer](https://github.com/256dpi/dokku-haproxy) | [256dpi][] | 0.4.0+ |
| [HTTP Auth Secure Apps](https://github.com/matto1990/dokku-secure-apps) | [matto1990][] | 0.4.0+ |
| [Hostname](https://github.com/michaelshobbs/dokku-hostname) | [michaelshobbs][] | 0.4.0+ |
| [Multi-Buildpack](https://github.com/pauldub/dokku-multi-buildpack) | [pauldub][] | |
| [Nuke Containers](https://github.com/heichblatt/dokku-nuke) | [heichblatt][] | |
| [Open App Ports](https://github.com/heichblatt/dokku-ports) | [heichblatt][] | |
| [Pre-Deploy Tasks](https://github.com/michaelshobbs/dokku-app-predeploy-tasks) | [michaelshobbs][] | 0.4.0+ |
| [Proctype Filter](https://github.com/expa/dokku-proctype-filter) | [michaelshobbs][] | 0.4.0+ |
| [SSH Deployment Keys](https://github.com/cedricziel/dokku-deployment-keys)<sup>3</sup> | [cedricziel][] | 0.3.x |
| [SSH Hostkeys](https://github.com/cedricziel/dokku-hostkeys-plugin)<sup>4</sup> | [cedricziel][] | 0.3.x |
| [Volume (persistent storage)](https://github.com/ohardy/dokku-volume) | [ohardy][] | 0.3.x |
| [HTTP Auth Secure Apps](https://github.com/matto1990/dokku-secure-apps) | [matto1990][] | 0.4.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 |
| [Proctype Filter](https://github.com/michaelshobbs/dokku-proctype-filter) | [michaelshobbs][] | 0.4.0+ |
| [robots.txt](https://notabug.org/candlewaster/dokku-robots.txt) | [candlewaster][] | 0.4.x |
| [SSH Deployment Keys](https://github.com/cedricziel/dokku-deployment-keys)<sup>2</sup> | [cedricziel][] | 0.4.0+ |
| [SSH Hostkeys](https://github.com/cedricziel/dokku-hostkeys-plugin)<sup>3</sup> | [cedricziel][] | 0.3.x |
| [Application build hook](https://github.com/fteychene/dokku-build-hook) | [fteychene][] | 0.4.0+ |
| [Post Deploy Script](https://github.com/baikunz/dokku-post-deploy-script) | [baikunz][] | 0.4.0+ |
| [Auto Sync](https://github.com/IdeaSynthesis/dokku-autosync)<sup>4</sup> | [fomojola][] | 0.8.1+ |
| [Deploy Webhook](https://github.com/IdeaSynthesis/dokku-deploy-webhook)<sup>5</sup> | [fomojola][] | 0.8.1+ |
[217d00a]: https://github.com/dokku/dokku/commit/217d00a1bc47a7e24d8847617bb08a1633025fc7
<sup>1</sup> On Heroku similar functionality is offered by the [heroku-labs pipeline feature](https://devcenter.heroku.com/articles/labs-pipelines), which allows you to promote builds across multiple environments (staging -> production)
<sup>1</sup> Extends app.json support to include creating volumes and creating / linking databases on push
<sup>2</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>3</sup> Adds the possibility to add SSH deployment keys to receive private hosted packages
<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>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>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>5</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
| Plugin | Author | Compatibility |
| ------------------------------------------------------------------------------------------------- | --------------------- | --------------------- |
| [Airbrake deploy](https://github.com/Flink/dokku-airbrake-deploy) | [Flink][] | 0.4.0+ |
| [APT](https://github.com/F4-Group/dokku-apt) | [F4-Group][] | 0.2.0+ (tag 0.2.0), 0.3.0+ (tag 0.3.0), 0.4.0+ |
| [Chef cookbooks](https://github.com/fgrehm/chef-dokku) | [fgrehm][] | |
| [Bower install](https://github.com/alexanderbeletsky/dokku-bower-install) | [alexanderbeletsky][] | |
| [Bower/Grunt](https://github.com/thrashr888/dokku-bower-grunt-build-plugin) | [thrashr888][] | |
| [Bower/Gulp](https://github.com/gdi2290/dokku-bower-gulp-build-plugin) | [gdi2290][] | |
| [Bower/Gulp](https://github.com/jagandecapri/dokku-bower-gulp-build-plugin) | [jagandecapri][] | |
| [APT](https://github.com/dokku-community/dokku-apt) | [dokku-community][] | 0.18.x+ |
| [Bower install](https://github.com/alexanderbeletsky/dokku-bower-install) | [alexanderbeletsky][] | 0.3.x |
| [Bower/Grunt](https://github.com/thrashr888/dokku-bower-grunt-build-plugin) | [thrashr888][] | 0.3.x |
| [Bower/Gulp](https://github.com/gdi2290/dokku-bower-gulp-build-plugin) | [gdi2290][] | 0.3.x |
| [Bower/Gulp](https://github.com/jagandecapri/dokku-bower-gulp-build-plugin) | [jagandecapri][] | 0.3.x |
| [Builders: bower, compass, gulp, grunt](https://github.com/ignlg/dokku-builders-plugin) | [ignlg][] | 0.4.0+ |
| [Chef cookbook](https://github.com/nickcharlton/dokku-cookbook) | [nickcharlton][] | |
| [Docker auto persist volumes](https://github.com/Flink/dokku-docker-auto-volumes) | [Flink][] | 0.4.0+ |
| [HipChat Notifications](https://github.com/cef/dokku-hipchat) | [cef][] | |
| [Graphite/statsd](https://github.com/jlachowski/dokku-graphite-plugin) | [jlachowski] | <0.4.0 |
| [Graphite/statsd](https://github.com/jlachowski/dokku-graphite-grafana) | [jlachowski] | 0.4.0+, graphite & statsd plugin with grafana dashboard frontend |
| [Logspout](https://github.com/michaelshobbs/dokku-logspout) | [michaelshobbs][] | 0.3.26+ |
| [Hostname](https://github.com/michaelshobbs/dokku-hostname) | [michaelshobbs][] | 0.4.0+ |
| [Limit (Resource management)](https://github.com/sarendsen/dokku-limit) | [sarendsen][] | 0.9.0+ |
| [Logspout](https://github.com/michaelshobbs/dokku-logspout) | [michaelshobbs][] | 0.4.0+ |
| [Syslog](https://github.com/michaelshobbs/dokku-syslog) | [michaelshobbs][] | 0.10.4+ |
| [Long Timeout](https://github.com/investtools/dokku-long-timeout-plugin) | [investtools][] | 0.4.0+ |
| [Monit](https://github.com/cjblomqvist/dokku-monit) | [cjblomqvist][] | 0.3.x |
| [Monorepo](https://github.com/iamale/dokku-monorepo) | [iamale][] | 0.4.0+ |
| [Node](https://github.com/pnegahdar/dokku-node) | [pnegahdar][] | |
| [Node](https://github.com/ademuk/dokku-nodejs) | [ademuk][] | |
| [Reset mtime](https://github.com/mixxorz/dokku-docker-reset-mtime) | [mixxorz][] | 0.3.15+, Dockerfile support |
| [Multi Dockerfile](https://github.com/artofrawr/dokku-multi-dockerfile) | [artofrawr][] | 0.4.0+ |
| [Node](https://github.com/ademuk/dokku-nodejs) | [ademuk][] | 0.3.x |
| [Node](https://github.com/pnegahdar/dokku-node) | [pnegahdar][] | 0.3.x |
| [Rollbar](https://github.com/iloveitaly/dokku-rollbar) | [iloveitaly][] | 0.5.0+ |
| [Slack Notifications](https://github.com/ribot/dokku-slack) | [ribot][] | 0.4.0+ |
| [Telegram Notifications](https://github.com/m0rth1um/dokku-telegram) | [m0rth1um][] | 0.4.0+ |
| [Tor](https://github.com/michaelshobbs/dokku-tor) | [michaelshobbs][] | 0.4.0+ |
| [User ACL](https://github.com/mlebkowski/dokku-acl) | [Maciej Łebkowski][] | 0.4.0+ |
| [Webhooks](https://github.com/nickstenning/dokku-webhooks) | [nickstenning][] | |
| [Wkhtmltopdf](https://github.com/mbriskar/dokku-wkhtmltopdf) | [mbriskar][] | |
| [Wordpress](https://github.com/dudagroup/dokku-wordpress-template) | [abossard][] | Dokku dev, mariadb, volume, domains |
| [Long Timeout](https://github.com/investtools/dokku-long-timeout-plugin) | [investtools][] | 0.4.0+ |
| [Hostname](https://github.com/michaelshobbs/dokku-hostname) | [michaelshobbs][] | 0.4.0+ |
| [Rollbar](https://github.com/iloveitaly/dokku-rollbar) | [iloveitaly][] | 0.5.0+ |
| [User ACL](https://github.com/dokku-community/dokku-acl) | [Maciej Łebkowski][] | 0.4.0+ |
| [Webhooks](https://github.com/nickstenning/dokku-webhooks) | [nickstenning][] | 0.3.x |
| [Wkhtmltopdf](https://github.com/mbriskar/dokku-wkhtmltopdf) | [mbriskar][] | 0.4.0+ |
| [Dokku Wordpress](https://github.com/dokku-community/dokku-wordpress) | [dokku-community][] | 0.4.0+ |
| [Access](https://github.com/mainto/dokku-access) | [mainto](https://github.com/mainto) | 0.4.0+ |
| [Dokku Nginx Trust Proxy](https://github.com/kingsquare/dokku-nginx-vhost-trustproxy) | [kingsquare](https://github.com/kingsquare) | 0.4.0+ |
| [Fonts](https://github.com/ollej/dokku-fonts) | [ollej] | 0.19.11+ |
| [Discourse](https://github.com/badsyntax/dokku-discourse) | [badsyntax][] | 0.21.4+ |
<sup>1</sup> Forked from [jezdez/dokku-elasticsearch-plugin](https://github.com/jezdez/dokku-elasticsearch-plugin): uses Elasticsearch 1.2 (instead of 0.90), doesn't depend on dokku-link, runs as elasticsearch user instead of root, and turns off multicast autodiscovery for use in a VPS environment.
### Deprecated Plugins
The following plugins have been removed as their functionality is now in Dokku Core.
| Plugin | Author | In Dokku Since |
| ------------------------------------------------------------------------------------------------- | --------------------- | ------------------------------- |
| [Custom Domains](https://github.com/neam/dokku-custom-domains) | [motin][] | v0.3.10 (domains plugin) |
| [Debug](https://github.com/heichblatt/dokku-debug) | [heichblatt][] | v0.3.9 (trace command) |
| [Docker Options](https://github.com/dyson/dokku-docker-options) | [dyson][] | v0.3.17 (docker-options plugin) |
| [Events Logger](https://github.com/alessio/dokku-events) | [alessio][] | v0.3.21 (events plugin) |
| [Host Port binding](https://github.com/stuartpb/dokku-bind-port) | [stuartpb][] | v0.3.17 (docker-options plugin) |
| [List Containers](https://github.com/heichblatt/dokku-list) | [heichblatt][] | v0.3.14 (ps plugin |
| [Link Containers](https://github.com/rlaneve/dokku-link) | [rlaneve][] | v0.3.17 (docker-options plugin) |
| [Multiple Domains](https://github.com/wmluke/dokku-domains-plugin)<sup>1</sup> | [wmluke][] | v0.3.10 (domains plugin) |
| [Named-containers](https://github.com/Flink/dokku-named-containers) | [Flink][] | v0.4.2 (named-containers plugin) |
| [Nginx-Alt](https://github.com/mikexstudios/dokku-nginx-alt) | [mikexstudios][] | v0.3.10 (domains plugin) |
| [Persistent Storage](https://github.com/dyson/dokku-persistent-storage) | [dyson][] | v0.3.17 (docker-options plugin) |
| [PrimeCache](https://github.com/darkpixel/dokku-prime-cache) | [darkpixel][] | v0.3.0 (zero downtime deploys) |
| [Rebuild application](https://github.com/scottatron/dokku-rebuild) | [scottatron][] | v0.3.14 (ps plugin) |
| [Supply env vars to buildpacks](https://github.com/cameron-martin/dokku-build-env)<sup>2</sup> | [cameron-martin][] | v0.3.9 (build-env plugin) |
| [user-env-compile](https://github.com/musicglue/dokku-user-env-compile)<sup>2</sup> | [musicglue][] | v0.3.9 (build-env plugin) |
| [user-env-compile](https://github.com/motin/dokku-user-env-compile)<sup>2</sup> | [motin][] | v0.3.9 (build-env plugin) |
| [VHOSTS Custom Configuration](https://github.com/neam/dokku-nginx-vhosts-custom-configuration) | [motin][] | v0.3.10 (domains plugin) |
| Plugin | Author | In Dokku Since |
| ------------------------------------------------------------------------------------------------- | --------------------- | ----------------------------------------- |
| [App User](https://github.com/michaelshobbs/dokku-app-user) | [michaelshobbs][] | v0.7.1 (herokuish 0.3.18) |
| [Custom Domains](https://github.com/neam/dokku-custom-domains) | [motin][] | v0.3.10 (domains plugin) |
| [Debug](https://github.com/josegonzalez/dokku-debug) | [josegonzalez][] | v0.3.9 (trace command) |
| [Docker Options](https://github.com/dyson/dokku-docker-options) | [dyson][] | v0.3.17 (docker-options plugin) |
| [Dokku Name](https://github.com/alex-sherwin/dokku-name) | [alex-sherwin][] | v0.4.2 (named containers plugin) |
| [Events Logger](https://github.com/alessio/dokku-events) | [alessio][] | v0.3.21 (events plugin) |
| [git rev-parse HEAD in env](https://github.com/dokku-community/dokku-git-rev) | [cjblomqvist][] | v0.12.0 (enhanced core git plugin) |
| [Host Port binding](https://github.com/stuartpb/dokku-bind-port) | [stuartpb][] | v0.3.17 (docker-options plugin) |
| [Link Containers](https://github.com/rlaneve/dokku-link) | [rlaneve][] | v0.3.17 (docker-options plugin) |
| [List Containers](https://github.com/josegonzalez/dokku-list) | [josegonzalez][] | v0.3.14 (ps plugin) |
| [Multi-Buildpack](https://github.com/pauldub/dokku-multi-buildpack) | [pauldub][] | v0.4.0 (herokuish) |
| [Multiple Domains](https://github.com/wmluke/dokku-domains-plugin)<sup>1</sup> | [wmluke][] | v0.3.10 (domains plugin) |
| [Named-containers](https://github.com/Flink/dokku-named-containers) | [Flink][] | v0.4.2 (named-containers plugin) |
| [Nginx-Alt](https://github.com/mikexstudios/dokku-nginx-alt) | [mikexstudios][] | v0.3.10 (domains plugin) |
| [Persistent Storage](https://github.com/dyson/dokku-persistent-storage) | [dyson][] | v0.3.17 (docker-options plugin) |
| [Pre-Deploy Tasks](https://github.com/michaelshobbs/dokku-app-predeploy-tasks) | [michaelshobbs][] | v0.5.0 (deployment tasks) |
| [PrimeCache](https://github.com/darkpixel/dokku-prime-cache) | [darkpixel][] | v0.3.0 (zero downtime deploys) |
| [Process Manager: Circus](https://github.com/apmorton/dokku-circus) | [apmorton][] | v0.3.14/0.7.0 (ps/restart policy plugin) |
| [Process Manager: Forego](https://github.com/Flink/dokku-forego) | [Flink][] | v0.3.14/0.7.0 (ps plugin) |
| [Process Manager: Forego](https://github.com/iskandar/dokku-forego) | [iskandar][] | v0.3.14/0.7.0 (ps plugin) |
| [Process Manager: Logging Supervisord](https://github.com/sehrope/dokku-logging-supervisord) | [sehrope][] | v0.3.14/0.7.0 (ps plugin) |
| [Process Manager: Shoreman ](https://github.com/statianzo/dokku-shoreman) | [statianzo][] | v0.3.14/0.7.0 (ps plugin) |
| [Process Manager: Supervisord](https://github.com/statianzo/dokku-supervisord) | [statianzo][] | v0.3.14/0.7.0 (ps plugin) |
| [Rebuild application](https://github.com/scottatron/dokku-rebuild) | [scottatron][] | v0.3.14 (ps plugin) |
| [Reset mtime](https://github.com/mixxorz/dokku-docker-reset-mtime) | [mixxorz][] | Docker 1.8+ |
| [Supply env vars to buildpacks](https://github.com/cameron-martin/dokku-build-env)<sup>2</sup> | [cameron-martin][] | v0.3.9 (build-env plugin) |
| [user-env-compile](https://github.com/motin/dokku-user-env-compile)<sup>2</sup> | [motin][] | v0.3.9 (build-env plugin) |
| [user-env-compile](https://github.com/musicglue/dokku-user-env-compile)<sup>2</sup> | [musicglue][] | v0.3.9 (build-env plugin) |
| [VHOSTS Custom Configuration](https://github.com/neam/dokku-nginx-vhosts-custom-configuration) | [motin][] | v0.3.10 (domains plugin) |
| [Volume (persistent storage)](https://github.com/ohardy/dokku-volume) | [ohardy][] | v0.5.0 (storage plugin) |
<sup>1</sup> Conflicts with [VHOSTS Custom Configuration](https://github.com/neam/dokku-nginx-vhosts-custom-configuration)
<sup>2</sup> Similar to the heroku-labs feature (see https://devcenter.heroku.com/articles/labs-user-env-compile)
@@ -289,10 +303,15 @@ The following plugins are no longer maintained by their developers.
| Plugin | Author | Compatibility |
| ------------------------------------------------------------------------------------------------- | --------------------- | --------------------- |
| [app-url](https://github.com/mikecsh/dokku-app-url) | [mikecsh][] | Works with 0.2.0 |
| [Chef cookbooks](https://github.com/fgrehm/chef-dokku) | [fgrehm][] | |
| [CouchDB (multi containers)](https://github.com/Flink/dokku-couchdb-multi-containers) | [Flink][] | 0.4.0+ |
| [CouchDB](https://github.com/racehub/dokku-couchdb-plugin) | [RaceHub][] | Compatible with 0.2.0 |
| [Dokku Copy App Config Files](https://github.com/alexkruegger/dokku-app-configfiles) | [alexkruegger][] | Compatible with 0.3.17+ |
| [Dokku Registry](https://github.com/agco-adm/dokku-registry) | [agco-adm][] | 0.4.0+
| [Elasticsearch](https://github.com/robv/dokku-elasticsearch) | [robv][] | Not compatible with >= 0.3.0 (still uses /home/git) |
| [Elasticsearch](https://github.com/blag/dokku-elasticsearch-plugin)<sup>1</sup> | [blag][] | Compatible with 0.2.0 |
| [Graphite/statsd](https://github.com/jlachowski/dokku-graphite-plugin) | [jlachowski][] | < 0.4.0 |
| [HipChat Notifications](https://github.com/cef/dokku-hipchat) | [cef][] | |
| [Memcached](https://github.com/Flink/dokku-memcached-plugin) | [Flink][] | 0.4.0+ |
| [MongoDB (single container)](https://github.com/jeffutter/dokku-mongodb-plugin) | [jeffutter][] | |
| [MySQL](https://github.com/hughfletcher/dokku-mysql-plugin) | [hughfletcher][] | |
@@ -301,3 +320,6 @@ The following plugins are no longer maintained by their developers.
| [PostgreSQL (single container)](https://github.com/jeffutter/dokku-postgresql-plugin) | [jeffutter][] | This plugin creates a single postgresql container that all your apps can use. Thus only one instance of postgresql running (good for servers without a ton of memory). |
| [RiakCS (single container)](https://github.com/jeffutter/dokku-riakcs-plugin) | [jeffutter][] | Incompatible with 0.2.0 (checked at [dccee02][]) |
| [Redis](https://github.com/luxifer/dokku-redis-plugin) | [luxifer][] | |
| [Redis](https://github.com/sekjun9878/dokku-redis-plugin) | [sekjun9878][] | 0.3.26+ |
<sup>1</sup> Forked from [jezdez/dokku-elasticsearch-plugin](https://github.com/jezdez/dokku-elasticsearch-plugin): uses Elasticsearch 1.2 (instead of 0.90), doesn't depend on dokku-link, runs as elasticsearch user instead of root, and turns off multicast autodiscovery for use in a VPS environment.

View File

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

View File

@@ -3,17 +3,20 @@
> New as of 0.3.10
```
domains:add <app> DOMAIN # Add a domain to app
domains:add-global <domain> # Add global domain name
domains [<app>] # List domains
domains:clear <app> # Clear all domains for app
domains:disable <app> # Disable VHOST support
domains:enable <app> # Enable VHOST support
domains:remove <app> DOMAIN # Remove a domain from app
domains:remove-global <domain> # Remove global domain name
domains:add <app> <domain> [<domain> ...] # Add domains to app
domains:add-global <domain> [<domain> ...] # Add global domain names
domains:clear <app> # Clear all domains for app
domains:clear-global # Clear global domain names
domains:disable <app> # Disable VHOST support
domains:enable <app> # Enable VHOST support
domains:remove <app> <domain> [<domain> ...] # Remove domains from app
domains:remove-global <domain> [<domain> ...] # Remove global domain names
domains:report [<app>|--global] [<flag>] # Displays a domains report for one or more apps
domains:set <app> <domain> [<domain> ...] # Set domains for app
domains:set-global <domain> [<domain> ...] # Set global domain names
```
> Adding a domain before deploying an application will result in port mappings being set. This may cause issues for applications that use non-standard ports, as those will not be automatically detected. Please refer to the [proxy documentation](/dokku/advanced-usage/proxy-management/) for information as to how to reconfigure the mappings.
> Adding a domain before deploying an application will result in port mappings being set. This may cause issues for applications that use non-standard ports, as those will not be automatically detected. Please refer to the [proxy documentation](/docs/networking/proxy-management.md) for information as to how to reconfigure the mappings.
## Customizing hostnames
@@ -23,79 +26,93 @@ Applications typically have the following structure for their hostname:
scheme://subdomain.domain.tld
```
The `subdomain` is inferred from the pushed application name, while the `domain.tld` is set during initial configuration and stored in the `$DOKKU_ROOT/VHOST` file. It can then be modified with `dokku domains:add-global` and `dokku domains:remove-global`. This value is used as a default TLD for all applications on a host.
The `subdomain` is inferred from the pushed application name, while the `domain.tld` is set during initial dokku configuration. It can then be modified with `dokku domains:add-global` and `dokku domains:remove-global`. This value is used as a default TLD for all applications on a host.
If a FQDN such as `other.tld` is used as the application name, the default `$DOKKU_ROOT/VHOST` will be ignored and the resulting vhost URL for that application will be `other.tld`. The exception to this rule being that if the FQDN has the same ending as the default vhost (such as `subdomain.domain.tld`), then the entire FQDN will be treated as a subdomain. The application will therefore be deployed at `subdomain.domain.tld.domain.tld`.
If an FQDN such as `dokku.org` is used as the application name, the global virtualhost will be ignored and the resulting vhost URL for that application will be `dokku.org`.
You can optionally override this in a plugin by implementing the `nginx-hostname` plugin trigger. For example, you can reverse the subdomain with the following sample `nginx-hostname` plugin trigger:
You can optionally override this in a plugin by implementing the `nginx-hostname` plugin trigger. If the `nginx-hostname` plugin has no output, the normal hostname algorithm will be executed. See the [plugin trigger documentation](/docs/development/plugin-triggers.md#nginx-hostname) for more information.
```shell
#!/usr/bin/env bash
set -eo pipefail; [[ $DOKKU_TRACE ]] && set -x
APP="$1"; SUBDOMAIN="$2"; VHOST="$3"
NEW_SUBDOMAIN=`echo $SUBDOMAIN | rev`
echo "$NEW_SUBDOMAIN.$VHOST"
```
If the `nginx-hostname` has no output, the normal hostname algorithm will be executed.
## Disabling VHOSTS
If desired, it is possible to disable vhosts with the domains plugin.
```shell
dokku domains:disable myapp
dokku domains:disable node-js-app
```
On subsequent deploys, the nginx virtualhost will be discarded. This is useful when deploying internal-facing services that should not be publicly routeable. As of 0.4.0, nginx will still be configured to proxy your app on some random high port. This allows internal services to maintain the same port between deployments. You may change this port by setting `DOKKU_NGINX_PORT` and/or `DOKKU_NGINX_SSL_PORT` (for services configured to use SSL.)
On subsequent deploys, the nginx virtualhost will be discarded. This is useful when deploying internal-facing services that should not be publicly routeable. As of 0.4.0, nginx will still be configured to proxy your app on some random high port. This allows internal services to maintain the same port between deployments. You may change this port by setting `DOKKU_PROXY_PORT` and/or `DOKKU_PROXY_SSL_PORT` (for services configured to use SSL.)
The domains plugin allows you to specify custom domains for applications. This plugin is aware of any ssl certificates that are imported via `certs:add`. Be aware that disabling domains (with `domains:disable`) will override any custom domains.
```shell
# where `myapp` is the name of your app
# where `node-js-app` is the name of your app
# add a domain to an app
dokku domains:add myapp example.com
dokku domains:add node-js-app dokku.me
# list custom domains for app
dokku domains myapp
dokku domains:report node-js-app
# clear all custom domains for app
dokku domains:clear myapp
dokku domains:clear node-js-app
# remove a custom domain from app
dokku domains:remove myapp example.com
dokku domains:remove node-js-app dokku.me
# set all custom domains for app
dokku domains:set node-js-app dokku.me dokku.org
```
## Displaying domains reports for an app
> New as of 0.8.1
You can get a report about the app's domains status using the `domains:report` command:
```shell
dokku domains:report
```
```
=====> node-js-app domains information
Domains app enabled: true
Domains app vhosts: node-js-app.dokku.org
Domains global enabled: true
Domains global vhosts: dokku.org
=====> python-app domains information
Domains app enabled: true
Domains app vhosts: python-app.dokku.org
Domains global enabled: true
Domains global vhosts: dokku.org
=====> ruby-app domains information
Domains app enabled: true
Domains app vhosts: ruby-app.dokku.org
Domains global enabled: true
Domains global vhosts: dokku.org
```
You can run the command for a specific app also.
```shell
dokku domains:report node-js-app
```
```
=====> node-js-app domains information
Domains app enabled: true
Domains app vhosts: node-js-app.dokku.org
Domains global enabled: true
Domains global vhosts: dokku.org
```
You can pass flags which will output only the value of the specific information you want. For example:
```shell
dokku domains:report node-js-app --domains-app-enabled
```
## Default site
By default, dokku will route any received request with an unknown HOST header value to the lexicographically first site in the nginx config stack. If this is not the desired behavior, you may want to add the following configuration to the global nginx configuration. This will catch all unknown HOST header values and return a `410 Gone` response. You can replace the `return 410;` with `return 444;` which will cause nginx to not respond to requests that do not match known domains (connection refused).
```nginx
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
return 410;
log_not_found off;
}
```
You may also wish to use a separate vhost in your `/etc/nginx/sites-enabled` directory. To do so, create the vhost in that directory as `/etc/nginx/sites-enabled/00-default.conf`. You will also need to change two lines in the main `nginx.conf`:
```nginx
# Swap both conf.d include line and the sites-enabled include line. From:
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
# to the following
include /etc/nginx/sites-enabled/*;
include /etc/nginx/conf.d/*.conf;
```
Alternatively, you may push an app to your dokku host with a name like "00-default". As long as it lists first in `ls /home/dokku/*/nginx.conf | head`, it will be used as the default nginx vhost.
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.

View File

@@ -5,13 +5,18 @@ Typically an application will require some configuration to run properly. Dokku
The `config` plugin provides the following commands to manage your variables:
```
config (<app>|--global) Display all global or app-specific config vars
config:get (<app>|--global) KEY Display a global or app-specific config value
config:set (<app>|--global) KEY1=VALUE1 [KEY2=VALUE2 ...] Set one or more config vars
config:unset (<app>|--global) KEY1 [KEY2 ...] Unset one or more config vars
config (<app>|--global) Pretty-print an app or global environment
config:bundle (<app>|--global) [--merged] Bundle environment into tarfile
config:clear (<app>|--global) Clears environment variables
config:export (<app>|--global) [--envfile] Export a global or app environment
config:get (<app>|--global) KEY Display a global or app-specific config value
config:keys (<app>|--global) [--merged] Show keys set in environment
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).
The variables are available both at run time and during the application build/compilation step for buildpack-based deploys. 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).
Environment variables are available both at run time and during the application build/compilation step for buildpack-based deploys.
For buildpack deploys, Dokku will create a `/app/.env` file that can be used for legacy buildpacks. Note that this is *not* updated when `config:set` or `config:unset` is called, and is only written during a `deploy` or `ps:rebuild`. Developers are encouraged to instead read from the application environment directly, as the proper values will be available then.
@@ -23,10 +28,15 @@ You can set multiple environment variables at once:
dokku config:set node-js-app ENV=prod COMPILE_ASSETS=1
```
When setting variables with whitespaces, you need to escape them:
> Note: Whitespace and special characters get tricky. If you are using dokku locally you don't need to do any special escaping. If you are using dokku over ssh you will need to backslash-escape spaces:
```shell
dokku config:set node-js-app KEY="VAL\ WITH\ SPACES"
```
Dokku can also read base64 encoded values. That's the easiest way to set a value with newlines or spaces. To set a value with newlines you need to base64 encode it first and pass the `--encoded` flag:
```shell
dokku config:set node-js-app KEY=\"VAL\ WITH\ SPACES\"
dokku config:set --encoded node-js-app KEY="$(base64 ~/.ssh/id_rsa)"
```
When setting or unsetting environment variables, you may wish to avoid an application restart. This is useful when developing plugins or when setting multiple environment variables in a scripted manner. To do so, use the `--no-restart` flag:
@@ -35,25 +45,84 @@ When setting or unsetting environment variables, you may wish to avoid an applic
dokku config:set --no-restart node-js-app ENV=prod
```
If you wish to have the variables output in an `eval`-compatible form, you can use the `--export` flag:
If you wish to have the variables output in an `eval`-compatible form, you can use the `config:export` command
```shell
dokku config node-js-app --export
dokku config:export node-js-app
# outputs variables in the form:
#
# export ENV='prod'
# export COMPILE_ASSETS='1'
# source in all the node-js-app app environment variables
eval $(dokku config node-js-app --export)
eval $(dokku config:export node-js-app)
```
You can also output the variables in a single-line for usage in command-line utilities with the `--shell` flag:
You can control the format of the exported variables with the `--format` flag.
`--format=shell` will output the variables in a single-line for usage in command-line utilities:
```shell
dokku config node-js-app --shell
dokku config:export --format shell node-js-app
# outputs variables in the form:
#
# ENV='prod' COMPILE_ASSETS='1'
```
## Special Config Variables
The following config variables have special meanings and can be set in a variety of ways. Unless specified via global app config, the values may not be passed into applications. Usage of these values within applications should be considered unsafe, as they are an internal configuration values that may be moved to the internal properties system in the future.
> Warning: This list is not exhaustive, and may vary from version to version.
| Name | Default | How to modify | Description |
| ------------------------------ | ------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------ | ---------------------------------------------------------------------------------------------------------- |
| `DOKKU_ROOT` | `~dokku` | `/etc/environment` | The root directory where dokku will store application repositories, as well as certain configuration files. |
| `DOKKU_IMAGE` | `gliderlabs/herokuish` | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` | The default image to use when building herokuish containers. Deprecated in favor of using `buildpacks:set-property` |
| `DOKKU_LIB_ROOT` | `/var/lib/dokku` | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` | The directory where plugins, certain data, and general configuration is stored. |
| `PLUGIN_PATH` | `$DOKKU_LIB_ROOT/plugins"` | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` | The top-level directory where plugins are stored. |
| `PLUGIN_AVAILABLE_PATH` | `$PLUGIN_PATH/available"` | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` | The directory that holds all available plugins, including core. |
| `PLUGIN_ENABLED_PATH` | `$PLUGIN_PATH/enabled"` | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` | The directory that holds all enabled plugins, including core. |
| `PLUGIN_CORE_PATH` | `$DOKKU_LIB_ROOT/core-plugins"` | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` | The directory that stores all core plugins. |
| `PLUGIN_CORE_AVAILABLE_PATH` | `$PLUGIN_CORE_PATH/available"` | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` | The directory that stores all available core plugins. |
| `PLUGIN_CORE_ENABLED_PATH` | `$PLUGIN_CORE_PATH/enabled"` | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` | The directory that stores all enabled core plugins. |
| `DOKKU_LOGS_DIR` | `/var/log/dokku` | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` | Where dokku logs should be written to. |
| `DOKKU_LOGS_HOST_DIR` | `$DOKKU_LOGS_DIR` | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` | A path on the host that will be mounted into the vector logging container. |
| `DOKKU_EVENTS_LOGFILE` | `$DOKKU_LOGS_DIR/events.log` | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` | Where the events log file is written to. |
| `DOKKU_APP_NAME` | none | `--app APP` flag | Name of application to work on. Respected by core plugins. |
| `DOKKU_APPS_FORCE_DELETE` | none | `--force` flag | Whether to force delete an application. Also used by other plugins for destructive actions. |
| `DOKKU_CHECKS_URL` | `http://dokku.viewdocs.io/dokku/deployment/zero-downtime-deploys/` | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` | Url displayed during deployment when no CHECKS file exists. |
| `DOKKU_DETACH_CONTAINER` | none | `--detach` flag | Whether to detach a container started via `dokku run`. |
| `DOKKU_QUIET_OUTPUT` | none | `--quiet` flag | Silences certain header output for `dokku` commands. |
| `DOKKU_RM_CONTAINER` | none | `dokku config:set` <br /> `--rm-container` flag <br /> `--rm` flag | Whether to keep `dokku run` containers around or not. |
| `DOKKU_TRACE` | none | `dokku trace:on` <br /> `dokku trace:off` <br /> `--trace` flag | Turn on very verbose debugging. |
| `DOKKU_APP_PROXY_TYPE` | `nginx` | `dokku proxy:set` | |
| `DOKKU_APP_RESTORE` | `1` | `dokku config:set` <br /> `dokku ps:stop` | |
| `DOKKU_APP_SHELL` | `/bin/bash` | `dokku config:set` | Allows users to change the default shell used by Dokku for `dokku enter` and execution of deployment tasks. |
| `DOKKU_APP_TYPE` | `herokuish` | Auto-detected by using buildpacks or dockerfile | |
| `DOKKU_CHECKS_DISABLED` | none | `dokku checks:disable` | |
| `DOKKU_CHECKS_ENABLED` | none | `dokku checks:enable` | |
| `DOKKU_CHECKS_SKIPPED` | none | `dokku checks:skip` | |
| `DOKKU_CHECKS_WAIT` | `5` | `dokku config:set` | Wait this many seconds for the container to start before running checks.
| `DOKKU_CHECKS_TIMEOUT` | `30` | `dokku config:set` | Wait this many seconds for each response before marking it as a failure.
| `DOKKU_CHECKS_ATTEMPTS` | `5` | `dokku config:set` | Number of retries for to run for a specific check before marking it as a failure
| `DOKKU_DEFAULT_CHECKS_WAIT` | `10` | `dokku config:set` | If no user-defined checks are specified - or if the process being checked is not a `web` process - this is the period of time Dokku will wait before checking that a container is still running. |
| `DOKKU_DISABLE_PROXY` | none | `dokku proxy:disable` <br /> `dokku proxy:enable` | Disables the proxy in front of your application, resulting in publicly routing the docker container. |
| `DOKKU_DISABLE_ANSI_PREFIX_REMOVAL` | none | `dokku config:set` <br /> `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` | Disables removal of the ANSI prefix during deploys. Can be used in cases where the client deployer does not understand ansi escape codes. |
| `DOKKU_DISABLE_APP_AUTOCREATION` | none | `dokku config:set` | Disables automatic creation of a non-existent app on deploy. |
| `DOKKU_DOCKER_STOP_TIMEOUT` | `10` | `dokku config:set` | Configurable grace period given to the `docker stop` command. If a container has not stopped by this time, a `kill -9` signal or equivalent is sent in order to force-terminate the container. Both the `ps:stop` and `apps:destroy` commands _also_ respect this value. If not specified, the docker defaults for the [docker stop command](https://docs.docker.com/engine/reference/commandline/stop/) will be used.|
| `DOKKU_DOCKERFILE_CACHE_BUILD` | none | `dokku config:set` | |
| `DOKKU_DOCKERFILE_PORTS` | dockerfile ports | `dokku config:set` | |
| `DOKKU_DOCKERFILE_START_CMD` | none | `dokku config:set` | |
| `DOKKU_PARALLEL_ARGUMENTS`. | none | `dokku config:set` | Allows passing custom arguments to parallel for `ps:*all` commands |
| `DOKKU_PROXY_PORT` | automatically assigned | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` <br /> `dokku config:set` | |
| `DOKKU_PROXY_SSL_PORT` | automatically assigned | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` <br /> `dokku config:set` | |
| `DOKKU_PROXY_PORT_MAP` | automatically assigned | `dokku proxy:ports-add` <br /> `dokku proxy:ports-remove`, `dokku proxy:ports-clear` | |
| `DOKKU_SKIP_ALL_CHECKS` | none | `dokku config:set` | |
| `DOKKU_SKIP_CLEANUP` | | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` | When a deploy is triggered, if this is set to a non-empty value, then old docker containers and images will not be removed. |
| `DOKKU_SKIP_DEFAULT_CHECKS` | | `dokku config:set` | |
| `DOKKU_SKIP_DEPLOY` | | `dokku config:set` | |
| `DOKKU_START_CMD` | none | `dokku config:set` | Command to run instead of `/start $PROC_TYPE` |
| `DOKKU_SYSTEM_GROUP` | `dokku` | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` | System group to chown files as. |
| `DOKKU_SYSTEM_USER` | `dokku` | `/etc/environment` <br /> `~dokku/.dokkurc` <br /> `~dokku/.dokkurc/*` | System user to chown files as. |
| `DOKKU_WAIT_TO_RETIRE` | `60` | `dokku config:set` | After a successful deploy, the grace period given to old containers before they are stopped/terminated. This is useful for ensuring completion of long-running http connections. |

View File

@@ -4,75 +4,251 @@ Dokku uses nginx as its server for routing requests to specific applications. By
```
nginx:access-logs <app> [-t] # Show the nginx access logs for an application (-t follows)
nginx:build-config <app> # (Re)builds nginx config for given app
nginx:error-logs <app> [-t] # Show the nginx error logs for an application (-t follows)
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:validate-config [<app>] [--clean] # Validates and optionally cleans up invalid nginx configurations
```
## Customizing the nginx configuration
## Usage
### 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)
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)
### Binding to specific addresses
> New as of 0.19.2
By default, nginx will listen to all interfaces (`[::]` for IPv6, `0.0.0.0` for IPv4) when proxying requests to applications. This may be changed using the `bind-address-ipv4` and `bind-address-ipv6` properties. This is useful in cases where the proxying should be internal to a network or if there are multiple network interfaces that should respond with different content.
```shell
dokku nginx:set node-js-app bind-address-ipv4 127.0.0.1
dokku nginx:set node-js-app bind-address-ipv6 ::1
```
This may be reverted by setting an empty bind address.
```shell
dokku nginx:set node-js-app bind-address-ipv4
dokku nginx:set node-js-app bind-address-ipv6
```
> Warning: Validation is not performed on either value.
Users with apps that contain a custom `nginx.conf.sigil` file will need to modify the files to respect the new `NGINX_BIND_ADDRESS_IPV4` and `NGINX_BIND_ADDRESS_IPV6` variables.
### HSTS Header
> New as of 0.20.0
If SSL certificates are present, HSTS will be automatically enabled. It can be toggled via `nginx:set`:
```shell
dokku nginx:set node-js-app hsts true
dokku nginx:set node-js-app hsts false
```
The following options are also available via the `nginx:set` command:
- `hsts` (type: boolean, default: `true`): Enables or disables HSTS for your application.
- `hsts-include-subdomains` (type: boolean, default: `true`): Tells the browser that the HSTS policy also applies to all subdomains of the current domain.
- `hsts-max-age` (type: integer, default: `15724800`): Time in seconds to cache HSTS configuration.
- `hsts-preload` (type: boolean, default: `false`): Tells most major web browsers to include the domain in their HSTS preload lists.
Beware that if you enable the header and a subsequent deploy of your application results in an HTTP deploy (for whatever reason), the way the header works means that a browser will not attempt to request the HTTP version of your site if the HTTPS version fails until the max-age is reached.
#### Globally disabling the HSTS Header
HSTS Header can be disabled for all apps by setting the `hsts` property to false after passing the `--global` flag to `nginx:set`. Changing this value globally or on a per-app basis will require rebuilding the nginx config via the `nginx:build-config` command.
```shell
dokku nginx:set --global hsts false
```
Once the HSTS setting is disabled globally, it can be re-enabled on a per-app basis by setting the `hsts` property as normal.
```shell
dokku nginx:set node-js-app hsts true
```
### Checking access logs
You may check nginx access logs via the `nginx:access-logs` command. This assumes that app access logs are being stored in `/var/log/nginx/$APP-access.log`, as is the default in the generated `nginx.conf`.
```shell
dokku nginx:access-logs node-js-app
```
You may also follow the logs by specifying the `-t` flag.
```shell
dokku nginx:access-logs node-js-app -t
```
### Checking error logs
You may check nginx error logs via the `nginx:error-logs` command. This assumes that app error logs are being stored in `/var/log/nginx/$APP-error.log`, as is the default in the generated `nginx.conf`.
```shell
dokku nginx:error-logs node-js-app
```
You may also follow the logs by specifying the `-t` flag.
```shell
dokku nginx:error-logs node-js-app -t
```
### Changing log path
> New as of 0.20.1
The path to where log files are stored can be changed by calling the `nginx:set` command with the following options:
- `access-log-path` (type: string, default: `${NGINX_LOG_ROOT}/${APP}-access.log`): Log path for nginx access logs
- `error-log-path` (type: string, default: `${NGINX_LOG_ROOT}/${APP}-error.log`): Log path for nginx error logs
The defaults should not be changed without verifying that the paths will be writeable by nginx. However, this setting is useful for enabling or disabling logging by setting the values to `off`.
```shell
dokku nginx:set node-js-app access-log-path off
dokku nginx:set node-js-app error-log-path off
```
The default value may be set by passing an empty value for the option:
```shell
dokku nginx:set node-js-app access-log-path
dokku nginx:set node-js-app error-log-path
```
In all cases, the nginx config must be regenerated after setting the above values.
### Changing log format
> New as of 0.22.0
The format of the access log can be changed by calling the `nginx:set` command as follows:
```shell
dokku nginx:set node-js-app access-log-format custom
```
### Specifying a read timeout
> New as of 0.21.0
When proxying requests to your applications, it may be useful to specify a proxy read timeout. This can be done via the `nginx:set` command as follows:
```shell
dokku nginx:set node-js-app proxy-read-timeout 120s
```
The default value is `60s`, and all numeric values _must_ have a trailing time value specified (`s` for seconds, `m` for minutes).
The default value may be set by passing an empty value for the option:
```shell
dokku nginx:set node-js-app proxy-read-timeout
```
In all cases, the nginx config must be regenerated after setting the above value.
### Specifying a custom client_max_body_size
> New as of 0.23.0
Users can override the default `client_max_body_size` value - which limits file uploads - via `nginx:set`. Changing this value will only apply to every `server` stanza of the default `nginx.conf.sigil`; users of custom `nginx.conf.sigil` files must update their templates to support the new value.
```shell
dokku nginx:set node-js-app client-max-body-size 50m
```
The default value is empty string, which will result in nginx falling back to any configured, higher-level defaults (or `1m` if unconfigued; all numerical values _must_ have a size unit specified (`k` for kilobytes, `m` for megabytes).
The default value may be set by passing an empty value for the option:
```shell
dokku nginx:set node-js-app client-max-body-size
```
In all cases, the nginx config must be regenerated after setting the above value.
Changing this value when using the PHP buildpack (or any other buildpack that uses an intermediary server) will require changing the value in the server config shipped with that buildpack. Consult your buildpack documentation for further details.
### Showing the nginx config
For debugging purposes, it may be useful to show the nginx config. This can be achieved via the `nginx:show-config` command.
```shell
dokku nginx:show-config node-js-app
```
### Validating nginx configs
It may be desired to validate an nginx config outside of the deployment process. To do so, run the `nginx:validate-config` command. With no arguments, this will validate all app nginx configs, one at a time. A minimal wrapper nginx config is generated for each app's nginx config, upon which `nginx -t` will be run.
```shell
dokku nginx:validate-config
```
As app nginx configs are actually executed within a shared context, it is possible for an individual config to be invalid when being validated standalone but _also_ be valid within the global server context. As such, the exit code for the `nginx:validate-config` command is the exit code of `nginx -t` against the server's real nginx config.
The `nginx:validate-config` command also takes an optional `--clean` flag. If specified, invalid nginx configs will be removed.
> Warning: Invalid app nginx config's will be removed _even if_ the config is valid in the global server context.
```shell
dokku nginx:validate-config --clean
```
The `--clean` flag may also be specified for a given app:
```shell
dokku nginx:validate-config node-js-app --clean
```
### Customizing the nginx configuration
> New as of 0.5.0
Dokku uses a templating library by the name of [sigil](https://github.com/gliderlabs/sigil) to generate nginx configuration for each app. You may also provide a custom template for your application as follows:
- Copy the following example template to a file named `nginx.conf.sigil` and either:
- check it into the root of your app repo for buildpack applications
- `ADD` it to your dockerfile `WORKDIR`
- if your dockerfile has no `WORKDIR`, `ADD` it to the `/app` folder
- If using a buildpack application, you __must__ check it into the root of your app repo.
- If using a dockerfile or docker image for deploys, either:
- If `WORKDIR` is specified, add the file to the `WORKDIR` specified in the last Dockerfile stage (example: `WORKDIR /app` and `ADD nginx.conf.sigil /app`).
- If no `WORKDIR` is specified, add the file to the root (`/`) of the docker image (example: `ADD nginx.conf.sigil /`).
> When using a custom `nginx.conf.sigil` file, depending upon your application configuration, you *may* be exposing the file externally. As this file is extracted before the container is run, you can, safely delete it in a custom `entrypoint.sh` configured in a Dockerfile `ENTRYPOINT`.
### Example Custom Template
> The default template is available [here](https://github.com/dokku/dokku/blob/master/plugins/nginx-vhosts/templates/nginx.conf.sigil), and can be used as a guide for your own, custom `nginx.conf.sigil` file. Please refer to the appropriate template file version for your Dokku version.
Use case: add an `X-Served-By` header to requests
While enabled by default, using a custom nginx config can be disabled via `nginx:set`. This may be useful in cases where you do not want to allow users to override any higher-level customization of app nginx config.
```go
server {
listen [::]:{{ .NGINX_PORT }};
listen {{ .NGINX_PORT }};
server_name {{ .NOSSL_SERVER_NAME }};
access_log /var/log/nginx/{{ .APP }}-access.log;
error_log /var/log/nginx/{{ .APP }}-error.log;
```shell
# enable fetching custom config (default)
dokku nginx:set node-js-app disable-custom-config false
# set a custom header for requests
add_header X-Served-By www-ec2-01;
gzip on;
gzip_min_length 1100;
gzip_buffers 4 32k;
gzip_types text/css text/javascript text/xml text/plain text/x-component application/javascript application/x-javascript application/json application/xml application/rss+xml font/truetype application/x-font-ttf font/opentype application/vnd.ms-fontobject image/svg+xml;
gzip_vary on;
gzip_comp_level 6;
location / {
proxy_pass http://{{ .APP }};
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Request-Start $msec;
}
include {{ .DOKKU_ROOT }}/{{ .APP }}/nginx.conf.d/*.conf;
}
upstream {{ .APP }} {
{{ range .DOKKU_APP_LISTENERS | split " " }}
server {{ . }};
{{ end }}
}
# disable fetching custom config
dokku nginx:set node-js-app disable-custom-config true
```
### Available template variables
Unsetting this value is the same as enabling custom nginx config usage.
#### Available template variables
```
{{ .APP }} Application name
{{ .APP_SSL_PATH }} Path to SSL certificate and key
{{ .DOKKU_ROOT }} Global dokku root directory (ex: app dir would be `{{ .DOKKU_ROOT }}/{{ .APP }}`)
{{ .DOKKU_APP_LISTENERS }} List of IP:PORT pairs of app containers
{{ .NGINX_PORT }} Non-SSL nginx listener port (same as `DOKKU_NGINX_PORT` config var)
{{ .NGINX_SSL_PORT }} SSL nginx listener port (same as `DOKKU_NGINX_SSL_PORT` config var)
{{ .DOKKU_ROOT }} Global Dokku root directory (ex: app dir would be `{{ .DOKKU_ROOT }}/{{ .APP }}`)
{{ .PROXY_PORT }} Non-SSL nginx listener port (same as `DOKKU_PROXY_PORT` config var)
{{ .PROXY_SSL_PORT }} SSL nginx listener port (same as `DOKKU_PROXY_SSL_PORT` config var)
{{ .NOSSL_SERVER_NAME }} List of non-SSL VHOSTS
{{ .PROXY_PORT_MAP }} List of port mappings (same as `DOKKU_PROXY_PORT_MAP` config var)
{{ .PROXY_UPSTREAM_PORTS }} List of configured upstream ports (derived from `DOKKU_PROXY_PORT_MAP` config var)
@@ -81,157 +257,127 @@ upstream {{ .APP }} {
{{ .SSL_SERVER_NAME }} List of SSL VHOSTS
```
> NOTE: Application config variables are available for use in custom templates. To do so, use the form of `{{ var "FOO" }}` to access a variable named `FOO`.
Finally, each process type has it's network listeners - a list of IP:PORT pairs for the respective app containers - exposed via an `.DOKKU_APP_${PROCESS_TYPE}_LISTENERS` variable - the `PROCESS_TYPE` will be upper-cased with hyphens transformed into underscores. Users can use the new variables to expose non-web processes via the nginx proxy.
> Note: Application config variables are available for use in custom templates. To do so, use the form of `{{ var "FOO" }}` to access a variable named `FOO`.
### Example HTTP to HTTPS Custom Template
Use case: a simple dockerfile app that includes `EXPOSE 80`
```go
server {
listen [::]:80;
listen 80;
server_name {{ .NOSSL_SERVER_NAME }};
access_log /var/log/nginx/{{ .APP }}-access.log;
error_log /var/log/nginx/{{ .APP }}-error.log;
return 301 https://$host:443$request_uri;
}
server {
listen [::]:443 ssl spdy;
listen 443 ssl spdy;
{{ if .SSL_SERVER_NAME }}server_name {{ .SSL_SERVER_NAME }}; {{ end }}
access_log /var/log/nginx/{{ .APP }}-access.log;
error_log /var/log/nginx/{{ .APP }}-error.log;
ssl_certificate {{ .APP_SSL_PATH }}/server.crt;
ssl_certificate_key {{ .APP_SSL_PATH }}/server.key;
keepalive_timeout 70;
add_header Alternate-Protocol 443:npn-spdy/2;
location / {
proxy_pass http://{{ .APP }};
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Request-Start $msec;
}
include {{ .DOKKU_ROOT }}/{{ .APP }}/nginx.conf.d/*.conf;
}
upstream {{ .APP }} {
{{ range .DOKKU_APP_LISTENERS | split " " }}
server {{ . }};
{{ end }}
}
```
### Example using new proxy port mapping
```go
{{ range $port_map := .PROXY_PORT_MAP | split " " }}
{{ $port_map_list := $port_map | split ":" }}
{{ $scheme := index $port_map_list 0 }}
{{ $listen_port := index $port_map_list 1 }}
{{ $upstream_port := index $port_map_list 2 }}
server {
listen [::]:{{ $listen_port }};
listen {{ $listen_port }};
server_name {{ $.NOSSL_SERVER_NAME }};
access_log /var/log/nginx/{{ $.APP }}-access.log;
error_log /var/log/nginx/{{ $.APP }}-error.log;
location / {
gzip on;
gzip_min_length 1100;
gzip_buffers 4 32k;
gzip_types text/css text/javascript text/xml text/plain text/x-component application/javascript application/x-javascript application/json application/xml application/rss+xml font/truetype application/x-font-ttf font/opentype application/vnd.ms-fontobject image/svg+xml;
gzip_vary on;
gzip_comp_level 6;
proxy_pass http://{{ $.APP }}-{{ $upstream_port }};
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Request-Start $msec;
}
include {{ $.DOKKU_ROOT }}/{{ $.APP }}/nginx.conf.d/*.conf;
}
{{ range $upstream_port := $.PROXY_UPSTREAM_PORTS | split " " }}
upstream {{ $.APP }}-{{ $upstream_port }} {
{{ range $listeners := $.DOKKU_APP_LISTENERS | split " " }}
{{ $listener_list := $listeners | split ":" }}
{{ $listener_ip := index $listener_list 0 }}
{{ $listener_port := index $listener_list 1 }}
server {{ $listener_ip }}:{{ $upstream_port }};{{ end }}
}
{{ end }}
```
### Customizing via configuration files included by the default templates
#### Customizing via configuration files included by the default templates
The default nginx.conf template will include everything from your apps `nginx.conf.d/` subdirectory in the main `server {}` block (see above):
```go
```
include {{ .DOKKU_ROOT }}/{{ .APP }}/nginx.conf.d/*.conf;
```
That means you can put additional configuration in separate files, for example to limit the uploaded body size to 50 megabytes, do
That means you can put additional configuration in separate files. To increase the client request header timeout, the following can be performed:
```shell
mkdir /home/dokku/myapp/nginx.conf.d/
echo 'client_max_body_size 50M;' > /home/dokku/myapp/nginx.conf.d/upload.conf
chown dokku:dokku /home/dokku/myapp/nginx.conf.d/upload.conf
mkdir /home/dokku/node-js-app/nginx.conf.d/
echo 'client_header_timeout 50s;' > /home/dokku/node-js-app/nginx.conf.d/timeout.conf
chown dokku:dokku /home/dokku/node-js-app/nginx.conf.d/upload.conf
service nginx reload
```
The example above uses additional configuration files directly on the dokku host. Unlike the `nginx.conf.sigil` file, these additional files will not be copied over from your application repo, and thus need to be placed in the `/home/dokku/myapp/nginx.conf.d/` directory manually.
The example above uses additional configuration files directly on the Dokku host. Unlike the `nginx.conf.sigil` file, these additional files will not be copied over from your application repo, and thus need to be placed in the `/home/dokku/node-js-app/nginx.conf.d/` directory manually.
## Domains plugin
For PHP Buildpack users, you will also need to provide a `Procfile` and an accompanying `nginx.conf` file to customize the nginx config *within* the container. The following are example contents for your `Procfile`
See the [domain configuration documentation](/dokku/configuration/domains/).
web: vendor/bin/heroku-php-nginx -C nginx.conf -i php.ini php/
## Customizing hostnames
Your `nginx.conf` file - not to be confused with Dokku's `nginx.conf.sigil` - would also need to be configured as shown in this example:
See the [customizing hostnames documentation](/dokku/configuration/domains/#customizing-hostnames).
client_header_timeout 50s;
location / {
index index.php;
try_files $uri $uri/ /index.php$is_args$args;
}
## Disabling VHOSTS
Please adjust the `Procfile` and `nginx.conf` file as appropriate.
See the [disabling vhosts documentation](/dokku/configuration/domains/#disabling-vhosts).
### Custom Error Pages
## Default site
By default, Dokku provides custom error pages for the following three categories of errors:
See the [default site documentation](/dokku/configuration/domains/#default-site).
- 4xx: For all non-404 errors with a 4xx response code.
- 404: For "404 Not Found" errors.
- 5xx: For all 5xx error responses
## Running behind a load balancer
These are provided as an alternative to the generic Nginx error page, are shared for _all_ applications, and their contents are located on disk at `/var/lib/dokku/data/nginx-vhosts/dokku-errors`. To customize them for a specific app, create a custom `nginx.conf.sigil` as described above and change the paths to point elsewhere.
See the [load balancer documentation](/dokku/configuration/ssl/#running-behind-a-load-balancer).
### Default site
## HSTS Header
By default, Dokku will route any received request with an unknown HOST header value to the lexicographically first site in the nginx config stack. If this is not the desired behavior, you may want to add the following configuration to the global nginx configuration.
See the [HSTS documentation](/dokku/configuration/ssl/#hsts-header).
Create the file at `/etc/nginx/conf.d/00-default-vhost.conf`:
## SSL Configuration
```nginx
server {
listen 80 default_server;
listen [::]:80 default_server;
See the [ssl documentation](/dokku/configuration/ssl/).
server_name _;
access_log off;
return 410;
}
## Disabling Nginx
# To handle HTTPS requests, you can uncomment the following section.
#
# Please note that in order to let this work as expected, you need a valid
# SSL certificate for any domains being served. Browsers will show SSL
# errors in all other cases.
#
# Note that the key and certificate files in the below example need to
# be copied into /etc/nginx/ssl/ folder.
#
# server {
# listen 443 ssl;
# listen [::]:443 ssl;
# server_name _;
# ssl_certificate /etc/nginx/ssl/cert.crt;
# ssl_certificate_key /etc/nginx/ssl/cert.key;
# access_log off;
# return 410;
# }
```
See the [proxy documentation](/dokku/advanced-usage/proxy-management/).
Make sure to reload nginx after creating this file by running `service nginx reload`.
## Managing Proxy Port mappings
This will catch all unknown HOST header values and return a `410 Gone` response. You can replace the `return 410;` with `return 444;` which will cause nginx to not respond to requests that do not match known domains (connection refused).
See the [proxy documentation](/dokku/advanced-usage/proxy-management/#proxy-port-mapping).
The configuration file must be loaded before `/etc/nginx/conf.d/dokku.conf`, so it can not be arranged as a vhost in `/etc/nginx/sites-enabled` that is only processed afterwards.
Alternatively, you may push an app to your Dokku host with a name like "00-default". As long as it lists first in `ls /home/dokku/*/nginx.conf | head`, it will be used as the default nginx vhost.
## Other
### Domains plugin
See the [domain configuration documentation](/docs/configuration/domains.md) for more information on how to configure domains for your app.
### Customizing hostnames
See the [customizing hostnames documentation](/docs/configuration/domains.md#customizing-hostnames) for more information on how to configure domains for your app.
### Disabling VHOSTS
See the [disabling vhosts documentation](/docs/configuration/domains.md#disabling-vhosts) for more information on how to disable domain usage for your app.
### Running behind a load balancer
See the [load balancer documentation](/docs/configuration/ssl.md#running-behind-a-load-balancer) for more information on how to configure your nginx config for running behind a network load balancer.
### SSL Configuration
See the [ssl documentation](/docs/configuration/ssl.md) for more information on how to configure SSL certificates for your application.
### Disabling Nginx
See the [proxy documentation](/docs/advanced-usage/proxy-management.md) for more information on how to disable nginx as the proxy implementation for your app.
### Managing Proxy Port mappings
See the [proxy documentation](/docs/advanced-usage/proxy-management.md#proxy-port-mapping) for more information on how to manage ports proxied for your app.
### Regenerating nginx config
See the [proxy documentation](/docs/advanced-usage/proxy-management.md#regenerating-proxy-config) for more information on how to rebuild the nginx proxy configuration for your app.

View File

@@ -7,8 +7,9 @@ Dokku supports SSL/TLS certificate inspection and CSR/Self-signed certificate ge
```
certs:add <app> CRT KEY # Add an ssl endpoint to an app. Can also import from a tarball on stdin.
certs:generate <app> DOMAIN # Generate a key and certificate signing request (and self-signed certificate)
certs:info <app> # Show certificate information for an ssl endpoint.
certs:remove <app> # Remove an SSL Endpoint from an app.
certs:report [<app>] [<flag>] # Displays an ssl report for one or more apps
certs:show <app> <crt|key> # Show the server.crt or server.key on stdout
certs:update <app> CRT KEY # Update an SSL Endpoint on an app. Can also import from a tarball on stdin
```
@@ -17,7 +18,7 @@ certs:update <app> CRT KEY # Update an SSL Endpoint on an app. Can
dokku nginx:import-ssl <app> < certs.tar
```
> Adding an ssl certificate before deploying an application will result in port mappings being updated. This may cause issues for applications that use non-standard ports, as those may not be automatically detected. Please refer to the [proxy documentation](/dokku/advanced-usage/proxy-management/) for information as to how to reconfigure the mappings.
> Adding an ssl certificate before deploying an application will result in port mappings being updated. This may cause issues for applications that use non-standard ports, as those may not be automatically detected. Please refer to the [proxy documentation](/docs/advanced-usage/proxy-management.md) for information as to how to reconfigure the mappings.
## Per-application certificate management
@@ -29,8 +30,7 @@ The `certs:add` command can be used to push a `tar` containing a certificate `.c
```shell
tar cvf cert-key.tar server.crt server.key
# replace APP with the name of your application
dokku certs:add <app> < cert-key.tar
dokku certs:add node-js-app < cert-key.tar
```
> Note: If your `.crt` file came alongside a `.ca-bundle`, you'll want to concatenate those into a single `.crt` file before adding it to the `.tar`.
@@ -41,9 +41,9 @@ cat yourdomain_com.crt yourdomain_com.ca-bundle > server.crt
#### SSL and Multiple Domains
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](/dokku/configuration/domains/).
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](/dokku/configuration/nginx/).
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).
### Certificate generation
@@ -51,78 +51,105 @@ Note that with the default nginx template, requests will be redirected to the `h
The `certs:generate` command will walk you through the correct `openssl` commands to create a key, csr and a self-signed cert for a given app/domain. We automatically put the self-signed cert in place as well as add the specified domain to the application configuration.
If you decide to obtain a CA signed certficate, you can import that certificate using the aformentioned `dokku certs:add` command.
### Certificate information
The `certs:info` command will simply inspect the install SSL cert and print out details. NOTE: The server-wide certificate will be inspect if installed and no app-specific certificate exists.
```shell
dokku certs:info node-js-app
```
```
-----> Fetching SSL Endpoint info for node-js-app...
-----> Certificate details:
=====> Common Name(s):
=====> test.dokku.me
=====> Expires At: Aug 24 23:32:59 2016 GMT
=====> Issuer: C=US, ST=California, L=San Francisco, O=dokku.me, CN=test.dokku.me
=====> Starts At: Aug 25 23:32:59 2015 GMT
=====> Subject: C=US; ST=California; L=San Francisco; O=dokku.me; CN=test.dokku.me
=====> SSL certificate is self signed.
```
If you decide to obtain a CA signed certificate, you can import that certificate using the aforementioned `dokku certs:add` command.
### Certificate removal
The `certs:remove` command only works on app-specific certificates. It will `rm` the app-specific tls directory, rebuild the nginx configuration, and reload nginx.
### Showing the certificate
The `certs:show` command can be used to show your configured certs for an app. The show command can be used for example to export Let's Encrypt certificates
after they've been generated. You can export it as follows:
```shell
dokku certs:show node-js-app crt > server.crt
dokku certs:show node-js-app key > server.key
```
### Displaying certificate reports for an app
> New as of 0.8.1
You can get a report about the apps ssl status using the `certs:report` command:
```shell
dokku certs:report
```
```
=====> node-js-app
Ssl dir: /home/dokku/node-js-app/tls
Ssl enabled: true
Ssl hostnames: *.node-js-app.org node-js-app.org
Ssl expires at: Oct 5 23:59:59 2019 GMT
Ssl issuer: C=GB, ST=Greater Manchester, L=Salford, O=COMODO CA Limited, CN=COMODO RSA Domain Validation Secure Server CA
Ssl starts at: Oct 5 00:00:00 2016 GMT
Ssl subject: OU=Domain Control Validated; OU=PositiveSSL Wildcard; CN=*.node-js-app.org
Ssl verified: self signed.
=====> python-app
Ssl dir: /home/dokku/python-app/tls
Ssl enabled: false
Ssl hostnames:
Ssl expires at:
Ssl issuer:
Ssl starts at:
Ssl subject:
Ssl verified:
```
You can run the command for a specific app also.
```shell
dokku certs:report node-js-app
```
```
=====> node-js-app ssl information
Ssl dir: /home/dokku/node-js-app/tls
Ssl enabled: true
Ssl hostnames: *.dokku.org dokku.org
Ssl expires at: Oct 5 23:59:59 2019 GMT
Ssl issuer: C=GB, ST=Greater Manchester, L=Salford, O=COMODO CA Limited, CN=COMODO RSA Domain Validation Secure Server CA
Ssl starts at: Oct 5 00:00:00 2016 GMT
Ssl subject: OU=Domain Control Validated; OU=PositiveSSL Wildcard; CN=*.dokku.org
Ssl verified: self signed.
```
You can pass flags which will output only the value of the specific information you want. For example:
```shell
dokku certs:report node-js-app --ssl-enabled
```
## HSTS Header
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 not, by default, enable this header. It is thus left up to you, the user, to enable it for your site.
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.
Beware that if you enable the header and a subsequent deploy of your application results in an HTTP deploy (for whatever reason), the way the header works means that a browser will not attempt to request the HTTP version of your site if the HTTPS version fails.
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.
## HTTP/2 support
Certain versions of nginx have bugs that prevent [HTTP/2](https://nginx.org/en/docs/http/ngx_http_v2_module.html) from properly responding to all clients, thus causing applications to be unavailable. For HTTP/2 to be enabled in your applications' nginx configs, you need to have installed nginx 1.11.5 or higher. See [issue 2435](https://github.com/dokku/dokku/issues/2435) for more details.
## Running behind a load balancer
Your application has access to the HTTP headers `X-Forwarded-Proto`, `X-Forwarded-For` and `X-Forwarded-Port`. These headers indicate the protocol of the original request (HTTP or HTTPS), the port number, and the IP address of the client making the request, respectively. The default configuration is for Nginx to set these headers.
Your application has access to the HTTP headers `X-Forwarded-Proto`, `X-Forwarded-Port` and `X-Forwarded-For`. These headers indicate the protocol of the original request (HTTP or HTTPS), the port number, and the IP address of the client making the request, respectively. The default configuration is for Nginx to set these headers.
If your server runs behind an HTTP/S load balancer, then Nginx will see all requests as coming from the load balancer. If your load balancer sets the `X-Forwarded-` headers, you can tell Nginx to pass these headers from load balancer to your application by using the following [nginx custom template](/dokku/configuration/nginx/#customizing-the-nginx-configuration)
If your server runs behind an HTTP(S) load balancer, then Nginx will see all requests as coming from the load balancer. If your load balancer sets the `X-Forwarded-` headers, you can tell Nginx to pass these headers from load balancer to your application via `nginx:set`:
```go
server {
listen [::]:{{ .NGINX_PORT }};
listen {{ .NGINX_PORT }};
server_name {{ .NOSSL_SERVER_NAME }};
access_log /var/log/nginx/{{ .APP }}-access.log;
error_log /var/log/nginx/{{ .APP }}-error.log;
location / {
proxy_pass http://{{ .APP }};
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
proxy_set_header X-Forwarded-For $http_x_forwarded_for;
proxy_set_header X-Forwarded-Port $http_x_forwarded_port;
proxy_set_header X-Request-Start $msec;
}
include {{ .DOKKU_ROOT }}/{{ .APP }}/nginx.conf.d/*.conf;
}
upstream {{ .APP }} {
{{ range .DOKKU_APP_LISTENERS | split " " }}
server {{ . }};
{{ end }}
}
```shell
dokku nginx:set node-js-app x-forwarded-for-value "\$http_x_forwarded_for"
dokku nginx:set node-js-app x-forwarded-port-value "\$http_x_forwarded_port"
dokku nginx:set node-js-app x-forwarded-proto-value "\$http_x_forwarded_proto"
```
Only use this option if:
1. All requests are terminated at the load balancer, and forwarded to Nginx
2. The load balancer is configured to send the `X-Forwarded-` headers (this may be off by default)
If it's possible to make HTTP/S requests directly to Nginx, bypassing the load balancer, or if the load balancer is not configured to set these headers, then it becomes possible for a client to set these headers to arbitrary values.
If it's possible to make HTTP(S) requests directly to Nginx, bypassing the load balancer, or if the load balancer is not configured to set these headers, then it becomes possible for a client to set these headers to arbitrary values.
This could result in security issue, for example, if your application looks at the value of the `X-Forwarded-Proto` to determine if the request was made over HTTPS.
### SSL Port Exposure
When your app is served from port `80` then the `/home/dokku/APP/nginx.conf` file will automatically be updated to instruct nginx to respond to ssl on port 443 as a new cert is added. If your app uses a non-standard port (perhaps you have a dockerfile deploy exposing port `99999`) you may need to manually expose an ssl port via `dokku proxy:ports-add <APP> https:443:99999`.

View File

@@ -1,61 +1,78 @@
# Deploying to Dokku
> Note: This walkthrough uses the hostname `dokku.me` in commands. When deploying to your own server, you should substitute the domain `dokku.me` for the domain name or IP address associated with your server. Users of the Vagrant VM included with Dokku can use `dokku.me` which points to the IP of the VM.
## Deploy tutorial
Once Dokku has been configured with at least one user, applications can be deployed via a `git push` command. To quickly see Dokku deployment in action, you can use the Heroku Ruby on Rails example app.
Once you have configured Dokku with at least one user, you can deploy applications using `git push`. To quickly see Dokku deployment in action, try using [the Heroku Ruby on Rails "Getting Started" app](https://github.com/heroku/ruby-getting-started).
```shell
# from your local machine
git clone git@github.com:heroku/ruby-rails-sample.git
# SSH access to github must be enabled on this host
git clone https://github.com/heroku/ruby-getting-started
```
### Create the app
Create the application on the Dokku host. You will need to ssh onto the host to run this command.
SSH into the Dokku host and create the application as follows:
```shell
# on your dokku host
dokku apps:create ruby-rails-sample
# on the Dokku host
dokku apps:create ruby-getting-started
```
### Create the backing services
When you create a new app, Dokku by default *does not* provide any datastores such as MySQL or PostgreSQL. You will need to install plugins to handle that, but fortunately [Dokku has official plugins](/dokku/community/plugins/#official-plugins-beta) for common datastores. Our sample app requires a PostgreSQL service:
Dokku by default **does not** provide datastores (e.g. MySQL, PostgreSQL) on a newly created app. You can add datastore support by installing plugins, and the Dokku project [provides official plugins](/docs/community/plugins.md#official-plugins-beta) for common datastores.
The Getting Started app requires a PostgreSQL service, so install the plugin and create the related service as follows:
```shell
# on your dokku host
# on the Dokku host
# install the postgres plugin
# plugin installation requires root, hence the user change
sudo dokku plugin:install https://github.com/dokku/dokku-postgres.git
# create a postgres service with the name rails-database
dokku postgres:create rails-database
# create a postgres service with the name railsdatabase
dokku postgres:create railsdatabase
```
> Each services may take a few moments to create.
Each service may take a few moments to create.
### Linking backing services to applications
Once the service creation is complete, set the `POSTGRES_URL` environment variable by linking the service.
Once the services have been created, you then set the `DATABASE_URL` environment variable by linking the service, as follows:
```shell
# on your dokku host
# on the Dokku host
# each official datastore offers a `link` method to link a service to any application
dokku postgres:link rails-database ruby-rails-sample
dokku postgres:link railsdatabase ruby-getting-started
```
> You can link a single service to multiple applications or use one service per application.
Dokku supports linking a single service to multiple applications as well as linking only one service per application.
### Deploy the app
Now you can deploy the `ruby-rails-sample` app to your Dokku server. All you have to do is add a remote to name the app. Applications are created on-the-fly on the Dokku server.
> Warning: Your app should respect the `PORT` environment variable, otherwise it may not respond to web requests. You can find more information in the [port management documentation](/docs/networking/port-management.md).**
Now you can deploy the `ruby-getting-started` app to your Dokku server. All you have to do is add a remote to name the app. Applications are created on-the-fly on the Dokku server.
```shell
# from your local machine
git remote add dokku dokku@dokku.me:ruby-rails-sample
git push dokku master
# the remote username *must* be dokku or pushes will fail
cd ruby-getting-started
git remote add dokku dokku@dokku.me:ruby-getting-started
git push dokku main:master
```
> Note: Some tools may not support the short-upstream syntax referenced above, and you may need to prefix
> the upstream with the scheme `ssh://` like so: `ssh://dokku@dokku.me:ruby-getting-started`
> Please see the [Git](https://git-scm.com/docs/git-clone#_git_urls_a_id_urls_a) documentation for more details.
> Note: Your private key should be registered with `ssh-agent` in your local development environment. If you get a `permission denied` error when pushing, you can register your private key as follows: `ssh-add -k ~/<your private key>`.
After running `git push dokku main:master`, you should have output similar to this in your terminal:
```
Counting objects: 231, done.
Delta compression using up to 8 threads.
@@ -63,7 +80,7 @@ Compressing objects: 100% (162/162), done.
Writing objects: 100% (231/231), 36.96 KiB | 0 bytes/s, done.
Total 231 (delta 93), reused 147 (delta 53)
-----> Cleaning up...
-----> Building ruby-rails-sample from herokuish...
-----> Building ruby-getting-started from herokuish...
-----> Adding BUILD_ENV to build environment...
-----> Ruby app detected
-----> Compiling Ruby/Rails
@@ -78,61 +95,75 @@ Total 231 (delta 93), reused 147 (delta 53)
...
=====> Application deployed:
http://ruby-rails-sample.dokku.me
http://ruby-getting-started.dokku.me
```
When the deploy finishes, the application's URL will be shown as seen above.
Once the deploy is complete, the application's web URL will be generated as above.
Dokku supports deploying applications via [Heroku buildpacks](https://devcenter.heroku.com/articles/buildpacks) with [Herokuish](https://github.com/gliderlabs/herokuish#buildpacks) or using a project's [dockerfile](https://docs.docker.com/reference/builder/).
Dokku supports deploying applications in a few ways:
### Deploying non-master branch
Dokku only supports deploying from its master branch, so if you'd like to deploy a different local branch use: ```git push dokku <local branch>:master```
You can also support pushing multiple branches using the [receive-branch](/dokku/development/plugin-triggers/#receive-branch) plugin trigger in a custom plugin.
- [Heroku buildpacks](https://devcenter.heroku.com/articles/buildpacks) via [Herokuish](https://github.com/gliderlabs/herokuish#buildpacks): See the [herokuish buildpacks documentation](/docs/deployment/methods/herokuish-buildpacks.md) to learn about the different ways to specify a buildpack.
- This is the default method used by Dokku.
- [Dockerfile](https://docs.docker.com/reference/builder/): See the [dockerfile documentation](/docs/deployment/methods/dockerfiles.md) to learn about the different ways to configure Dockerfile-based deploys.
- [Docker Image](https://docs.docker.com/get-started/overview/#docker-objects): See the [docker image documentation](/docs/deployment/methods/images.md) to learn about how to deploy a Docker Image.
### Skipping deployment
If you only want to rebuild and tag a container, you can skip the deployment phase by setting `$DOKKU_SKIP_DEPLOY` to `true` by running:
``` shell
# on your dokku host
dokku config:set ruby-rails-sample DOKKU_SKIP_DEPLOY=true
# on the Dokku host
dokku config:set ruby-getting-started DOKKU_SKIP_DEPLOY=true
```
### Deploying with private git submodules
### Redeploying or restarting
Dokku uses git locally (i.e. not a docker image) to build its own copy of your app repo, including submodules. This is done as the `dokku` user. Therefore, in order to deploy private git submodules, you'll need to drop your deploy key in `/home/dokku/.ssh/` and potentially add github.com (or your VCS host key) into `/home/dokku/.ssh/known_hosts`. The following test should help confirm you've done it correctly.
If you need to redeploy or restart your app:
```shell
# on your dokku host
# on the Dokku host
dokku ps:rebuild ruby-getting-started
```
See the [process scaling documentation](/docs/deployment/process-management.md) for more information on how to manage your app processes.
### Deploying with private Git submodules
Dokku uses Git locally (i.e. not a Docker image) to build its own copy of your app repo, including submodules, as the `dokku` user. This means that in order to deploy private Git submodules, you need to put your deploy key in `/home/dokku/.ssh/` and potentially add `github.com` (or your VCS host key) into `/home/dokku/.ssh/known_hosts`. You can use the following test to confirm your setup is correct:
```shell
# on the Dokku host
su - dokku
ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts
ssh -T git@github.com
```
Note that if the buildpack or dockerfile build process require ssh key access for other reasons, the above may not always apply.
> Warning: if the buildpack or Dockerfile build process require SSH key access for other reasons, the above may not always apply.
## Deploying to subdomains
The name of remote repository is used as the name of application to be deployed, as for example above:
If you do not enter a fully qualified domain name when pushing your app, Dokku deploys the app to `<remotename>.yourdomain.tld` as follows:
```shell
git remote add dokku dokku@dokku.me:ruby-rails-sample
git push dokku master
# from your local machine
# the remote username *must* be dokku or pushes will fail
# the below example assumes your app server domain or IP is dokku.me. Push in the form of: dokku@{serveripordomain}:{dokkuappname}
git remote add dokku dokku@dokku.me:ruby-getting-started
git push dokku main:master
```
```
remote: -----> Application deployed:
remote: http://ruby-rails-sample.dokku.me
remote: http://ruby-getting-started.dokku.me
```
You can also specify fully qualified names, say `app.dokku.me`, as
You can also specify the fully qualified name as follows:
```shell
# from your local machine
# the remote username *must* be dokku or pushes will fail
git remote add dokku dokku@dokku.me:app.dokku.me
git push dokku master
git push dokku main:master
```
```
@@ -140,11 +171,13 @@ remote: -----> Application deployed:
remote: http://app.dokku.me
```
This is in particular useful, then you want to deploy to root domain, as
This is useful when you want to deploy to the root domain:
```shell
# from your local machine
# the remote username *must* be dokku or pushes will fail
git remote add dokku dokku@dokku.me:dokku.me
git push dokku master
git push dokku main:master
```
... deployment ...
@@ -152,40 +185,44 @@ git push dokku master
remote: -----> Application deployed:
remote: http://dokku.me
## Dokku/Docker Container Management Compatibility
## Dokku/Docker container management compatibility
Dokku is, at its core, a docker container manager. Thus, it does not necessarily play well with other out-of-band processes interacting with the docker daemon. One thing to note as in [issue #1220](https://github.com/dokku/dokku/issues/1220), dokku executes a cleanup function prior to every deployment.
Dokku is, at its core, a Docker container manager. Thus, it does not necessarily play well with other out-of-band processes interacting with the Docker daemon.
As of 0.5.x, this function removes all containers with the label `dokku` where the status is either `dead` or `exited`, as well as all `dangling` images. Previous versions would remove `dead` or `exited` containers, regardless of their label.
Prior to every deployment, Dokku will execute a cleanup function. As of 0.5.x, the cleanup removes all containers with the `dokku` label where the status is either `dead` or `exited` (previous versions would remove _all_ `dead` or `exited` containers). The cleanup function also removes all images with `dangling` status.
## Adding deploy users
See the [user management documentation](/dokku/deployment/user-management).
See the [user management documentation](/docs/deployment/user-management.md) for more information on how to manage users with access to your Dokku server.
## Default vhost
See the [nginx documentation](/dokku/configuration/nginx/#default-site).
See the [domains documentation](/docs/configuration/domains.md#default-site) for more information on how to manage the default site.
## Deploying non-master branch
See the [Git documentation](/docs/deployment/methods/git.md#changing-the-deploy-branch) for more information on deploying a non-master branch to your application.
## Dockerfile deployment
See the [dockerfile documentation](/dokku/deployment/methods/dockerfiles/).
## Specifying a custom buildpack
See the [buildpack documentation](/dokku/deployment/methods/buildpacks/).
See the [Dockerfile documentation](/docs/deployment/methods/dockerfiles.md) for information Dokku's Dockerfile support.
## Image tagging
See the [image tagging documentation](/dokku/deployment/methods/images/).
See the [image tagging documentation](/docs/deployment/methods/images.md) for more information on how Docker images can be tagged and deployed for a given application.
## Specifying a custom buildpack
See the [herokuish buildpack documentation](/docs/deployment/methods/herokuish-buildpacks.md) for more information on how to specify a set of custom buildpacks for your application.
## Removing a deployed app
See the [application management documentation](/dokku/deployment/application-management/#removing-a-deployed-app).
See the [application management documentation](/docs/deployment/application-management.md#removing-a-deployed-app) for more information on how to remove an application from your Dokku server.
### Renaming a deployed app
## Renaming a deployed app
See the [application management documentation](/dokku/deployment/application-management/#renaming-a-deployed-app).
See the [application management documentation](/docs/deployment/application-management.md#renaming-a-deployed-app) for more information on how an application can be renamed and the impact of doing so upon the application and associated resources.
## Zero downtime deploy
See the [zero-downtime deploy documentation](/dokku/deployment/zero-downtime-deploys/).
See the [zero-downtime deploy documentation](/docs/deployment/zero-downtime-deploys.md) for more information on how Dokku enables zero-downtime deploys.

View File

@@ -3,16 +3,28 @@
> New as of 0.3.1
```
apps # List your apps
apps:clone <old-app> <new-app> # Clones an app
apps:create <app> # Create a new app
apps:destroy <app> # Permanently destroy an app
apps:exists <app> # Checks if an app exists
apps:list # List your apps
apps:lock <app> # Locks an app for deployment
apps:locked <app> # Checks if an app is locked for deployment
apps:rename <old-app> <new-app> # Rename an app
apps:report [<app>] [<flag>] # Display report about an app
apps:unlock <app> # Unlocks an app for deployment
```
You can easily list all available applications using the `apps` command:
## Usage
### Listing applications
> New as of 0.8.1. Use the `apps` command for older versions.
You can easily list all available applications using the `apps:list` command:
```shell
dokku apps
dokku apps:list
```
```
@@ -21,10 +33,10 @@ node-js-app
python-app
```
Note that you can easily hide extra output from dokku commands by using the `--quiet` flag, which makes it easier to parse on the command-line.
Note that you can easily hide extra output from Dokku commands by using the `--quiet` flag, which makes it easier to parse on the command line.
```shell
dokku --quiet apps
dokku --quiet apps:list
```
```
@@ -32,7 +44,21 @@ node-js-app
python-app
```
## Manually creating an application
### Checking if an application exists
For CI/CD pipelines, it may be useful to see if an application exists before creating a "review" application for a specific branch. You can do so via the `apps:exists` command:
```shell
dokku apps:exists node-js-app
```
```
App does not exist
```
The `apps:exists` command will return non-zero if the application does not exist, and zero if it does.
### Manually creating an application
A common pattern for deploying applications to Dokku is to configure an application before deploying it. You can do so via the `apps:create` command:
@@ -46,11 +72,11 @@ Creating node-js-app... done
Once created, you can configure the application as normal, and deploy the application whenever ready. This is useful for cases where you may wish to do any of the following kinds of tasks:
- configure domain names and ssl certificates
- create and link datastores
- set environment variables
- Configure domain names and SSL certificates.
- Create and link datastores.
- Set environment variables.
## Removing a deployed app
### Removing a deployed app
In some cases, you may need to destroy an application, whether it is because the application is temporary or because it was misconfigured. In these cases, you can use the `apps:destroy` command. Performing any destructive actions in Dokku requires confirmation, and this command will ask for the name of the application being deleted before doing so.
@@ -77,10 +103,19 @@ dokku --force apps:destroy node-js-app
Destroying node-js-app (including all add-ons)
```
The `--force` flag can also be specified on the command vs globally:
```shell
dokku apps:destroy --force node-js-app
```
```
Destroying node-js-app (including all add-ons)
```
Destroying an application will unlink all linked services and destroy any config related to the application. Note that linked services will retain their data for later use (or removal).
## Renaming a deployed app
### Renaming a deployed app
> New as of 0.4.7
@@ -108,3 +143,136 @@ Renaming node-js-app to io-js-app... done
```
This will copy all of your app's contents into a new app directory with the name of your choice, delete your old app, then rebuild the new version of the app and deploy it. All of your config variables, including database urls, will be preserved.
By default, Dokku will deploy the renamed app, though you can skip the deploy by using the `--skip-deploy` flag:
```shell
dokku apps:rename --skip-deploy node-js-app io-js-app
```
### Cloning an existing app
> New as of 0.11.5
You can clone an existing app using the `apps:clone` command. Note that the application *must* have been deployed at least once, or cloning will not complete successfully:
```shell
dokku apps:clone node-js-app io-js-app
```
```
Cloning node-js-app to io-js-app... done
```
This will copy all of your app's contents into a new app directory with the name of your choice and then rebuild the new version of the app and deploy it with the following caveats:
- All of your environment variables, including database urls, will be preserved.
- Custom domains are not applied to the new app.
- SSL certificates will not be copied to the new app.
- Port mappings with the scheme `https` and host-port `443` will be skipped.
> Warning: If you have exposed specific ports via `docker-options` plugin, or performed anything that cannot be done against multiple applications, `apps:clone` may result in errors.
By default, Dokku will deploy this new app, though you can skip the deploy by using the `--skip-deploy` flag:
```shell
dokku apps:clone --skip-deploy node-js-app io-js-app
```
Finally, if the application already exists, you may wish to ignore errors resulting from attempting to clone over it. To do so, you can use the `--ignore-existing` flag. A warning will be emitted, but the command will return `0`.
```shell
dokku apps:clone --ignore-existing node-js-app io-js-app
```
### Locking app deploys
> New as of 0.11.6
If you wish to disable deploying for a period of time, this can be done via deploy locks. Normally, deploy locks exist only for the duration of a deploy so as to avoid deploys from colliding, but a deploy lock can be created by running the `apps:lock` command.
```shell
dokku apps:lock node-js-app
```
```
-----> Deploy lock created
```
### Unlocking app deploys
> New as of 0.11.6
In some cases, it may be necessary to remove an existing deploy lock. This can be performed via the `apps:unlock` command.
> Warning: Removing the deploy lock *will not* stop in progress deploys. At this time, in progress deploys will need to be manually terminated by someone with server access.
```shell
dokku apps:unlock node-js-app
```
```
! A deploy may be in progress.
! Removing the app lock will not stop in progress deploys.
-----> Deploy lock removed.
```
### Checking lock status
> New as of 0.13.0
In some cases, you may wish to inspect the state of an app lock. To do so, you can issue an `apps:lock` command. This will exit non-zero if there is no app lock in place.
```shell
dokku apps:locked node-js-app
```
```
Deploy lock does not exist
```
### Displaying reports for an app
> New as of 0.8.1
You can get a report about the deployed apps using the `apps:report` command:
```shell
dokku apps:report
```
```
=====> node-js-app app information
App dir: /home/dokku/node-js-app
App deploy source: git
App locked: false
=====> python-sample app information
App dir: /home/dokku/python-sample
App deploy source:
App locked: false
=====> ruby-sample app information
App dir: /home/dokku/ruby-sample
App deploy source: git
App locked: false
```
You can run the command for a specific app also.
```shell
dokku apps:report node-js-app
```
```
=====> node-js-app app information
App dir: /home/dokku/node-js-app
App deploy source: git
App locked: false
```
You can pass flags which will output only the value of the specific information you want. For example:
```shell
dokku apps:report node-js-app --app-dir
```

View File

@@ -0,0 +1,25 @@
# Generic CI/CD Integration
In cases where there is no direct or documented integration available, the Dokku project provides an [Official Docker Image](https://github.com/dokku/ci-docker-image) for use in Continuous Integration/Continuous Deployment (CI/CD) systems.
Assuming a Docker image can be run as a CI task with environment variables injected, the following CI systems will have their variables automatically detected:
- [circleci](https://circleci.com/)
- [cloudbees](https://www.cloudbees.com/)
- [drone](https://www.drone.io/)
- [github actions](https://github.com/features/actions)
- [gitlab-ci](https://about.gitlab.com/stages-devops-lifecycle/continuous-integration/)
- [semaphoreci](https://semaphoreci.com/)
- [travisci](https://travis-ci.com/)
## Simple Usage
The simplest usage of the image is as follows.
```shell
# where the `.env` file contains `GIT_REMOTE_URL` and `SSH_PRIVATE_KEY`
docker run --rm -v="$PWD:/app" --env-file=.env dokku/ci-docker-image dokku-deploy
```
For more configuration examples and further documentation, see the [ci-docker-image](https://github.com/dokku/ci-docker-image) readme.

View File

@@ -0,0 +1,31 @@
# Github Actions
The Dokku project has an official Githb Action available on the [Github Marketplace](https://github.com/marketplace/actions/dokku). The simplest usage example is as follows:
```yaml
---
name: 'deploy'
on:
push:
branches:
- master
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Cloning repo
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Push to dokku
uses: dokku/github-action@v1
with:
git_remote_url: 'ssh://dokku@dokku.me:22/appname'
ssh_private_key: ${{ secrets.SSH_PRIVATE_KEY }}
```
For further usage documentation and other advanced examples, see the entry on the [Github Marketplace](https://github.com/marketplace/actions/dokku).

View File

@@ -0,0 +1,25 @@
# Gitlab CI
Gitlab-CI can be used to automatically deploy a Dokku application via the official the [dokku/ci-docker-image](https://github.com/dokku/ci-docker-image). The simplest example is as follows:
```
---
image: dokku/ci-docker-image
stages:
- deploy
variables:
GIT_DEPTH: 0
deploy:
stage: deploy
only:
- master
variables:
GIT_REMOTE_URL: ssh://dokku@dokku.me:22/appname
script: dokku-deploy
after_script: dokku-unlock
```
For further usage documentation and other advanced examples, see Dokku's [gitlab-ci](https://github.com/dokku/gitlab-ci) repository.

177
docs/deployment/logs.md Normal file
View File

@@ -0,0 +1,177 @@
# Log Management
```
logs <app> [-h] [-t] [-n num] [-q] [-p process] # Display recent log output
logs:failed [--all|<app>] # Shows the last failed deploy logs
logs:report [<app>] [<flag>] # Displays a logs report for one or more apps
logs:set [--global|<app>] <key> <value> # Set or clear a logs property for an app
logs:vector-logs [--num num] [--tail] # Display vector log output
logs:vector-start # Start the vector logging container
logs:vector-stop # Stop the vector logging container
```
## Usage
### Application logs
You can easily get logs of an app using the `logs` command:
```shell
dokku logs node-js-app
```
#### Behavioral modifiers
Dokku also supports certain command-line arguments that augment the `log` command's behavior.
```
-n, --num NUM # the number of lines to display
-p, --ps PS # only display logs from the given process
-t, --tail # continually stream logs
-q, --quiet # display raw logs without colors, time and names
```
You can use these modifiers as follows:
```shell
dokku logs node-js-app -t -p web
```
will show logs continually from the web process.
### Failed deploy logs
> Warning: The default [docker-local scheduler](/docs/advanced-usage/schedulers/docker-local.md) will "store" these until the next deploy or until the old containers are garbage collected - whichever runs first. If you require the logs beyond this point in time, please ship the logs to a centralized log server.
In some cases, it may be useful to retrieve the logs from a previously failed deploy.
You can retrieve these logs by using the `logs:failed` command.
```shell
dokku logs:failed node-js-app
```
You may also fetch all failed app logs by using the `--all` flag.
```shell
dokku logs:failed --all
```
### Docker Log Retention
Docker log retention can be specified via the `logs:set` command by specifying a value for `max-size`. Log retention is set via injected docker options for all applications, but is also available via the `logs-get-property` trigger for alternative schedulers.
```shell
dokku logs:set node-js-app max-size 20m
```
The default value may be set by passing an empty value for the option:
```shell
dokku logs:set node-js-app max-size
```
Valid values include any integer number followed by a unit of measure (`k`, `m`, or `g`) or the string `unlimited`. Setting to `unlimited` will result in Dokku omitting the log option.
The `max-size` property can also be set globally. The global default is `10m`, and the global value is used when no app-specific value is set.
```shell
dokku logs:set --global max-size 20m
```
The default value may be set by passing an empty value for the option.
```shell
dokku logs:set --global max-size
```
### Vector Logging Shipping
> New as of 0.22.6
Vector is an open-source, lightweight and ultra-fast tool for building observability pipelines. Dokku integrates with it for shipping container logs for the `docker-local` scheduler. Users may configure log-shipping on a per-app or global basis, neither of which interfere with the `dokku logs` commands.
#### Starting the Vector container
> Warning: While the default vector image may be updated over time, this will not impact running vector containers. Users are encouraged to view any Dokku and Vector changelogs to ensure their system will continue running as expected.
Vector may be started via the `logs:vector-start` command.
```shell
dokku logs:vector-start
```
This will start a new container named `vector` with Dokku's vector config mounted and ready for use. If a running container already exists, this command will do nothing. Additionally, if a container exists but is not running, this command will attempt to start the container.
While the default vector image is hardcoded, users may specify an alternative via the `--vector-image` flag:
```shell
dokku logs:vector-start --vector-image timberio/vector:latest-debian
```
The `vector` container will be started with the following volume mounts:
- `/var/lib/dokku/data/logs/vector.json:/etc/vector/vector.json`
- `/var/run/docker.sock:/var/run/docker.sock`
- `/var/log/dokku/apps:/var/log/dokku/apps`
The final volume mount - `/var/log/dokku/apps` - may be used for users that wish to ship logs to a file on disk that may be later logrotated. This directory is owned by the `dokku` user and group, with permissions set to `0755`. At this time, log-rotation is not configured for this directory.
#### Stopping the Vector container
Vector may be stopped via the `logs:vector-stop` command.
```shell
dokku logs:vector-stop
```
The `vector` container will be stopped and removed from the system. If the container is not running, this command will do nothing.
#### Configuring a log sink
Vector uses the concept of log "sinks" to send logs to a given endpoint. Log sinks may be configured globally or on a per-app basis by specifying a `vector-sink` in DSN form with the `logs:set` command. Specifying a sink value will reload any running vector container.
```shell
# setting the sink value in quotes is encouraged to avoid
# issues with ampersand encoding in shell commands
dokku logs:set node-js-app sink "console://?encoding[codec]=json"
```
A sink may be removed by setting an empty value, which will also reload the running vector container.
```shell
dokku logs:set node-js-app vector-sink
```
Only one sink may be specified on a per-app basis at a given time.
Log sinks can also be specified globally by specifying the `--global` flag to `logs:set` with no app name specified:
```shell
dokku logs:set --global vector-sink "console://?encoding[codec]=json"
```
As with app-specific sink settings, the global value may also be cleared by setting no value.
```shell
dokku logs:set --global vector-sink
```
##### Log Sink DSN Format
The DSN form of a sink is as follows:
```
SINK_TYPE://?SINK_OPTIONS
```
Valid values for `SINK_TYPE` include all log vector log sinks, while `SINK_OPTIONS` is a query-string form for the sink's options. The following is a short description on how to set various values:
- `bool`: form: `key=bool`
- `string`: form: `key=string`
- `int`: form: `key=int`
- `[string]`: form: `key[]=string`
- `[int]`: form: `key[]=int`
- `table`: form: `option[key]=value
Please read the [sink documentation](https://vector.dev/docs/reference/sinks/) for your sink of choice to configure the sink as desired.

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