HEX
Server: Apache/2.4.52 (Ubuntu)
System: Linux mail.btech-izolacje.pl 5.15.0-140-generic #150-Ubuntu SMP Sat Apr 12 06:00:09 UTC 2025 x86_64
User: pewna6876 (1017)
PHP: 8.2.28
Disabled: NONE
Upload Files
File: //srv/rmgun_admin/admin-next/Makefile
# Configuration variables
ENV ?= local
COMPOSE_PROJECT_NAME ?= rmgun-admin

# Docker compose files
DEV_COMPOSE_FILE = dockers/local/docker-compose.yml
PROD_COMPOSE_FILE = dockers/prod/docker-compose.yml

# Set compose file and env file based on environment
ifeq ($(ENV),prod)
	COMPOSE_FILE = $(PROD_COMPOSE_FILE)
	ENV_FILE = ./secrets/prod/.env
	ENV_DIR = prod
	CONTAINER_PREFIX = rmgun-admin-prod
else ifeq ($(ENV),production)
	COMPOSE_FILE = $(PROD_COMPOSE_FILE)
	ENV_FILE = ./secrets/prod/.env
	ENV_DIR = prod
	CONTAINER_PREFIX = rmgun-admin-prod
else
	# Default to local
	COMPOSE_FILE = $(DEV_COMPOSE_FILE)
	ENV_FILE = ./secrets/local/.env
	ENV_DIR = local
	CONTAINER_PREFIX = rmgun-admin
endif

# Docker compose command with env file
DOCKER_COMPOSE = docker-compose -f $(COMPOSE_FILE) --env-file $(ENV_FILE)

.PHONY: help build up down logs clean dev prod restart test-email rebuild stop deploy start

help:
	@echo "Available commands:"
	@echo ""
	@echo "  ๐Ÿณ Docker Commands:"
	@echo "  make build       - Build Docker images"
	@echo "  make rebuild     - Rebuild and restart all services"
	@echo "  make start       - Start all services (detached)"
	@echo "  make up          - Start all services (detached)"
	@echo "  make down        - Stop all services"
	@echo "  make stop        - Stop all services (alias for down)"
	@echo "  make restart     - Restart all services"
	@echo "  make clean       - Clean up containers and images"
	@echo "  make logs        - Show logs from all services"
	@echo ""
	@echo "  ๐Ÿš€ Environment Commands:"
	@echo "  make dev         - Start in development mode (attached)"
	@echo "  make prod        - Start in production mode (detached)"
	@echo "  make deploy      - Deploy to production server"
	@echo ""
	@echo "  ๐Ÿ“Š Service-specific Commands:"
	@echo "  make nextjs-logs    - Show Next.js app logs"
	@echo "  make express-logs   - Show Express service logs"
	@echo "  make nextjs-shell   - Open shell in Next.js container"
	@echo "  make express-shell  - Open shell in Express container"
	@echo "  make test-email     - Send test email"
	@echo ""
	@echo "  ๐ŸŽฏ Environment Selection:"
	@echo "  All commands support ENV variable:"
	@echo "  ENV=local make build   (default)"
	@echo "  ENV=prod make build"
	@echo ""
	@echo "  Current ENV: $(ENV)"
	@echo "  Using: $(COMPOSE_FILE)"

# Build commands
build:
	@echo "๐Ÿ”จ Building $(ENV) environment..."
	$(DOCKER_COMPOSE) build

rebuild:
	@echo "๐Ÿ”„ Rebuilding $(ENV) environment..."
	$(DOCKER_COMPOSE) down
	$(DOCKER_COMPOSE) build --no-cache
	$(DOCKER_COMPOSE) up -d
	@echo "โœ… Rebuild complete!"

# rebuild with cache
rebuild-cache:
	@echo "Rebuilding with -- no cache "
	$(DOCKER_COMPOSE) build --no-cache
	$(DOCKER_COMPOSE) up -d

# Start/Stop commands
start:
	@echo "โ–ถ๏ธ  Starting $(ENV) environment..."
	$(DOCKER_COMPOSE) up -d

up: start

down:
	@echo "โน๏ธ  Stopping $(ENV) environment..."
	$(DOCKER_COMPOSE) down

stop: down

restart:
	@echo "๐Ÿ”„ Restarting $(ENV) environment..."
	$(DOCKER_COMPOSE) restart

# Development/Production shortcuts
dev:
	@echo "๐Ÿ‘จโ€๐Ÿ’ป Starting local development environment..."
	@ENV=local $(MAKE) clean
	@ENV=local $(MAKE) build
	@docker-compose -f $(DEV_COMPOSE_FILE) --env-file ./secrets/local/.env up

prod:
	@echo "๐Ÿš€ Starting production environment locally..."
	@ENV=prod $(MAKE) down
	@ENV=prod $(MAKE) build
	@ENV=prod $(MAKE) up
	@echo "โœ… Production environment started!"

# Logs commands
logs:
	$(DOCKER_COMPOSE) logs -f

nextjs-logs:
	docker logs -f $(CONTAINER_PREFIX)-next

express-logs:
	docker logs -f $(CONTAINER_PREFIX)-express-service

# Shell commands
nextjs-shell:
	docker exec -it $(CONTAINER_PREFIX)-next sh

express-shell:
	docker exec -it $(CONTAINER_PREFIX)-express-service sh

# Cleanup
clean:
	@echo "๐Ÿงน Cleaning up $(ENV) environment..."
	$(DOCKER_COMPOSE) down -v
	docker rmi $(CONTAINER_PREFIX)-next $(CONTAINER_PREFIX)-express-service 2>/dev/null || true

# Testing
test-email:
	@echo "๐Ÿ“ง Sending test email..."
	@curl http://localhost:4000/email/test

# Deployment
deploy:
	@echo "๐Ÿš€ Deploying to production server..."
	@./deploy.sh

# Status check
status:
	@echo "๐Ÿ“Š Container status for $(ENV) environment:"
	@docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" | grep -E "$(CONTAINER_PREFIX)|NAMES" || echo "No containers running"

# Quick development reset
reset:
	@echo "๐Ÿ”„ Resetting local development environment..."
	@ENV=local $(MAKE) clean
	@ENV=local $(MAKE) build
	@ENV=local $(MAKE) up
	@echo "โœ… Local environment reset complete!"