@extends('installation.layouts.default') @section('page_title', trans('install.install') . config('default.page_title_delimiter') . config('default.app_name')) @section('content')
{{-- Hidden input for APP_DEMO - first element in form --}}
@php $phpRequirements = $requirements['requirements']; $envChecks = $requirements['environment'] ?? []; $allChecks = array_merge($phpRequirements, $envChecks); $metCount = collect($allChecks)->filter()->count(); $totalCount = count($allChecks); $failedCount = $totalCount - $metCount; $allMet = $requirements['allMet']; @endphp {{-- Header --}}

Requirements

Checking your server compatibility

{{-- Status Card --}} @if ($allMet)

System Ready

Your server meets all {{ $totalCount }} requirements. You're ready to proceed with installation.

@else

{{ $failedCount }} Issue{{ $failedCount > 1 ? 's' : '' }} Found

{{ $metCount }} of {{ $totalCount }} checks passed. Please resolve the following before continuing.

{{-- Failed checks list --}}
@foreach ($allChecks as $check => $met) @if (!$met)
{{ $check }}
@endif @endforeach {{-- Contextual help for subdirectory issue --}} @if (isset($envChecks['Installed at domain root (not in a subdirectory)']) && !$envChecks['Installed at domain root (not in a subdirectory)'])
Subdirectory installs are not supported. The script must be served from a domain root (e.g., loyalty.example.com or example.com), not from a path like example.com/loyalty.
@endif {{-- Contextual help for writable issue --}} @if (isset($envChecks['Root directory is writable (.env)']) && !$envChecks['Root directory is writable (.env)'])
The root directory must be writable so the installer can create the .env configuration file. Run chmod 755 on the project root, or ensure the web server user has write permissions.
@endif
@endif {{-- Technical Details Accordion --}}
View technical details
{{-- PHP Extensions --}}

PHP Extensions

@foreach ($phpRequirements as $requirement => $met)
{{ $requirement }}
@endforeach
{{-- Environment Checks --}} @if (count($envChecks) > 0)

Environment

@foreach ($envChecks as $check => $met)
{{ $check }}
@endforeach
@endif
{{-- The Footer (Matches Step 2) --}}
{{-- Header --}}

Configure your instance

Set up your database connection and mail drivers.

{{-- SECTION 1: GENERAL & ADMIN (The Basics) --}}
{{-- Admin Credentials Card --}}

Admin Account

{{-- Row 1: Name | Email --}}
{{-- Row 2: Password | Confirm Password --}}
{{-- Strength Bars --}}
{{-- Min length error --}}

Minimum 8 characters required

Passwords do not match

Passwords match

{{-- SECTION 2: DATABASE --}}

Database Connection

Configure where your data will be stored.

{{-- Connection Type Selector --}}
{{-- SQLite Info --}}

SQLite is a file-based database — no additional setup required.

{{-- MySQL Fields --}}
{{-- Connection Test --}}
{{-- SECTION 3: EMAIL (The Overhaul) --}}

Email Configuration

How should the system send emails?

{{-- FROM ADDRESS GROUP --}}
{{-- DRIVER GRID --}}
{{-- SMTP --}} {{-- Mailgun --}} {{-- Amazon SES --}} {{-- Postmark --}} {{-- Resend --}} {{-- Log (Dev) --}}
{{-- DYNAMIC FORMS --}}
{{-- SMTP Form --}}
{{-- Mailgun Form --}}
{{-- Postmark Form --}}
{{-- Resend Form --}}
{{-- SES Form --}}
{{-- Test Email Section --}}
{{-- Log/Dev Message --}}

Emails will be written to storage/logs/laravel.log. No actual emails will be sent.

{{-- Footer Actions --}}
@php $locale = request()->segment(1) ?: 'en-us'; $baseUrl = rtrim(url('/'), '/'); $adminUrl = $baseUrl . '/' . $locale . '/admin'; $partnerUrl = $baseUrl . '/' . $locale . '/partner'; $staffUrl = $baseUrl . '/' . $locale . '/staff'; @endphp {{-- THE ORCHESTRATOR (Full-screen Loader) --}}
{{-- Pulsing Ring --}}

Installing...

This may take a while, keep this page open.

{{-- THE PRE-INSTALL STATE (Before clicking install) --}}
{{-- Header --}}

Ready to Launch

Review your configuration and deploy your loyalty platform.

{{-- Demo Data Toggle Card --}}
{{-- Custom Toggle UI --}}
Populate with sample data Recommended for Testing

Adds example partners, members, staff, cards, and transactions. Preview the homepage with demo loyalty cards and explore all dashboards. Installation takes a bit longer.

You will start with a completely empty database.

{{-- The "Receipt" Container --}}
{{-- Section 1: Configuration Summary --}}

Configuration Summary

Admin
Database
Mail Driver
{{-- Section 2: System Access Points --}}

System Access Points

{{-- Admin Dashboard --}}

Admin Dashboard

{{ $adminUrl }} {{-- Admin uses configured credentials, not demo --}}

Login with your configured admin email & password

{{-- Partner Dashboard (with demo credentials when enabled) --}}

Partner Dashboard

{{ $partnerUrl }}

partner@example.com / welcome3210

{{-- Staff Dashboard (with demo credentials when enabled) --}}

Staff Dashboard

{{ $staffUrl }}

staff@example.com / welcome3210

{{-- Member Dashboard (only shown when demo enabled) --}} @php $memberUrl = $baseUrl . '/' . $locale . '/member'; @endphp

Member Dashboard

{{ $memberUrl }}

member@example.com / welcome3210

{{-- Important Note --}}

After installation, you'll be redirected to the admin login. Your credentials will be the email and password you configured in Step 2.

{{-- Footer --}}
{{-- Error State --}}
{{-- Header --}}

Installation Failed

We encountered an error while configuring the server.

{{-- Error Card --}}

Something Went Wrong

The installation could not be completed. Please check the installation log for details and try again.

{{-- Footer --}}
@endsection