✈️ About Live Air Traffic Control

:sparkles::airplane_departure: Live Air Traffic Control – Installation & Configuration Guide :airplane_arrival::sparkles:

A real-time Cesium-based Air Traffic Visualization System integrating aircraft telemetry, weather layers, and secure Apache authentication.

:wrench: Requirements Feature Status

:locked: SSL Implemented :check_mark: :desktop_computer: Apache Server :check_mark: :globe_with_meridians: OpenSky API :check_mark: :cloud: OpenWeatherMap API :check_mark: :world_map: Cesium Ion API :check_mark: :globe_with_meridians: I. Required APIs :one: OpenSky API

Instruction image: opensky_token.png Google Drive: (you may remove these if they are private)

Create/manage your token: https://opensky-network.org/my-opensky/account

:two: OpenWeatherMap API

Instruction image: openweathermap_token.png

Generate your API key: https://openweathermap.org/api

:three: Cesium Ion API

Instruction image: cesium_ion_token.png

Create/manage Ion access tokens: https://ion.cesium.com/tokens?page=1

:memo: II. Required File Edits :page_facing_up: 1. index.html

Update lines 8 and 10 with your HTTPS domain:

](https://www.yourdomainname.com/Build/Cesium/Cesium.js%22%3E%3C/script%3E)

:warning: Download Cesium: https://drive.google.com/file/d/1PkPH5TfLXRWlhZwbmWnNS7HUc9KPa2zU/view?usp=sharing :warning: Make sure you have only ONE Build subDirectory in your main air traffic directory for Cesium Engine :warning: Cesium requires HTTPS.

:page_facing_up: 2. index.js

Edit lines 1, 2, 4, and 1742:

const defaultLat = 46.2237014771; const defaultLng = 14.4575996399;

Cesium.Ion.defaultAccessToken = ‘add_your_token’;

// At line 1742: const apiKey = “add_your_api_key”;

:page_facing_up: 3. skyopen.php & opensky.php

Update lines 7 & 8:

// === CONFIG === $clientId = ‘your_client_id_json_credentials’; $clientSecret = ‘your_client_Secret_json_credentials’;

:locked_with_key: III. Apache Security Setup

  1. Create .htpasswd

:file_folder: Location (not in web root):

C:/xampp/.htpasswd

Generate user + password hash: https://hostingcanada.org/htpasswd-generator/

:warning: Choose: Apache-specific salted MD5

Restart Apache after saving.

:locked_with_key: IV. Protect PHP Files with .htaccess

Add:

<FilesMatch “^(index|opensky).php$”> AuthType Basic AuthName “Restricted Access” AuthUserFile C:/xampp/.htpasswd Require valid-user

To protect more files:

(index|opensky|admin|weather).php$

:package: Gzipped JSON support RewriteCond %{HTTP:Accept-Encoding} gzip RewriteCond %{REQUEST_FILENAME}.gz -f RewriteRule ^(.*).json$ $1.json.gz [L]

<FilesMatch “.json.gz$”> RemoveType .gz AddType application/json .gz Header set Content-Encoding gzip Header set Cache-Control “max-age=31536000, public”

Ensure both files exist:

yourdirectory/basic-ac-db.json https://drive.google.com/file/d/11AYbG_aKMBzwkRqQEmavRTv8zMh6J6oO/view?usp=sharing

yourdirectory/basic-ac-db.json.gz https://drive.google.com/file/d/1e3LTUpIsBdMRggo7__XjR2gXyJN4vmvz/view?usp=sharing

Restart Apache.

:rocket: Project Summary

This system integrates:

:globe_showing_europe_africa: Cesium Ion — 3D globe visualization

:airplane: OpenSky — Live aircraft telemetry

:cloud: OpenWeatherMap — Atmospheric/weather layers

:locked_with_key: Apache Auth — Secure restricted access

:scroll: License

(Choose one or two… Maybe choose all of them: MIT, Apache-2.0, GPL3, etc.) =)

by Roberto

You can peekaboo here Live on CodePen

https://codepen.io/roberto-puhan-gmail-com/pen/gbrdeaY

1 Like