-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
120 lines (98 loc) · 5.94 KB
/
Makefile
File metadata and controls
120 lines (98 loc) · 5.94 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
# ═══════════════════════════════════════════════════════════════════════════════
# Logistics Optimizer — Makefile
# ═══════════════════════════════════════════════════════════════════════════════
.PHONY: help install init build up up:dev down restart logs clean clean:all osrm web test lint typecheck
# ─────────────────────────────────────────────────────────────────────────────
# Development
# ─────────────────────────────────────────────────────────────────────────────
help:
@echo "📦 Logistics Optimizer — Доступные команды:"
@echo ""
@echo " make install Установить зависимости (pnpm + node_modules)"
@echo " make osrm Скачать OSM данные для маршрутизации (~12GB)"
@echo " make init Полная инициализация (install + osrm + docker pull)"
@echo ""
@echo " make build Собрать все сервисы"
@echo " make up Запустить Docker"
@echo " make up:dev Docker + фронтенд"
@echo " make web Только фронтенд"
@echo " make down Остановить Docker"
@echo " make restart Перезапустить"
@echo " make logs Логи Docker"
@echo ""
@echo " make test Запустить тесты"
@echo " make lint Линтинг"
@echo " make typecheck Проверка типов"
@echo ""
@echo " make clean Удалить контейнеры и тома"
@echo " make clean:all + node_modules и osrm-data"
# ═══════════════════════════════════════════════════════════════════════════════
# Инициализация
# ═══════════════════════════════════════════════════════════════════════════════
install:
@echo "📥 Установка зависимостей..."
pnpm install
osrm:
@echo "🗺️ Скачивание OSM данных для России (~12GB)..."
@mkdir -p osrm-data
@if [ -f osrm-data/russia-latest.osm.pbf ]; then \
echo "✅ Данные уже есть"; \
else \
wget -q --show-progress -P osrm-data \
https://download.geofabrik.de/russia-latest.osm.pbf; \
fi
@echo "✅ OSM данные готовы. Запустите: docker compose up -d"
init: install osrm
@echo "🐳 Загрузка Docker образов..."
docker compose pull
@echo ""
@echo "✅ Готово! Запустите: make up"
# ═══════════════════════════════════════════════════════════════════════════════
# Сборка и запуск
# ═══════════════════════════════════════════════════════════════════════════════
build:
@echo "🏗️ Сборка..."
pnpm build
# Запуск Docker + фронтенд
up:dev:
@echo "🚀 Запуск Docker + Frontend..."
docker compose -f docker-compose.yml -f docker-compose.services.yml up -d
@echo "🌐 Запуск фронтенда..."
cd apps/web && pnpm dev
# Запуск только фронтенда
web:
@echo "🌐 Запуск фронтенда..."
cd apps/web && pnpm dev
up:
@echo "🚀 Запуск..."
docker compose -f docker-compose.yml -f docker-compose.services.yml up -d
down:
@echo "⏹️ Остановка..."
docker compose -f docker-compose.yml -f docker-compose.services.yml down
restart: down up
logs:
docker compose -f docker-compose.yml -f docker-compose.services.yml logs -f
# ═══════════════════════════════════════════════════════════════════════════════
# Quality Assurance
# ═══════════════════════════════════════════════════════════════════════════════
test:
pnpm test
lint:
pnpm lint
typecheck:
pnpm typecheck
# ═══════════════════════════════════════════════════════════════════════════════
# Cleanup
# ═══════════════════════════════════════════════════════════════════════════════
clean:
@echo "🧹 Очистка Docker..."
docker compose -f docker-compose.yml -f docker-compose.services.yml down -v
clean:all:
@echo "🧹 Полная очистка..."
docker compose -f docker-compose.yml -f docker-compose.services.yml down -v
rm -rf node_modules
rm -rf osrm-data
rm -rf apps/*/dist
rm -rf apps/*/node_modules
rm -rf libs/*/dist
rm -rf libs/*/node_modules