Site Setup Wizard

Follow the four-step wizard to connect a Git repo, fill .env, create a database, and run the first deploy.

For supported applications, <strong>Sites → Apps → Quick Install</strong> is now the faster path. Use the wizard when you are connecting your own repository and want to control deploy, environment, database, and first deploy steps manually.

Laravel Site Example

If you want to create a new site and deploy a Laravel repository like git@github.com:example/example.com.git, the Setup Wizard is the fastest path.

Before You Start

  • Create the site first from Sites → New Site.
  • For Laravel, keep the initial document root as web_root/public.
  • Choose the correct domain and PHP version before opening the wizard.
  • If the domain is an apex domain, you can optionally enable the www alias during site creation.

Step 1 — Deploy

Fill the repository and deploy settings:

  • Repo URL: git@github.com:example/example.com.git
  • Branch: usually main unless the repository uses another branch
  • Deploy Path: leave the suffix empty if you want the project cloned directly into the site's web_root directory

Recommended build options for a Laravel project:

  • composer install: enabled
  • npm build: enable it only if this managed project has its own Node frontend build step; Herne Panel itself never requires npm
  • php artisan migrate: enable it if you will create the database in Step 3 and write the same credentials into .env
  • optimize / cache clear: enabled

SSH repository URLs automatically trigger deploy key generation when possible. You can also generate the key later from the Deploy page.

Step 2 — .env

Paste or edit the production .env values for the application. At minimum, review these entries:

  • APP_NAME
  • APP_ENV=production
  • APP_URL=https://your-domain
  • DB_DATABASE, DB_USERNAME, DB_PASSWORD
  • Mail, queue, cache, and any third-party API settings required by the app

If the app uses Redis for cache, sessions, or queues, use the built-in Apply Redis defaults action before saving.

On a brand-new site, the repository has not been cloned yet, so <code>.env.example</code> may not be available in the wizard at this stage. Be ready to paste the values manually.

Step 3 — Database

Create the MySQL database if the Laravel app needs one.

  • Enter the database name
  • Enter the database username
  • Set a strong password
  • Make sure the same values are written into the .env file

If the project does not use a database, you can skip this step.

If the database already exists on the server, you can finish the wizard first and later use Sites → Databases → Attach Existing to link it to the site.

Step 4 — First Deploy

If the repository is private and the wizard shows a public deploy key:

  1. Copy the public key from the wizard
  2. Open the repository on GitHub
  3. Go to Settings → Deploy keys → Add deploy key
  4. Paste the key and keep it read-only unless you specifically need write access

After that, click Deploy Now to clone the repository and run the selected steps.

After the First Deploy

Laravel projects often need a few follow-up checks after the initial deploy:

  • Run php artisan key:generate if APP_KEY is empty
  • Run php artisan storage:link if the project expects the public storage symlink
  • Review Sites → Logs if the deploy reports errors
  • Review Sites → Logs → Server Logs if Nginx or PHP-FPM errors appear after deploy
  • Review Sites → Environment and Sites → Artisan if the site boots with configuration problems

Quick Install Alternative

Use Sites → Apps → Quick Install for WebBlocks CMS or a clean Laravel App skeleton. WebBlocks CMS creates generated database credentials and CMS setup; Laravel App installs only the Laravel skeleton so packages such as QuizTem can be installed afterwards through Composer or Terminal. Both flows write safe .env values, protect APP_KEY, check runtime writability, and keep failed installs retryable after partial cleanup.