Download the PHP package webberdoocom/installer-bundle without Composer
On this page you can find all versions of the php package webberdoocom/installer-bundle. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download webberdoocom/installer-bundle
More information about webberdoocom/installer-bundle
Files in webberdoocom/installer-bundle
Package installer-bundle
Short Description A reusable Symfony installer bundle with React and Tailwind CSS frontend. Installs Symfony database tables and admin user.
License MIT
Informations about the package installer-bundle
Webberdoo Installer Bundle
A complete, reusable Symfony installer bundle with a modern React + Tailwind CSS v4 frontend. This bundle provides a web-based installation wizard for Symfony applications with automatic User entity detection, configurable entities, database setup, and admin user creation.
Features
✅ Modern UI - React with Tailwind CSS v4
✅ Auto-Detection - Automatically detects User entity and field names
✅ Minimal Configuration - Just list your entities, everything else is automatic
✅ Step-by-step Installation - System requirements, database, tables, admin user, SMTP (optional), app config
✅ Optional SMTP Configuration - Configure email settings during installation or skip for later
✅ Safe Schema Installation - Only creates tables, never drops existing ones
✅ Dynamic Entity Support - Add any Doctrine entities to install
✅ Auto .env Update - Automatically updates DATABASE_URL in your .env file
✅ Standalone Installation - Works without existing Symfony configuration
✅ Installation Status Tracking - Resume interrupted installations
Installation
1. Install via Composer
2. Register the Bundle
Add to config/bundles.php:
3. Register Routes
Add to config/routes.yaml:
Important: The route prefix /install is already defined in the controller attributes, so don't add a prefix here.
4. Configure the Bundle (Minimal Setup)
Create config/packages/installer.yaml with just your entities:
That's it! The bundle will automatically:
- ✅ Detect your User entity (must implement
UserInterface) - ✅ Auto-detect field names (email, password, roles, etc.)
- ✅ Use sensible defaults for database driver, paths, and requirements
- ✅ Update your
.envfile withDATABASE_URL
4b. Optional Advanced Configuration
If you need to customize, here's the full configuration with defaults:
5. Install Assets to Public Directory
Note: The frontend assets are pre-built and included in the package. You don't need to build them yourself unless you're modifying the source code.
Usage
Access the Installer
Navigate to: http://your-app.com/install
Installation Steps
-
System Requirements Check
- Verifies PHP version
- Checks required and recommended PHP extensions
- Validates directory permissions
-
Database Configuration
- Enter database credentials
- Tests connection before saving
- Automatically updates
.envfile withDATABASE_URL - Writes config to
config/db.yaml
-
Install Tables
- Creates all configured entity tables
- Sets up indexes and foreign keys
- Safe mode - only creates, never drops
-
Create Admin User
- Create administrator account
- Password strength indicator
- Email validation
-
SMTP Configuration (Optional)
- Configure email/SMTP settings
- Saved to both user entity and
config/smtp.yaml - Can be skipped and configured later
- Application Configuration
- Set base URL and path
- Configure custom parameters
- Creates installation marker
Configuration Examples
Minimal Configuration (Recommended)
The simplest setup - just list your entities:
The bundle automatically:
- Finds your User entity (implements
UserInterface) - Detects fields:
email,password,roles,fullName,isActive - Uses
pdo_mysqldriver withutf8mb4charset - Sets sensible PHP version and extension requirements
Adding Custom Application Parameters
PostgreSQL Database
Manually Specify User Entity (Advanced)
Only needed if auto-detection doesn't work or you have multiple User entities:
How Auto-Detection Works
User Entity Detection
The bundle automatically finds your User entity by:
- Scanning all entities listed in your configuration
- Finding the one that implements
Symfony\Component\Security\Core\User\UserInterface - No manual configuration needed!
Field Name Detection
The bundle intelligently detects field names using common naming patterns:
| Field Type | Detected Names |
|---|---|
email, username, user, login |
|
| Password | password |
| Roles | roles |
| Full Name | fullName, full_name, name, displayname |
| Active Status | isActive, is_active, active, enabled, status |
| SMTP Host | smtpHost, smtp_host, mailHost, mail_host |
| SMTP Port | smtpPort, smtp_port, mailPort, mail_port |
| SMTP Username | smtpUsername, smtp_username, smtpUser, smtp_user |
| SMTP Password | smtpPassword, smtp_password, smtpPass, smtp_pass |
| SMTP Encryption | smtpEncryption, smtp_encryption, smtpTls, smtp_tls |
| SMTP From Email | smtpFromEmail, smtp_from_email, fromEmail, from_email |
| SMTP From Name | smtpFromName, smtp_from_name, fromName, from_name |
Your User Entity
The installer works with any User entity structure:
If a field doesn't exist or doesn't have a setter, the installer simply skips it - no errors!
SMTP Configuration
Overview
The installer includes an optional SMTP configuration step that allows users to set up email settings during installation. This feature is completely optional and can be skipped if you prefer to configure email settings later.
How It Works
-
During Installation - Step 5 prompts for SMTP settings:
- SMTP Host (e.g.,
smtp.gmail.com) - SMTP Port (default:
587) - SMTP Username
- SMTP Password
- Encryption (TLS/SSL/None)
- From Email (optional)
- From Name (optional)
- SMTP Host (e.g.,
-
Storage - SMTP settings are saved in two locations:
- User Entity - If your User entity has SMTP fields, they're automatically populated
- Config File - Settings are also saved to
config/smtp.yamlfor easy access
- Skip Option - Users can click "Skip for Now" to bypass this step and configure SMTP later
Setting Up Your User Entity for SMTP
To enable SMTP configuration during installation, add these optional fields to your User entity:
Using SMTP Configuration
After installation, SMTP settings are available in two ways:
1. From User Entity
Access SMTP settings from the authenticated user:
2. From Config File
The installer also creates config/smtp.yaml:
You can use these parameters in your Symfony mailer configuration:
SMTP Configuration Without User Entity Fields
If you don't want SMTP fields in your User entity, that's fine! The installer will:
- Still show the SMTP configuration step
- Save settings to
config/smtp.yamlonly - Skip trying to save to the User entity
The installer gracefully handles missing fields - no errors will occur.
Development
Build Assets for Development
This starts Vite dev server on http://localhost:3000.
Build for Production
API Endpoints
The bundle exposes the following API endpoints:
GET /install/api/system-check- Check system requirementsPOST /install/api/database-config- Save database configurationPOST /install/api/install-tables- Create database tablesPOST /install/api/create-admin- Create admin userPOST /install/api/smtp-config- Save SMTP configuration (optional)POST /install/api/app-config- Save app configurationGET /install/api/status- Get installation status
Security
After Installation
-
Disable Installer After Installation (Optional but recommended)
Update your
config/routes.yamlto conditionally load the installer:This prevents access to the installer after installation is complete.
-
Installation Marker
The bundle creates a marker file at
var/install_completedto prevent reinstallation. Delete this file if you need to run the installer again.
Customization
Custom Installation Steps
Extend the bundle services to add custom installation logic:
Custom UI
The React components are modular and can be extended or replaced:
Troubleshooting
Assets Not Loading
Database Connection Fails
- Verify database credentials
- Ensure database exists
- Check MySQL/MariaDB service is running
- Verify user has proper permissions
Installation Marker Issues
Requirements
- PHP 8.2 or higher
- Symfony 7.0 or higher
- Node.js 18+ (for building assets)
- MySQL 8.0+ or MariaDB 10.6+
License
MIT License. See LICENSE file for details.
Support
For issues and questions, please open an issue on GitHub or contact [email protected].
All versions of installer-bundle with dependencies
symfony/framework-bundle Version ^7.0
symfony/yaml Version ^7.0
symfony/password-hasher Version ^7.0
symfony/security-bundle Version ^7.0
doctrine/orm Version ^3.0
doctrine/dbal Version ^3.0