-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
184 lines (153 loc) Β· 5.31 KB
/
Makefile
File metadata and controls
184 lines (153 loc) Β· 5.31 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
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
.PHONY: help build up down restart logs clean rebuild migrate generate studio
# Default target
help:
@echo "π Codexa Server - Docker Commands"
@echo ""
@echo "Development Commands:"
@echo " make up - Start all services in development mode (hot-reload)"
@echo " make down - Stop all services"
@echo " make restart - Restart all services"
@echo " make logs - View logs from all services"
@echo " make logs-f - Follow logs from all services"
@echo " make build - Build all Docker images"
@echo " make rebuild - Rebuild and restart all services"
@echo ""
@echo "Production Commands:"
@echo " make prod-up - Start all services in production mode"
@echo " make prod-down - Stop production services"
@echo " make prod-build - Build production images"
@echo ""
@echo "Service-specific Commands:"
@echo " make auth - View logs for auth-service"
@echo " make utils - View logs for utils-service"
@echo " make problem - View logs for problem-service"
@echo " make classroom - View logs for classroom-service"
@echo " make code - View logs for code-service"
@echo " make analytics - View logs for analytics-service"
@echo " make ai - View logs for ai-service"
@echo ""
@echo "Database Commands:"
@echo " make migrate - Run database migrations"
@echo " make generate - Generate Prisma client"
@echo " make studio - Open Prisma Studio"
@echo " make db-seed - Seed the database"
@echo ""
@echo "Cleanup Commands:"
@echo " make clean - Stop and remove all containers, networks"
@echo " make clean-all - Stop and remove containers, networks, volumes (β οΈ deletes data)"
@echo " make prune - Remove unused Docker resources"
@echo ""
@echo "Status Commands:"
@echo " make ps - List running containers"
@echo " make status - Show service health status"
# Development commands
up:
@echo "π Starting Codexa services in development mode..."
docker-compose up -d
@echo "β
Services started! Run 'make logs' to view logs"
down:
@echo "π Stopping all services..."
docker-compose down
@echo "β
Services stopped"
restart:
@echo "π Restarting all services..."
docker-compose restart
@echo "β
Services restarted"
build:
@echo "π¨ Building Docker images..."
docker-compose build
@echo "β
Build complete"
rebuild:
@echo "π¨ Rebuilding and restarting services..."
docker-compose up -d --build
@echo "β
Rebuild complete"
logs:
docker-compose logs --tail=100
logs-f:
docker-compose logs -f
# Production commands
prod-up:
@echo "π Starting Codexa services in production mode..."
docker-compose -f docker-compose.prod.yml up -d
@echo "β
Production services started"
prod-down:
@echo "π Stopping production services..."
docker-compose -f docker-compose.prod.yml down
@echo "β
Production services stopped"
prod-build:
@echo "π¨ Building production Docker images..."
docker-compose -f docker-compose.prod.yml build
@echo "β
Production build complete"
# Service-specific logs
auth:
docker-compose logs -f auth-service
utils:
docker-compose logs -f utils-service
problem:
docker-compose logs -f problem-service
classroom:
docker-compose logs -f classroom-service
code:
docker-compose logs -f code-service
analytics:
docker-compose logs -f analytics-service
ai:
docker-compose logs -f ai-service
# Database commands
migrate:
@echo "π Running database migrations..."
docker-compose exec -w /app/db-service auth-service npx prisma migrate deploy
@echo "β
Migrations complete"
generate:
@echo "π§ Generating Prisma client..."
docker-compose exec -w /app/db-service auth-service npx prisma generate
docker-compose exec -w /app/db-service classroom-service npx prisma generate
docker-compose exec -w /app/db-service classroom-service npm run build
@echo "β
Prisma client generated"
studio:
@echo "π¨ Opening Prisma Studio..."
@echo "Access at: http://localhost:5555"
docker-compose exec -w /app/db-service auth-service npx prisma studio
db-seed:
@echo "π± Seeding database..."
docker-compose exec auth-service node seed.js
@echo "β
Database seeded"
# Cleanup commands
clean:
@echo "π§Ή Cleaning up..."
docker-compose down
@echo "β
Cleanup complete"
clean-all:
@echo "β οΈ WARNING: This will delete all data!"
@read -p "Are you sure? [y/N] " -n 1 -r; \
echo; \
if [[ $$REPLY =~ ^[Yy]$$ ]]; then \
docker-compose down -v; \
echo "β
Full cleanup complete"; \
else \
echo "β Cleanup cancelled"; \
fi
prune:
@echo "π§Ή Pruning unused Docker resources..."
docker system prune -f
@echo "β
Prune complete"
# Status commands
ps:
docker-compose ps
status:
@echo "π Service Status:"
@docker-compose ps
@echo ""
@echo "π Health Checks:"
@docker inspect codexa-postgres --format='Postgres: {{.State.Health.Status}}' 2>/dev/null || echo "Postgres: not running"
@docker inspect codexa-redis --format='Redis: {{.State.Health.Status}}' 2>/dev/null || echo "Redis: not running"
@docker inspect codexa-kafka --format='Kafka: {{.State.Health.Status}}' 2>/dev/null || echo "Kafka: not running"
# Shell access
shell-auth:
docker-compose exec auth-service sh
shell-utils:
docker-compose exec utils-service sh
shell-problem:
docker-compose exec problem-service sh
shell-db:
docker-compose exec postgres psql -U user -d codexa