Skip to main content

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

  1. Upload DotAcars into <phpVMS root>/modules.
  2. Open Admin > Addons/modules and enable DotAcars.
  3. Open the phpVMS updater at /update and apply pending migrations.
  4. If your host allows CLI, run the phpVMS module migrations from the phpVMS root instead.
  5. Open Admin > dotACARS and review the settings.
  6. 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/status responds.
  • 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/DotAcars is not browseable by URL.