Tenanto User Guide
Welcome to Tenanto — a production-ready Laravel multi-tenant SaaS boilerplate built with Laravel 13, FilamentPHP 5, Stripe billing, and comprehensive automated testing. This guide walks you through installation, the admin panels, the API, and the most common customization scenarios.
Table of Contents
| Guide | Description |
|---|---|
| Installation Guide | Docker & traditional server setup |
| System Admin Panel | Managing tenants, users, licenses |
| Tenant Admin Panel | Projects, tasks, teams, billing |
| Billing & Subscriptions | Stripe setup and configuration |
| API Quick Start | Authentication and endpoints |
| Customization | Branding, models, features |
| Troubleshooting | Common issues and solutions |
| Support Policy | What's included with your purchase |
Quick Start
Prerequisites
- Docker Desktop (recommended) OR
- PHP 8.3+ (8.4 recommended), PostgreSQL 16+, Redis 7+, Node.js 20+
- PHP extensions:
pdo_pgsql,redis,zip,intl,gd,bcmath,mbstring
5-Minute Installation
# 1. Extract the package
unzip tenanto-v1.0.0.zip
cd tenanto
# 2. Start Docker
docker compose up -d
# 3. Install & configure
docker compose exec app composer install
docker compose exec app npm install && npm run build
docker compose exec app php artisan key:generate
docker compose exec app php artisan migrate --seed
# 4. Add to hosts file (see Installation Guide for details)
# 127.0.0.1 tenanto.local admin.tenanto.local demo.tenanto.local
Default Access
| Panel | URL | Login |
|---|---|---|
| System Admin | http://admin.tenanto.local/admin | [email protected] / ChangeMe-DemoPass! |
| Demo Tenant | http://demo.tenanto.local/app | [email protected] / ChangeMe-DemoPass! |
Important: Default credentials come from
DEMO_DEFAULT_PASSWORDin.env.example(ChangeMe-DemoPass!by default). Rotate them immediately after installation.
What's Included
Core Features
| Feature | Description |
|---|---|
| Multi-Tenancy | Single database with tenant isolation via global scopes |
| FilamentPHP 5 | Modern admin panels for system and tenant management |
| Stripe Billing | Subscriptions, trials, webhooks, customer portal |
| Teams & Roles | Owner, Admin, Member roles with permissions |
| API with Sanctum | RESTful API with rate limiting and documentation |
Quality Assurance
| Metric | Value |
|---|---|
| PHP Tests | 600+ test methods (PHPUnit) |
| E2E Tests | 480+ scenarios (Playwright, 15 project configurations) |
| Browser Engines | chromium, firefox, webkit + mobile viewports |
| PHPStan | Level 8, 0 errors |
| Tenant Isolation | 30+ dedicated tests |
Example Module
The package includes a complete Projects & Tasks module demonstrating:
- Tenant-isolated models
- Filament CRUD resources
- API endpoints
- Policies and permissions
You can use it as reference or remove it entirely (see Customization Guide).
Architecture Overview
Tenant A
acme.yourdomain.com/app
Users, teams, projects, tasks, billing
Tenant B
corp.yourdomain.com/app
Users, teams, projects, tasks, billing
Tenant C
demo.yourdomain.com/app
Users, teams, projects, tasks, billing
Data Isolation
Every tenant's data is isolated through:
- Global Scopes - Automatic filtering of all queries by
tenant_id - Middleware - Request context validation
- Policies - Authorization checks as defense-in-depth
- 30+ dedicated isolation tests - Automated verification that data never crosses tenant boundaries
Support
- Documentation: You're reading it!
- Email: your configured
SUPPORT_EMAILaddress - Response Time: 24-48 hours
See Support Policy for details on what's covered.
Next Steps
- Installation Guide - Detailed setup instructions
- Admin Panel Guide - Managing tenants and users
- Billing Setup - Configure Stripe integration
Thank you for choosing Tenanto!