mirror of
https://github.com/harivansh-afk/betterNAS.git
synced 2026-04-15 06:04:40 +00:00
Split node enrollment from export sync and issue Finder-compatible DAV credentials so the stack proves the real backend seam before any web UI consumes it.
71 lines
2 KiB
Bash
Executable file
71 lines
2 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
# shellcheck disable=SC1091
|
|
source "$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)/lib/runtime-env.sh"
|
|
|
|
app_source_dir="$repo_root/apps/nextcloud-app"
|
|
|
|
nextcloud_occ() {
|
|
compose exec -T --user www-data --workdir /var/www/html nextcloud php occ "$@"
|
|
}
|
|
|
|
nextcloud_is_installed() {
|
|
nextcloud_occ status --output=json 2>/dev/null | grep -q '"installed":true'
|
|
}
|
|
|
|
compose up -d --build
|
|
|
|
compose exec -T --user root nextcloud sh -lc '
|
|
mkdir -p /var/www/html/custom_apps/betternascontrolplane
|
|
chown -R www-data:www-data /var/www/html/custom_apps
|
|
'
|
|
|
|
compose cp "$app_source_dir/." nextcloud:/var/www/html/custom_apps/betternascontrolplane
|
|
compose exec -T --user root nextcloud sh -lc '
|
|
chown -R www-data:www-data /var/www/html/custom_apps/betternascontrolplane
|
|
'
|
|
|
|
echo "Waiting for Nextcloud command interface..."
|
|
ready=0
|
|
for _ in {1..60}; do
|
|
if nextcloud_occ status --output=json >/dev/null 2>&1; then
|
|
ready=1
|
|
break
|
|
fi
|
|
sleep 2
|
|
done
|
|
|
|
if [[ "$ready" -ne 1 ]]; then
|
|
echo "Nextcloud command interface did not become ready in time." >&2
|
|
exit 1
|
|
fi
|
|
|
|
if ! nextcloud_is_installed; then
|
|
echo "Nextcloud is not installed yet. Running CLI install..."
|
|
|
|
nextcloud_occ maintenance:install \
|
|
--database pgsql \
|
|
--database-name nextcloud \
|
|
--database-host db \
|
|
--database-user nextcloud \
|
|
--database-pass nextcloud \
|
|
--admin-user "$NEXTCLOUD_ADMIN_USER" \
|
|
--admin-pass "$NEXTCLOUD_ADMIN_PASSWORD" \
|
|
--data-dir /var/www/html/data
|
|
|
|
if ! nextcloud_is_installed; then
|
|
echo "Nextcloud did not report an installed state after CLI install." >&2
|
|
exit 1
|
|
fi
|
|
fi
|
|
|
|
nextcloud_occ app:enable --force betternascontrolplane >/dev/null
|
|
|
|
echo "Clone: $BETTERNAS_CLONE_NAME"
|
|
echo "Nextcloud: $NEXTCLOUD_BASE_URL"
|
|
echo "betterNAS control plane: http://localhost:$BETTERNAS_CONTROL_PLANE_PORT"
|
|
echo "betterNAS node agent: http://localhost:$BETTERNAS_NODE_AGENT_PORT"
|
|
echo "Example WebDAV mount URL: $BETTERNAS_EXAMPLE_MOUNT_URL"
|
|
echo "Issue a mount profile from the control plane to get WebDAV credentials."
|