2025-08-08 15:08:10 -04:00
|
|
|
# Base path for docker-compose files
|
2026-05-20 14:20:44 -04:00
|
|
|
COMPOSE_PATH?=~/Projects/AltNet/docker-compose
|
|
|
|
|
|
|
|
|
|
# Environment selection: staging or production (default)
|
|
|
|
|
ENV?=production
|
|
|
|
|
ENV_FILE=.env.$(ENV)
|
2025-08-08 15:08:10 -04:00
|
|
|
|
|
|
|
|
# List of services (folder names)
|
|
|
|
|
SERVICES=monitoring ai cloudstorage crm_tp crm_cf mediacenter homeautomation network backup homepage passwordmanager
|
|
|
|
|
|
|
|
|
|
# Bring up all services
|
|
|
|
|
all_up:
|
2026-05-20 14:20:44 -04:00
|
|
|
@echo "Deploying with $(ENV) environment ($(ENV_FILE))..."
|
2025-08-08 15:08:10 -04:00
|
|
|
@for service in $(SERVICES); do \
|
2026-05-20 14:20:44 -04:00
|
|
|
docker compose --env-file $(ENV_FILE) -f $(COMPOSE_PATH)/$$service/compose.yml up -d; \
|
2025-08-08 15:08:10 -04:00
|
|
|
done
|
|
|
|
|
|
|
|
|
|
# Bring down all services
|
|
|
|
|
all_down:
|
|
|
|
|
@for service in $(SERVICES); do \
|
|
|
|
|
docker compose -f $(COMPOSE_PATH)/$$service/compose.yml down; \
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
# Generic target to deploy a specific service
|
|
|
|
|
%_up:
|
2026-05-20 14:20:44 -04:00
|
|
|
@echo "Deploying $* with $(ENV) environment ($(ENV_FILE))..."
|
|
|
|
|
@docker compose --env-file $(ENV_FILE) -f $(COMPOSE_PATH)/$*/compose.yml up -d
|
2025-08-08 15:08:10 -04:00
|
|
|
|
|
|
|
|
# Generic target to bring down a specific service
|
|
|
|
|
%_down:
|
|
|
|
|
@docker compose -f $(COMPOSE_PATH)/$*/compose.yml down
|
|
|
|
|
|
2026-05-20 14:20:44 -04:00
|
|
|
# Deploy staging (all services)
|
|
|
|
|
staging:
|
|
|
|
|
@$(MAKE) all_up ENV=staging
|
|
|
|
|
|
|
|
|
|
# Deploy production (all services)
|
|
|
|
|
production:
|
|
|
|
|
@$(MAKE) all_up ENV=production
|
|
|
|
|
|
|
|
|
|
# Staging per-service: make openwebui_up ENV=staging
|
|
|
|
|
# Production per-service: make openwebui_up ENV=production
|
|
|
|
|
|
2025-08-08 15:08:10 -04:00
|
|
|
all_stack_up:
|
|
|
|
|
@for service in $(SERVICES); do \
|
2026-05-20 14:20:44 -04:00
|
|
|
docker stack deploy --env-file $(ENV_FILE) -c $(COMPOSE_PATH)/$$service/compose.yml $$service; \
|
2025-08-08 15:08:10 -04:00
|
|
|
done
|
|
|
|
|
|
|
|
|
|
all_stack_down:
|
|
|
|
|
@for service in $(SERVICES); do \
|
|
|
|
|
docker stack rm $$service; \
|
|
|
|
|
done
|
|
|
|
|
|
|
|
|
|
%_stack_up:
|
2026-05-20 14:20:44 -04:00
|
|
|
@docker stack deploy --env-file $(ENV_FILE) -c $(COMPOSE_PATH)/$*/compose.yml $*
|
2025-08-08 15:08:10 -04:00
|
|
|
|
|
|
|
|
%_stack_down:
|
|
|
|
|
@docker stack rm $*
|
|
|
|
|
|
|
|
|
|
stack_ls:
|
|
|
|
|
@docker node ps workGoat;
|
|
|
|
|
docker node ps workHorse
|
2026-05-20 14:20:44 -04:00
|
|
|
|
|
|
|
|
# Show current environment settings
|
|
|
|
|
env:
|
|
|
|
|
@echo "Active environment: $(ENV)"
|
|
|
|
|
@echo "Env file: $(ENV_FILE)"
|
|
|
|
|
@test -f $(ENV_FILE) && cat $(ENV_FILE) || echo "WARNING: $(ENV_FILE) not found!"
|