Files
nix/packages/docker/nextcloud/entrypoint.sh
2025-06-16 11:56:53 +01:00

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 $?