Skip to content
install.sh 3.21 KiB
Newer Older
echo "New nextcloud instance"
if [ -n "${NEXTCLOUD_ADMIN_USER+x}" ] && [ -n "${NEXTCLOUD_ADMIN_PASSWORD+x}" ]; then
# shellcheck disable=SC2016
    install_options='-n --admin-user "$NEXTCLOUD_ADMIN_USER" --admin-pass "$NEXTCLOUD_ADMIN_PASSWORD"'
    if [ -n "${NEXTCLOUD_TABLE_PREFIX+x}" ]; then
        # shellcheck disable=SC2016
        install_options=$install_options' --database-table-prefix "$NEXTCLOUD_TABLE_PREFIX"'
    else
        install_options=$install_options' --database-table-prefix ""'
    fi
    if [ -n "${NEXTCLOUD_DATA_DIR+x}" ]; then
    # shellcheck disable=SC2016
        install_options=$install_options' --data-dir "$NEXTCLOUD_DATA_DIR"'
    fi

    install=false
    if [  -n "${SQLITE_DATABASE+x}" ]; then
        echo "Installing with SQLite database"
        # shellcheck disable=SC2016
        install_options=$install_options' --database-name "$SQLITE_DATABASE"'
        install=true
    elif [ -n "${MYSQL_DATABASE+x}" ] && [ -n "${MYSQL_USER+x}" ] && [ -n "${MYSQL_PASSWORD+x}" ] && [ -n "${MYSQL_HOST+x}" ]; then
        echo "Installing with MySQL database"
        # shellcheck disable=SC2016
        install_options=$install_options' --database mysql --database-name "$MYSQL_DATABASE" --database-user "$MYSQL_USER" --database-pass "$MYSQL_PASSWORD" --database-host "$MYSQL_HOST"'
        install=true
    elif [ -n "${POSTGRES_DB+x}" ] && [ -n "${POSTGRES_USER+x}" ] && [ -n "${POSTGRES_PASSWORD+x}" ] && [ -n "${POSTGRES_HOST+x}" ]; then
        echo "Installing with PostgreSQL database"
        # shellcheck disable=SC2016
        install_options=$install_options' --database pgsql --database-name "$POSTGRES_DB" --database-user "$POSTGRES_USER" --database-pass "$POSTGRES_PASSWORD" --database-host "$POSTGRES_HOST"'
        install=true
    fi

    if [ "$install" = true ]; then
        echo "starting nexcloud installation"
        max_retries=10
        try=0

        until sh -c "php /usr/src/nextcloud/occ maintenance:install $install_options" || [ "$try" -gt "$max_retries" ]
            do
                echo "retrying install..."
                try=$((try+1))
                sleep 3s
            done

        if [ "$try" -gt "$max_retries" ]; then
            echo "installing of nextcloud failed!"
            exit 1
        fi

        if [ -n "${NEXTCLOUD_TRUSTED_DOMAINS+x}" ]; then
            echo "setting trusted domains…"
            NC_TRUSTED_DOMAIN_IDX=1
            for DOMAIN in $NEXTCLOUD_TRUSTED_DOMAINS ; do
                DOMAIN=$(echo "$DOMAIN" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')
                sh -c "php /usr/src/nextcloud/occ config:system:set trusted_domains $NC_TRUSTED_DOMAIN_IDX --value=$DOMAIN"
                NC_TRUSTED_DOMAIN_IDX=$(($NC_TRUSTED_DOMAIN_IDX+1))
            done
        fi

        for app in $(cat /usr/src/nextcloud/config/apps_enable); do 
            app=$(echo $app| cut -d '=' -f1)
            echo "enabling app $app"
            sh -c "php /usr/src/nextcloud/occ app:enable $app"
        done

        for app in $(cat /usr/src/nextcloud/config/apps_disable); do
            echo "disabling app $app"
            sh -c "php /usr/src/nextcloud/occ app:disable $app"
        done
    fi

else
    echo "running web-based installer on first connect!"
fi