Professional multi-technology Docker development environment Streamline your development workflow with containerized perfection
📚 Documentation | 🚀 Quick Start | 🐛 Report Issues | 💡 Features
Docker for FullStack Environment is a comprehensive, production-ready containerized development platform designed to revolutionize how modern development teams build multi-technology applications. Born from the real-world challenges of managing complex tech stacks, this project eliminates the notorious "works on my machine" syndrome that plagues development teams worldwide.
Our Docker-powered ecosystem seamlessly integrates PHP (8.1-8.4) with popular frameworks like Laravel, CodeIgniter, and Symfony, while simultaneously supporting Node.js development for Vue.js, React, and Angular applications. The platform extends beyond traditional web development by incorporating Flutter for cross-platform mobile development and PWA (Progressive Web App) capabilities, making it a true FullStack solution.
At its core, this environment leverages Docker Compose orchestration to manage MySQL 8.0 databases, Redis caching, Apache/Nginx web servers, and development tools like Xdebug for VS Code integration. The containerized architecture ensures consistent environments across Windows, macOS, and Linux, while the interactive setup system allows teams to selectively choose their technology stack components.
What sets this project apart is its professional deployment pipeline featuring GitHub Actions integration for VPS deployment with Virtualmin compatibility. The system includes automatic backup management, zero-downtime deployments, and comprehensive health monitoring - transforming local development into production-ready applications effortlessly.
Whether you're building Laravel APIs, Vue.js PWAs, Flutter mobile apps, or full-stack web applications, this Docker environment provides the reliability, scalability, and developer experience that modern teams demand. Join our growing community of developers who've already streamlined their workflows and eliminated configuration headaches forever.
Created with ❤️ by the Docker for FullStack Community
Building developer tools that make coding enjoyable again
First, organize your workspace with the recommended directory structure:
# Recommended workspace structure
~/Development/
├── Docker/ # This repository (Docker environment)
└── Projects/ # Your development projects
├── my-laravel-app/
├── restaurant-pos/
├── flutter-mobile-app/
└── vue-pwa-project/Get your development environment running in 4 simple steps:
# 1. Create workspace structure
mkdir -p ~/Development/{Docker,Projects}
cd ~/Development
# 2. Clone the repository
git clone https://github.com/quocnho/docker4fullstack.git Docker
cd Docker
# 3. Run the interactive setup
./setup.sh
# 4. Start your development environment
./start.shThat's it! Your containerized development environment is ready! 🎉
💡 Important: The Docker directory must be at the same level as the Projects directory for the scripts to work correctly.
- PHP (8.1-8.4) with Laravel, CodeIgniter, Symfony
- Node.js 18+ for Vue.js, React, Angular development
- Flutter for cross-platform mobile development
- Database MySQL 8.0 + Redis caching
- Web Server Apache/Nginx with SSL support
- GitHub Actions integration for VPS deployment
- Automatic backups before each deployment
- Zero-downtime deployments with health checks
- Virtualmin compatible directory structure
- SSL certificates automatic management
- Interactive setup with technology selection
- Project isolation - multiple projects simultaneously
- Consistent environments across all team members
- Hot reload and live debugging capabilities
- Easy project switching and management
- VS Code integration with Xdebug ready
- Port conflict prevention automatic detection
- Requirements checking automatic validation
- One-command start/stop/restart operations
- Comprehensive logging and monitoring
Perfect for:
- 🏢 Development Agencies - Multiple client projects with different tech stacks
- 👥 Team Development - Consistent environments across team members
- 🚀 Rapid Prototyping - Quick project setup with pre-configured templates
- 📱 Full-Stack Development - Backend, frontend, and mobile in one environment
- 🌐 Production Deployment - Professional VPS deployment workflows
| Technology | Version | Purpose |
|---|---|---|
| Docker | 20.10+ | Containerization platform |
| PHP | 8.1-8.4 | Backend development |
| Node.js | 18+ | Frontend development |
| Flutter | 3.0+ | Mobile development |
| MySQL | 8.0 | Primary database |
| Redis | Latest | Caching and sessions |
| Apache/Nginx | Latest | Web server |
~/Development/ # Your main development workspace
├── 📁 Docker/ # This repository (Docker environment)
│ ├── 📁 containers/ # Docker configurations
│ │ ├── docker-compose.yml # Multi-service orchestration
│ │ ├── Dockerfile # PHP/Apache environment
│ │ └── Dockerfile.flutter # Flutter development
│ ├── 📁 configs/ # Service configurations
│ │ ├── php/ # PHP & Xdebug settings
│ │ ├── nodejs/ # Node.js configuration
│ │ ├── flutter/ # Flutter development setup
│ │ └── nginx/ # Web server configuration
│ ├── 📁 scripts/ # Management scripts
│ │ ├── setup.sh # Interactive project setup
│ │ ├── start.sh # Start development environment
│ │ ├── stop.sh # Stop all containers
│ │ └── container-helper.sh # Container utilities
│ ├── 📁 templates/ # Project templates
│ │ ├── laravel/ # Laravel starter template
│ │ ├── vue-pwa/ # Vue.js PWA template
│ │ ├── flutter/ # Flutter app template
│ │ └── github-actions/ # VPS deployment workflows
│ └── 📁 docs/ # Comprehensive documentation
│ ├── README.md # Detailed documentation
│ ├── DEPLOYMENT_GUIDE.md # VPS deployment guide
│ └── MULTI_PROJECT_GUIDE.md # Multi-project management
└── 📁 Projects/ # Your development projects
├── 📁 my-laravel-app/ # Laravel project
├── 📁 restaurant-pos/ # CodeIgniter project
├── 📁 flutter-mobile-app/ # Flutter project
└── 📁 vue-pwa-project/ # Vue.js PWA project
🔧 Setup Requirement: The Docker directory must be placed alongside the Projects directory for proper script functionality and project detection. │ ├── flutter/ # Flutter app template │ └── github-actions/ # VPS deployment workflows └── 📁 docs/ # Comprehensive documentation ├── README.md # Detailed documentation ├── DEPLOYMENT_GUIDE.md # VPS deployment guide └── MULTI_PROJECT_GUIDE.md # Multi-project management
---
## 🚀 **Development Workflow**
### 📂 **Working with Projects**
The setup script automatically detects projects in the `../Projects/` directory:
```bash
# Navigate to Docker directory
cd ~/Development/Docker
# Run setup - it will scan ../Projects/ for existing projects
./setup.sh
# The script will show you:
# 1. List of existing projects in ../Projects/
# 2. Option to create new project
# 3. Technology stack selection
# 4. GitHub Actions deployment setup
# Interactive menu for project selection
./setup.sh
# Choose from existing projects or create new
# Select technology stack (PHP, Node.js, Flutter)
# Configure GitHub Actions for VPS deployment# Start your development environment
./start.sh
# Your applications are available at:
# - Main app: http://project-name.dev
# - phpMyAdmin: http://localhost:8081
# - Node.js app: http://localhost:3000# Check container status
./scripts/container-helper.sh status
# Enter containers for debugging
./scripts/container-helper.sh exec web bash
./scripts/container-helper.sh exec nodejs npm install
# View logs
./scripts/container-helper.sh logs web 50# Push to main branch triggers automatic deployment
git push origin main
# GitHub Actions handles:
# ✅ Testing and building
# ✅ VPS deployment with backup
# ✅ Health checks and verification- Zero setup time - Works instantly on any machine
- No conflicts - Isolated environments for each project
- Professional tools - Xdebug, hot reload, live debugging
- Multi-technology - PHP, Node.js, Flutter in one environment
- Consistency - Identical environments for all team members
- Collaboration - Easy project sharing and onboarding
- Standards - Enforced coding standards and best practices
- Scalability - Support for multiple simultaneous projects
- Automated deployment - GitHub Actions VPS integration
- Safety - Automatic backups and health checks
- Performance - Optimized container configurations
- Monitoring - Comprehensive logging and error tracking
- Docker 20.10 or higher
- Docker Compose 2.0 or higher
- Git for version control
- 4GB RAM minimum (8GB recommended)
- 10GB free disk space
Automatic validation: Run ./scripts/check-requirements.sh to verify your system.
- 📖 Complete Documentation - Comprehensive guide
- 🚀 Deployment Guide - VPS deployment
- 🔀 Multi-Project Guide - Managing multiple projects
- ⚙️ Configuration Guide - Customization options
We welcome contributions from the community! Please see our Contributing Guide for details.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
If this project helps you and your team, please consider giving it a ⭐ on GitHub!
Building and maintaining this Docker environment takes time and effort. Community support helps continue improving and adding new features!
Every contribution, no matter how small, is greatly appreciated! 🙏
Buy me a coffee to continue developing useful tools for the developer community! ☕
Ready to revolutionize your development workflow? Get started now! 🚀
git clone https://github.com/quocnho/docker4fullstack.git Docker && cd Docker && ./scripts/setup.sh