.PHONY: install dev prod stop logs remove auth sync COMPOSE = docker compose auth: @mkdir -p .claude-data storage projects @chown -R 1000:1000 .claude-data storage projects @grep -q "^CLAUDE_CODE_OAUTH_TOKEN=.\+" .env 2>/dev/null \ || echo "WARNUNG: CLAUDE_CODE_OAUTH_TOKEN fehlt in .env (Claude-Provider inaktiv)." @grep -q "^MINIMAX_API_KEY=.\+" .env 2>/dev/null \ || echo "WARNUNG: MINIMAX_API_KEY fehlt in .env (MiniMax-Provider inaktiv)." @echo "Verzeichnisse angelegt und auf uid 1000 chowned." install: sudo apt install -y poppler-utils libpango-1.0-0 libcairo2 libgdk-pixbuf-2.0-0 libffi-dev pip install --break-system-packages fastapi uvicorn[standard] aiosqlite weasyprint pdf2image uv cd frontend && npm install npm install -g opencode-ai @mkdir -p $(HOME)/.config/opencode @ln -sfn $(CURDIR)/dev-ops/opencode.json $(HOME)/.config/opencode/opencode.json @if grep -q "^MINIMAX_API_KEY=.\+" .env 2>/dev/null; then \ echo "OpenCode-Config verlinkt. MINIMAX_API_KEY aus .env wird von 'make dev' geladen."; \ else \ echo "OpenCode-Config verlinkt. MINIMAX_API_KEY noch in .env eintragen."; \ fi dev: @echo "Backend: http://localhost:8000" @echo "Frontend: http://localhost:5173" @set -a; [ -f .env ] && . ./.env; set +a; \ cd backend && uvicorn main:app --reload --port 8000 & @cd frontend && npx vite --port 5173 prod: auth $(COMPOSE) up -d --build stop: -@pkill -f "uvicorn main:app" 2>/dev/null -@pkill -f "vite --port 5173" 2>/dev/null $(COMPOSE) down @echo "Server gestoppt." logs: $(COMPOSE) logs -f remove: stop @echo "Lösche Datenbank und generierte Dateien..." rm -rf storage/* @echo "Fertig." sync: @mkdir -p storage/html storage/pdf rsync -avz --progress root@178.104.67.87:/var/www/guides/storage/guides.db storage/ rsync -avz --progress --delete root@178.104.67.87:/var/www/guides/storage/html/ storage/html/ rsync -avz --progress --delete root@178.104.67.87:/var/www/guides/storage/pdf/ storage/pdf/ @echo "Sync abgeschlossen."