76 lines
3.4 KiB
Makefile
76 lines
3.4 KiB
Makefile
.PHONY: build deps up down setup deploy redeploy logs clean
|
|
|
|
# Install dependencies (composer via Docker since PHP may not be local)
|
|
deps:
|
|
npm install --no-audit --no-fund
|
|
docker run --rm -v "$$(pwd):/app" -w /app composer:2 install --no-dev --optimize-autoloader --no-interaction
|
|
|
|
# Build frontend
|
|
build: deps
|
|
npx webpack --node-env production --progress
|
|
|
|
# Start containers (detached)
|
|
up:
|
|
docker compose up -d
|
|
|
|
# Wait for NC to be ready, install it, copy app in, enable it
|
|
setup:
|
|
@echo "Waiting for Nextcloud container to be ready..."
|
|
@until docker compose exec -T nextcloud test -f config/CAN_INSTALL 2>/dev/null || \
|
|
docker compose exec -T nextcloud test -f config/config.php 2>/dev/null; do \
|
|
sleep 3; \
|
|
echo " still waiting..."; \
|
|
done
|
|
@sleep 5
|
|
@echo "Fixing custom_apps ownership..."
|
|
docker compose exec nextcloud chown www-data:www-data /var/www/html/custom_apps
|
|
@echo "Installing Nextcloud..."
|
|
docker compose exec -u www-data nextcloud php occ maintenance:install \
|
|
--database=mysql \
|
|
--database-host=db \
|
|
--database-name=$${MYSQL_DATABASE:-nextcloud} \
|
|
--database-user=$${MYSQL_USER:-nextcloud} \
|
|
--database-pass=$$(grep MYSQL_PASSWORD .env | head -1 | cut -d= -f2) \
|
|
--admin-user=$$(grep NEXTCLOUD_ADMIN_USER .env | cut -d= -f2) \
|
|
--admin-pass=$$(grep NEXTCLOUD_ADMIN_PASSWORD .env | cut -d= -f2) \
|
|
2>&1 || true
|
|
@echo "Copying app into Nextcloud..."
|
|
docker compose exec nextcloud mkdir -p /var/www/html/custom_apps/mitgliederverwaltung
|
|
docker compose exec nextcloud cp -a /app-src/appinfo /var/www/html/custom_apps/mitgliederverwaltung/
|
|
docker compose exec nextcloud cp -a /app-src/lib /var/www/html/custom_apps/mitgliederverwaltung/
|
|
docker compose exec nextcloud cp -a /app-src/templates /var/www/html/custom_apps/mitgliederverwaltung/
|
|
docker compose exec nextcloud cp -a /app-src/js /var/www/html/custom_apps/mitgliederverwaltung/
|
|
docker compose exec nextcloud cp -a /app-src/vendor /var/www/html/custom_apps/mitgliederverwaltung/
|
|
docker compose exec nextcloud chown -R www-data:www-data /var/www/html/custom_apps/mitgliederverwaltung
|
|
@echo "Enabling app..."
|
|
docker compose exec -u www-data nextcloud php occ app:enable mitgliederverwaltung
|
|
@echo ""
|
|
@echo "Done! Nextcloud is running at http://localhost:8080"
|
|
@echo "Login with credentials from .env (NEXTCLOUD_ADMIN_USER / NEXTCLOUD_ADMIN_PASSWORD)"
|
|
|
|
# Full deploy: build, start, install, enable
|
|
deploy: build up setup
|
|
|
|
# Rebuild and redeploy app into running NC
|
|
redeploy: build
|
|
docker compose exec nextcloud rm -rf /var/www/html/custom_apps/mitgliederverwaltung
|
|
docker compose exec nextcloud mkdir -p /var/www/html/custom_apps/mitgliederverwaltung
|
|
docker compose exec nextcloud cp -a /app-src/appinfo /var/www/html/custom_apps/mitgliederverwaltung/
|
|
docker compose exec nextcloud cp -a /app-src/lib /var/www/html/custom_apps/mitgliederverwaltung/
|
|
docker compose exec nextcloud cp -a /app-src/templates /var/www/html/custom_apps/mitgliederverwaltung/
|
|
docker compose exec nextcloud cp -a /app-src/js /var/www/html/custom_apps/mitgliederverwaltung/
|
|
docker compose exec nextcloud cp -a /app-src/vendor /var/www/html/custom_apps/mitgliederverwaltung/
|
|
docker compose exec nextcloud chown -R www-data:www-data /var/www/html/custom_apps/mitgliederverwaltung
|
|
docker compose exec -u www-data nextcloud php occ upgrade 2>/dev/null || true
|
|
@echo "App redeployed."
|
|
|
|
down:
|
|
docker compose down
|
|
|
|
logs:
|
|
docker compose logs -f nextcloud
|
|
|
|
# Remove volumes (full reset)
|
|
clean:
|
|
docker compose down -v
|