View Categories

Installation

2 min read

This guide is for the packaged release ZIP created with bin/build-release.sh. The release ZIP includes production Composer dependencies in vendor/ and compiled frontend assets in public/build/, so buyers on shared hosting do not need Composer or Node.js on the server.

Related documents:

Requirements #

  • PHP 8.3 or newer
  • MySQL 8.0+ or PostgreSQL 16+
  • PHP extensions commonly required by Laravel: BCMath, Ctype, cURL, DOM, Fileinfo, JSON, Mbstring, OpenSSL, PDO, Tokenizer, XML, ZIP
  • Write access for storage/ and bootstrap/cache/
  • Apache with mod_rewrite or nginx/PHP-FPM

Shared Hosting Installation #

  1. Upload the release ZIP to your hosting account and extract it.
  2. Prefer pointing the domain document root to the public/ directory.
  3. If your host forces the project to live directly inside public_html, keep the default extracted structure and choose the public-html option in the installer.
  4. Set PHP to 8.3 or newer in your hosting panel.
  5. Make these directories writable: storage/ and bootstrap/cache/.
  6. Open your domain in the browser. The installer will redirect to /install automatically.
  7. Complete the requirements, database, site, and admin account steps.
  8. After installation, log in at /admin.

The installer writes the production .env, generates the application key, runs migrations and seeders, creates your admin account, and locks itself after completion.

If the project is installed directly inside public_html, media files are served from https://example.com/public/storage. If the domain document root points to public/, media files are served from https://example.com/storage. The installer writes this setting automatically; it can be checked later in Admin > System Health.

On locked public_html installs where the full project is uploaded into the web root, assets may need to be served from the public/ subdirectory. In that case use ASSET_URL=https://example.com/public, LIVEWIRE_ASSET_URL=https://example.com/public/vendor/livewire/livewire.js, and PUBLIC_STORAGE_URL=https://example.com/public/storage. If the domain document root points directly to public/, use ASSET_URL=https://example.com, LIVEWIRE_ASSET_URL=https://example.com/vendor/livewire/livewire.js, and PUBLIC_STORAGE_URL=https://example.com/storage.

VPS / Dedicated Server #

For nginx, start from deploy/nginx.conf.example and update:

  • server_name
  • project path
  • PHP-FPM socket or host

The safest document root is always the project’s public/ directory.

Post-Install Checklist #

  • Set mail credentials in the admin settings.
  • Configure site name, logo, homepage, social links, cookie consent, and tracking code.
  • Add map, AI, and webhook credentials only if you use those features.
  • Review languages and localized URL prefixes before adding public content.
  • Replace demo data and create real agents, pages, properties, and SEO metadata.
  • Test contact forms, inquiry forms, favorites, property search, and admin login.

External accounts, API keys, provider billing, quotas, and provider-side setup belong to the buyer. The product package does not include paid API credits for mail, maps, AI, translation, hosting, CDN, or automation providers.

Updates #

Use Admin > License & Updates to check and install available updates.

Before any update, take a full file and database backup.

See update-guide.md for the full update checklist.

Troubleshooting #

  • Blank page or HTTP 500 before install: check PHP version, missing PHP extensions, and write permissions for storage/ and bootstrap/cache/.
  • Styles or scripts are missing: make sure you uploaded the release ZIP, not a raw Git checkout. The release ZIP includes public/build/. On direct public_html installs, set ASSET_URL to https://example.com/public when assets only load from the public/ subdirectory.
  • Admin login does not react: verify that Livewire assets exist under public/vendor/livewire/ and that your server routes requests to Laravel correctly.
  • Installer cannot save .env: check file ownership and write permission on the project root.
  • Database connection fails: verify host, port, database name, username, password, and whether your hosting provider requires localhost or a socket-specific host.
  • Uploaded images return 404: open Admin > System Health, check the public disk URL and run Fix storage link. On direct public_html installs the public disk URL should end with /public/storage; on normal public document-root installs it should end with /storage.
Scroll to Top