IPLookrUppr
Demo
View the site at iplookruppr.ajsto.dev (opens in a new tab).
The API Service
View the source for the API service in my github (opens in a new tab)
- Python for a REST API service
- SQLite database
- CORS enabled
- Simple hardcoded authentication for demo purposes
The ip-api service is built into a Docker container and deployed to Google Cloud Run where it listens for incoming connections. The IP to is passed in to the service via URL query parameter. The service then using SQL to search the SQLite database for the specific range and returns the result in JSON.
The front end
View the source for this basic front-end in my github (opens in a new tab)
- VueJS
- Tailwind/DaisyUI
- Javascript Fetch API
- Vercel for deployment
The super simple front-end is built with VueJS and Tailwind. Navbar and input components are
provided by DaisyUI (opens in a new tab).
The user can enter an IP address into the search input. The site then reaches out to the
ip-api
service via Fetch API which if found returns a JSON object. If the IP address is not
found, a notification is displayed to the user.
Deployment
For deployment of the API service I used Google Cloud (opens in a new tab) which allows me to build and publish a docker container using the [Cloud CLI](https://cloud.google.com/sdk (opens in a new tab) gcloud) and then using Google Cloud Run (opens in a new tab) I can deploy that container.
For the front-end I used Vercel (opens in a new tab) as it offers the easiest intergration into
Github. Once I push or merge code into the main
branch, the code is automatically built and
deployed to Vercel's servers. I have a CNAME DNS record (iplookrupper
) setup to point to
the production servers.