phpVMS 7 Native Module
phpVMS 7 uses the native dotACARS module. Do not install the old public /acars/*.php API on phpVMS 7.
Server Package Folder
Use:
Server/phpVMS7/DotAcars
Copy it to:
<phpVMS root>/modules/DotAcars
Do not copy it to public.
Install
- Upload
DotAcarsinto<phpVMS root>/modules. - Open Admin > Addons/modules and enable
DotAcars. - Open the phpVMS updater at
/updateand apply pending migrations. - If your host allows CLI, run the phpVMS module migrations from the phpVMS root instead.
- Open Admin > dotACARS and review the settings.
- Confirm
https://crew.exampleva.com/api/dotacars/status.
Configuration
phpVMS 7 does not use va_config.php.
For dotACARS Free and Standard, pilots normally enter only the crew center URL:
https://crew.exampleva.com
The desktop app calls /api/dotacars/status, detects mode: native_module, and switches to the native endpoints automatically.
Module settings are configured in phpVMS:
Admin > dotACARS
Use this screen for:
- VA display name and optional branding fields returned by
/status; - session token TTL;
- whether bids/scheduled flights are required;
- whether pilot password auth is allowed;
- optional shared client token enforcement.
Leave client-token enforcement disabled for normal dotACARS Free installs. Enable it only when the VA distributes a client token to the desktop app configuration.
PIREP source name and Module version are internal module constants. Starting with module 1.2.0, they are not editable settings and are removed from the configuration table during /update.
Expected response includes:
{
"success": true,
"dotacars_api": true,
"platform": "phpvms7",
"mode": "native_module"
}
Endpoints
GET /api/dotacars/status
POST /api/dotacars/auth
GET /api/dotacars/bids
POST /api/dotacars/start
POST /api/dotacars/position
POST /api/dotacars/event
POST /api/dotacars/finish
POST /api/dotacars/cancel
The desktop app auto-detects /api/dotacars/status and switches to these endpoints.
Troubleshooting
If /api/dotacars/status shows:
Class "App\Http\Controllers\Controller" not found
replace the module with the latest Server/phpVMS7/DotAcars folder and run /update again. The fixed module uses App\Contracts\Controller, matching phpVMS native module conventions.
If login and BID import work but Live Map or PIREP submission fails, confirm /status reports 1.2.0 or newer. This release aligns ACARS rows with the installed phpVMS schema and filters version-specific PIREP columns before calling the native service.
PIREP Flow
The module uses phpVMS routes, controllers, middleware, validation, models and App\Services\PirepService.
PIREP prefile, file, submit and cancel operations go through phpVMS services so phpVMS events and third-party listeners can run.
Remove Old phpVMS 7 API Files
After confirming the module works, remove old files such as:
<phpVMS root>/public/acars/login.php
<phpVMS root>/public/acars/position.php
<phpVMS root>/public/acars/submit_log.php
<phpVMS root>/public/acars/*_debug.php
<phpVMS root>/public/acars/sessions
<phpVMS root>/public/acars/reports
No sessions, logs, cache or credentials should live under phpVMS public.
Test Checklist
/api/dotacars/statusresponds.- Login works.
- Bids load.
- Start creates or reuses a phpVMS PIREP through the native flow.
- Position saves an ACARS position.
- Live Map shows the active PIREP while state is
IN_PROGRESS. - Finish files/submits the PIREP through phpVMS services.
- Requests without a session token are rejected.
- Invalid coordinates and incomplete requests are rejected.
- phpVMS PIREP events/listeners are fired.
modules/DotAcarsis not browseable by URL.