nabeel / phpvms
phpVMS - Virtual Airline Administration
Requires
- php: >=8.1
- ext-bcmath: *
- ext-intl: *
- ext-json: *
- ext-mbstring: *
- ext-pdo: *
- ext-simplexml: *
- ext-zip: *
- akaunting/laravel-money: ^4.0.1
- arrilot/laravel-widgets: ~3.13.0
- composer/composer: ^2.7.7
- composer/installers: ~1.12.0
- doctrine/dbal: ^3.0
- elcobvg/laravel-opcache: ^0.4.1
- fakerphp/faker: ^v1.19.0
- fisharebest/ext-calendar: ^2.5
- guzzlehttp/guzzle: ~7.4.1
- hashids/hashids: ~4.1.0
- igaster/laravel-theme: dev-master
- intervention/image: ~2.4
- jeremykendall/php-domain-parser: ~6.3
- jlorente/laravel-data-migrations: ^2.0
- jmikola/geojson: ^1.2.0
- joshbrw/laravel-module-installer: ~2.0.1
- jpkleemans/attribute-events: ^1.4.0
- kyslik/column-sortable: ^6.5
- laracasts/flash: ~3.2.2
- laravel/framework: ^v10.48.25
- laravel/helpers: ~v1.6.0
- laravel/socialite: ^5.11
- laravel/ui: ^4.2.2
- laravelcollective/html: ~6.4.0
- league/commonmark: ^2.6
- league/csv: ~9.9.0
- league/flysystem-aws-s3-v3: ^3.0
- league/flysystem-sftp-v3: ^3.0
- league/geotools: ~1.1.0
- league/html-to-markdown: ^5.1
- league/iso3166: ~4.2.0
- madnest/madzipper: ^1.4.0
- mailersend/laravel-driver: ^2.6
- markrogoyski/math-php: ~2.5.0
- myclabs/deep-copy: ~1.10.0
- nabeel/vacentral: ~2.1.0
- nikolaposa/version: ^4.2
- nwidart/laravel-modules: ~10.0.0
- oomphinc/composer-installers-extender: ~2.0.0
- opcodesio/log-viewer: ^3.14
- php-units-of-measure/php-units-of-measure: ~2.1.0
- prettus/l5-repository: ~2.9.0
- psr/container: 1.1.1
- queueworker/sansdaemon: ^1.2.7
- santigarcor/laratrust: ^8.2.2
- socialiteproviders/discord: ^4.2
- socialiteproviders/ivao: ^4.0
- socialiteproviders/vatsim: ^5.0
- spatie/laravel-activitylog: ^4.7
- spatie/laravel-backup: *
- spatie/laravel-ignition: ^2.0
- spatie/valuestore: ~1.3.2
- staudenmeir/belongs-to-through: ^v2.13.0
- staudenmeir/eloquent-has-many-deep: 1.18.0
- symfony/console: ^6.4.15
- symfony/deprecation-contracts: ~v3.2.0
- symfony/event-dispatcher-contracts: ~3.2.0
- symfony/flex: ^1.0
- symfony/http-client: ^6.4.15
- symfony/mailgun-mailer: ^6.4.13
- symfony/polyfill-iconv: ~1.22.0
- symfony/polyfill-intl-icu: *
- symfony/polyfill-intl-idn: *
- symfony/polyfill-mbstring: *
- symfony/polyfill-php81: *
- symfony/polyfill-php82: *
- symfony/postmark-mailer: ^6.4.13
- symfony/yaml: ^6.4.13
- tivie/php-os-detector: ~1.1.0
- vlucas/phpdotenv: ~5.5
- webpatser/laravel-uuid: ~4.0.1
Requires (Dev)
- barryvdh/laravel-debugbar: ^3.8.1
- filp/whoops: ^2.15.3
- friendsofphp/php-cs-fixer: ^3.17.0
- kitloong/laravel-migrations-generator: ^7.0
- laravel/pint: ^1.19
- laravel/sail: ^1.23
- mockery/mockery: ^1.5.0
- nunomaduro/collision: ^v7.5.0
- phpunit/phpunit: ^10.5
This package is auto-updated.
Last update: 2026-05-31 20:47:33 UTC
README
phpVMS is a PHP application to run and simulate an airline. It allowed users to register, view flight schedules that you create, and file flight reports, built on the Laravel framework. The latest documentation, with installation instructions is available on the phpVMS documentation site.
Installation
A full distribution, with all the composer dependencies, is available at this GitHub Releases link.
Requirements
- PHP 8.3+, extensions:
- cURL
- JSON
- fileinfo
- mbstring
- openssl
- pdo
- tokenizer
- intl
- zip
- Database:
- MySQL 8.0+ (or MySQL variant, including MariaDB 10.2+ and Percona 8.0+)
View more details on requirements
Installer
- Upload to your server
- Visit the site, and follow the link to the installer
Production Deployment with Docker
The reference production stack is compose.deploy.yml. It runs the official
phpVMS image (built from the repo Dockerfile, based on
serversideup/php:8.5-frankenphp) with Laravel Octane worker mode enabled,
plus MariaDB and Redis. No separate web-server sidecar is needed — FrankenPHP
serves HTTP/HTTPS directly.
docker compose -f compose.deploy.yml up -d
Octane worker mode
The image itself ships with serversideup's default classic FrankenPHP entry
point (one PHP worker per request). compose.deploy.yml opts into Laravel
Octane worker mode via a command: override on the app service — the
pattern documented upstream.
To fall back to classic FrankenPHP + PHP-worker mode (matches the prior
PHP-FPM request semantics — slower per request but bulletproof if a
worker-mode bug hits), delete the command: line from the app service
and recreate the container:
services: app: # command: [...octane:start...] # remove this line
Under worker mode, KvpService (the JSON-backed key/value store used for
non-hot settings) is eventually consistent: writes from one worker
propagate to other workers on their next read of the same key. If your
deployment requires strong consistency for KVP, run with --workers=1 or
remove the command: override.
Module authors: under Octane the framework stays booted across requests,
so avoid per-request data in singleton-bound services, static array
accumulators, and boot()-time toggles without a matching per-request
reset. See app/Http/Middleware/DisableActivityLoggingByDefault.php for
the pattern used to keep activity logging request-scoped.
Development Environment with Docker
A full development environment can be brought up using Docker and Laravel Sail, without having to install composer/npm locally
make docker-test # **OR** with docker directly docker run --rm \ -u "$(id -u):$(id -g)" \ -v "$(pwd):/var/www/html" \ -w /var/www/html \ laravelsail/php84-composer:latest \ composer install --ignore-platform-reqs # Then you can start sail ./vendor/bin/sail up
Then go to http://localhost.
Instead of repeatedly typing vendor/bin/sail to execute Sail commands, you may wish to configure a shell alias that allows you to execute Sail's commands more easily:
alias sail='[ -f sail ] && sh sail || sh vendor/bin/sail'
Then you can execute php, artisan, composer, npm, etc. commands using the sail prefix:
# PHP commands within Laravel Sail... sail php --version # Artisan commands within Laravel Sail... sail artisan about # Composer commands within Laravel Sail... sail composer install # NPM commands within Laravel Sail... sail npm run dev
To interact with databases (MariaDB, Redis...), please refer to the Laravel Sail documentation
Building JS/CSS assets
Yarn is required, run:
make build-assets
This will build all the assets according to the webpack file.
Laravel Boost
If you want to use AI agents for your development workflow, please ensure you install Laravel Boost by running the following command:
php artisan boost:install
Contributors
Thank you to everyone who've contributed to phpVMS!