Skip to content

A complete, ready-to-use Docker setup for Laravel development with PHP 8.2, MySQL 8.0, and Nginx. No complex configuration needed!

License

Notifications You must be signed in to change notification settings

pitchayakit/authenticator

Repository files navigation

Authenticator app

πŸš€ Get your Laravel application running in under 2 minutes!

Application Preview

A complete, ready-to-use Docker setup for Laravel development with PHP 8.2, MySQL 8.0, and Nginx. No complex configuration needed!

🎯 What You Get

  • βœ… PHP 8.2 with all Laravel extensions
  • βœ… MySQL 8.0 database (pre-configured)
  • βœ… Nginx web server
  • βœ… Laravel latest version
  • βœ… Hot reload for instant development
  • βœ… One-command setup

πŸ› οΈ Prerequisites

You only need:

That's it! No need to install PHP, MySQL, or Nginx separately.

⚑ Quick Start (2 minutes)

Step 1: Start Everything

# Clone and start (or just start if already cloned)
docker compose up -d

Step 2: Install Dependencies

# Install Laravel dependencies
docker compose run --rm composer install

Step 3: Set Up Database

# Run database migrations
docker compose run --rm artisan migrate

Step 4: Open Your App

πŸŽ‰ Your app is ready! Open: http://localhost:8000

πŸ”§ Daily Development Commands

Laravel/Artisan Commands

# Create new controller
docker compose run --rm artisan make:controller YourController

# Create new model
docker compose run --rm artisan make:model YourModel

# Run migrations
docker compose run --rm artisan migrate

# Seed database
docker compose run --rm artisan db:seed

# Clear cache
docker compose run --rm artisan cache:clear

# Run tests
docker compose run --rm artisan test

# Access Laravel Tinker
docker compose run --rm artisan tinker

Composer Package Management

# Install new packages
docker compose run --rm composer require vendor/package-name

# Update all packages
docker compose run --rm composer update

# Install from composer.json
docker compose run --rm composer install

Docker Management

# Start services
docker compose up -d

# Stop services
docker compose down

# Restart services
docker compose restart

# View logs
docker compose logs -f

# Check service status
docker compose ps

πŸ—„οΈ Database Access

From your application: Already configured! Laravel will connect automatically.

Direct access:

# Connect to MySQL shell
docker compose exec mysql mysql -u laravel -p laravel
# Password: laravel

External tools (phpMyAdmin, etc.):

  • Host: localhost
  • Port: 3306
  • Database: laravel
  • Username: laravel
  • Password: laravel

πŸ” Container Details

Service Container Purpose Port
app laravel_app PHP 8.2 Application -
nginx laravel_nginx Web Server 8000
mysql laravel_mysql Database 3306
composer laravel_composer Package Manager -
artisan laravel_artisan Laravel CLI -

πŸš€ Advanced Usage

Access Container Shell

# Access app container for debugging
docker compose exec app bash

# Access database container
docker compose exec mysql bash

Environment Configuration

Edit .env file in your project root to customize:

  • Database credentials
  • Application settings
  • Debug modes

Custom PHP Configuration

Modify docker/php/php.ini for custom PHP settings.

πŸ†˜ Troubleshooting

Port 8000 Already in Use?

# Stop the conflicting service or use different port
docker compose down
# Edit docker-compose.yml to change port from 8000 to 8080

Permission Issues?

# Fix Laravel storage permissions
docker compose exec app chown -R www-data:www-data storage bootstrap/cache
docker compose exec app chmod -R 775 storage bootstrap/cache

Can't Connect to Database?

# Restart MySQL container
docker compose restart mysql

# Check if MySQL is running
docker compose exec mysql mysql -u laravel -p laravel -e "SELECT 1"

Fresh Start?

# Complete reset (⚠️ This will delete your database!)
docker compose down -v
docker compose up -d
docker compose run --rm composer install
docker compose run --rm artisan migrate

πŸŽ“ New to Laravel?

After setup, try these commands to explore:

# Create your first route
docker compose run --rm artisan make:controller WelcomeController

# Create a model with migration
docker compose run --rm artisan make:model Post -m

# View all available artisan commands
docker compose run --rm artisan list

πŸ“± Access Points

  • 🌐 Application: http://localhost:8000
  • πŸ—ƒοΈ Database: localhost:3306
  • πŸ“Š Logs: docker compose logs -f

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


Happy coding! πŸŽ‰ Your Laravel development environment is ready for action!

About

A complete, ready-to-use Docker setup for Laravel development with PHP 8.2, MySQL 8.0, and Nginx. No complex configuration needed!

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages