Installation Guide

Set up Event Schedule on your own server with this step-by-step guide. For automated installation, consider using Softaculous or Docker.

Overview

This guide walks you through manually installing Event Schedule on your own server. The installation process involves setting up a database, downloading the application files, configuring permissions, and setting up scheduled tasks.

Automated Installation Options

For easier installation, you can use:

  • Softaculous - One-click installation on cPanel hosts
  • Docker - Containerized deployment with Docker Compose

Requirements

Before you begin, ensure your server meets the following requirements:

Requirement Minimum Version Notes
PHP 8.1+ With required extensions (see below)
MySQL 5.7+ or MariaDB 10.3+ For database storage
Web Server Apache or Nginx With mod_rewrite or equivalent
SSL Certificate Required HTTPS is required for security

Required PHP Extensions

  • BCMath
  • Ctype
  • Fileinfo
  • JSON
  • Mbstring
  • OpenSSL
  • PDO (with MySQL driver)
  • Tokenizer
  • XML
  • cURL
  • GD or Imagick

1. Set Up the Database

Create a MySQL database and user for Event Schedule. Run the following commands in your MySQL client:

SQL
CREATE DATABASE eventschedule;
CREATE USER 'eventschedule'@'localhost' IDENTIFIED BY 'change_me';
GRANT ALL PRIVILEGES ON eventschedule.* TO 'eventschedule'@'localhost';
Security Note

Replace change_me with a strong, unique password. Never use default or weak passwords in production.

2. Download the Application

Download the latest release and extract it to your web server's document root.

  1. Download eventschedule.zip from the latest GitHub release
  2. Upload the zip file to your server
  3. Extract the contents to your web root directory
bash
# Example: Extract to web root
cd /var/www
unzip eventschedule.zip
Web Root Configuration

Your web server should point to the public directory inside the extracted folder, not the root directory itself.

3. Set File Permissions

Ensure the web server has proper permissions to write to storage and cache directories.

bash
cd /path/to/eventschedule
chmod -R 755 storage
sudo chown -R www-data:www-data storage bootstrap public
User Note

The user www-data is typical for Apache on Debian/Ubuntu. Your web server may run under a different user (e.g., nginx, apache, or http). Check your server configuration.

4. Configure Environment

Copy the example environment file to create your configuration:

bash
cp .env.example .env

Now access your application at https://your-domain.com in your browser. You'll see the setup wizard where you can configure:

  • Database connection details
  • Application name and URL
  • Email settings
  • Admin account credentials

The setup wizard will guide you through the initial configuration and run database migrations automatically.

5. Set Up the Cron Job

Event Schedule requires a cron job to run scheduled tasks like sending reminder emails, syncing calendars, and releasing expired ticket reservations.

Add the following line to your server's crontab:

crontab
* * * * * php /path/to/eventschedule/artisan schedule:run

Adding the Cron Job

To edit your crontab, run:

bash
crontab -e

Add the cron line at the end of the file, making sure to replace /path/to/eventschedule with your actual installation path.

cPanel Users

If using cPanel, you can add cron jobs via the "Cron Jobs" section in your control panel without using the command line.

Verification

After completing the installation, verify everything is working correctly:

  1. Access the application: Visit https://your-domain.com and confirm the homepage loads
  2. Create an account: Register a new user account to verify database connectivity
  3. Create a schedule: Create a test schedule and add an event
  4. Check logs: Review storage/logs/laravel.log for any errors
Need Help?

If you encounter any issues during installation, check the GitHub Issues or start a Discussion.

Next Steps

Now that Event Schedule is installed, you may want to: