| Requirement | Minimum or recommended setup |
|---|---|
| Web server | Apache with mod_rewrite, Nginx, or LiteSpeed. Point the document root at public/ . |
| PHP | PHP 8.2 or newer. |
| PHP extensions | BCMath, Ctype, Fileinfo, JSON, Mbstring, OpenSSL, PDO, Tokenizer, XML, cURL, exif and GD. |
| PHP setting | allow_url_fopen enabled. |
| Database | MySQL 5.7.7+ or MariaDB 10.3.17+, with the PDO MySQL driver. Search in the published docs uses the database's full-text search. |
| Writable paths | storage/ and bootstrap/cache/ writable by the web server user. |
| Scheduler | A cron job that runs php artisan schedule:run every minute. |
| HTTPS | Required. Customers' domains, Git webhooks and sign-in with Google all depend on it. |
| Outbound access | HTTPS to the services you turn on: your mail provider, cloud storage, AI providers, GitHub or GitLab, Cloudflare, the country database. |
What you don't need. There is no queue worker to keep alive, no Redis, no WebSocket server and no Node.js on the server. Publishing runs inside the request as one database transaction, and everything else runs from the scheduler. Shared hosting works as long as it can run a cron job every minute and serve public/ as the document root.
Redis can take over the cache later if a very busy install wants it; a setting in the configuration is enough, nothing in the product assumes it.