85 lines
1.7 KiB
Bash
85 lines
1.7 KiB
Bash
#!/bin/sh
|
|
|
|
set -o errexit
|
|
set -o nounset
|
|
|
|
if [ ! -f "/var/www/nextcloud/config/config.php" ]; then
|
|
POSTGRES_HOST="${POSTGRES_HOST:-nextcloud-postgresql}"
|
|
POSTGRES_PORT="${POSTGRES_PORT:-5432}"
|
|
POSTGRES_USER="${POSTGRES_USER:-nextcloud}"
|
|
POSTGRES_PASSWORD="${POSTGRES_PASSWORD:-nextcloud}"
|
|
POSTGRES_DB="${POSTGRES_DB:-$POSTGRES_USER}"
|
|
|
|
ADMIN_USER="admin"
|
|
ADMIN_PASS="$(head -c 128 /dev/urandom | tr -dc 'A-Za-z0-9' | head -c 64)"
|
|
|
|
echo "Installing Nextcloud..."
|
|
|
|
occ maintenance:install \
|
|
--database "pgsql" \
|
|
--database-host "$POSTGRES_HOST" \
|
|
--database-port "$POSTGRES_PORT" \
|
|
--database-user "$POSTGRES_USER" \
|
|
--database-pass "$POSTGRES_PASSWORD" \
|
|
--database-name "$POSTGRES_DB" \
|
|
--admin-user "$ADMIN_USER" \
|
|
--admin-pass "$ADMIN_PASS" \
|
|
--data-dir "/var/lib/nextcloud"
|
|
|
|
occ user:delete admin
|
|
|
|
occ app:disable \
|
|
app_api \
|
|
contactsinteraction \
|
|
dashboard \
|
|
federation \
|
|
firstrunwizard \
|
|
photos \
|
|
recommendations \
|
|
sharebymail \
|
|
support \
|
|
survey_client \
|
|
user_status \
|
|
weather_status
|
|
|
|
occ app:install \
|
|
oidc_login
|
|
fi
|
|
|
|
occ upgrade
|
|
occ app:update --all
|
|
|
|
occ db:add-missing-columns
|
|
occ db:add-missing-indices
|
|
occ db:add-missing-primary-keys
|
|
|
|
occ maintenance:repair --include-expensive
|
|
|
|
occ background:cron
|
|
occ maintenance:update:htaccess
|
|
|
|
[ -n "${EXTRA_INIT:-}" ] && eval "$EXTRA_INIT"
|
|
|
|
cron
|
|
|
|
PHPRC="$(dirname "$(readlink -f "$(which php)")")/../lib/php.ini"
|
|
export PHPRC
|
|
|
|
PIDFILE=$(mktemp)
|
|
|
|
# shellcheck disable=SC2016
|
|
setsid sh -c '
|
|
echo "$$" > "$1"
|
|
shift
|
|
exec httpd "$@"
|
|
' _ "$PIDFILE" "$@" &
|
|
|
|
until [ -s "$PIDFILE" ]; do sleep 0.01; done
|
|
|
|
PID=$(cat "$PIDFILE")
|
|
rm "$PIDFILE"
|
|
|
|
trap 'kill -INT "$PID"' INT
|
|
wait "$PID"
|
|
exit $?
|