.PHONY: build down up fix-tls backend-purge backend-down purge logs backend-password
up:
	sudo docker compose up -d backend frontend api-test-server pebble dbgate mailer dozzle stats dns test; \
	sudo docker compose logs -f --tail 1000 backend frontend;
down:
	-sudo docker compose down --remove-orphans
up-build:
	sudo docker compose up --build --force
up-reset: down purge up
restart: down up
prune:
	sudo docker system prune -a
docker-reset: down up
ps:
	sudo docker compose ps
logs:
	sudo docker compose logs -f --tail 1000 backend frontend
logs-all:
	sudo docker compose logs -f
purge:
	sudo rm -rf ./backend/.dev/*
fix-tls:
	sudo docker compose exec backend bash -c "rm -rf /app/certs/acme/*"
	sudo rm -rf ./backend/certs/acme/*

# backend
backend-restart:
	sudo docker compose stop backend; \
	sudo docker compose up -d backend; \
	sudo docker compose logs -f --tail 1000 backend;
backend:
	sudo docker compose up -d; \
	sudo docker compose logs -f --tail 1000 backend;
backend-clear-certs:
	sudo docker compose exec backend rm -rf /app/certs/acme
backend-attach:
	sudo docker compose exec backend bash
backend-logs:
	sudo docker compose logs -f --tail 1000 backend
backend-build:
	sudo docker compose build backend
backend-down:
	sudo docker compose down backend;
backend-up:
	sudo docker compose up backend -d;
backend-reset:
	-sudo docker compose stop backend; \
	sudo docker compose rm -force -v backend; \
	sudo docker compose up -d backend; \
	sudo docker compose logs -f --tail 1000 backend;
backend-db-reset:
	sudo rm -f ./backend/.dev/db.sqlite3; \
	sudo docker compose exec backend bash -c "rm -rf /app/.dev/db.sqlite3";
	sudo docker compose stop backend; \
	sudo rm -rf ./backend/.dev/*
	touch -c ./backend/.dev/db.sqlite3; \
	sudo docker compose up -d backend;
backend-password:
	@echo "Finding password"; sudo docker compose logs backend | grep -F "Password:" | tail -n 1
backend-recover-password:
	sudo docker compose exec -it backend sh -c "cd /app/.dev-air; ./phishingclub -files /app/.dev -config /app/config.docker.json -recover"

# frontend
frontend:
	sudo docker compose up -d; \
	sudo docker compose logs -f --tail 1000 frontend;
frontend-build:
	-sudo docker compose stop frontend; \
	sudo docker compose rm -force -v frontend; \
	sudo docker compose up -d frontend;
frontend-restart:
	sudo docker compose restart frontend
frontend-attach:
	sudo docker compose exec frontend bash
frontend-logs:
	sudo docker compose logs -f --tail 1000 frontend

# dbgate
dbgate-restart:
	sudo docker compose restart dbgate; \

# pebble
pebble-attach:
	sudo docker compose exec pebble sh

# dns
dns-attach:
	sudo docker compose exec dns sh
dns-logs:
	sudo docker compose logs -f --tail 1000 dns
dns-restart:
	sudo docker compose restart dns
dns-rebuild:
	sudo docker compose stop dns; \
	sudo docker compose rm -force -v dns; \
	sudo docker compose up -d dns; \
	sudo docker compose logs -f --tail 1000 dns;

# api-test-server
api-test-server-build:
	sudo docker compose build api-test-server
	sudo docker compose up -d api-test-server
api-test-server-logs:
	sudo docker compose logs -f --tail 1000 api-test-server
api-test-server-restart:
	sudo docker compose restart api-test-server

# utils
utils-attach:
	sudo docker compose exec test /bin/bash

# mailer
mailer-logs:
	sudo docker compose logs -f --tail 1000 mailer
mailer-restart:
	sudo docker compose restart mailer

# stats
stats-logs:
	sudo docker compose logs -f --tail 1000 stats
stats-restart:
	sudo docker compose restart stats

# dozzle
dozzle-logs:
	sudo docker compose logs -f --tail 1000 dozzle
dozzle-restart:
	sudo docker compose restart dozzle
