.PHONY: help dev web server migrate ext ext-watch ext-publish ext-test test typecheck build prod down logs
help:
@echo "make dev — postgres + API in docker, web panel on :5173"
@echo "make web — web panel dev server (Vite, :5173)"
@echo "make migrate — apply alembic migrations (docker)"
@echo "make ext — build the extension (chrome + firefox)"
@echo "make ext-watch — rebuild the extension on change"
@echo "make ext-publish — publish the overlay module to the server (LTT_EMAIL/LTT_PASSWORD)"
@echo "make ext-test — e2e smoke test of the built extension (needs dev stack up)"
@echo "make test — server tests"
@echo "make typecheck — vue-tsc for web + extension"
@echo "make build — production build of the web panel"
@echo "make prod — production stack (caddy :8081 + API + postgres)"
@echo "make down — stop the dev stack"
@echo "make logs — follow server logs"
dev:
docker compose up -d --build
$(MAKE) web
web:
npm run dev -w @ltt/web
migrate:
docker compose exec server alembic upgrade head
ext:
npm run build -w @ltt/extension
npm run package -w @ltt/extension # zips into packages/web/public/ext (download page)
ext-watch:
npm run watch:chrome -w @ltt/extension
# publishing the hot overlay is manual: it needs credentials and a reachable server
ext-publish:
LTT_SERVER=${LTT_SERVER:-http://localhost:8001} LTT_EMAIL=$(LTT_EMAIL) LTT_PASSWORD=$(LTT_PASSWORD) \
npm run publish -w @ltt/extension
ext-test:
node packages/extension/e2e.mjs
test:
docker compose exec server pytest tests/ -q
typecheck:
npm run typecheck -w @ltt/web
npm run typecheck -w @ltt/extension
build:
npm run build -w @ltt/web
npm run build -w @ltt/extension
prod:
npm run build -w @ltt/extension
npm run package -w @ltt/extension # fresh extension zips for the download page
npm run build -w @ltt/web
docker compose -f docker-compose.prod.yml up -d --build
down:
docker compose down
-docker compose -f docker-compose.prod.yml down
logs:
docker compose logs -f server