betterNAS/scripts/dev-up
2026-04-01 03:45:34 +00:00

66 lines
1.9 KiB
Bash
Executable file

#!/usr/bin/env bash
set -euo pipefail
repo_root="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
compose_file="$repo_root/infra/docker/compose.dev.yml"
app_source_dir="$repo_root/apps/nextcloud-app"
nextcloud_occ() {
docker compose -f "$compose_file" 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'
}
docker compose -f "$compose_file" up -d --build
docker compose -f "$compose_file" 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
'
docker compose -f "$compose_file" cp "$app_source_dir/." nextcloud:/var/www/html/custom_apps/betternascontrolplane
docker compose -f "$compose_file" 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 admin \
--admin-pass admin \
--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 "Nextcloud: http://localhost:8080"
echo "betterNAS control plane: http://localhost:3001"