misaf / vendra
The skeleton application for the Vendra framework.
Requires
- php: ^8.3
- awcodes/filament-badgeable-column: ^4.0
- bezhansalleh/filament-language-switch: ^4.3
- bezhansalleh/filament-panel-switch: ^3.1
- cknow/laravel-money: ^8.5
- filament/filament: ^5.6.8
- filament/spatie-laravel-media-library-plugin: ^5.6.8
- filament/spatie-laravel-settings-plugin: ^5.6.8
- filament/spatie-laravel-tags-plugin: ^5.6.8
- filament/support: ^5.6.8
- flowframe/laravel-trend: >=0.5
- illuminate/console: ^13.0
- illuminate/contracts: ^12.0 || ^13.0
- illuminate/database: ^13.0
- illuminate/http: ^12.0 || ^13.0
- illuminate/support: ^13.0
- lara-zeus/spatie-translatable: ^2.0.1
- laravel-json-api/laravel: ^5.2.1
- laravel/framework: ^13.19
- laravel/horizon: ^5.47.2
- laravel/pennant: ^1.24
- laravel/prompts: ^0.3.21
- laravel/pulse: ^1.7
- laravel/sanctum: ^4.3.2
- laravel/tinker: ^3.0.2
- misaf/filament-jalali: ^5.1.4
- misaf/laravel-authify-log: ^1.0
- misaf/laravel-email-webhooks: ^1.0.1
- misaf/vendra-activity-log: ^1.0
- misaf/vendra-affiliate: ^1.0
- misaf/vendra-api: ^1.0
- misaf/vendra-attribute: ^1.0
- misaf/vendra-attribute-api: ^1.0
- misaf/vendra-authify-log: ^1.0
- misaf/vendra-blog: ^1.0
- misaf/vendra-blog-api: ^1.0
- misaf/vendra-cart: ^1.0
- misaf/vendra-cart-api: ^1.0
- misaf/vendra-currency: ^1.0
- misaf/vendra-custom-page: ^1.0
- misaf/vendra-faq: ^1.0
- misaf/vendra-faq-api: ^1.0
- misaf/vendra-geo: ^1.0
- misaf/vendra-language: ^1.0
- misaf/vendra-localization: ^1.0
- misaf/vendra-multimedia: ^1.0
- misaf/vendra-multimedia-api: ^1.0
- misaf/vendra-newsletter: ^1.0
- misaf/vendra-permission: ^1.0
- misaf/vendra-product: ^1.0
- misaf/vendra-product-api: ^1.0
- misaf/vendra-subscription: ^1.0
- misaf/vendra-support: ^1.0
- misaf/vendra-tagger: ^1.0
- misaf/vendra-tenant: ^1.0
- misaf/vendra-testing: ^1.0
- misaf/vendra-transaction: ^1.0
- misaf/vendra-user: ^1.0
- misaf/vendra-user-profile: ^1.0
- owenvoke/blade-fontawesome: ^3.3
- spatie/eloquent-sortable: ^5.0.1
- spatie/laravel-activitylog: ^4.12.3
- spatie/laravel-medialibrary: ^11.23.2
- spatie/laravel-multitenancy: ^4.1.3
- spatie/laravel-package-tools: ^1.93.1
- spatie/laravel-permission: ^7.4.2
- spatie/laravel-queueable-action: ^2.17
- spatie/laravel-sluggable: ^4.0.2
- spatie/laravel-translatable: ^6.14.1
- spatie/laravel-translation-loader: ^2.8.3
- spatie/laravel-webhook-client: ^3.6.3
- staudenmeir/belongs-to-through: ^2.18
- staudenmeir/eloquent-has-many-deep: ^1.22.1
- staudenmeir/laravel-adjacency-list: ^1.26.1
- stijnvanouplines/blade-country-flags: ^1.0.9
- symfony/finder: ^7.4.14
Requires (Dev)
- dutchcodingcompany/filament-developer-logins: ^2.1
- ergebnis/composer-normalize: ^2.52
- fakerphp/faker: ^1.24.1
- fruitcake/laravel-debugbar: ^4.4.0
- larastan/larastan: ^3.10.0
- laravel-json-api/testing: ^3.2
- laravel/boost: ^2.4.12
- laravel/pail: ^1.2.7
- laravel/pao: ^1.1.2
- laravel/pint: ^1.29.3
- mockery/mockery: ^1.6.12
- nunomaduro/collision: ^8.9.4
- orchestra/testbench: ^11.1
- pestphp/pest: ^4.7.5
- pestphp/pest-plugin-arch: ^4.0.2
- pestphp/pest-plugin-laravel: ^4.1
- pestphp/pest-plugin-livewire: ^4.1
- pestphp/pest-plugin-profanity: ^4.2.1
- pestphp/pest-plugin-type-coverage: ^4.0.4
- phpstan/extension-installer: ^1.4.3
- symplify/monorepo-builder: ^12.7.1
README
Vendra is a modular Laravel application for e-commerce and marketplace use cases.
Requirements
- PHP 8.2+
- Composer
- Node.js and npm
- MySQL or another Laravel-supported database
Local Development
composer install cp .env.example .env php artisan key:generate php artisan migrate npm install npm run build composer dev
composer dev starts the web server, queue listener, logs, and Vite in watch mode.
Docker
The docker/Dockerfile builds the production image (FrankenPHP,
Composer install from the committed lock file, Vite asset build). Pushing a
MAJOR.MINOR.PATCH tag publishes linux/amd64 and linux/arm64 images to
ghcr.io/misaf/vendra (:1.0.0, :1.0, :latest).
A full local stack (php, MySQL, Redis, Horizon, scheduler, Pulse) lives in
docker/; its .env holds compose and infrastructure settings and is
separate from the root application .env:
cd docker cp .env.example .env # Set APP_KEY (echo "base64:$(openssl rand -base64 32)") and passwords. docker compose up -d --build
Startup runs migrations, provisions the default tenant, and warms caches via the container entrypoint; no manual setup commands are required inside the container. Production servers should use the published image through vendra-deploy.
Configuration
Settings cache can be enabled with:
SETTINGS_CACHE_ENABLED=true
Module Development
Modules are developed locally through Composer path repositories in packages/*.
Typical workflow:
- Edit the module inside
packages/<module-name>. - Ensure the package is required in root
composer.json. - Run
composer update <vendor/package>orcomposer dump-autoloadwhen needed. - Run the relevant tests or static analysis.
For production builds, rely on installed Composer packages rather than local path repository workflows.
Useful Commands
composer test php artisan test --compact vendor/bin/pint --dirty --format agent vendor/bin/phpstan analyse
Troubleshooting
- If package changes are not reflected, run
composer dump-autoload. - If provider discovery seems stale, run
php artisan package:discover. - If configuration values look outdated, run
php artisan config:clear. - If frontend changes do not appear, run
npm run devornpm run build.
License
MIT. See LICENSE.