97 lines
No EOL
2.6 KiB
Nix
97 lines
No EOL
2.6 KiB
Nix
{ pkgs ? import <nixpkgs> {} }:
|
|
|
|
pkgs.mkShell {
|
|
buildInputs = with pkgs; [
|
|
# PHP and tools
|
|
php83
|
|
php83Packages.composer
|
|
|
|
# Node.js and npm
|
|
nodejs_20
|
|
|
|
# Container tools
|
|
podman
|
|
podman-compose
|
|
|
|
# Database client (optional, for direct DB access)
|
|
mariadb-client
|
|
|
|
# Utilities
|
|
git
|
|
curl
|
|
gnumake
|
|
];
|
|
|
|
shellHook = ''
|
|
# Define helper functions
|
|
rebuild() {
|
|
echo "🔨 Rebuilding development environment..."
|
|
podman-compose down -v
|
|
podman-compose build --no-cache app
|
|
podman-compose up -d
|
|
echo "✅ Rebuild complete! Check logs with: podman-compose logs -f app"
|
|
}
|
|
|
|
rebuild-quick() {
|
|
echo "⚡ Quick rebuild (keeping volumes)..."
|
|
podman-compose down
|
|
podman-compose build app
|
|
podman-compose up -d
|
|
echo "✅ Quick rebuild complete!"
|
|
}
|
|
|
|
logs() {
|
|
podman-compose logs -f "$@"
|
|
}
|
|
|
|
shell() {
|
|
podman-compose exec app sh
|
|
}
|
|
|
|
artisan() {
|
|
podman-compose exec app php artisan "$@"
|
|
}
|
|
|
|
echo "🚀 Dish Planner Development Environment"
|
|
echo "======================================="
|
|
echo "PHP: $(php --version | head -n1)"
|
|
echo "Node: $(node --version)"
|
|
echo "Podman: $(podman --version)"
|
|
echo "Podman-compose: $(podman-compose --version 2>/dev/null || echo 'checking...')"
|
|
echo ""
|
|
echo "Quick commands:"
|
|
echo " rebuild - Full rebuild (removes volumes)"
|
|
echo " rebuild-quick - Quick rebuild (keeps volumes)"
|
|
echo " logs [service] - Follow logs (default: all)"
|
|
echo " shell - Enter app container"
|
|
echo " artisan [cmd] - Run artisan commands"
|
|
echo ""
|
|
echo "Standard commands:"
|
|
echo " podman-compose up -d - Start containers"
|
|
echo " podman-compose down - Stop containers"
|
|
echo " make dev - Start via Makefile"
|
|
echo ""
|
|
|
|
# Auto-start prompt
|
|
if [ -f "docker-compose.yml" ]; then
|
|
read -p "Start development containers? (y/N) " -n 1 -r
|
|
echo
|
|
if [[ $REPLY =~ ^[Yy]$ ]]; then
|
|
echo "Starting containers..."
|
|
podman-compose up -d
|
|
|
|
# Wait a moment for containers to start
|
|
sleep 3
|
|
|
|
echo ""
|
|
echo "✅ Services should be available at:"
|
|
echo " App: http://localhost:8000"
|
|
echo " Vite: http://localhost:5173"
|
|
echo " Mailhog: http://localhost:8025"
|
|
echo " MariaDB: localhost:3306"
|
|
echo ""
|
|
echo "Run 'podman-compose logs -f app' to follow logs"
|
|
fi
|
|
fi
|
|
'';
|
|
} |