Installation
- Requirements
- Install
- Create the first administrator
- Run the background processes
- Point DNS at it
- Verify
Requirements
| Component | Minimum | Notes |
|---|---|---|
| PHP | 8.3 | With pdo, mbstring, openssl, zip, intl |
| Database | PostgreSQL 14 | MySQL 8 and SQLite work; Postgres is recommended — project trees are JSONB |
| Node | 20 | Only for building front-end assets and optional server-side bundling |
| Composer | 2.5 |
Node is not required at runtime. Without it the build pipeline falls back to the runtime driver, which ships source and transpiles in the browser.
Install
composer install --no-dev --optimize-autoloader
cp .env.example .env
php artisan key:generate
Edit .env — at minimum set APP_URL, the database credentials, and one AI
provider key. Then:
php artisan migrate --force --seed
npm ci && npm run build
php artisan storage:link
Create the first administrator
php artisan loom:install
This walks through creating the platform administrator and checks the install for anything missing. It is safe to run more than once.
Run the background processes
Two processes have to be running. Without the queue worker, generation never starts — this is the most common support ticket for any install.
# Required: runs generations and builds
php artisan queue:work --queue=generation,builds,default --tries=1 --timeout=900
# Optional but recommended: streams live build output to the workspace
php artisan reverb:start
Use supervisor, systemd, or your panel's process manager to keep them alive.
Add the scheduler to cron:
* * * * * cd /path/to/loom && php artisan schedule:run >> /dev/null 2>&1
Point DNS at it
Two records, both to the same server:
| Record | Host | Purpose |
|---|---|---|
| A / CNAME | app.example.com |
The application |
| A / CNAME | *.sites.example.com |
Published sites |
Set LOOM_SITES_DOMAIN=sites.example.com so publishing has an address.
Leave
SESSION_DOMAINunset. A leading-dot value shares the session cookie with every published site subdomain, which turns generated code into a path into the application.
Verify
Sign in and open Admin → Licence & status. It reports what this install can actually do — provider keys, queue driver, broadcasting, build driver, site domain and billing — so you can fix anything missing before your first user does.