124 lines
3.3 KiB
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
|
|
|