π A powerful, production-ready full-stack development framework for building modern web applications. Enterprise-grade, Docker-ready, and continuously maintained since 2009.
π Documentation β’ π Tutorials β’ π₯ Live Demo β’ β‘ Quick Start
- Overview
- Key Features
- Quick Start with Docker
- Project Structure
- Configuration
- Development Tools
- Documentation & Resources
- License
- Troubleshooting
- Security
Wizard's Toolkit (WTK) is a powerful full-stack development framework combining PHP, SQL, JavaScript, and MaterializeCSS. Originally created in 2009 and continuously maintained, WTK streamlines the development of data-driven websites and mobile applications. The framework has evolved through multiple PHP versions and is currently optimized for PHP 8.1 while maintaining compatibility with earlier versions.
It provides a comprehensive solution for building and maintaining full-featured data-driven websites and mobile apps quickly and efficiently. The repository includes SQL table definitions, initial data, PHP components, HTML templates, CSS styling, and JavaScript functionality, along with extensive documentation created via phpDocs and numerous demo files.
π Website: https://wizardstoolkit.com
- Full-Stack Solution: Integrated PHP, SQL, JavaScript, and MaterializeCSS
- Database Flexibility: Seamless support for both MySQL 8.3 and PostgreSQL
- Docker-Ready: Complete development environment setup in under 2 minutes
- Modern Stack:
- Nginx with Alpine for lightweight performance
- PHP 8.1 with PDO support
- MySQL 8.3 or PostgreSQL latest
- Development tools (phpMyAdmin for MySQL)
- Enterprise-Grade: Production-tested since 2009 with continuous updates
- Extensive Documentation: Includes API docs, demos, and tutorials
- Version Compatibility: Supports PHP 5.4 through 8.1
-
For Windows Users:
- WSL2 with Ubuntu 20.04 LTS
- Docker Desktop
- Docker Hub account (free)
-
For Mac Users:
- Docker Desktop
- Docker Hub account (free)
-
Clone the Repository:
git clone https://github.com/AlecBS/WizardsToolkit.git cd WizardsToolkit
-
Initialize Environment:
./WTK.sh
-
Choose and Setup Database:
- For MySQL:
./SETUP_MYSQL.sh
- For PostgreSQL: Automatic setup on first launch
- For MySQL:
-
Verify Installation: Visit http://127.0.0.1/devUtils/testWTK.php to confirm:
- Database connectivity
- Environment variables
- Email functionality
- Set admin password
- Main Application: http://127.0.0.1/ or http://dev.wtk.com/
- Database Admin:
- MySQL: http://127.0.0.1:8080/ (phpMyAdmin)
- PostgreSQL: Use DBeaver (recommended)
- Default Admin:
- Email: admin@email.com
- Set password: /wtk/passwordReset.php?u=needToSet
WizardsToolkit/
βββ app/ # Application source files
βββ config/ # Configuration settings
βββ SQL/ # Database scripts and migrations
β βββ mySQL/ # MySQL specific scripts
β βββ postgresql/ # PostgreSQL specific scripts
βββ Mounts/ # Docker volume mount points
βββ *.sh # Utility scripts
-
Host Configuration (Optional but recommended):
# Add to /etc/hosts 127.0.0.1 dev.wtk.com
-
Environment Settings: Edit your database-specific config:
# In phpMySQL.env or phpPG.env URL = "http://dev.wtk.com" # or http://127.0.0.1
Choose your preferred database:
MySQL (Default):
- Use existing configuration
- Data location:
/Mounts/mydata
- Access via phpMyAdmin or CLI
PostgreSQL:
- Rename
docker-composePG.yml
todocker-compose.yml
- Data location:
/Mounts/pgdata
- Connect using DBeaver or preferred client
- Connection details:
Database: pgwiztools Username: wizdba Password: See docker-compose.yml
WTK.sh
: Initialize environmentSTART_CONTAINERS.sh
: Launch servicesSTOP_CONTAINERS.sh
: Stop all containersREBUILD_CONTAINERS.sh
: Rebuild environmentRESTART_WEBSITE.sh
: Quick service restartSETUP_MYSQL.sh
: Initialize MySQL databaseMYSQL.sh
: MySQL CLI access
Access phpMyAdmin at http://127.0.0.1:8080/ or http://dev.wtk.com:8080/
-
Login:
- Username: root
- Password: (see docker-compose.yml)
-
Basic Operations:
- Select
wiztools
database from the left sidebar - Browse tables and data using the GUI interface
- Execute SQL queries using the "SQL" tab
- Import/Export data using the corresponding tabs
- Select
-
Common Tasks:
- View table structure: Click table name β "Structure"
- Browse data: Click table name β "Browse"
- Add records: Click table name β "Insert"
- Backup database: Export β "Quick" or "Custom"
Connection Details:
- Database: pgwiztools
- Username: wizdba
- Password: (see docker-compose.yml)
Recommended PostgreSQL GUI Client: DBeaver (free)
Note: Ensure no local PostgreSQL server is running before starting the Docker containers.
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
-
Docker Build Failure:
export DOCKER_BUILDKIT=0 ./WTK.sh # Retry build
-
Database Reset:
./STOP_CONTAINERS.sh rm -rf /Mounts/mydata # For MySQL # or rm -rf /Mounts/pgdata # For PostgreSQL ./START_CONTAINERS.sh ./SETUP_MYSQL.sh # MySQL only
-
Port Conflicts:
- Ensure ports 80 and 443 are available
- Stop any running web servers (Apache, Nginx)
- Choose between MAMP or Docker, not both
-
First-Time Setup:
- Database initialization takes ~1-2 minutes
- Monitor progress in DockerDesktop
- Wait for database container to be fully ready
-
Connection Issues:
- Verify Docker containers are running
- Check ports are not blocked by firewall
- Ensure correct URL configuration in env files
For security-related issues, please use our contact form.
Built and maintained with β€οΈ since 2009