# Основная цель - выполняет полный цикл обновления и перезапуска всех сервисов
all: stop_all git build_all start_all wat

# Перезапуск всех сервисов и мониторинг состояния
restart_all:
	docker compose restart && wat

# Полная остановка всех сервисов
stop_all:
	docker compose down

# Полная пересборка всех сервисов без кэша
build_all:
	docker compose build --no-cache

# Запуск всех сервисов в фоновом режиме
start_all:
	docker compose up -d

# Целевая команда для обновления сервиса api_bb
api_bb: git stop_bb build_bb run_bb api_bb_logs

# Обновление кода из git репозитория
git:
	git pull

# Остановка только сервиса api_bb
stop_bb:
	docker compose down api_bb

# Пересборка только сервиса api_bb
build_bb:
	docker compose build api_bb --no-cache

# Запуск только сервиса api_bb в фоновом режиме
run_bb:
	docker compose up api_bb -d

# Подключение к базе данных Бегущий Башкир через psql
bb_db:
	docker exec -it serv_nginx-db-1 sh -c "psql -U postgres -d bb_db

# Просмотр логов api_bb в реальном времени
api_bb_logs:
	docker logs api_bb -f

# Перезапуск всех сервисов (альтернативная команда)
restart:
	docker compose down && docker compose up -d

# Очистка кэша npm
npm_clean:
	npm cache clean --force

# Сборка фронтенда Бегущий Башкир
bbvue: git
	cd BB/bbvue && npm run build

# Полный цикл обновления фронтенда Бегущий Башкир
vue_bb: git npm_clean bbvue wn

# Остановка nginx
stop_nginx:
	docker compose down nginx

# Пересборка nginx
build_nginx:
	docker compose build nginx --no-cache

# Запуск nginx
start_nginx:
	docker compose up nginx -d

# Просмотр логов nginx в реальном времени
logs_nginx:
	docker logs nginx -f

# Полный цикл обновления nginx
nginx: stop_nginx git build_nginx start_nginx logs_nginx

# Остановка всех сервисов (альтернативная команда)
stop:
	docker compose down

# Пересборка всех сервисов (альтернативная команда)
build:
	docker compose build --no-cache

# Запуск всех сервисов (альтернативная команда)
start:
	docker compose up -d --remove-orphans

# Полный перезапуск (альтернативная команда)
re_all: stop git build start

# Остановка Keycloak
stop_kk:
	docker compose down keycloak

# Пересборка Keycloak
build_kk:
	docker compose build keycloak --no-cache

# Запуск Keycloak
start_kk:
	docker compose up keycloak  -d

# Просмотр логов Keycloak в реальном времени
logs_kk:
	docker logs keycloak -f

# Быстрый перезапуск Keycloak
re_kk: git stop_kk start_kk

# Полный цикл обновления Keycloak
keycloak: git stop_kk build_kk start_kk logs_kk

# Сборка easysite с логированием в файл
build_es_log:
	docker-compose build --no-cache easysite 2>&1 | tee build.log

# Детальная сборка easysite с прогрессом
build_es_log_all:
	docker-compose build --no-cache --progress=plain easysite

# Просмотр логов easysite в реальном времени
easysite_logs:
	docker logs easysite -f

# Остановка easysite
easysite_stop:
	docker compose down easysite

# Пересборка easysite
easysite_build:
	docker compose build easysite --no-cache

# Запуск easysite с проверкой состояния
easysite_start:
	docker compose up easysite -d && docker ps

# Мониторинг системных ресурсов
top:
	htop

# Полный цикл обновления easysite
es: easysite_stop git easysite_build easysite_start wn

# Остановка analytics
stop_analitics:
	docker compose down analytics

# Пересборка analytics
build_analititcs:
	docker compose build analytics --no-cache

# Запуск analytics с проверкой состояния
start_analytics:
	docker compose up analytics -d && docker ps

# Быстрый перезапуск analytics
restart_analytics:
	docker compose restart analytics

# Полный цикл обновления analytics
analytics: stop_analitics git build_analititcs start_analytics wn

# Остановка api_es
stop_api_es:
	docker compose down api_es

# Пересборка api_es
build_api_es:
	docker compose build api_es --no-cache

# Запуск api_es
start_api_es:
	docker compose up api_es -d

# Полный цикл обновления api_es
api_es: stop_api_es git build_api_es start_api_es wn

# Остановка certbot
stop_cerbot:
	docker compose down certbot

# Пересборка certbot
build_certbot:
	docker compose build certbot --no-cache

# Запуск certbot
start_certbot:
	docker compose up certbot -d

# Полный цикл обновления certbot
certbot: stop_cerbot git build_certbot start_certbot wat

# Мониторинг состояния контейнеров каждые 2 секунды
wn:
	watch -n 2 'docker ps'

# Остановка api_tp
stop_api_tp:
	docker compose down api_tp

# Пересборка api_tp
build_api_tp:
	docker compose build api_tp --no-cache

# Запуск api_tp
start_api_tp:
	docker compose up api_tp -d

# Полный цикл обновления api_tp
api_tp: stop_api_tp git build_api_tp start_api_tp wn


# Остановка api_yal
stop_api_yal:
	docker compose down api_yal

# Пересборка api_yal
build_api_yal:
	docker compose build api_yal --no-cache

# Запуск api_yal
start_api_yal:
	docker compose up api_yal -d

# Полный цикл обновления api_yal
api_yal: stop_api_yal git build_api_yal start_api_yal wn