Getting Started
Complete installation guide for Automation Hub. Follow these steps to deploy the platform on your own infrastructure in minutes.
System Requirements
Before installing Automation Hub, ensure your server meets the following requirements:
| Requirement | Minimum | Recommended |
|---|---|---|
| PHP | 8.2+ | 8.3+ |
| PHP Extensions | pdo_mysql, openssl, curl, mbstring, json, fileinfo, xml, bcmath, ctype, tokenizer | |
| Database | MySQL 8.0+ or MariaDB 10.6+ | MySQL 8.0+ (InnoDB) |
| Node.js | 18+ | 20 LTS |
| npm | 9+ | 10+ |
| Composer | 2.x | 2.7+ |
| Web Server | Apache 2.4+ or Nginx 1.18+ | Nginx 1.24+ |
| RAM | 1 GB | 2 GB+ |
| Disk Space | 500 MB | 2 GB+ |
| Operating System | Ubuntu 20.04+, CentOS 8+, macOS, Windows (via WSL2/MAMP/XAMPP) | |
PHP Extensions
Most hosting providers and PHP installations include these extensions by default. If you're using a VPS, you may need to install them manually. The auto-installer will check all requirements for you.
Installation Methods
Choose the installation method that best fits your environment:
1. VPS / Dedicated Server (Ubuntu/Debian)
This is the recommended method for production deployments. Follow these steps on a fresh Ubuntu 20.04+ or Debian 11+ server.
Install PHP 8.2 and Required Extensions
sudo apt update && sudo apt install -y php8.2 php8.2-cli php8.2-fpm \
php8.2-mysql php8.2-xml php8.2-mbstring php8.2-curl php8.2-zip \
php8.2-bcmath php8.2-fileinfo php8.2-tokenizer
Install Composer
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
Install Node.js 18
curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash -
sudo apt install -y nodejs
Install MySQL 8
sudo apt install -y mysql-server
sudo mysql_secure_installation
Upload Project Files
# Upload your automationhub files to the server
cd /var/www
# Use scp, rsync, or your preferred upload method
# Example: scp -r ./automationhub user@server:/var/www/
Install Dependencies
cd /var/www/automationhub
composer install --no-dev --optimize-autoloader
npm ci && npm run build
Environment Setup
cp .env.example .env
php artisan key:generate
Then edit .env with your database credentials and application settings. See the Environment Configuration section below for all variables.
Database Setup
# Create the database
mysql -u root -p -e "CREATE DATABASE automation_hub CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"
# Run migrations
php artisan migrate --force
Set Permissions
sudo chown -R www-data:www-data storage bootstrap/cache
sudo chmod -R 775 storage bootstrap/cache
Storage Link & Cache
# Create storage symlink
php artisan storage:link
# Cache configuration for production
php artisan config:cache
php artisan route:cache
php artisan view:cache
Important: Permissions
The storage/ and bootstrap/cache/ directories must be writable by your web server. Incorrect permissions are the #1 cause of installation issues.
Nginx Configuration
Create a new server block at /etc/nginx/sites-available/automationhub:
server {
listen 80;
server_name yourdomain.com;
root /var/www/automationhub/public;
index index.php;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
# Enable the site and restart Nginx
sudo ln -s /etc/nginx/sites-available/automationhub /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl restart nginx
Apache Configuration
Automation Hub includes a .htaccess file in the public/ directory. For Apache, create a VirtualHost:
<VirtualHost *:80>
ServerName yourdomain.com
DocumentRoot /var/www/automationhub/public
<Directory /var/www/automationhub/public>
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
# Enable mod_rewrite and the site
sudo a2enmod rewrite
sudo a2ensite automationhub.conf
sudo systemctl restart apache2
2. cPanel / Shared Hosting
If you're using shared hosting with cPanel, follow these steps:
Upload Files
Upload the Automation Hub files to your hosting account using File Manager or SSH. Extract the archive into your desired directory (e.g., /home/username/automationhub).
Set Document Root
Point your domain's document root to the public/ folder. In cPanel, go to Domains > your domain > set Document Root to /home/username/automationhub/public.
Create MySQL Database
Go to MySQL Databases in cPanel. Create a new database and user, then assign the user to the database with ALL PRIVILEGES.
Run Installation Commands
Access the Terminal in cPanel (or connect via SSH) and run:
cd ~/automationhub
composer install --no-dev --optimize-autoloader
npm ci && npm run build
cp .env.example .env
php artisan key:generate
php artisan migrate --force
php artisan storage:link
Configure Cron Job
In cPanel, go to Cron Jobs and add:
* * * * * cd /home/username/automationhub && php artisan schedule:run >> /dev/null 2>&1
Shared Hosting Tip
If your hosting provider doesn't offer SSH access or Terminal, you can use the Auto-Installer wizard at /install after uploading the files. It handles database setup and migrations through a web interface.
Local Development Setup
Use this guide to run Automation Hub on your own computer for development or testing. Node.js is required on local machines to compile the frontend assets. Choose the environment that best fits your operating system and experience level.
5 Supported Local Environments
This section covers setup instructions for Laravel Herd, Laragon, Laravel Valet, Docker / Laravel Sail, and WAMP. All environments require PHP 8.2+, Composer 2.6+, Node.js 18+ LTS, and MySQL 8.0+ (or MariaDB 10.6+). Pick the one you are most comfortable with and jump to its section below.
Quick Comparison
| Environment | Platform | Best For | Difficulty |
|---|---|---|---|
| Laravel Herd RECOMMENDED | macOS / Windows | Fastest zero-config setup | Easy |
| Laragon RECOMMENDED | Windows | Best all-in-one for Windows | Easy |
| Laravel Valet | macOS | Lightweight CLI-driven dev | Easy |
| Docker / Laravel Sail | Cross-platform | Reproducible, containerized environments | Medium |
| WAMP | Windows | Classic Windows AMP stack | Easy |
| WSL2 + LAMP | Windows | Production-like Linux on Windows | Medium |
| DDEV | Cross-platform | Docker-based, per-project config | Medium |
| Native Linux | Ubuntu / Debian | Full LEMP for local dev | Medium |
| MAMP | macOS | Classic macOS AMP stack | Easy |
| XAMPP | Windows / macOS | Cross-platform Apache bundle | Easy |
1. Laravel Herd (macOS / Windows) RECOMMENDED
Laravel Herd is a blazing-fast, native development environment that bundles PHP, Nginx, MySQL, and Node.js. No Docker or virtual machines required.
Prerequisites
Download and install Laravel Herd from herd.laravel.com. Herd includes PHP, Nginx, MySQL, and Node.js built-in — no extra installs needed. Make sure Composer is available globally (Herd installs it automatically).
-
1
Park Your Projects Folder
Open Herd and go to Settings → General → Paths. Add your projects directory (e.g.,
~/Herd). Every folder inside a parked directory automatically becomes a.testdomain. -
2
Extract Project Files
Extract the downloaded ZIP into your parked directory. The folder name becomes the URL:
bash# Extract to ~/Herd/automationhub # URL will be: http://automationhub.test -
3
Install Dependencies
bashcd ~/Herd/automationhub composer install -
4
Configure Environment
bashcp .env.example .env php artisan key:generateOpen
.envand setAPP_URL=http://automationhub.test,APP_ENV=local, andAPP_DEBUG=true. -
5
Build Frontend Assets
bashnpm install && npm run build php artisan storage:link -
6
Create Database and Run Migrations
Open TablePlus (or any MySQL client) and create an empty database named
automation_hub. Update.envwith the database credentials:.envDB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=automation_hub DB_USERNAME=root DB_PASSWORD=Then run the migrations:
bashphp artisan migrate --seedVisit
http://automationhub.testin your browser. Use127.0.0.1as the database host androot/ empty password (Herd default).
Pro Tip
Use herd secure automationhub to enable HTTPS locally. Herd also lets you switch PHP versions instantly via the menu bar — useful for testing compatibility.
2. Laragon (Windows) RECOMMENDED
Laragon is a portable, fast, and lightweight development environment for Windows. It auto-creates virtual hosts and includes Apache, MySQL, PHP, Node.js, and more.
Prerequisites
Download and install Laragon Full from laragon.org. The full edition includes PHP 8.2+, MySQL 8, Apache, Node.js, npm, Composer, and HeidiSQL. Ensure PHP 8.2+ is selected in Laragon → Menu → PHP.
-
1
Extract Project Files
Extract the downloaded ZIP into Laragon's web root. Laragon auto-creates a virtual host for each folder:
pathC:\laragon\www\automationhubThe
artisanfile must be at the root of this folder. Laragon will auto-createautomationhub.testas the virtual host. -
2
Start Services
Open Laragon and click "Start All". This launches Apache, MySQL, and sets up the virtual host automatically. If prompted, allow Laragon to update the Windows hosts file.
-
3
Install Dependencies
Click "Terminal" in Laragon (or open Cmder/cmd) — Laragon adds PHP, Composer, and Node to the PATH automatically:
bash — Laragon Terminalcd C:\laragon\www\automationhub composer install cp .env.example .env php artisan key:generate -
4
Build Frontend and Create Symlink
bashnpm install && npm run build php artisan storage:linkOpen
.envand setAPP_URL=http://automationhub.test,APP_ENV=local, andAPP_DEBUG=true. -
5
Create Database and Run Migrations
Open HeidiSQL (built into Laragon — right-click tray icon → MySQL → HeidiSQL) and create an empty database named
automation_hub. Update.env:.envDB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=automation_hub DB_USERNAME=root DB_PASSWORD=Then run migrations:
bashphp artisan migrate --seedVisit
http://automationhub.test. Default Laragon MySQL credentials: host127.0.0.1, port3306, userroot, password empty.
Pro Tip
Laragon supports switching PHP versions via Menu → PHP. You can also enable SSL per site by right-clicking the Laragon tray icon → Apache → SSL → automationhub.
3. Laravel Valet (macOS)
Laravel Valet is a lightweight macOS development environment that uses Nginx under the hood. It consumes minimal resources and automatically serves sites from parked directories.
Prerequisites
Homebrew, PHP 8.2+ (via brew install php), Composer (globally installed), Node.js 18+ LTS, and MySQL 8 (via brew install mysql).
-
1
Install and Configure Valet
bashcomposer global require laravel/valet valet install # Park your projects directory cd ~/Sites valet parkEvery folder inside
~/Sitesis now automatically served asfolder-name.test. -
2
Set Up MySQL and Create Database
bashbrew install mysql brew services start mysql mysql -u root -e "CREATE DATABASE automation_hub;" -
3
Extract and Install Project
Extract the ZIP to
~/Sites/automationhub, then install dependencies:bashcd ~/Sites/automationhub composer install cp .env.example .env php artisan key:generate npm install && npm run build php artisan storage:linkSet
APP_URL=http://automationhub.testin.env. -
4
Run Migrations and Access the App
bashphp artisan migrate --seedVisit
http://automationhub.test. Use127.0.0.1as the host,rootas the user, and an empty password (Homebrew MySQL default).
Pro Tip
Run valet secure automationhub to serve the site over HTTPS with a trusted local certificate. This is useful for testing features that require a secure connection (e.g., service workers, clipboard API).
4. Docker / Laravel Sail (Cross-platform)
Laravel Sail provides a Docker-powered local development environment. It runs MySQL, PHP, Node.js, and all dependencies inside containers — nothing needs to be installed on your host machine except Docker.
Prerequisites
Docker Desktop must be installed and running. On Windows, enable WSL2 backend in Docker Desktop settings. No local PHP, Composer, or Node.js installation required — everything runs inside containers.
-
1
Bootstrap Composer via Docker
Extract the ZIP to your desired folder, then install PHP dependencies using a temporary Docker container:
bashcd automationhub docker run --rm \ -u "$(id -u):$(id -g)" \ -v "$(pwd):/var/www/html" \ -w /var/www/html \ laravelsail/php83-composer:latest \ composer install --ignore-platform-reqs -
2
Configure Environment for Sail
bashcp .env.example .envEdit
.envand set the following values for Sail's MySQL container:.envAPP_URL=http://localhost DB_HOST=mysql DB_PORT=3306 DB_DATABASE=automation_hub DB_USERNAME=sail DB_PASSWORD=password -
3
Start Sail Containers
bash./vendor/bin/sail up -dWait for all containers to start. The first run downloads Docker images and may take a few minutes.
-
4
Install Dependencies Inside Sail
bash./vendor/bin/sail artisan key:generate ./vendor/bin/sail npm install ./vendor/bin/sail npm run build ./vendor/bin/sail artisan storage:link -
5
Run Migrations and Access the App
Sail's MySQL container auto-creates the database. Run migrations and visit the app:
bash./vendor/bin/sail artisan migrate --seedVisit
http://localhost. Database credentials: hostmysql, usersail, passwordpassword, databaseautomation_hub.
Pro Tip
Add alias sail='./vendor/bin/sail' to your shell profile to shorten commands (e.g., sail up -d, sail artisan migrate). Use sail down to stop all containers.
5. WAMP (Windows)
WampServer provides Apache, MySQL, and PHP on Windows. It uses a system tray icon for managing services and includes phpMyAdmin for database management.
Prerequisites
Download and install WampServer from wampserver.com. After installation, click the WAMP tray icon → PHP → Version and select PHP 8.2+. Install Composer globally and Node.js 18+ LTS separately.
-
1
Extract Project Files
pathC:\wamp64\www\automationhub -
2
Create Database via phpMyAdmin
Start WAMP (tray icon should turn green), then open
http://localhost/phpmyadmin. Create a new database namedautomation_hubwithutf8mb4_unicode_cicollation. -
3
Install Dependencies
Open Command Prompt or PowerShell:
bash — Command Promptcd C:\wamp64\www\automationhub composer install cp .env.example .env php artisan key:generate npm install && npm run build php artisan storage:linkSet
APP_URL=http://localhost/automationhub/publicin.env. -
4
Configure Database and Run Migrations
Update
.envwith WAMP MySQL credentials:.envDB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=automation_hub DB_USERNAME=root DB_PASSWORD=Then run migrations:
bashphp artisan migrate --seedVisit
http://localhost/automationhub/public. Default WAMP MySQL credentials: host127.0.0.1, userroot, password empty.
Pro Tip
If PHP is not in your PATH, add WAMP's PHP directory to your system PATH: C:\wamp64\bin\php\php8.3.x. Alternatively, use the full path to php.exe in your commands. You can also configure a virtual host in WAMP to access the project as automationhub.test instead of using the /public subfolder URL.
6. WSL2 + LAMP (Windows)
Run a full Linux LEMP stack inside Windows Subsystem for Linux 2. This gives you a production-like environment directly on Windows with near-native performance.
Prerequisites
Install Ubuntu 22.04 (or 24.04) from the Microsoft Store. WSL2 must be enabled (wsl --install from PowerShell as admin). You will also need Node.js 18+ LTS and Composer installed inside the WSL Ubuntu instance.
-
1
Install LEMP Stack Inside WSL
bash — WSL Ubuntusudo apt update && sudo apt upgrade -y sudo apt install -y nginx mysql-server php8.2-fpm php8.2-mysql \ php8.2-mbstring php8.2-xml php8.2-curl php8.2-zip php8.2-gd \ php8.2-bcmath php8.2-intl php8.2-readline unzip -
2
Configure MySQL
bashsudo service mysql start sudo mysql -e "CREATE USER 'automationhub'@'localhost' IDENTIFIED BY 'secret';" sudo mysql -e "CREATE DATABASE automation_hub;" sudo mysql -e "GRANT ALL PRIVILEGES ON automation_hub.* TO 'automationhub'@'localhost';" sudo mysql -e "FLUSH PRIVILEGES;" -
3
Extract and Install Project
bash# Extract ZIP to /var/www/automationhub cd /var/www/automationhub sudo chown -R $USER:www-data . composer install cp .env.example .env php artisan key:generate npm install && npm run build php artisan storage:link chmod -R 775 storage bootstrap/cache -
4
Configure Nginx Virtual Host
nginx — /etc/nginx/sites-available/automationhubserver { listen 80; server_name automationhub.test; root /var/www/automationhub/public; index index.php; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass unix:/run/php/php8.2-fpm.sock; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.(?!well-known).* { deny all; } }bashsudo ln -s /etc/nginx/sites-available/automationhub /etc/nginx/sites-enabled/ sudo nginx -t && sudo service nginx restart -
5
Update Windows Hosts File and Run Wizard
Open
C:\Windows\System32\drivers\etc\hostsin Notepad (as Administrator) and add:hosts127.0.0.1 automationhub.testSet
APP_URL=http://automationhub.testin.envand visithttp://automationhub.test/install. Use host127.0.0.1, userautomationhub, passwordsecretin the wizard.
Pro Tip
Store your project files inside the WSL filesystem (e.g., /var/www/) rather than on the Windows mount (/mnt/c/) for significantly better I/O performance. You can access WSL files from Windows Explorer at \\wsl$\Ubuntu.
7. DDEV (Cross-platform)
DDEV is an open-source Docker-based local development tool with per-project configuration files. It supports Laravel out of the box and provides automatic HTTPS, database management, and easy sharing.
Prerequisites
Docker Desktop and DDEV must be installed. Install DDEV via Homebrew (brew install ddev/ddev/ddev) on macOS/Linux, or via the official installer on Windows. See ddev.readthedocs.io for details.
-
1
Configure DDEV Project
Extract the ZIP to a folder and initialize DDEV:
bashcd automationhub ddev config --project-type=laravel --docroot=public --php-version=8.2 -
2
Start DDEV and Install Dependencies
bashddev start ddev composer install ddev exec "npm install && npm run build" -
3
Configure Environment
bashddev exec cp .env.example .env ddev artisan key:generate ddev artisan storage:linkEdit
.envwith DDEV database credentials:.envAPP_URL=https://automationhub.ddev.site DB_HOST=db DB_PORT=3306 DB_DATABASE=db DB_USERNAME=db DB_PASSWORD=db -
4
Run the Installation Wizard
URLhttps://automationhub.ddev.site/installIn the wizard database step, use host
db, userdb, passworddb, databasedb.
Pro Tip
DDEV provides HTTPS automatically. Use ddev describe to see all URLs and credentials. Use ddev share to create a temporary public URL for sharing your local site with others.
8. Native Linux (Ubuntu / Debian)
Install a full LEMP stack directly on your Linux machine. This gives you a production-like environment without any abstraction layers.
Prerequisites
Ubuntu 22.04/24.04 or Debian 12+. You will install Nginx, MySQL 8, PHP 8.2-FPM, Composer, and Node.js 18+ LTS via apt and official repositories.
-
1
Install the LEMP Stack
bashsudo apt update && sudo apt install -y nginx mysql-server \ php8.2-fpm php8.2-mysql php8.2-mbstring php8.2-xml php8.2-curl \ php8.2-zip php8.2-gd php8.2-bcmath php8.2-intl nodejs npm unzip # Install Composer curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer # Install Node.js 18 LTS (if not already available) curl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt install -y nodejs -
2
Set Up MySQL and Project
bashsudo mysql -e "CREATE DATABASE automation_hub;" sudo mysql -e "CREATE USER 'automationhub'@'localhost' IDENTIFIED BY 'secret';" sudo mysql -e "GRANT ALL ON automation_hub.* TO 'automationhub'@'localhost';" # Extract project cd /var/www/automationhub sudo chown -R $USER:www-data . composer install cp .env.example .env php artisan key:generate npm install && npm run build php artisan storage:link chmod -R 775 storage bootstrap/cache -
3
Quick Test with Artisan Serve (Optional)
For quick testing without configuring Nginx, you can use Laravel's built-in server:
bashphp artisan serve --host=0.0.0.0 --port=8000 # Visit http://localhost:8000/install -
4
Production-like Nginx Configuration (Recommended)
For a proper setup, create an Nginx vhost:
nginx — /etc/nginx/sites-available/automationhubserver { listen 80; server_name automationhub.local; root /var/www/automationhub/public; index index.php; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { fastcgi_pass unix:/run/php/php8.2-fpm.sock; fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.(?!well-known).* { deny all; } }bashsudo ln -s /etc/nginx/sites-available/automationhub /etc/nginx/sites-enabled/ sudo nginx -t && sudo systemctl restart nginx # Add "127.0.0.1 automationhub.local" to /etc/hosts # Visit http://automationhub.local/install
Pro Tip
Use php artisan serve for quick testing and Nginx for a production-like environment. For active frontend development, run npm run dev in a separate terminal for hot module replacement with Vite.
9. MAMP (macOS)
MAMP is a classic local server environment for macOS that bundles Apache, MySQL, and PHP with a graphical interface. Note that MAMP uses port 8889 for MySQL by default (not 3306).
Prerequisites
Download and install MAMP from mamp.info. Also install Composer globally and Node.js 18+ LTS. In MAMP, go to Preferences → PHP and select PHP 8.2 or 8.3.
-
1
Place the Files
Extract the downloaded ZIP into MAMP's document root:
path/path/to/automationhub/The file
artisanmust be at the root of this folder. -
2
Start MAMP and Create Database
Open MAMP and start both Apache and MySQL services. Go to MAMP → Preferences → PHP and confirm PHP 8.2 or 8.3 is selected.
Create an empty database named
automation_hubusing phpMyAdmin athttp://localhost:8888/phpMyAdmin. -
3
Install Dependencies
On MAMP you may need to use MAMP's PHP binary explicitly:
bash — MAMP (macOS)cd /path/to/automationhub php /usr/local/bin/composer installIf Composer is not in your PATH, download it from
getcomposer.organd run it asphp composer.phar install. -
4
Configure Environment
bashcp .env.example .env php artisan key:generateOpen
.envand configure the following critical MAMP settings:.envAPP_URL=http://localhost:8888 APP_ENV=local APP_DEBUG=true DB_HOST=127.0.0.1 DB_PORT=8889 DB_DATABASE=automation_hub DB_USERNAME=root DB_PASSWORD=root DB_SOCKET=/tmp/mysql.sockImportant: MAMP uses port
8889for MySQL (not 3306). Check MAMP → Preferences → Ports to confirm. TheDB_SOCKETline is optional but can help if TCP connections fail. -
5
Build Frontend and Create Symlink
bashnpm install && npm run build php artisan storage:link -
6
Run the Installation Wizard
URLhttp://localhost:8888/automationhub/public/installFollow the wizard. Use host
127.0.0.1, port8889, userroot, passwordroot.
Pro Tip
MAMP's default MySQL port is 8889 (not the standard 3306). Check MAMP → Preferences → Ports to confirm. If using MAMP Pro, you can set up custom virtual hosts for cleaner URLs like automationhub.test — go to Hosts → + → set the document root to /path/to/automationhub/public.
10. XAMPP (Windows / macOS)
XAMPP is a popular cross-platform Apache, MySQL, PHP, and Perl distribution. It is easy to install and works on both Windows and macOS.
Prerequisites
Download and install XAMPP from apachefriends.org (choose the PHP 8.2+ version). Also install Composer globally and Node.js 18+ LTS.
-
1
Place the Files
Extract the downloaded ZIP into XAMPP's document root:
- Windows:
C:\xampp\htdocs\automationhub\ - macOS:
/Applications/XAMPP/htdocs/automationhub/
The file
artisanmust be at the root of this folder. - Windows:
-
2
Start XAMPP and Create Database
Open the XAMPP Control Panel and start Apache and MySQL. Then open phpMyAdmin at
http://localhost/phpmyadminand create a new database namedautomation_hubwithutf8mb4_unicode_cicollation. -
3
Install Dependencies
bash — XAMPP (Windows)cd C:\xampp\htdocs\automationhub composer install cp .env.example .env php artisan key:generatebash — XAMPP (macOS)cd /Applications/XAMPP/htdocs/automationhub composer install cp .env.example .env php artisan key:generateSet
APP_URL=http://localhost/automationhub/public,APP_ENV=local, andAPP_DEBUG=truein.env. -
4
Configure Database
Update
.envwith XAMPP MySQL credentials:.envDB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=automation_hub DB_USERNAME=root DB_PASSWORD= -
5
Build Frontend and Create Symlink
bashnpm install && npm run build php artisan storage:linkFor active development, use
npm run devinstead ofnpm run buildfor hot module replacement. -
6
Run the Installation Wizard
URLhttp://localhost/automationhub/public/installFollow the wizard. Default XAMPP MySQL credentials: host
127.0.0.1, port3306, userroot, password empty.
Pro Tip
On Windows, if PHP or Composer are not recognized in the command prompt, add XAMPP's PHP directory to your system PATH: C:\xampp\php. On macOS, you may need to use the full path: /Applications/XAMPP/bin/php.
Environment Configuration (.env)
After copying .env.example to .env, configure the following variables. The table below shows all available options grouped by category:
Application Settings
| Variable | Description | Default | Example |
|---|---|---|---|
APP_NAME | Application display name | Automation Hub | Automation Hub |
APP_ENV | Environment mode | production | local / production |
APP_KEY | Encryption key (auto-generated) | — | base64:xxxx... |
APP_DEBUG | Debug mode | false | true (dev only) |
APP_URL | Full application URL | http://localhost | https://yourdomain.com |
APP_LOCALE | Default language | en | en / es / fr / ar |
Never set APP_DEBUG=true in production!
Debug mode exposes sensitive information including environment variables, database credentials, and stack traces. Always set APP_DEBUG=false and APP_ENV=production on production servers.
Database Settings
| Variable | Description | Default | Example |
|---|---|---|---|
DB_CONNECTION | Database driver | mysql | mysql |
DB_HOST | Database server host | 127.0.0.1 | 127.0.0.1 |
DB_PORT | Database port | 3306 | 3306 / 8889 (MAMP) |
DB_DATABASE | Database name | automation_hub | automation_hub |
DB_USERNAME | Database user | root | automationhub_user |
DB_PASSWORD | Database password | — | your_secure_password |
Mail Settings
| Variable | Description | Default | Example |
|---|---|---|---|
MAIL_MAILER | Mail driver | smtp | smtp / resend / log |
MAIL_HOST | SMTP server | 127.0.0.1 | smtp.mailgun.org |
MAIL_PORT | SMTP port | 587 | 587 (TLS) / 465 (SSL) |
MAIL_USERNAME | SMTP username | — | your_smtp_user |
MAIL_PASSWORD | SMTP password | — | your_smtp_password |
MAIL_ENCRYPTION | Encryption method | tls | tls / ssl |
MAIL_FROM_ADDRESS | Sender email | — | noreply@yourdomain.com |
MAIL_FROM_NAME | Sender name | ${APP_NAME} | Automation Hub |
Queue, Session & Cache
| Variable | Description | Default | Production Recommended |
|---|---|---|---|
QUEUE_CONNECTION | Queue driver | database | database (basic) / redis (high volume) |
SESSION_DRIVER | Session storage | database | database |
CACHE_STORE | Cache backend | database | database or redis |
HASH_DRIVER | Hashing algorithm | bcrypt | argon2id (recommended) |
WebSocket (Reverb) Settings
| Variable | Description | Default | Example |
|---|---|---|---|
REVERB_APP_ID | Reverb application ID | auto-generated | 123456 |
REVERB_APP_KEY | Reverb app key | auto-generated | your-reverb-key |
REVERB_APP_SECRET | Reverb app secret | auto-generated | your-reverb-secret |
REVERB_HOST | WebSocket host | localhost | yourdomain.com |
REVERB_PORT | WebSocket port | 8080 | 8080 |
REVERB_SCHEME | WebSocket protocol | http | https (production) |
Captcha (Optional)
Automation Hub supports Cloudflare Turnstile and Google reCAPTCHA v3 to protect public forms from bots. Disabled by default.
| Variable | Description | Default | Example |
|---|---|---|---|
CAPTCHA_ENABLED | Enable captcha on auth forms | false | true |
CAPTCHA_PROVIDER | Provider to use | turnstile | turnstile / recaptcha |
TURNSTILE_SITE_KEY | Cloudflare Turnstile site key | — | 0x4AAAAAAA... |
TURNSTILE_SECRET_KEY | Cloudflare Turnstile secret key | — | 0x4AAAAAAA... |
RECAPTCHA_SITE_KEY | Google reCAPTCHA v3 site key | — | 6Lc... |
RECAPTCHA_SECRET_KEY | Google reCAPTCHA v3 secret key | — | 6Lc... |
Which provider to choose?
Cloudflare Turnstile is recommended — it's free, privacy-friendly, GDPR-compliant, and doesn't require users to solve visual puzzles. Get your keys at Cloudflare Dashboard → Turnstile.
Queue Worker Setup
Automation Hub uses queues to process workflow executions, webhook deliveries, and background tasks asynchronously. A queue worker must be running for workflows to execute.
Development
# Run the queue worker in the foreground (for development)
php artisan queue:work --queue=events,webhooks
Production (Supervisor)
In production, use Supervisor to keep the queue worker running permanently and restart it if it crashes.
# Install Supervisor
sudo apt install -y supervisor
Create /etc/supervisor/conf.d/automationhub-worker.conf:
[program:automationhub-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/automationhub/artisan queue:work database --queue=events,webhooks --sleep=3 --tries=3 --max-time=3600
autostart=true
autorestart=true
stopasgroup=true
killasgroup=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/var/www/automationhub/storage/logs/worker.log
stopwaitsecs=3600
# Start the worker
sudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start automationhub-worker:*
Restart Workers After Deployment
After deploying new code, always restart queue workers so they pick up the latest changes: sudo supervisorctl restart automationhub-worker:*
Cron / Scheduler Setup
Automation Hub's task scheduler handles recurring tasks. Add the following entry to your server's crontab:
# Open crontab editor
crontab -e
# Add this line:
* * * * * cd /var/www/automationhub && php artisan schedule:run >> /dev/null 2>&1
The scheduler automatically runs the following tasks:
| Command | Frequency | Description |
|---|---|---|
workflow:schedule | Every minute | Triggers scheduled workflows (cron-based and interval-based triggers) |
cleanup:old-data --days=90 | Daily at 3:00 AM | Prunes old execution logs, expired sessions, and temporary data |
Auto-Installer (Web Wizard)
Automation Hub includes a built-in 5-step installation wizard accessible at https://yourdomain.com/install. This is the easiest way to set up the platform if you prefer a graphical interface over command-line installation.
System Requirements Check
The installer verifies your server meets all requirements: PHP version, required extensions, directory permissions, and system dependencies. All checks must pass before proceeding.
License Activation
Enter your purchase code (from CodeCanyon or your reseller) to activate your license. This validates your purchase and enables all features.
Database Configuration
Enter your database credentials (host, port, name, username, password). The installer tests the connection and runs all migrations automatically to create the required tables.
Admin User Creation
Create your first administrator account with name, email, and password. This account has full access to all platform features and settings.
Preferences
Configure initial settings: default language (English, Spanish, French, or Arabic), timezone, and optionally import demo data (sample workflows and templates) to explore the platform immediately.
Auto-Installer Prerequisite
Before accessing the web installer, you still need to upload the project files and run composer install to install PHP dependencies. The installer handles everything else (key generation, migrations, etc.).
Post-Installation Checklist
After completing the installation, verify everything is working correctly:
| Check | How to Verify | Status |
|---|---|---|
| Site loads at your domain | Open https://yourdomain.com in your browser | Required |
| Admin login works | Log in with the credentials you created | Required |
| Dashboard shows stats | After login, verify the dashboard renders correctly | Required |
| Queue worker is running | php artisan queue:work --once (processes one job) | Required |
| Cron is configured | php artisan schedule:list (shows scheduled tasks) | Required |
| Storage link works | Upload an avatar or logo — it should display correctly | Required |
| Email delivery works | Settings > General > Send test email | Recommended |
| SSL configured | Verify https:// works with valid certificate | Recommended |
SSL with Let's Encrypt
For free SSL certificates, use Certbot: sudo certbot --nginx -d yourdomain.com. This automatically configures Nginx for HTTPS and sets up auto-renewal.
Frontend Assets Build
Automation Hub uses Vite to compile and bundle frontend assets (React, TypeScript, Tailwind CSS). Pre-compiled assets are included, but you can rebuild them if needed:
# Install Node.js dependencies
npm ci
# Production build (optimized, minified)
npm run build
# Development mode with Hot Module Replacement
npm run dev
| Command | Purpose | Output |
|---|---|---|
npm ci | Clean install of dependencies (uses lockfile) | node_modules/ |
npm run build | Production build — minified and tree-shaken | public/build/ |
npm run dev | Development server with HMR at port 5173 | Live reload |
Pre-built Assets Included
The distribution package includes pre-compiled production assets in public/build/. You only need to run npm run build if you modify frontend code or want to customize the UI.
Next Steps
Now that Automation Hub is installed and running, explore these resources:
Build Your First Workflow
Learn how to use the visual canvas editor to create event-driven automations.
Explore Templates
Import one of the 42 pre-built templates to get started quickly.
API Documentation
Integrate Automation Hub with your existing systems via the REST API.
System Configuration
Configure modules, API keys, notification channels, and advanced settings.