SHELL := /bin/bash ENV_FILE := $(if $(wildcard .env),.env,.env.example) PG_ENV_FILE := $(if $(wildcard .env.postgres),.env.postgres,.env.postgres.example) DEVPROD_ENV_FILE := $(if $(wildcard .env.devprod),.env.devprod,.env.devprod.example) MYSQL_COMPOSE_FILE := docker-compose.yml PG_COMPOSE_FILE := docker-compose.postgres.yml DEVPROD_COMPOSE_FILE := docker-compose.devprod.yml DEVPROD_NOSSL_COMPOSE_FILE := docker-compose.devprod.nossl.yml .PHONY: up down logs ps occ install-oidc enable-oidc up-pg down-pg logs-pg ps-pg occ-pg install-oidc-pg enable-oidc-pg up-devprod down-devprod logs-devprod ps-devprod occ-devprod install-oidc-devprod enable-oidc-devprod fix-apps-perms-devprod up-devprod-nossl down-devprod-nossl logs-devprod-nossl ps-devprod-nossl occ-devprod-nossl install-oidc-devprod-nossl enable-oidc-devprod-nossl fix-apps-perms-devprod-nossl trust-domain-devprod trust-domain-devprod-nossl up: docker compose -f $(MYSQL_COMPOSE_FILE) --env-file $(ENV_FILE) up -d --build down: docker compose -f $(MYSQL_COMPOSE_FILE) --env-file $(ENV_FILE) down logs: docker compose -f $(MYSQL_COMPOSE_FILE) --env-file $(ENV_FILE) logs -f --tail=100 ps: docker compose -f $(MYSQL_COMPOSE_FILE) --env-file $(ENV_FILE) ps occ: @test -n "$(cmd)" || (echo "Usage: make occ cmd=\"app:list\"" && exit 1) ./scripts/nextcloud-occ.sh $(ENV_FILE) $(cmd) install-oidc: ./scripts/nextcloud-occ.sh $(ENV_FILE) app:install user_oidc ./scripts/nextcloud-occ.sh $(ENV_FILE) app:enable user_oidc enable-oidc: ./scripts/nextcloud-occ.sh $(ENV_FILE) app:enable user_oidc up-pg: docker compose -f $(PG_COMPOSE_FILE) --env-file $(PG_ENV_FILE) up -d --build down-pg: docker compose -f $(PG_COMPOSE_FILE) --env-file $(PG_ENV_FILE) down logs-pg: docker compose -f $(PG_COMPOSE_FILE) --env-file $(PG_ENV_FILE) logs -f --tail=100 ps-pg: docker compose -f $(PG_COMPOSE_FILE) --env-file $(PG_ENV_FILE) ps occ-pg: @test -n "$(cmd)" || (echo "Usage: make occ-pg cmd=\"app:list\"" && exit 1) COMPOSE_FILE=$(PG_COMPOSE_FILE) ./scripts/nextcloud-occ.sh $(PG_ENV_FILE) $(cmd) install-oidc-pg: COMPOSE_FILE=$(PG_COMPOSE_FILE) ./scripts/nextcloud-occ.sh $(PG_ENV_FILE) app:install user_oidc COMPOSE_FILE=$(PG_COMPOSE_FILE) ./scripts/nextcloud-occ.sh $(PG_ENV_FILE) app:enable user_oidc enable-oidc-pg: COMPOSE_FILE=$(PG_COMPOSE_FILE) ./scripts/nextcloud-occ.sh $(PG_ENV_FILE) app:enable user_oidc up-devprod: docker compose -f $(DEVPROD_COMPOSE_FILE) --env-file $(DEVPROD_ENV_FILE) up -d --build down-devprod: docker compose -f $(DEVPROD_COMPOSE_FILE) --env-file $(DEVPROD_ENV_FILE) down logs-devprod: docker compose -f $(DEVPROD_COMPOSE_FILE) --env-file $(DEVPROD_ENV_FILE) logs -f --tail=100 ps-devprod: docker compose -f $(DEVPROD_COMPOSE_FILE) --env-file $(DEVPROD_ENV_FILE) ps occ-devprod: @test -n "$(cmd)" || (echo "Usage: make occ-devprod cmd=\"app:list\"" && exit 1) COMPOSE_FILE=$(DEVPROD_COMPOSE_FILE) ./scripts/nextcloud-occ.sh $(DEVPROD_ENV_FILE) $(cmd) install-oidc-devprod: $(MAKE) fix-apps-perms-devprod COMPOSE_FILE=$(DEVPROD_COMPOSE_FILE) ./scripts/nextcloud-occ.sh $(DEVPROD_ENV_FILE) app:install user_oidc COMPOSE_FILE=$(DEVPROD_COMPOSE_FILE) ./scripts/nextcloud-occ.sh $(DEVPROD_ENV_FILE) app:enable user_oidc enable-oidc-devprod: COMPOSE_FILE=$(DEVPROD_COMPOSE_FILE) ./scripts/nextcloud-occ.sh $(DEVPROD_ENV_FILE) app:enable user_oidc fix-apps-perms-devprod: docker compose -f $(DEVPROD_COMPOSE_FILE) --env-file $(DEVPROD_ENV_FILE) exec -u root app sh -c "chown -R www-data:www-data /var/www/html/apps /var/www/html/custom_apps && chmod -R u+rwX,g+rwX /var/www/html/apps /var/www/html/custom_apps" up-devprod-nossl: docker compose -f $(DEVPROD_NOSSL_COMPOSE_FILE) --env-file $(DEVPROD_ENV_FILE) up -d --build down-devprod-nossl: docker compose -f $(DEVPROD_NOSSL_COMPOSE_FILE) --env-file $(DEVPROD_ENV_FILE) down logs-devprod-nossl: docker compose -f $(DEVPROD_NOSSL_COMPOSE_FILE) --env-file $(DEVPROD_ENV_FILE) logs -f --tail=100 ps-devprod-nossl: docker compose -f $(DEVPROD_NOSSL_COMPOSE_FILE) --env-file $(DEVPROD_ENV_FILE) ps occ-devprod-nossl: @test -n "$(cmd)" || (echo "Usage: make occ-devprod-nossl cmd=\"app:list\"" && exit 1) COMPOSE_FILE=$(DEVPROD_NOSSL_COMPOSE_FILE) ./scripts/nextcloud-occ.sh $(DEVPROD_ENV_FILE) $(cmd) install-oidc-devprod-nossl: $(MAKE) fix-apps-perms-devprod-nossl COMPOSE_FILE=$(DEVPROD_NOSSL_COMPOSE_FILE) ./scripts/nextcloud-occ.sh $(DEVPROD_ENV_FILE) app:install user_oidc COMPOSE_FILE=$(DEVPROD_NOSSL_COMPOSE_FILE) ./scripts/nextcloud-occ.sh $(DEVPROD_ENV_FILE) app:enable user_oidc enable-oidc-devprod-nossl: COMPOSE_FILE=$(DEVPROD_NOSSL_COMPOSE_FILE) ./scripts/nextcloud-occ.sh $(DEVPROD_ENV_FILE) app:enable user_oidc fix-apps-perms-devprod-nossl: docker compose -f $(DEVPROD_NOSSL_COMPOSE_FILE) --env-file $(DEVPROD_ENV_FILE) exec -u root app sh -c "chown -R www-data:www-data /var/www/html/apps /var/www/html/custom_apps && chmod -R u+rwX,g+rwX /var/www/html/apps /var/www/html/custom_apps" trust-domain-devprod: @domain="$${domain:-$$(grep -E '^NEXTCLOUD_DOMAIN=' $(DEVPROD_ENV_FILE) | cut -d= -f2-)}"; \ if [ -z "$$domain" ]; then echo "Usage: make trust-domain-devprod domain=cloud.example.com"; exit 1; fi; \ COMPOSE_FILE=$(DEVPROD_COMPOSE_FILE) ./scripts/nextcloud-occ.sh $(DEVPROD_ENV_FILE) config:system:set trusted_domains 1 --value="$$domain"; \ COMPOSE_FILE=$(DEVPROD_COMPOSE_FILE) ./scripts/nextcloud-occ.sh $(DEVPROD_ENV_FILE) config:system:set overwritehost --value="$$domain"; \ COMPOSE_FILE=$(DEVPROD_COMPOSE_FILE) ./scripts/nextcloud-occ.sh $(DEVPROD_ENV_FILE) config:system:set overwriteprotocol --value="https" trust-domain-devprod-nossl: @domain="$${domain:-$$(grep -E '^NEXTCLOUD_DOMAIN=' $(DEVPROD_ENV_FILE) | cut -d= -f2-)}"; \ if [ -z "$$domain" ]; then echo "Usage: make trust-domain-devprod-nossl domain=cloud.example.com"; exit 1; fi; \ COMPOSE_FILE=$(DEVPROD_NOSSL_COMPOSE_FILE) ./scripts/nextcloud-occ.sh $(DEVPROD_ENV_FILE) config:system:set trusted_domains 1 --value="$$domain"; \ COMPOSE_FILE=$(DEVPROD_NOSSL_COMPOSE_FILE) ./scripts/nextcloud-occ.sh $(DEVPROD_ENV_FILE) config:system:set overwritehost --value="$$domain"; \ COMPOSE_FILE=$(DEVPROD_NOSSL_COMPOSE_FILE) ./scripts/nextcloud-occ.sh $(DEVPROD_ENV_FILE) config:system:set overwriteprotocol --value="https"