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

  1. Download Unfold CMS from unfoldcms.com
  2. Extract the zip to your web root
  3. Visit https://yourdomain.com/install
  4. 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
Email 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:

  1. Generating the application key (if not set)
  2. Creating the storage symbolic link
  3. Clearing configuration and route caches
  4. Creating the storage/installed lock 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:

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.

If php artisan storage:link failed during installation (common on shared hosting where symlink is disabled):

  1. Delete public/storage if it exists
  2. Copy the contents of storage/app/public to public/storage
  3. 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 .env require running php artisan config:cache again.

Troubleshooting

Installation Wizard Not Loading

  • Verify your web server points to the public/ directory
  • Check that mod_rewrite is enabled (Apache) or URL rewriting rules are set (Nginx)
  • Ensure the .htaccess file exists in public/

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.log for errors
  • Ensure APP_KEY is set in .env
  • Run php artisan config:clear