# HomeAI Makefile — convenience wrapper around setup.sh # Run `make help` to see all targets. SHELL := /bin/bash REPO_DIR := $(shell pwd) .PHONY: help all status infra llm voice agent character esp32 visual images \ up down restart logs ps clean help: @echo "" @echo " HomeAI — Make targets" @echo "" @echo " Setup:" @echo " make all Run full setup (all phases)" @echo " make infra P1: Docker infra stack" @echo " make llm P2: Ollama + Open WebUI" @echo " make voice P3: STT / TTS / Wyoming" @echo " make agent P4: OpenClaw + skills" @echo " make character P5: Character Manager" @echo " make esp32 P6: ESPHome firmware" @echo " make visual P7: VTube Studio bridge" @echo " make images P8: ComfyUI" @echo "" @echo " Operations:" @echo " make status Show service health" @echo " make up Start all Docker services" @echo " make down Stop all Docker services" @echo " make restart Restart all Docker services" @echo " make logs Tail logs (all services)" @echo " make ps Show running containers" @echo " make clean Remove stopped containers" @echo "" all: bash setup.sh all status: bash setup.sh status infra: bash setup.sh p1 llm: bash setup.sh p2 voice: bash setup.sh p3 agent: bash setup.sh p4 character: bash setup.sh p5 esp32: bash setup.sh p6 visual: bash setup.sh p7 images: bash setup.sh p8 # ─── Docker operations ───────────────────────────────────────────────────────── up: @cd homeai-infra && docker compose -f docker/docker-compose.yml up -d @cd homeai-llm && docker compose -f docker/docker-compose.yml up -d down: @cd homeai-infra && docker compose -f docker/docker-compose.yml down || true @cd homeai-llm && docker compose -f docker/docker-compose.yml down || true restart: @cd homeai-infra && docker compose -f docker/docker-compose.yml restart @cd homeai-llm && docker compose -f docker/docker-compose.yml restart logs: @cd homeai-infra && docker compose -f docker/docker-compose.yml logs -f --tail=50 ps: @docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" | grep homeai || \ docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" clean: @docker container prune -f