From e99e2201cb4c98c1c5a0a3d570c3d1e8288d7eb9 Mon Sep 17 00:00:00 2001 From: Michael Hobbs Date: Tue, 16 Dec 2014 20:25:44 -0800 Subject: [PATCH 1/2] mv default VHOST creation to core install --- plugins/00_dokku-standard/install | 4 ++++ plugins/nginx-vhosts/install | 4 ---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/plugins/00_dokku-standard/install b/plugins/00_dokku-standard/install index 99e3bf41e..765d258a3 100755 --- a/plugins/00_dokku-standard/install +++ b/plugins/00_dokku-standard/install @@ -5,6 +5,10 @@ if [[ ! -f "$DOKKU_ROOT/HOSTNAME" ]]; then echo $(hostname -f) > $DOKKU_ROOT/HOSTNAME fi +if [[ ! -f "$DOKKU_ROOT/VHOST" ]]; then + [[ $(dig +short $(< "$DOKKU_ROOT/HOSTNAME")) ]] && cp "$DOKKU_ROOT/HOSTNAME" "$DOKKU_ROOT/VHOST" +fi + # temporary hack for https://github.com/progrium/dokku/issues/82 # redeploys all apps after a reboot case "$DOKKU_DISTRO" in diff --git a/plugins/nginx-vhosts/install b/plugins/nginx-vhosts/install index b83cfb411..9e9be1728 100755 --- a/plugins/nginx-vhosts/install +++ b/plugins/nginx-vhosts/install @@ -64,10 +64,6 @@ EOF echo 'server_names_hash_bucket_size 512;' >| /etc/nginx/conf.d/server_names_hash_bucket_size.conf -if [[ ! -f "$DOKKU_ROOT/VHOST" ]]; then - [[ $(dig +short $(< "$DOKKU_ROOT/HOSTNAME")) ]] && cp "$DOKKU_ROOT/HOSTNAME" "$DOKKU_ROOT/VHOST" -fi - case "$DOKKU_DISTRO" in ubuntu) /etc/init.d/nginx start From 56472bd08c2a79f97b884269d9b05fd80308dbb5 Mon Sep 17 00:00:00 2001 From: Michael Hobbs Date: Tue, 16 Dec 2014 23:01:32 -0800 Subject: [PATCH 2/2] VHOST fallback --- plugins/00_dokku-standard/commands | 4 ++++ plugins/domains/commands | 31 +++++++++++++++++++----------- plugins/nginx-vhosts/commands | 4 +++- 3 files changed, 27 insertions(+), 12 deletions(-) diff --git a/plugins/00_dokku-standard/commands b/plugins/00_dokku-standard/commands index aaf493ddd..148be9992 100755 --- a/plugins/00_dokku-standard/commands +++ b/plugins/00_dokku-standard/commands @@ -72,6 +72,10 @@ case "$1" in done ;; esac + elif [[ -f "$DOKKU_ROOT/VHOST" ]]; then + echo "$SCHEME://$(< "$DOKKU_ROOT/VHOST")" + else + echo "$SCHEME://$(< "$DOKKU_ROOT/HOSTNAME")" fi ;; diff --git a/plugins/domains/commands b/plugins/domains/commands index 14c7b01a8..3836f90e3 100755 --- a/plugins/domains/commands +++ b/plugins/domains/commands @@ -18,19 +18,28 @@ case "$1" in APP="$2"; VHOST_PATH="$DOKKU_ROOT/$APP/VHOST" if [[ ! -f $VHOST_PATH ]]; then - echo "-----> Creating new $VHOST_PATH..." - VHOST=$(< "$DOKKU_ROOT/VHOST") - SUBDOMAIN=${APP/%\.${VHOST}/} - hostname=$(: | pluginhook nginx-hostname $APP $SUBDOMAIN $VHOST) - if [[ ! -n $hostname ]]; then - if [[ "$APP" == *.* ]] && [[ "$SUBDOMAIN" == "$APP" ]]; then - hostname="${APP/\//-}" - else - hostname="${APP/\//-}.$VHOST" - fi + if [[ -f "$DOKKU_ROOT/VHOST" ]];then + VHOST=$(< "$DOKKU_ROOT/VHOST") + else + VHOST=$(< "$DOKKU_ROOT/HOSTNAME") fi + if [[ "$VHOST" =~ ([0-9]{1,3}[\.]){3}[0-9]{1,3} ]];then + echo "ip found as hostname. disabling vhost support" + [[ ! $(grep -q NO_VHOST "$DOKKU_ROOT/$APP/ENV") ]] && echo "export NO_VHOST='1'" >> "$DOKKU_ROOT/$APP/ENV" + else + echo "-----> Creating new $VHOST_PATH..." + SUBDOMAIN=${APP/%\.${VHOST}/} + hostname=$(: | pluginhook nginx-hostname $APP $SUBDOMAIN $VHOST) + if [[ ! -n $hostname ]]; then + if [[ "$APP" == *.* ]] && [[ "$SUBDOMAIN" == "$APP" ]]; then + hostname="${APP/\//-}" + else + hostname="${APP/\//-}.$VHOST" + fi + fi - echo $hostname > $VHOST_PATH + echo "$hostname" > $VHOST_PATH + fi fi ;; diff --git a/plugins/nginx-vhosts/commands b/plugins/nginx-vhosts/commands index c961bc5f0..eed58c1e7 100755 --- a/plugins/nginx-vhosts/commands +++ b/plugins/nginx-vhosts/commands @@ -20,9 +20,11 @@ case "$1" in VHOST_PATH="$DOKKU_ROOT/$APP/VHOST" WILDCARD_SSL="$DOKKU_ROOT/tls" SSL="$DOKKU_ROOT/$APP/tls" - NONSSL_VHOSTS=`cat $VHOST_PATH` + + [[ -f "$DOKKU_ROOT/$APP/ENV" ]] && source $DOKKU_ROOT/$APP/ENV if [[ ! -n "$NO_VHOST" ]]; then + NONSSL_VHOSTS=`cat $VHOST_PATH` if [[ -e "$SSL/server.crt" ]] && [[ -e "$SSL/server.key" ]]; then SSL_INUSE="$SSL" SSL_DIRECTIVES=$(cat <