Compare commits
20 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d211223f58 | ||
|
|
c4540701fd | ||
|
|
74fa016bc1 | ||
|
|
5668f76cdd | ||
|
|
7e1e0ebb80 | ||
|
|
976c0be189 | ||
|
|
e2e36a5045 | ||
|
|
6bb513f12c | ||
|
|
48eca101f1 | ||
|
|
0e63b4e069 | ||
|
|
cd8292f7fa | ||
|
|
626cd958a5 | ||
|
|
15bd9db79c | ||
|
|
114cecc911 | ||
|
|
2a469df5e4 | ||
|
|
4d162aa209 | ||
|
|
b40a86a2fc | ||
|
|
0da389e8af | ||
|
|
182ae4a50a | ||
|
|
587de65441 |
20
HISTORY.md
20
HISTORY.md
@@ -1,5 +1,25 @@
|
|||||||
# History
|
# History
|
||||||
|
|
||||||
|
## 0.3.20
|
||||||
|
|
||||||
|
This release pegs Dokku to Docker 1.6.2. Docker 1.7.0 introduced changes in `docker ps` which cause incompatibilities with many popular dokku plugins.
|
||||||
|
|
||||||
|
### New Features
|
||||||
|
|
||||||
|
- #1245: @arthurschreiber Support config variables containing `\n`
|
||||||
|
- #1257: @josegonzalez Split nginx ssl logs by $APP
|
||||||
|
|
||||||
|
### Bug Fixes
|
||||||
|
|
||||||
|
- #1207: @rockymadden Fixed bug with client commands taking verb, appname, and also arguments.
|
||||||
|
- #1251: @josegonzalez Fallback to using /etc/init.d/nginx reload directly to restart nginx
|
||||||
|
- #1264: @josegonzalez Require lxc-docker-1.6.2
|
||||||
|
|
||||||
|
### Docs Changes
|
||||||
|
|
||||||
|
- #1252: @josegonzalez Fix ssh port for vagrant installation. Closes #1139. [ci skip]
|
||||||
|
- #1250: @josegonzalez SSL documentation is misleading
|
||||||
|
|
||||||
## 0.3.19
|
## 0.3.19
|
||||||
|
|
||||||
### New Features
|
### New Features
|
||||||
|
|||||||
2
Makefile
2
Makefile
@@ -93,7 +93,7 @@ ifndef CI
|
|||||||
ifdef DOCKER_VERSION
|
ifdef DOCKER_VERSION
|
||||||
apt-get install -qq -y lxc-docker-${DOCKER_VERSION}
|
apt-get install -qq -y lxc-docker-${DOCKER_VERSION}
|
||||||
else
|
else
|
||||||
apt-get install -qq -y lxc-docker
|
apt-get install -qq -y lxc-docker-1.6.2
|
||||||
endif
|
endif
|
||||||
sleep 2 # give docker a moment i guess
|
sleep 2 # give docker a moment i guess
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ Docker powered mini-Heroku. The smallest PaaS implementation you've ever seen. S
|
|||||||
|
|
||||||
To install the latest stable release, you can run the following commands as a user that has access to `sudo`:
|
To install the latest stable release, you can run the following commands as a user that has access to `sudo`:
|
||||||
|
|
||||||
wget https://raw.github.com/progrium/dokku/v0.3.19/bootstrap.sh
|
wget https://raw.github.com/progrium/dokku/v0.3.20/bootstrap.sh
|
||||||
sudo DOKKU_TAG=v0.3.19 bash bootstrap.sh
|
sudo DOKKU_TAG=v0.3.20 bash bootstrap.sh
|
||||||
|
|
||||||
### Upgrading
|
### Upgrading
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ if ARGV[0] == "onboot"
|
|||||||
exit
|
exit
|
||||||
end
|
end
|
||||||
|
|
||||||
version = "v0.3.19"
|
version = "v0.3.20"
|
||||||
dokku_root = ENV["DOKKU_ROOT"] || "/home/dokku"
|
dokku_root = ENV["DOKKU_ROOT"] || "/home/dokku"
|
||||||
admin_key = `cat /root/.ssh/authorized_keys`.split("\n").first
|
admin_key = `cat /root/.ssh/authorized_keys`.split("\n").first
|
||||||
hostname = `bash -c '[[ $(dig +short $HOSTNAME) ]] && echo $HOSTNAME || curl icanhazip.com'`.strip
|
hostname = `bash -c '[[ $(dig +short $HOSTNAME) ]] && echo $HOSTNAME || curl icanhazip.com'`.strip
|
||||||
|
|||||||
@@ -102,6 +102,11 @@ if [[ ! -z $DOKKU_HOST ]]; then
|
|||||||
if [[ ! "$1" =~ --* ]]; then
|
if [[ ! "$1" =~ --* ]]; then
|
||||||
verb=$1
|
verb=$1
|
||||||
shift
|
shift
|
||||||
|
|
||||||
|
if [[ "$1" == "$appname" ]]; then
|
||||||
|
shift
|
||||||
|
fi
|
||||||
|
|
||||||
args="$*"
|
args="$*"
|
||||||
else
|
else
|
||||||
long_args="--"
|
long_args="--"
|
||||||
|
|||||||
2
debian/control
vendored
2
debian/control
vendored
@@ -3,7 +3,7 @@ Version: 0.3.12
|
|||||||
Section: base
|
Section: base
|
||||||
Priority: optional
|
Priority: optional
|
||||||
Architecture: amd64
|
Architecture: amd64
|
||||||
Depends: locales, git, make, curl, software-properties-common, lxc-docker (>= 1.4.0), gcc, python-software-properties, man-db, buildstep, sshcommand, pluginhook
|
Depends: locales, git, make, curl, software-properties-common, lxc-docker-1.6.2, gcc, python-software-properties, man-db, buildstep, sshcommand, pluginhook
|
||||||
Pre-Depends: nginx, dnsutils, ruby, ruby-dev, rubygem-rack, rubygem-rack-protection, rubygem-sinatra, rubygem-tilt, apparmor, cgroup-lite
|
Pre-Depends: nginx, dnsutils, ruby, ruby-dev, rubygem-rack, rubygem-rack-protection, rubygem-sinatra, rubygem-tilt, apparmor, cgroup-lite
|
||||||
Provides: dokku
|
Provides: dokku
|
||||||
Maintainer: Jose Diaz-Gonzalez <dokku@josediazgonzalez.com>
|
Maintainer: Jose Diaz-Gonzalez <dokku@josediazgonzalez.com>
|
||||||
|
|||||||
2
debian/preinst
vendored
2
debian/preinst
vendored
@@ -29,7 +29,7 @@ case "$1" in
|
|||||||
} >> $NGINX_CONF
|
} >> $NGINX_CONF
|
||||||
|
|
||||||
rm -f /etc/nginx/sites-enabled/*
|
rm -f /etc/nginx/sites-enabled/*
|
||||||
service nginx reload
|
service nginx reload || /etc/init.d/nginx reload
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@@ -30,7 +30,7 @@
|
|||||||
|
|
||||||
```
|
```
|
||||||
Host dokku.me
|
Host dokku.me
|
||||||
Port 2222
|
Port 22
|
||||||
```
|
```
|
||||||
|
|
||||||
- Copy your SSH key via `cat ~/.ssh/id_rsa.pub | pbcopy` and paste it into the dokku-installer at http://dokku.me . Change the `Hostname` field on the Dokku Setup screen to your domain and then check the box that says `Use virtualhost naming`. Then click *Finish Setup* to install your key. You'll be directed to application deployment instructions from here.
|
- Copy your SSH key via `cat ~/.ssh/id_rsa.pub | pbcopy` and paste it into the dokku-installer at http://dokku.me . Change the `Hostname` field on the Dokku Setup screen to your domain and then check the box that says `Use virtualhost naming`. Then click *Finish Setup* to install your key. You'll be directed to application deployment instructions from here.
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ To install the latest stable version of dokku, you can run the following bootstr
|
|||||||
|
|
||||||
```shell
|
```shell
|
||||||
# installs dokku via apt-get
|
# installs dokku via apt-get
|
||||||
wget https://raw.github.com/progrium/dokku/v0.3.19/bootstrap.sh
|
wget https://raw.github.com/progrium/dokku/v0.3.20/bootstrap.sh
|
||||||
sudo DOKKU_TAG=v0.3.19 bash bootstrap.sh
|
sudo DOKKU_TAG=v0.3.20 bash bootstrap.sh
|
||||||
|
|
||||||
# Go to your server's IP and follow the web installer
|
# Go to your server's IP and follow the web installer
|
||||||
```
|
```
|
||||||
|
|||||||
@@ -8,9 +8,18 @@ Dokku provides easy TLS/SPDY support out of the box. This can be done app-by-app
|
|||||||
|
|
||||||
### Per App
|
### Per App
|
||||||
|
|
||||||
To enable TLS connection to to one of your applications, copy or symlink the `.crt` and `.key` files into the application's `/home/dokku/:app/tls` folder (create this folder if it doesn't exist) as `server.crt` and `server.key` respectively.
|
To enable TLS connections to to one of your applications, do the following:
|
||||||
|
|
||||||
|
* Create a key file and a cert file.
|
||||||
|
* You can find detailed steps for generating a self-signed certificate at https://devcenter.heroku.com/articles/ssl-certificate-self
|
||||||
|
* If you are not paranoid and need it just for a DEV or STAGING app, you can use http://www.selfsignedcertificate.com/ to generate your 2 files more easily.
|
||||||
|
* Rename your files to server.key and server.crt
|
||||||
|
* tar these 2 files together, *without* subdirectories. Example: tar cvf cert-key.tar server.crt server.key
|
||||||
|
* Install the pair for your app, like this: ssh dokku@ip-of-your-dokku-server nginx:import-ssl < cert-key.tar
|
||||||
|
|
||||||
|
You will need to repeat the steps above for each domain used to serve your app. You can't simply create
|
||||||
|
a single tar with all key/cert files in it (see https://github.com/progrium/dokku/issues/1195).
|
||||||
|
|
||||||
Redeployment of the application will be needed to apply TLS configuration. Once it is redeployed, the application will be accessible by `https://` (redirection from `http://` is applied as well).
|
|
||||||
|
|
||||||
### All Subdomains
|
### All Subdomains
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ config_styled_hash () {
|
|||||||
|
|
||||||
config_write() {
|
config_write() {
|
||||||
ENV_TEMP="$1"
|
ENV_TEMP="$1"
|
||||||
echo -e "$ENV_TEMP" | sed '/^$/d' | sort > $ENV_FILE_TEMP
|
echo "$ENV_TEMP" | sed '/^$/d' | sort > $ENV_FILE_TEMP
|
||||||
if ! cmp -s $ENV_FILE $ENV_FILE_TEMP; then
|
if ! cmp -s $ENV_FILE $ENV_FILE_TEMP; then
|
||||||
cp -f $ENV_FILE_TEMP $ENV_FILE
|
cp -f $ENV_FILE_TEMP $ENV_FILE
|
||||||
chmod 600 $ENV_FILE
|
chmod 600 $ENV_FILE
|
||||||
@@ -137,8 +137,9 @@ case "$1" in
|
|||||||
|
|
||||||
if [[ $KEY =~ [a-zA-Z_][a-zA-Z0-9_]* ]]; then
|
if [[ $KEY =~ [a-zA-Z_][a-zA-Z0-9_]* ]]; then
|
||||||
RESTART_APP=true
|
RESTART_APP=true
|
||||||
ENV_TEMP=$(echo -e "${ENV_TEMP}" | sed "/^export $KEY=/ d")
|
ENV_TEMP=$(echo "${ENV_TEMP}" | sed "/^export $KEY=/ d")
|
||||||
ENV_TEMP="${ENV_TEMP}\nexport $KEY='$VALUE'"
|
ENV_TEMP="${ENV_TEMP}
|
||||||
|
export $KEY='$VALUE'"
|
||||||
ENV_ADD=$(echo -e "${ENV_ADD}" | sed "/^$KEY=/ d")
|
ENV_ADD=$(echo -e "${ENV_ADD}" | sed "/^$KEY=/ d")
|
||||||
ENV_ADD="${ENV_ADD}$
|
ENV_ADD="${ENV_ADD}$
|
||||||
${var}"
|
${var}"
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ server {
|
|||||||
listen [::]:80;
|
listen [::]:80;
|
||||||
listen 80;
|
listen 80;
|
||||||
server_name $NOSSL_SERVER_NAME;
|
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\$request_uri;
|
return 301 https://\$host\$request_uri;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -9,6 +11,8 @@ server {
|
|||||||
listen [::]:443 ssl spdy;
|
listen [::]:443 ssl spdy;
|
||||||
listen 443 ssl spdy;
|
listen 443 ssl spdy;
|
||||||
server_name $SSL_SERVER_NAME;
|
server_name $SSL_SERVER_NAME;
|
||||||
|
access_log /var/log/nginx/${APP}-access.log;
|
||||||
|
error_log /var/log/nginx/${APP}-error.log;
|
||||||
$SSL_DIRECTIVES
|
$SSL_DIRECTIVES
|
||||||
|
|
||||||
keepalive_timeout 70;
|
keepalive_timeout 70;
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ teardown() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@test "(config) config:get" {
|
@test "(config) config:get" {
|
||||||
run ssh dokku@dokku.me config:set $TEST_APP test_var=true test_var2=\"hello world\"
|
run ssh dokku@dokku.me config:set $TEST_APP test_var=true test_var2=\"hello world\" test_var3=\"with\\nnewline\"
|
||||||
echo "output: "$output
|
echo "output: "$output
|
||||||
echo "status: "$status
|
echo "status: "$status
|
||||||
assert_success
|
assert_success
|
||||||
@@ -28,6 +28,10 @@ teardown() {
|
|||||||
echo "output: "$output
|
echo "output: "$output
|
||||||
echo "status: "$status
|
echo "status: "$status
|
||||||
assert_output 'hello world'
|
assert_output 'hello world'
|
||||||
|
run dokku config:get $TEST_APP test_var3
|
||||||
|
echo "output: "$output
|
||||||
|
echo "status: "$status
|
||||||
|
assert_output 'with\nnewline'
|
||||||
}
|
}
|
||||||
|
|
||||||
@test "(config) config:unset" {
|
@test "(config) config:unset" {
|
||||||
|
|||||||
Reference in New Issue
Block a user