.PHONY: all build clean test dev docker-build docker-up GO=go GOFLAGS=-ldflags="-s -w" SERVICES=api-gateway auth-svc chat-svc agent-svc search-svc llm-svc scraper-svc discover-svc collection-svc file-svc thread-svc admin-svc all: build build: @for svc in $(SERVICES); do \ echo "Building $$svc..."; \ $(GO) build $(GOFLAGS) -o bin/$$svc ./cmd/$$svc; \ done build-%: $(GO) build $(GOFLAGS) -o bin/$* ./cmd/$* clean: rm -rf bin/ test: $(GO) test -v ./... test-coverage: $(GO) test -coverprofile=coverage.out ./... $(GO) tool cover -html=coverage.out -o coverage.html lint: golangci-lint run ./... dev: @echo "Starting development servers..." @$(GO) run ./cmd/api-gateway & @$(GO) run ./cmd/agent-svc & @$(GO) run ./cmd/search-svc & @wait dev-api-gateway: $(GO) run ./cmd/api-gateway dev-agent-svc: $(GO) run ./cmd/agent-svc dev-chat-svc: $(GO) run ./cmd/chat-svc dev-search-svc: $(GO) run ./cmd/search-svc docker-build: docker build -t gooseek/api-gateway -f deploy/docker/Dockerfile.api-gateway . docker build -t gooseek/agent-svc -f deploy/docker/Dockerfile.agent-svc . docker build -t gooseek/search-svc -f deploy/docker/Dockerfile.search-svc . docker-up: docker-compose -f deploy/docker/docker-compose.yml up -d docker-down: docker-compose -f deploy/docker/docker-compose.yml down deps: $(GO) mod download $(GO) mod tidy generate: $(GO) generate ./... # K8s commands k8s-deploy: ./deploy/k8s/deploy.sh k8s-apply: kubectl apply -k deploy/k8s/ k8s-delete: kubectl delete -k deploy/k8s/ k8s-status: kubectl -n gooseek get pods,svc,ingress k8s-logs-%: kubectl -n gooseek logs -f deployment/$* --all-containers k8s-restart-%: kubectl -n gooseek rollout restart deployment/$*