From 4d71d59d90c72bcc843c5fcdd7c4ec0ce1b17232 Mon Sep 17 00:00:00 2001 From: James Pattinson Date: Sun, 7 Dec 2025 15:02:51 +0000 Subject: [PATCH] Gone live --- backend/app/main.py | 110 ++++++- docker-compose.prod.yml | 10 +- docker-compose.yml | 8 + nginx.conf | 14 +- web/admin.html | 34 +-- web/assets/flightImg.png | Bin 0 -> 56947 bytes web/assets/logo.png | Bin 0 -> 22619 bytes web/index.html | 617 +++++++++++++++++--------------------- web/ppr.html | 149 +++++++-- web/widgets/iframe.min.js | 1 + 10 files changed, 542 insertions(+), 401 deletions(-) create mode 100644 web/assets/flightImg.png create mode 100644 web/assets/logo.png create mode 100644 web/widgets/iframe.min.js diff --git a/backend/app/main.py b/backend/app/main.py index 61320f1..17f9971 100644 --- a/backend/app/main.py +++ b/backend/app/main.py @@ -2,9 +2,20 @@ from fastapi import FastAPI, Depends, HTTPException, WebSocket, WebSocketDisconn from fastapi.middleware.cors import CORSMiddleware from typing import List import json +import logging +import asyncio +import redis.asyncio as redis from app.core.config import settings from app.api.api import api_router +# Set up logging +logging.basicConfig(level=logging.INFO) +logger = logging.getLogger(__name__) + +# Redis client for pub/sub (cross-worker communication) +redis_client = None +pubsub = None + app = FastAPI( title=settings.project_name, openapi_url=f"{settings.api_v1_str}/openapi.json", @@ -25,28 +36,117 @@ app.add_middleware( class ConnectionManager: def __init__(self): self.active_connections: List[WebSocket] = [] + self.redis_listener_task = None async def connect(self, websocket: WebSocket): await websocket.accept() self.active_connections.append(websocket) + logger.info(f"WebSocket connected. Total connections: {len(self.active_connections)}") def disconnect(self, websocket: WebSocket): - self.active_connections.remove(websocket) + if websocket in self.active_connections: + self.active_connections.remove(websocket) + logger.info(f"WebSocket disconnected. Total connections: {len(self.active_connections)}") async def send_personal_message(self, message: str, websocket: WebSocket): await websocket.send_text(message) - async def broadcast(self, message: dict): - message_str = json.dumps(message) + async def broadcast_local(self, message_str: str): + """Broadcast to connections on this worker only""" + dead_connections = [] for connection in self.active_connections: try: await connection.send_text(message_str) - except: - # Connection is dead, remove it + except Exception as e: + logger.warning(f"Failed to send to connection: {e}") + dead_connections.append(connection) + + # Remove dead connections + for connection in dead_connections: + if connection in self.active_connections: self.active_connections.remove(connection) + + if dead_connections: + logger.info(f"Removed {len(dead_connections)} dead connections") + + async def broadcast(self, message: dict): + """Broadcast via Redis pub/sub to all workers""" + message_str = json.dumps(message) + print(f"Publishing message to Redis channel: {message.get('type', 'unknown')}") + logger.info(f"Publishing message to Redis channel: {message.get('type', 'unknown')}") + + try: + if redis_client: + await redis_client.publish('ppr_updates', message_str) + print(f"✓ Message published to Redis") + else: + # Fallback to local broadcast if Redis not available + print("⚠ Redis not available, falling back to local broadcast") + logger.warning("Redis not available, falling back to local broadcast") + await self.broadcast_local(message_str) + except Exception as e: + print(f"✗ Failed to publish to Redis: {e}") + logger.error(f"Failed to publish to Redis: {e}") + # Fallback to local broadcast + await self.broadcast_local(message_str) + + async def start_redis_listener(self): + """Listen for Redis pub/sub messages and broadcast to local connections""" + global redis_client, pubsub + + try: + # Connect to Redis + redis_url = settings.redis_url or "redis://redis:6379" + print(f"Connecting to Redis at: {redis_url}") + redis_client = await redis.from_url(redis_url, encoding="utf-8", decode_responses=True) + pubsub = redis_client.pubsub() + await pubsub.subscribe('ppr_updates') + + print("✓ Redis listener started for PPR updates") + logger.info("Redis listener started for PPR updates") + + async for message in pubsub.listen(): + if message['type'] == 'message': + message_data = message['data'] + print(f"Received Redis message, broadcasting to {len(self.active_connections)} local connections") + logger.info(f"Received Redis message, broadcasting to {len(self.active_connections)} local connections") + await self.broadcast_local(message_data) + + except Exception as e: + print(f"Redis listener error: {e}") + logger.error(f"Redis listener error: {e}") + await asyncio.sleep(5) # Wait before retry + # Retry connection + if self.redis_listener_task and not self.redis_listener_task.done(): + asyncio.create_task(self.start_redis_listener()) manager = ConnectionManager() +@app.on_event("startup") +async def startup_event(): + """Start Redis listener when application starts""" + print("=" * 50) + print("STARTUP: Starting application and Redis listener...") + print("=" * 50) + logger.info("Starting application and Redis listener...") + manager.redis_listener_task = asyncio.create_task(manager.start_redis_listener()) + +@app.on_event("shutdown") +async def shutdown_event(): + """Clean up Redis connections on shutdown""" + logger.info("Shutting down application...") + global redis_client, pubsub + + if manager.redis_listener_task: + manager.redis_listener_task.cancel() + + if pubsub: + await pubsub.unsubscribe('ppr_updates') + await pubsub.close() + + if redis_client: + await redis_client.close() + @app.websocket("/ws/tower-updates") async def websocket_endpoint(websocket: WebSocket): await manager.connect(websocket) diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml index ebcb26a..127a7b9 100644 --- a/docker-compose.prod.yml +++ b/docker-compose.prod.yml @@ -71,10 +71,18 @@ services: image: nginx:alpine container_name: ppr_prod_web restart: always + environment: + BASE_URL: ${BASE_URL} + command: > + sh -c "cp /usr/share/nginx/html/ppr.html /tmp/ppr.html.orig && + sed 's|__BASE_URL__|'"\$BASE_URL"'|g' /tmp/ppr.html.orig > /usr/share/nginx/html/ppr.html && + cp /usr/share/nginx/html/index.html /tmp/index.html.orig && + sed 's|__BASE_URL__|'"\$BASE_URL"'|g' /tmp/index.html.orig > /usr/share/nginx/html/index.html && + nginx -g 'daemon off;'" ports: - "${WEB_PORT_EXTERNAL}:80" volumes: - - ./web:/usr/share/nginx/html:ro + - ./web:/usr/share/nginx/html - ./nginx.conf:/etc/nginx/nginx.conf:ro depends_on: - api diff --git a/docker-compose.yml b/docker-compose.yml index a921a05..6d628a8 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -62,6 +62,14 @@ services: image: nginx:alpine container_name: ppr_nextgen_web restart: unless-stopped + environment: + BASE_URL: ${BASE_URL} + command: > + sh -c "sed 's|__BASE_URL__|'"\$BASE_URL"'|g' /usr/share/nginx/html/ppr.html > /tmp/ppr.html && + mv /tmp/ppr.html /usr/share/nginx/html/ppr.html && + sed 's|__BASE_URL__|'"\$BASE_URL"'|g' /usr/share/nginx/html/index.html > /tmp/index.html && + mv /tmp/index.html /usr/share/nginx/html/index.html && + nginx -g 'daemon off;'" ports: - "${WEB_PORT_EXTERNAL}:80" # Public web interface volumes: diff --git a/nginx.conf b/nginx.conf index 8684f39..95eec5f 100644 --- a/nginx.conf +++ b/nginx.conf @@ -29,9 +29,19 @@ http { root /usr/share/nginx/html; index index.html; + # Allow ppr.html to be embedded in iframes from any origin + location = /ppr.html { + add_header X-Frame-Options "ALLOWALL" always; + add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'; frame-ancestors *" always; + add_header X-Content-Type-Options "nosniff" always; + try_files $uri =404; + } + # Serve static files location / { try_files $uri $uri/ /index.html; + # Apply X-Frame-Options to other files + add_header X-Frame-Options "SAMEORIGIN" always; } # Proxy API requests to FastAPI backend @@ -56,10 +66,10 @@ http { } # Security headers - add_header X-Frame-Options "SAMEORIGIN" always; add_header X-XSS-Protection "1; mode=block" always; add_header X-Content-Type-Options "nosniff" always; add_header Referrer-Policy "no-referrer-when-downgrade" always; - add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'" always; + # Default CSP for other files + add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'; frame-ancestors 'self'" always; } } \ No newline at end of file diff --git a/web/admin.html b/web/admin.html index 663915b..044cd3e 100644 --- a/web/admin.html +++ b/web/admin.html @@ -2308,20 +2308,9 @@ if (matches.length === 0) { resultsDiv.innerHTML = '
No matches found - will use as entered
'; - } else if (matches.length === 1) { - // Unique match found - auto-populate with ICAO code - const airport = matches[0]; - resultsDiv.innerHTML = ` -
- ✓ ${airport.name} (${airport.icao}) -
- `; - - // Auto-populate with ICAO code - document.getElementById('in_from').value = airport.icao; - } else { - // Multiple matches - show clickable list + // Show matches as clickable options (single or multiple) + const matchText = matches.length === 1 ? 'Match found - click to select:' : 'Multiple matches found - select one:'; const listHtml = matches.map(airport => `
@@ -2334,7 +2323,7 @@ resultsDiv.innerHTML = `
- Multiple matches found - select one: + ${matchText}
${listHtml} @@ -2348,20 +2337,9 @@ if (matches.length === 0) { resultsDiv.innerHTML = '
No matches found - will use as entered
'; - } else if (matches.length === 1) { - // Unique match found - auto-populate with ICAO code - const airport = matches[0]; - resultsDiv.innerHTML = ` -
- ✓ ${airport.name} (${airport.icao}) -
- `; - - // Auto-populate with ICAO code - document.getElementById('out_to').value = airport.icao; - } else { - // Multiple matches - show clickable list + // Show matches as clickable options (single or multiple) + const matchText = matches.length === 1 ? 'Match found - click to select:' : 'Multiple matches found - select one:'; const listHtml = matches.map(airport => `
@@ -2374,7 +2352,7 @@ resultsDiv.innerHTML = `
- Multiple matches found - select one: + ${matchText}
${listHtml} diff --git a/web/assets/flightImg.png b/web/assets/flightImg.png new file mode 100644 index 0000000000000000000000000000000000000000..52c93f15a13909eb4c3aa87a283335cb66f015aa GIT binary patch literal 56947 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

M>Vtn*x?|R1_=_dnsKq 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

Vy1Y_pL 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 IGtWQ&4X);Q&Hw-a literal 0 HcmV?d00001 diff --git a/web/assets/logo.png b/web/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..1a16a892ddb5db854b1a03daf557f8ffffcd988d GIT binary patch literal 22619 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 z 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 + - Airfield PPR - Arrivals & Departures + Swansea Airport - Arrivals & Departures -

-
-

✈️ Airfield PPR System

-

Real-time Arrivals & Departures Board

+
+ EGFH Logo +

Arrivals/Departures Information

+ EGFH Logo +
+ +
+ +
+

Arrivals

+ + + + + + + + + + + + + + +
RegistrationAircraft TypeFromDue
Loading arrivals...
-
- -
-
-

🛬 Today's Arrivals

-
Loading...
-
-
-
-
- Loading arrivals... -
- -
-
+ +
+

Departures

+ + + + + + + + + + + + + + +
RegistrationAircraft TypeToDue
Loading departures...
+
+
- -
-
-

🛫 Today's Departures

-
Loading...
-
-
-
-
- Loading departures... -
- -
+
+ +
+
+
- -
-
Last updated: Never
-
🔄 Auto-refresh every 30 seconds
-
-
+ - \ No newline at end of file + diff --git a/web/ppr.html b/web/ppr.html index 1dd8d63..7cdf335 100644 --- a/web/ppr.html +++ b/web/ppr.html @@ -3,7 +3,7 @@ - Swansea PPR Request + Swansea PPR
-

✈️ Swansea Airport PPR Request

-

Please fill out the form below to submit a Prior Permission Required (PPR) request for Swansea Airport.

+

✈️ PPR Request

+

Please fill out the form below to submit a PPR request for Swansea Airport.

+

Note that this is a new form, and is under test. Please email james.pattinson@sasalliance.org if you have any issues with the form.

@@ -354,9 +432,9 @@
-

✅ PPR Request Submitted Successfully!

-

Your Prior Permission Required request has been submitted and will be reviewed by airport operations. You will receive confirmation via email if provided.

-

Please note: This is not confirmation of approval. Airport operations will contact you if additional information is required.

+

PPR Request Submitted.

+

Your PPR request has been submitted. You will receive confirmation via email if provided.

+

Please note: PPR requests are accepted by default. We will contact you if additional information is required. Remember to check NOTAMs before your flight.

@@ -364,6 +442,29 @@