Configuration
Where things live and how to change them after the install wizard.
The .env file
Everything the platform needs is in a single file called .env at the root of the project. The install wizard writes it; you can also edit it by hand.
docker compose exec app php artisan config:clear for changes to take effect, or restart the stack with docker compose restart.Most-edited settings
| Key | Default | Purpose |
|---|---|---|
APP_NAME | Fchat | Platform name, shown in emails and titles. |
APP_URL | http://localhost:8000 | Public URL the browser uses to reach the platform. |
APP_CENTRAL_DOMAINS | localhost | Comma-separated list of central (non-tenant) domains. |
APP_DEBUG | false | Set to true only temporarily for debugging. Never on production. |
MAIL_* | log | SMTP details for transactional email. |
FILESYSTEM_DISK | minio | minio for bundled, s3 for AWS / Wasabi / R2. |
PLATFORM_STRIPE_SECRET | (empty) | Used to bill tenants for their platform subscription. |
Super admin panel
Most settings can also be edited from the super-admin UI at admin.your-domain.com:
- Tenants - create, suspend, impersonate, drop.
- Plans - define the platform subscription plans you sell to tenants.
- Branding - logo, colours and the public landing page.
- Platform gateways - Stripe / PayPal / CCBill etc. credentials for tenant billing.
- Token packs - configure the platform-credit packs tenants can buy.
- Translations - edit UI strings without touching code.
- Languages - enable / disable locales for the whole platform.
Per-tenant configuration
Each tenant has its own admin panel at their-subdomain.your-domain.com/admin:
- Their own users, channels and livestreams.
- Their own payment gateways (so each tenant can bill their end users).
- Their own KYC integration (Yoti), legal pages, branding and domains.
Storage
Avatars, attachments and recordings go to whichever storage you picked in step 4 of the wizard. To switch later:
FILESYSTEM_DISK=s3 # or: minio, wasabi, r2 AWS_ACCESS_KEY_ID=AKIA... AWS_SECRET_ACCESS_KEY=... AWS_BUCKET=fchat-prod AWS_DEFAULT_REGION=eu-west-1 AWS_ENDPOINT= # leave blank for AWS, set for MinIO/Wasabi/R2
Real-time (Reverb)
Chat, notifications and call signalling go through Reverb (WebSockets). The wizard sets it up; nothing to do unless you put a load balancer in front.
Livestream (LiveKit)
LiveKit handles WebRTC. The default LIVEKIT_API_KEY and LIVEKIT_API_SECRET in .env are randomly generated for you. Rotate them periodically if you want.