8824f79c64
APACHE_RUN_USER/GROUP=#1000 makes PHP/Apache write files owned by the host user (mischa) instead of http. fix-perms target in setup ensures ownership is correct after plugin install. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
106 lines
3.8 KiB
Makefile
106 lines
3.8 KiB
Makefile
-include .env
|
|
export
|
|
|
|
REMOTE_PORT ?= 22
|
|
SSH := ssh -p $(REMOTE_PORT) $(REMOTE_USER)@$(REMOTE_HOST)
|
|
WEBROOT ?= $(REMOTE_HOME)/public_html
|
|
SITE_CONFIG_DIR ?= $(REMOTE_HOME)/site-config
|
|
|
|
# ── Tests ─────────────────────────────────────────────────────────────────────
|
|
|
|
test-config:
|
|
@bash scripts/test-form-config.sh
|
|
|
|
test-post:
|
|
@bash scripts/test-post.sh
|
|
|
|
test-ui:
|
|
@npx playwright test
|
|
|
|
test: test-config test-post test-ui
|
|
|
|
# ── Local dev ──────────────────────────────────────────────────────────────────
|
|
|
|
start:
|
|
docker compose up -d
|
|
|
|
stop:
|
|
docker compose down
|
|
|
|
setup: start install-plugins fix-perms
|
|
|
|
fix-perms:
|
|
docker exec intotheeast_grav chown -R 1000:1000 /var/www/html
|
|
|
|
install-plugins:
|
|
docker exec -w /var/www/html intotheeast_grav php bin/gpm install $(shell cat plugins.txt | tr '\n' ' ') -y
|
|
|
|
# ── Demo content ──────────────────────────────────────────────────────────────
|
|
|
|
demo-load:
|
|
cp -r user/docs/demo/tracker/. user/pages/01.tracker/
|
|
docker exec intotheeast_grav bash -c "cd /var/www/html && php bin/grav clearcache"
|
|
|
|
demo-reset:
|
|
@for dir in user/docs/demo/tracker/*/; do \
|
|
folder=$$(basename "$$dir"); \
|
|
rm -rf "user/pages/01.tracker/$$folder"; \
|
|
done
|
|
docker exec intotheeast_grav bash -c "cd /var/www/html && php bin/grav clearcache"
|
|
|
|
# ── Content sync (user repo ↔ Gitea) ──────────────────────────────────────────
|
|
|
|
content-push:
|
|
git -C user push origin main
|
|
|
|
content-pull:
|
|
git -C user pull origin main
|
|
|
|
# ── Remote credentials ─────────────────────────────────────────────────────────
|
|
|
|
remote-env-setup:
|
|
@$(SSH) "printf 'GITEA_HOST=%s\nGITEA_USER=%s\nGITEA_TOKEN=%s\n' \
|
|
'$(GITEA_HOST)' '$(GITEA_USER)' '$(GITEA_TOKEN)' > ~/.env-intotheeast && chmod 600 ~/.env-intotheeast"
|
|
@echo "Credentials written to server. Run 'make remote-env-remove' when done."
|
|
|
|
remote-env-remove:
|
|
@$(SSH) "rm -f ~/.env-intotheeast"
|
|
@echo "Credentials removed from server."
|
|
|
|
# ── Remote: initial install ────────────────────────────────────────────────────
|
|
|
|
remote-wipe:
|
|
$(SSH) "cd $(WEBROOT) && rm -rf assets backup bin cache images logs system tmp vendor webserver-configs index.php .htaccess CHANGELOG.md LICENSE.txt README.md"
|
|
|
|
remote-install:
|
|
$(SSH) "WEBROOT=$(WEBROOT) \
|
|
SITE_CONFIG_DIR=$(SITE_CONFIG_DIR) \
|
|
USER_REPO=$(USER_REPO) \
|
|
MAIN_REPO=$(MAIN_REPO) \
|
|
GRAV_VERSION=$(GRAV_VERSION) \
|
|
PLUGINS='$(shell cat plugins.txt | tr '\n' ' ')' \
|
|
GITEA_HOST=$(GITEA_HOST) \
|
|
GITEA_USER=$(GITEA_USER) \
|
|
GITEA_TOKEN=$(GITEA_TOKEN) \
|
|
bash -s" < scripts/server-install.sh
|
|
|
|
# ── Remote: ongoing maintenance ────────────────────────────────────────────────
|
|
|
|
remote-fetch:
|
|
$(SSH) "git -C $(SITE_CONFIG_DIR) pull"
|
|
|
|
remote-install-plugins:
|
|
$(SSH) "cd $(WEBROOT) && php bin/gpm install $(shell cat plugins.txt | tr '\n' ' ') -y"
|
|
|
|
remote-upgrade-grav:
|
|
$(SSH) "cd $(WEBROOT) && php bin/grav upgrade"
|
|
|
|
remote-clean:
|
|
$(SSH) "cd $(WEBROOT) && php bin/grav clearcache"
|
|
|
|
remote-maintenance-on:
|
|
$(SSH) "bash -s on $(WEBROOT)" < scripts/server-maintenance.sh
|
|
|
|
remote-maintenance-off:
|
|
$(SSH) "bash -s off $(WEBROOT)" < scripts/server-maintenance.sh
|