Installation
About 319 wordsAbout 1 min
Installation
Looking for a specific deployment scenario? See the Deployment guide for Docker, Classical server (Apache+PHP-FPM), Local (PHP / Ollama / LM Studio), or Shared host (cPanel/FTP). The Standard install below works on any host with PHP 8.4 + Composer.
The Standard install is the canonical “if you have SSH and Composer, do this” reference. Spora ships as three coordinated Composer packages:
spora-ai/spora-core— the frameworkspora-ai/spora-frontend— prebuilt admin UI (lands inpublic/dist/)spora-ai/installer— Composer plugin that routes the above
The admin UI is prebuilt — no Node toolchain is required on the operator’s host.
Repairing a stuck bootstrap admin
If the seeded admin@spora.local was persisted with verified=0 (e.g. after an upgrade from a pre-db:repair-admin spora-core release), promote it without dropping the database:
php bin/spora db:repair-admin
# or for a non-default admin email:
php bin/spora db:repair-admin [email protected]The command is idempotent and preserves any role bits you have already set. It refuses to create a missing row — it is a repair tool, not a backdoor.
Standard install (Packagist)
composer create-project spora-ai/spora my-app
cd my-app
composer install
php bin/spora spora:install
php bin/spora db:seed
composer devcomposer dev starts the PHP server on http://localhost:${PHP_PORT:-8080}.
Troubleshooting
public/dist/index.html is missing after php bin/spora spora:install
This means the frontend package didn’t install. Run composer install spora-ai/spora-frontend and verify vendor/spora-ai/installer is present (it routes the package to `public/dist/``).
Permission denied on storage/
storage/ must be writable by the web user. On shared hosts: chmod -R 775 storage.
Database errors after deploy
The first deploy needs php bin/spora spora:install to run migrations. Add it to your deploy script.