Files
spore-deployment/Makefile

124 lines
3.3 KiB
Makefile

.PHONY: help build push up down logs ps restart clean nomad-start nomad-stop nomad-status nomad-ui nomad-job-run nomad-job-stop nomad-logs
# Default target
help:
@echo "SPORE Deployment Makefile"
@echo ""
@echo "Targets:"
@echo " make build - Build all Docker images"
@echo " make push - Build and push all Docker images to Docker Hub"
@echo " make up - Start all services"
@echo " make down - Stop all services"
@echo " make logs - View logs from all services"
@echo " make ps - Show service status"
@echo " make restart - Restart all services"
@echo " make clean - Stop services and remove data directory"
@echo " make gateway-logs - View gateway logs"
@echo " make ledlab-logs - View LEDLab logs"
@echo " make registry-logs - View registry logs"
@echo " make ui-logs - View UI logs"
@echo " make mqtt-logs - View MQTT broker logs"
@echo ""
@echo "Nomad targets:"
@echo " make nomad-start - Start Nomad locally"
@echo " make nomad-stop - Stop Nomad"
@echo " make nomad-status - Check Nomad status"
@echo " make nomad-ui - Open Nomad UI in browser"
@echo " make nomad-job-run - Deploy SPORE job to Nomad"
@echo " make nomad-job-stop - Stop SPORE job in Nomad"
@echo " make nomad-logs - View Nomad job logs"
# Build all images
build:
docker compose build
# Build and push all images to Docker Hub
push:
@echo "Building and pushing all SPORE images to Docker Hub..."
@echo "Building spore-gateway..."
@cd ../spore-gateway && make docker-build && make docker-push
@echo "Building spore-registry..."
@cd ../spore-registry && make docker-build && make docker-push
@echo "Building spore-ledlab..."
@cd ../spore-ledlab && make docker-build && make docker-push
@echo "Building spore-ui..."
@cd ../spore-ui && make docker-build && make docker-push
@echo "All images pushed successfully!"
# Start all services
up:
docker compose up -d
# Stop all services
down:
docker compose down
# View logs
logs:
docker compose logs -f
# Show service status
ps:
docker compose ps
# Restart all services
restart:
docker compose restart
# Clean (stop and remove data)
clean:
@echo "Stopping services..."
@docker compose down
@echo "Removing data directory..."
@rm -rf ./data/
@echo "Clean complete"
# Service-specific logs
gateway-logs:
docker compose logs -f gateway
ledlab-logs:
docker compose logs -f ledlab
registry-logs:
docker compose logs -f registry
ui-logs:
docker compose logs -f ui
mqtt-logs:
docker compose logs -f mqtt
# Nomad targets
nomad-start:
@echo "Starting Nomad..."
@mkdir -p nomad-data
@sudo nomad agent -dev -config=./config/nomad/nomad.hcl -data-dir=$(PWD)/nomad-data
@sleep 2
@echo "Nomad started at http://localhost:4646"
nomad-stop:
@echo "Stopping Nomad..."
@pkill -f "nomad agent" || true
@echo "Stopped"
nomad-status:
@nomad status || echo "Nomad not running"
nomad-ui:
@echo "Opening Nomad UI at http://localhost:4646"
@xdg-open http://localhost:4646 2>/dev/null || open http://localhost:4646 2>/dev/null || echo "Please open http://localhost:4646 in your browser"
nomad-job-run:
@echo "Deploying SPORE job to Nomad..."
@nomad job run ./nomad/spore.hcl
nomad-job-stop:
@echo "Stopping SPORE job in Nomad..."
@nomad job stop spore
nomad-logs:
@echo "Showing logs for SPORE jobs..."
@nomad job logs spore