This project is designed to retrieve flight information from three different providers—Amadeus, Sky (Rapid API), and Google Flights (Rapid API)—given an origin, destination, and date.
- Fetches flight data from multiple APIs using concurrency.
- Uses Docker secrets to securely handle sensitive API keys (an alternative approach could use AWS Secrets Manager).
- Supports HTTPS with self-signed certificates. Automatically works with Let's Encrypt certificates if a real domain is configured. If we don't have a real domain we need to create self signed certificates
- Includes a helper to convert city names to provider-specific codes (e.g., "Paris" becomes
PARIfor Sky API). Currently supports 14 cities (seehelper.go).
- API keys/secrets for:
- Amadeus API
- Sky Rapid API
- Google Flights Rapid API
- Docker and Docker Compose installed
- Create a
secretsdirectory in the project root. - Add your API credentials as files with these exact names:
amadeus_api_key.txtamadeus_api_secret.txtsky_rapid_api_key.txtgoogle_flight_rapid_api_key.txt
-
Generate self-signed certificates (run in
src/directory):openssl req -x509 -newkey rsa:4096 -keyout cert.key -out cert.pem -days 365 -nodes -
Start the container:
docker compose up --build -
Server will run on port 8443 with HTTPS.
-
Authenticate:
https://localhost:8443/public/
After authentication, you'll be redirected to the flight search interface.
Notes
Default environment: development (uses self-signed certs)
To use Let's Encrypt certificates, configure a domain and set the environment to production.