@@ -10,12 +10,6 @@ A simple web-based interface for the DFS AIP (Aeronautical Information Publicati
1010- ** Run History** : View update history with status and detailed logs
1111- ** Document Downloads** : Browse and download generated PDFs (with OCR)
1212
13- ## Tech Stack
14-
15- - ** Frontend** : React + TypeScript + Vite + Tailwind CSS + shadcn/ui + Nginx
16- - ** Backend** : FastAPI + APScheduler
17- - ** Container** : Docker with docker-compose
18-
1913## Quick Start
2014
2115### Using Docker Compose (Recommended)
@@ -61,13 +55,6 @@ npm run dev
6155| ` AUTO_UPDATE_HOUR ` | ` 2 ` | Hour for automatic updates (0-23, 24-hour format) |
6256| ` AUTO_UPDATE_MINUTE ` | ` 0 ` | Minute for automatic updates (0-59) |
6357
64- ** Example** : To run updates daily at 3:30 AM, set:
65- ``` yaml
66- environment :
67- - AUTO_UPDATE_ENABLED=true
68- - AUTO_UPDATE_HOUR=3
69- - AUTO_UPDATE_MINUTE=30
70- ` ` `
7158
7259### Profile Configuration
7360
@@ -76,82 +63,24 @@ Profiles are stored in `/app/data/profiles.json`:
7663``` json
7764[
7865 {
79- "name": "Airport Charts ",
66+ "name" : " Airports " ,
8067 "flight_rule" : " vfr" ,
81- "filters": ["AD"],
68+ "filters" : [
69+ " AD"
70+ ],
8271 "enabled" : true
8372 },
8473 {
85- "name": "General Info ",
74+ "name" : " GEN " ,
8675 "flight_rule" : " vfr" ,
87- "filters": ["GEN"],
76+ "filters" : [
77+ " GEN"
78+ ],
8879 "enabled" : true
8980 }
9081]
9182```
9283
93- # ## Available Filters
94-
95- | Filter | Description |
96- |--------|-------------|
97- | `GEN` | General Information |
98- | `ENR` | En-Route |
99- | `AD` | Aerodrome Charts |
100-
101- # # API Endpoints
102-
103- | Method | Endpoint | Description |
104- |--------|----------|-------------|
105- | GET | `/api/config` | Get current configuration |
106- | POST | `/api/config` | Save configuration |
107- | POST | `/api/config/profile` | Add a new profile |
108- | DELETE | `/api/config/profile/{name}` | Delete a profile |
109- | POST | `/api/update/run` | Trigger an update |
110- | GET | `/api/update/status` | Get update status |
111- | GET | `/api/logs` | Get historical logs |
112- | GET | `/api/logs/stream` | SSE stream for live logs |
113- | GET | `/api/documents` | List available documents |
114- | GET | `/api/documents/{filename}` | Download a document |
115- | DELETE | `/api/documents/{filename}` | Delete a document |
116- | GET | `/api/airac` | Get available AIRAC cycles |
117-
118- # # Directory Structure
119-
120- ```
121- docker-webinterface/
122- ├── backend/
123- │ ├── Dockerfile # Backend container
124- │ ├── main.py # FastAPI application
125- │ └── requirements.txt # Python dependencies
126- ├── frontend/
127- │ ├── Dockerfile # Frontend container (Nginx)
128- │ ├── nginx.conf # Nginx configuration
129- │ ├── src/
130- │ │ ├── App.vue
131- │ │ ├── api.ts # API client
132- │ │ └── components/
133- │ │ ├── ProfileSettings.vue
134- │ │ ├── LogViewer.vue
135- │ │ ├── DocumentList.vue
136- │ │ └── StatusBar.vue
137- │ ├── package.json
138- │ └── vite.config.ts
139- ├── data/ # Mounted volume (shared)
140- │ ├── config.json
141- │ ├── output/ # Generated PDFs
142- │ └── cache/ # AIP cache
143- ├── docker-compose.yaml
144- └── README.md
145- ```
146-
147- ## Screenshots
148-
149- The web interface includes three main tabs:
150-
151- 1. **Settings**: Configure AIP download profiles
152- 2. **Logs**: View real-time and historical logs
153- 3. **Documents**: Browse and download generated PDFs
154-
15584## Notes
15685
15786- OCR processing is included (using ocrmypdf + tesseract) and runs automatically after PDF generation
0 commit comments