Files
compose/Makefile

69 lines
1.9 KiB
Makefile
Raw Normal View History

2025-08-08 15:08:10 -04:00
# Base path for docker-compose files
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:
@echo "Deploying with $(ENV) environment ($(ENV_FILE))..."
2025-08-08 15:08:10 -04:00
@for service in $(SERVICES); do \
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:
@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
# 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 \
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:
@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
# 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!"