Deployment
About 466 wordsAbout 2 min
Spora runs anywhere PHP 8.4+ runs. These are the host-side setups (Docker, Apache, shared host, local). For what to do after Spora is running (env-vars, security, day-2 ops, backups), see Operators.
Decision matrix
| Scenario | When | Effort | Best for |
|---|---|---|---|
| Docker — single container | You want a self-contained container with Spora + SQLite. One image, one process, no external DB. | Minutes | Local laptop, small production, “I just want it running” |
| Docker — multi-container | You want the canonical setup: Spora + MariaDB + phpMyAdmin, all networked, all health-checked. | Minutes | Production deployments, multi-app stacks |
| Docker — custom build | You want to fork the template, adjust composer.json + the Dockerfile as needed, and let the shipped CI build your image. | ~1 hour | Custom integrations, version pinning, CI-built images |
| Shared host(Open in new window) | You have a cPanel / Plesk / FTP-only host with PHP 8.4+ but no Docker and no root. | ~30 min | Shared cPanel/FTP hosting (the original Spora target) |
| Classical server(Open in new window) | You have a VPS or dedicated box and want Apache httpd + PHP-FPM + supervisord, no Docker. | ~1 hour | VPS / bare-metal production with full control |
| Local — PHP / Ollama / LM Studio(Open in new window) | You’re hacking on Spora locally, or running an offline LLM (Ollama or LM Studio) for privacy. | Minutes | Laptop dev, offline use |
What Spora needs
Regardless of scenario, Spora needs:
- PHP 8.4+ (the codebase uses
readonlyproperties, enums, and^8.4.1incomposer.json; PHP 8.3 or earlier will not work. The Docker base image currently ships PHP 8.5.) pdo_mysqlPHP extension (even for SQLite — the platform check at install time requires it)- Composer (only for non-Docker installs; the Docker image bundles the deps)
- A persistent
storage/directory for SQLite DB + secret key + logs - Outbound HTTPS to your LLM provider (Anthropic, OpenAI, Ollama with TLS, etc.)
What’s next
For the common case (a self-contained install you can run on a laptop or a small VPS), start with Docker — single container or Docker — multi-container. They use the project’s official images and require no source build.
For shared hosting (cPanel/FTP), see Shared host(Open in new window) — the original Spora target. The 5-step install + the limitations page are required reading.
For bare-metal / VPS without Docker, see Classical server(Open in new window) — Apache httpd + PHP-FPM + supervisord, with TLS termination at Apache.
For local development with optional offline LLMs, see Local — PHP / Ollama / LM Studio(Open in new window).
For all scenarios, the env-var reference is in the operator’s Environment variables page. For per-scenario troubleshooting, the Operations → Day-2 ops page covers the common cases.