We previously assumed that systemd was detectable by the existence of certain directories. Unfortunately, it seems 14.04 already has these directories, so we need to handle this case separately. One other note is that dokku-installer will fail to "start" if already started on certain systems, thus the previous grep was more accurate in it's running.
101 lines
3.2 KiB
Bash
Executable File
101 lines
3.2 KiB
Bash
Executable File
#!/bin/bash
|
|
set -eo pipefail; [[ $TRACE ]] && set -x
|
|
|
|
. /usr/share/debconf/confmodule
|
|
|
|
readonly DOKKU_ROOT="${DOKKU_ROOT:-/home/dokku}"
|
|
readonly DOKKU_LIB_ROOT="${DOKKU_LIB_PATH:-/var/lib/dokku}"
|
|
|
|
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
|
|
modprobe aufs || echo "WARNING: Restart server to finish installing dokku!"
|
|
sshcommand create dokku /usr/local/bin/dokku
|
|
egrep -i "^docker" /etc/group || groupadd docker
|
|
usermod -aG docker dokku
|
|
|
|
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 "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 "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
|
|
chown dokku:dokku -R ${DOKKU_LIB_ROOT}/plugins ${DOKKU_LIB_ROOT}/core-plugins
|
|
|
|
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
|
|
|
|
echo "Starting dokku-installer"
|
|
if command -v systemctl &>/dev/null; then
|
|
systemctl daemon-reload
|
|
fi
|
|
|
|
if service dokku-installer status 2> /dev/null | grep -E "waiting|inactive" ; then
|
|
service dokku-installer start
|
|
fi
|
|
fi
|
|
|
|
db_get "dokku/web_config"
|
|
if [ "$RET" = "true" ]; then
|
|
db_stop
|
|
exit 0
|
|
fi
|
|
|
|
db_get "dokku/vhost_enable"
|
|
if [ "$RET" = "true" ]; then
|
|
db_get "dokku/hostname"
|
|
echo "$RET" > "${DOKKU_ROOT}/VHOST"
|
|
else
|
|
rm -f "${DOKKU_ROOT}/VHOST"
|
|
fi
|
|
|
|
db_get "dokku/hostname"
|
|
echo "$RET" > "${DOKKU_ROOT}/HOSTNAME"
|
|
|
|
if [ -z "${DEBCONF_RECONFIGURE}" ]; then
|
|
db_get "dokku/key_file"
|
|
if [ -f "$RET" ]; then
|
|
sshcommand acl-add dokku default < "$RET"
|
|
fi
|
|
fi
|
|
;;
|
|
|
|
*)
|
|
echo "postinst called with unknown argument \`$1'" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
db_stop
|
|
exit 0
|