-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
123 lines (104 loc) · 3.11 KB
/
Makefile
File metadata and controls
123 lines (104 loc) · 3.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
.PHONY: help env-check db minio app compose status
include .env
export
# --------------------------
# Help
# --------------------------
help:
@echo "01Blog Makefile Commands:"
@echo ""
@echo " Database:"
@echo " make db-up - Start PostgreSQL"
@echo " make db-down - Stop PostgreSQL"
@echo " make db-logs - Show DB logs"
@echo " make db-shell - Connect to DB shell"
@echo ""
@echo " MinIO:"
@echo " make minio-up - Start MinIO"
@echo " make minio-down - Stop MinIO"
@echo " make minio-logs - Show MinIO logs"
@echo ""
@echo " App:"
@echo " make run - Run backend locally"
@echo " make build - Build backend"
@echo " make clean - Clean build"
@echo " make test - Run tests"
@echo ""
@echo " Docker Compose Stack:"
@echo " make compose-up - Start all containers"
@echo " make compose-down - Stop all containers"
@echo " make compose-logs - View logs"
@echo " make compose-restart - Restart all containers"
@echo ""
@echo " Utility:"
@echo " make env-check - Check environment variables"
@echo " make status - Check system status"
# --------------------------
# Environment check
# --------------------------
env-check:
@echo "=== Environment Check ==="
@echo "DB_HOST: $(DB_HOST)"
@echo "DB_PORT: $(DB_PORT)"
@echo "DB_NAME: $(DB_NAME)"
@echo "DB_USER: $(DB_USER)"
@echo "BACKEND_PORT: $(BACKEND_PORT)"
@echo "FRONTEND_PORT: $(FRONTEND_PORT)"
@echo "MINIO_PORT: $(MINIO_PORT)"
@echo "JWT_SECRET: $$(echo $(JWT_SECRET) | cut -c1-10)..."
@echo "JWT_EXPIRATION": $(JWT_EXPIRATION)
# --------------------------
# Docker Compose stack
# --------------------------
compose-up:
@echo "🚀 Starting 01Blog stack..."
docker compose up -d --build
@echo "✅ Stack started!"
compose-down:
@echo "🛑 Stopping 01Blog stack..."
docker compose down
@echo "✅ Stack stopped!"
compose-logs:
docker compose logs -f
compose-restart: compose-down compose-up
@echo "🔄 Stack restarted!"
# --------------------------
# Database commands
# --------------------------
db-up:
docker compose up -d db
db-down:
docker compose stop db && docker compose rm -f db
db-logs:
docker compose logs -f db
db-shell:
docker compose exec db psql -U $(DB_USER) -d $(DB_NAME)
# --------------------------
# MinIO commands
# --------------------------
minio-up:
docker compose up -d minio
minio-down:
docker compose stop minio && docker compose rm -f minio
minio-logs:
docker compose logs -f minio
# --------------------------
# Backend app commands
# --------------------------
run:
mvn -f backend/pom.xml spring-boot:run
build:
mvn -f backend/pom.xml clean compile
clean:
mvn -f backend/pom.xml clean
test:
mvn -f backend/pom.xml test
# --------------------------
# Status
# --------------------------
status: env-check
@echo "=== System Status ==="
@docker ps --filter "name=db" --format "PostgreSQL: {{.Status}}"
@docker ps --filter "name=minio" --format "MinIO: {{.Status}}"
@docker ps --filter "name=backend" --format "Backend: {{.Status}}"
@docker ps --filter "name=frontend" --format "Frontend: {{.Status}}"