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/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/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 <| /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