123 lines
No EOL
3.3 KiB
Makefile
123 lines
No EOL
3.3 KiB
Makefile
# Dish Planner - Docker Commands
|
|
|
|
.PHONY: help
|
|
help: ## Show this help message
|
|
@echo "Dish Planner - Docker Management"
|
|
@echo ""
|
|
@echo "Usage: make [command]"
|
|
@echo ""
|
|
@echo "Available commands:"
|
|
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " %-20s %s\n", $$1, $$2}'
|
|
|
|
# Development Commands
|
|
.PHONY: dev
|
|
dev: ## Start development environment
|
|
docker compose up -d
|
|
@echo "Development server running at http://localhost:8000"
|
|
@echo "Mailhog available at http://localhost:8025"
|
|
|
|
.PHONY: dev-build
|
|
dev-build: ## Build and start development environment
|
|
docker compose build
|
|
docker compose up -d
|
|
|
|
.PHONY: dev-stop
|
|
dev-stop: ## Stop development environment
|
|
docker compose down
|
|
|
|
.PHONY: dev-clean
|
|
dev-clean: ## Stop and remove volumes (CAUTION: removes database)
|
|
docker compose down -v
|
|
|
|
.PHONY: logs
|
|
logs: ## Show application logs
|
|
docker compose logs -f app
|
|
|
|
.PHONY: logs-db
|
|
logs-db: ## Show database logs
|
|
docker compose logs -f db
|
|
|
|
# Production Commands
|
|
.PHONY: prod-build
|
|
prod-build: ## Build production image for Codeberg
|
|
./bin/build-push.sh
|
|
|
|
.PHONY: prod-build-tag
|
|
prod-build-tag: ## Build with specific tag (usage: make prod-build-tag TAG=v1.0.0)
|
|
./bin/build-push.sh $(TAG)
|
|
|
|
.PHONY: prod-login
|
|
prod-login: ## Login to Codeberg registry
|
|
podman login codeberg.org
|
|
|
|
# Laravel Commands
|
|
.PHONY: artisan
|
|
artisan: ## Run artisan command (usage: make artisan cmd="migrate")
|
|
docker compose exec app php artisan $(cmd)
|
|
|
|
.PHONY: composer
|
|
composer: ## Run composer command (usage: make composer cmd="require package")
|
|
docker compose exec app composer $(cmd)
|
|
|
|
.PHONY: npm
|
|
npm: ## Run npm command (usage: make npm cmd="install package")
|
|
docker compose exec app npm $(cmd)
|
|
|
|
.PHONY: migrate
|
|
migrate: ## Run database migrations
|
|
docker compose exec app php artisan migrate
|
|
|
|
.PHONY: seed
|
|
seed: ## Seed the database
|
|
docker compose exec app php artisan db:seed
|
|
|
|
.PHONY: fresh
|
|
fresh: ## Fresh migrate and seed
|
|
docker compose exec app php artisan migrate:fresh --seed
|
|
|
|
.PHONY: tinker
|
|
tinker: ## Start Laravel tinker
|
|
docker compose exec app php artisan tinker
|
|
|
|
.PHONY: test
|
|
test: ## Run tests
|
|
docker compose exec app php artisan test
|
|
|
|
# Utility Commands
|
|
.PHONY: shell
|
|
shell: ## Enter app container shell
|
|
docker compose exec app sh
|
|
|
|
.PHONY: db-shell
|
|
db-shell: ## Enter database shell
|
|
docker compose exec db mariadb -u dishplanner -pdishplanner dishplanner
|
|
|
|
.PHONY: clear
|
|
clear: ## Clear all Laravel caches
|
|
docker compose exec app php artisan cache:clear
|
|
docker compose exec app php artisan config:clear
|
|
docker compose exec app php artisan route:clear
|
|
docker compose exec app php artisan view:clear
|
|
|
|
.PHONY: optimize
|
|
optimize: ## Optimize Laravel for production
|
|
docker compose exec app php artisan config:cache
|
|
docker compose exec app php artisan route:cache
|
|
docker compose exec app php artisan view:cache
|
|
docker compose exec app php artisan livewire:discover
|
|
|
|
# Installation
|
|
.PHONY: install
|
|
install: ## First time setup
|
|
@echo "Setting up Dish Planner..."
|
|
@cp -n .env.example .env || true
|
|
@echo "Generating application key..."
|
|
@docker compose build
|
|
@docker compose up -d
|
|
@sleep 5
|
|
@docker compose exec app php artisan key:generate
|
|
@docker compose exec app php artisan migrate
|
|
@echo ""
|
|
@echo "✅ Installation complete!"
|
|
@echo "Access the app at: http://localhost:8000"
|
|
@echo "Create your first planner and user to get started."
|