Developer Installation

Installation

Laravix is a self-hosted, multi-tenant CMS built on Laravel and Filament. This guide takes you from an empty directory to a running admin panel using the official distribution — no Node.js or asset building required.

Requirements

  • PHP 8.4 with the fileinfo extension (and gd if you want automatic image resizing)
  • Composer
  • A database: SQLite (zero setup, recommended to start), MySQL/MariaDB or PostgreSQL
  • A web server pointing at public/ (or php artisan serve for local work)

If you'd rather not install PHP, a database and services yourself, the installer can put everything in containers for you — see Docker development environment.

1. Create the project

composer create-project laravix/laravix my-site
cd my-site

This scaffolds a Laravel application with the laravix/cms package installed and dependencies resolved.

2. Run the installer

php artisan laravix:install

The interactive installer walks you through everything:

  1. How to run Laravix — the first question offers Docker (database and services in containers, the default) or local services (you already have a database running). Pick local services to continue with the steps below; pick Docker and the installer takes over from Docker development environment. This question is skipped when a compose.yaml already exists.
  2. Database — if the configured database isn't reachable, it asks you to pick SQLite, MySQL/MariaDB or PostgreSQL and writes the credentials into .env for you.
  3. Migrations, storage and themes — runs migrations, storage:link and laravix:theme:link.
  4. Assets and theme — publishes the admin assets, the config file, the overridable views and Filament's assets, then publishes the default theme into themes/default.
  5. First site — asks for a site name and domain. The site is created in theme mode with the default theme.
  6. Super admin — asks for a name, email and password (minimum 8 characters) for the account you'll log in with.

Expected result: a summary box with your site URL, the admin panel URL and your login email.

Installing with Docker

If you don't want to set up PHP extensions, a database and search yourself, run:

php artisan laravix:install --docker

The installer generates a compose.yaml, starts the containers and then runs the rest of the installation inside the container, so you end up at the same summary box. Service selection, ports and the individual flags are covered in Docker development environment.

Non-interactive installation

Every prompt has a flag, so the installer also works in scripts:

php artisan laravix:install \
  --site-name="My Site" \
  --domain=my-site.test \
  --admin-name="Jane Doe" \
  [email protected] \
  --admin-password=secret-password \
  --no-interaction

With --no-interaction the installer never asks how to run Laravix — it uses your local services and expects a working database connection already configured in .env. If it can't connect, it stops with an error instead of prompting. To install into containers non-interactively, add --docker together with the service flags.

If sites already exist, the installer refuses to run — add --force to run it anyway.

3. Log in

Open https://your-domain/admin (or http://localhost:8000/admin with php artisan serve) and log in with the super admin account. The public website answers on the domain you entered for the site — Laravix resolves the site by the request's hostname, so the domain in the admin must match the address you're browsing.

Tip: For local development, use a domain like my-site.test that points to your machine and enter exactly that as the site domain.

Troubleshooting

The frontend shows a 404 for every page. The request hostname doesn't match any site's Domain. Check the site's domain in the admin (top-left switcher → your site) or in Sites as a super admin.

Images upload but no resized variants appear. Variants are generated by a queued job. Either run a queue worker (php artisan queue:work) or set QUEUE_CONNECTION=sync for small sites. See Deployment.

Scheduled content never publishes. The Laravel scheduler isn't running. Add the cron entry from Deployment.

Theme styles don't load. The theme's dist/ directory isn't exposed under public/themes. Run php artisan laravix:theme:link. See Theme Structure.

Laravix Documentation · 25.08.2026
Star on GitHub