diff --git a/readme.md b/readme.md
index b528ecb..ffd5ade 100644
--- a/readme.md
+++ b/readme.md
@@ -5,56 +5,56 @@
- **IP Geolocation**: Provides city, region, country, continent, and coordinates for any IP address.
- **ASN Information**: Includes autonomous system number and organization.
- **Hostname Lookup**: Retrieves the hostname associated with the IP address.
-- **Automatic Database Updates**: Keeps GeoIP databases up-to-date weekly.
+- **Automatic Database Updates**: Keeps GeoIP databases up-to-date daily.
- **JSONP Support**: Allows JSONP responses for cross-domain requests.
## Example Endpoints
### Get information about an IP address
```sh
-$ curl https://ip.albert.lol/8.8.8.8
+$ curl https://ip.albert.lol/9.9.9.9
{
- "ip": "8.8.8.8",
- "hostname": "dns.google.",
- "asn": "15169",
- "organization": "Google LLC",
- "city": "Mountain View",
+ "ip": "9.9.9.9",
+ "hostname": "dns9.quad9.net",
+ "asn": "19281",
+ "org": "QUAD9-AS-1",
+ "city": "Berkeley",
"region": "California",
- "country": "US",
- "country_full": "United States",
- "continent": "NA",
- "continent_full": "North America",
- "loc": "37.4223,-122.0850"
+ "country": "United States",
+ "continent": "North America",
+ "timezone": "America/Los_Angeles",
+ "loc": "37.8767,-122.2676"
}
```
### Get specific information (e.g., city) about an IP address
```sh
-$ curl https://ip.albert.lol/8.8.8.8/city
-Mountain View
+$ curl https://ip.albert.lol/9.9.9.9/city
+{
+ "city": "Berkeley"
+}
```
### Use JSONP callback function
```sh
-$ curl http://ip.albert.lol/8.8.8.8?callback=getGoogle
-/**/ typeof getGoogle === 'function' && getGoogle({
- "ip": "8.8.8.8",
- "hostname": "dns.google.",
- "asn": "15169",
- "organization": "Google LLC",
- "city": "Mountain View",
+$ curl https://test.albert.lol/9.9.9.9?callback=Quad9
+/**/ typeof Quad9 === 'function' && Quad9({
+ "ip": "9.9.9.9",
+ "hostname": "dns9.quad9.net",
+ "asn": "19281",
+ "org": "QUAD9-AS-1",
+ "city": "Berkeley",
"region": "California",
- "country": "US",
- "country_full": "United States",
- "continent": "NA",
- "continent_full": "North America",
- "loc": "37.4223,-122.0850"
+ "country": "United States",
+ "continent": "North America",
+ "timezone": "America/Los_Angeles",
+ "loc": "37.8767,-122.2676"
});
```
```html
-
+
```
## Running Locally
@@ -63,27 +63,42 @@ let getGoogle = function(data) {
git clone https://github.com/skidoodle/ipinfo
cd ipinfo
docker build -t ipinfo:main .
-docker run -p 3000:3000 ipinfo:main
+docker run \
+-p 3000:3000
+-e GEOIPUPDATE_ACCOUNT_ID=<> \
+-e GEOIPUPDATE_LICENSE_KEY=<> \
+-e GEOIPUPDATE_EDITION_IDS=<> \
+-e GEOIPUPDATE_DB_DIR=<> \
+ipinfo:main
```
### Without Docker
```sh
git clone https://github.com/skidoodle/ipinfo
cd ipinfo
-go run main.go
+go run .
```
## Deploying
### Docker Compose
```yaml
-version: '3.9'
-
services:
ipinfo:
+ image: ghcr.io/skidoodle/ipinfo:main
container_name: ipinfo
- image: 'ghcr.io/skidoodle/ipinfo:main'
restart: unless-stopped
ports:
- - '3000:3000'
+ - "3000:3000"
+ environment:
+ GEOIPUPDATE_ACCOUNT_ID: ${GEOIPUPDATE_ACCOUNT_ID}
+ GEOIPUPDATE_LICENSE_KEY: ${GEOIPUPDATE_LICENSE_KEY}
+ GEOIPUPDATE_EDITION_IDS: "GeoLite2-City GeoLite2-ASN"
+ GEOIPUPDATE_DB_DIR: /app
+ healthcheck:
+ test: ["CMD", "curl", "-f", "http://localhost:3000/"]
+ interval: 30s
+ timeout: 10s
+ retries: 3
+ start_period: 40s
```
### Docker Run
```sh
@@ -92,6 +107,10 @@ docker run \
--name=ipinfo \
--restart=unless-stopped \
-p 3000:3000 \
+ -e GEOIPUPDATE_ACCOUNT_ID=<> \
+ -e GEOIPUPDATE_LICENSE_KEY=<> \
+ -e GEOIPUPDATE_EDITION_IDS=<> \
+ -e GEOIPUPDATE_DB_DIR=<> \
ghcr.io/skidoodle/ipinfo:main
```