Veldora provides two first-class installation methods: Composer (standard for PHP workflows) and npx / npm (an interactive zero-config scaffolder).
System Requirements
Make sure your machine or server meets the following requirements:
| Requirement | Minimum Version | Note |
|---|---|---|
| PHP | 8.2 or higher | Strict typing, readonly classes, constructor promotion |
| PDO Extension | Enabled | Required for all database drivers |
| SQLite Extension | Enabled | Used by default for instant local setup |
| Composer | 2.0+ | Standard PHP package manager |
| Node.js | 18+ | (Optional) Only required if using npx / npm |
Option 1 — Composer Installation (Recommended)
You can create a fresh, self-contained Veldora project in seconds using Composer:
Terminal • bash
composer create-project veldora/veldora my-app
cd my-app
php veldora serveTerminal • bash
Creating a "veldora/veldora" project at "./my-app"
Installing veldora/veldora (v0.6.0)
- Downloading veldora/veldora (v0.6.0)
- Installing veldora/veldora (v0.6.0): Extracting archive
Created project in ./my-app
Generating optimized autoload files
> @php -r "file_exists('.env') || copy('.env.example', '.env');"
> @php veldora key:generate
✔ Application key set successfully!
🎉 Success! Created my-app at ./my-appOption 2 — Interactive npm / npx Installer
If you prefer using Node.js or an interactive prompt:
Terminal • bash
# Run instantly with npx (no global install needed):
npx create-veldora-app my-app
# Or install globally for a permanent `veldora` command:
npm install -g create-veldora-app
veldora new my-appTerminal • Interactive CLI Setup
▲ Veldora Framework v0.6.0
The modern PHP framework you actually own.
? What is your project named? (my-veldora-app): my-blog
Creating a new Veldora app in ./my-blog...
✔ Configured project skeleton
✔ Generated secure APP_KEY
✔ Configured storage and logs directory
🎉 Success! Created my-blog at ./my-blognpm CLI Options
Terminal • bash
# Create project directly
npx create-veldora-app my-app
# Create using the `new` subcommand
npx create-veldora-app new my-app
# Show help guide and all available flags
npx create-veldora-app --help
# Check installed version
npx create-veldora-app --versionStarting the Development Server
Once your project is created, enter the folder and start the built-in development server:
Terminal • bash
cd my-app
php veldora serveOpen http://localhost:8000 in your browser. You will see the Veldora welcome screen.
To run on a custom port or host:
Terminal • bash
php veldora serve --port=8080 --host=0.0.0.0Project Structure Overview
Terminal • bash
my-app/
├── app/
│ ├── Controllers/ # Request handlers
│ ├── Middleware/ # HTTP filters (Auth, CSRF, Admin, etc.)
│ ├── Models/ # ActiveRecord ORM entities
│ ├── Services/ # Application business logic
│ ├── Events/ # Event classes
│ ├── Listeners/ # Event listeners
│ ├── Jobs/ # Background queue jobs
│ ├── Mail/ # Mailable classes
│ └── Http/
│ ├── Requests/ # Form validation request classes
│ └── Resources/ # JSON API resource transformers
├── bootstrap/
│ └── app.php # Container & service registration
├── config/
│ ├── app.php # App name, debug mode, timezone
│ ├── auth.php # Guard settings & user providers
│ ├── database.php # Connection credentials (sqlite, mysql, pgsql)
│ ├── mail.php # SMTP & mail transport settings
│ ├── queue.php # Queue driver settings (sync, database)
│ ├── cache.php # Cache store settings (file, array)
│ ├── filesystems.php # Storage disks (local, public)
│ ├── logging.php # Log channels & daily log rotation
│ └── session.php # Session driver & cookie configuration
├── database/
│ ├── factories/ # Model factories for testing & seeding
│ ├── migrations/ # Versioned database schema definitions
│ └── seeders/ # Database seeders
├── public/
│ └── index.php # Web entry point
├── resources/
│ └── views/ # .veldora.php view templates
│ ├── components/ # UI components (<x-button>, etc.)
│ └── layouts/ # Base layouts
├── routes/
│ └── web.php # Route definitions
├── storage/
│ ├── app/ # Private file storage
│ ├── framework/ # Compiled views, sessions, cache
│ └── logs/ # Daily application logs (app.log)
├── .env # Local environment configuration
├── .env.example # Environment template
└── veldora # Framework CLI binary (php veldora ...)Environment & .env Configuration
Veldora loads environment variables from .env on every boot before configuration files are read:
.env
INI
APP_NAME=Veldora
APP_ENV=local
APP_KEY=base64:your_generated_app_key_here
APP_DEBUG=true
APP_URL=http://localhost:8000
DB_DRIVER=sqlite
DB_DATABASE=database/veldora.sqlite
SESSION_DRIVER=file
SESSION_LIFETIME=120
QUEUE_DRIVER=sync
CACHE_DRIVER=fileRead environment variables in code using the global env() or config() helpers:
example.php
PHP
$debug = env('APP_DEBUG', false);
$appName = config('app.name', 'Veldora');