Installation
Unfold CMS includes a web-based installation wizard that guides you through the entire setup process. No command-line experience is required.
Quick Start
- Download Unfold CMS from unfoldcms.com
- Extract the zip to your web root
- Visit
https://yourdomain.com/install - Follow the on-screen steps
Installation Wizard
The wizard walks through 8 steps:
Step 1: Welcome
Introduces Unfold CMS and checks if the system is already installed. If a previous installation is detected, you'll be redirected to the homepage.
Step 2: Requirements Check
Automatically verifies your server meets all requirements:
- PHP version (8.2 or higher)
- Required extensions (PDO, mbstring, OpenSSL, etc.)
- Directory permissions (storage, bootstrap/cache)
- Shared hosting compatibility (memory limit, execution time, upload size)
Items are categorized as critical (must pass) or recommended (warnings only). You can proceed as long as all critical requirements pass.
Step 3: Database Configuration
Choose your database engine and provide connection details:
MySQL / MariaDB:
- Host (default:
127.0.0.1) - Port (default:
3306) - Database name, username, password
PostgreSQL:
- Host (default:
127.0.0.1) - Port (default:
5432) - Database name, username, password
SQLite:
- Database file path (default:
database/database.sqlite)
Use the Test Connection button to verify your credentials before proceeding. The wizard will test the connection, check if the database exists (and create it if needed), and save the configuration to your .env file.
Warning: If existing CMS tables are detected, you'll be asked whether to perform a fresh install (drops all tables) or migrate on top of existing data.
Step 4: Site Configuration
| Setting | Description |
|---|---|
| Site Name | Your website's name (displayed in the header and browser title) |
| Site URL | Auto-detected from your domain, verify it's correct |
| Timezone | Your preferred timezone for dates and scheduling |
| Language | Default site language |
Step 5: Admin Account
Create your administrator account:
| Field | Requirements |
|---|---|
| Name | Your display name |
| Valid email address (used for login) | |
| Password | Minimum 8 characters |
The admin account is assigned the Super Admin role with full permissions.
Step 6: Sample Data
Choose which sample content to install:
| Option | Description |
|---|---|
| Default Pages | About, Contact, Privacy Policy (always installed) |
| Navigation Menus | Pre-configured header and footer menus |
| Blog Posts | 12 sample blog posts with categories and featured images |
| Comments | Demo comments on blog posts |
You can also skip all sample data and start with a clean slate.
Step 7: License Activation
Enter your license key to activate your product tier. You can find your license key in your purchase confirmation email or your account at unfoldcms.com.
This step can be skipped and completed later from Settings > License in the admin panel.
Step 8: Finish
The wizard completes the installation by:
- Generating the application key (if not set)
- Creating the storage symbolic link
- Clearing configuration and route caches
- Creating the
storage/installedlock file
After completion, you'll see links to the Admin Dashboard and your Homepage.
Command Line Installation
For developers working from the source repository:
# Install PHP dependencies
composer install
# Copy environment file and generate key
cp .env.example .env
php artisan key:generate
# Configure your .env file with database credentials, then:
php artisan migrate --force
php artisan db:seed --force
# Install frontend dependencies and build assets
npm install
npm run build
# Create storage link
php artisan storage:link
# Start the development server
php artisan serve
The seeder creates a default admin account:
- Email:
[email protected] - Password:
admin
Warning: Change these credentials immediately.
Post-Installation
Cron Job
For scheduled features like auto-publishing posts, add this cron entry:
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
This single cron entry handles all scheduled tasks. No queue workers are needed.
Storage Link
If php artisan storage:link failed during installation (common on shared hosting where symlink is disabled):
- Delete
public/storageif it exists - Copy the contents of
storage/app/publictopublic/storage - Or ask your hosting provider to enable
symlink
Cache Optimization
For better performance on production servers:
php artisan config:cache
php artisan route:cache
php artisan view:cache
Note: After caching config, changes to
.envrequire runningphp artisan config:cacheagain.
Troubleshooting
Installation Wizard Not Loading
- Verify your web server points to the
public/directory - Check that
mod_rewriteis enabled (Apache) or URL rewriting rules are set (Nginx) - Ensure the
.htaccessfile exists inpublic/
Database Connection Failed
- Verify the database server is running
- Check username and password
- Ensure the database exists or the user has permission to create it
- On shared hosting, the host might not be
127.0.0.1— check with your provider
Permission Errors
chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache
On shared hosting, set permissions via your hosting control panel.
Blank Page After Installation
- Check
storage/logs/laravel.logfor errors - Ensure
APP_KEYis set in.env - Run
php artisan config:clear
Related
- Requirements — Server requirements
- Configuration — System configuration
- Shared Hosting — Shared hosting deployment
- Upgrade Guide — Upgrading between versions and tiers