Added first config files
This commit is contained in:
parent
b8387ed046
commit
b13125c8d8
@ -1,3 +1,3 @@
|
||||
# mpolden-echoip-setup
|
||||
# echoip-server-setup
|
||||
|
||||
Scripts and configuration files for quickly setting up the echo lookup server created by mpolden - https://github.com/mpolden/echoip
|
||||
Scripts and configuration files for quickly setting up the echo lookup server created by mpolden - https://github.com/mpolden/echoip
|
||||
|
||||
18
docker-compose.yml
Normal file
18
docker-compose.yml
Normal file
@ -0,0 +1,18 @@
|
||||
version: '3.8'
|
||||
services:
|
||||
echoip:
|
||||
container_name: 'echoip'
|
||||
image: 'mpolden/echoip:latest'
|
||||
restart: unless-stopped
|
||||
command: [
|
||||
"-p",
|
||||
"-H", "X-Forwarded-For",
|
||||
"-a", "/geolite2/db/asn/GeoLite2-ASN.mmdb",
|
||||
"-c", "/geolite2/db/city/GeoLite2-City.mmdb",
|
||||
"-f", "/geolite2/db/country/GeoLite2-Country.mmdb"
|
||||
]
|
||||
ports:
|
||||
- '127.0.0.1:8085:8080'
|
||||
volumes:
|
||||
- ./geolite2/db/:/geolite2/db/:ro
|
||||
|
||||
21
echoip-apache2.conf
Normal file
21
echoip-apache2.conf
Normal file
@ -0,0 +1,21 @@
|
||||
<VirtualHost *:80>
|
||||
ServerName FULLY.QUALIFIED.DOMAIN.NAME
|
||||
RemoteIPHeader CF-Connecting-IP
|
||||
|
||||
ProxyPreserveHost On
|
||||
ProxyRequests Off
|
||||
|
||||
ProxyPass / http://127.0.0.1:8085/
|
||||
ProxyPassReverse / http://127.0.0.1:8085
|
||||
|
||||
# Add support for X-Forwarded-For
|
||||
RequestHeader set X-Forwarded-For "%{REMOTE_ADDR}s"
|
||||
|
||||
|
||||
ErrorLog ${APACHE_LOG_DIR}/echoip-error.log
|
||||
CustomLog ${APACHE_LOG_DIR}/echoip-access.log combined
|
||||
|
||||
|
||||
</VirtualHost>
|
||||
|
||||
|
||||
40
geolite2-db-update.sh
Normal file
40
geolite2-db-update.sh
Normal file
@ -0,0 +1,40 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Define constants
|
||||
BASE_URL="https://download.maxmind.com/geoip/databases"
|
||||
AUTH="YOUR_ACCOUNT_ID:YOUR_LICENSE_KEY"
|
||||
OUTPUT_DIR="$(dirname "$0")/geolite2/db"
|
||||
CITY_FILE="GeoLite2-City"
|
||||
ASN_FILE="GeoLite2-ASN"
|
||||
COUNTRY_FILE="GeoLite2-Country"
|
||||
|
||||
# Create directory structure if it doesn't exist
|
||||
mkdir -p "$OUTPUT_DIR/city"
|
||||
mkdir -p "$OUTPUT_DIR/asn"
|
||||
mkdir -p "$OUTPUT_DIR/country"
|
||||
|
||||
# Download, extract, and move the files
|
||||
process_file() {
|
||||
local file_name=$1
|
||||
local target_dir=$2
|
||||
|
||||
echo "Processing $file_name..."
|
||||
|
||||
curl -O -J -L -u "$AUTH" "$BASE_URL/$file_name/download?suffix=tar.gz"
|
||||
|
||||
# Extract the .tar.gz file
|
||||
tar -xzf "$file_name.tar.gz" --wildcards --strip-components=1 -C "$target_dir" "*/$file_name.mmdb"
|
||||
|
||||
# Clean up the downloaded tar.gz file
|
||||
rm -f "$file_name.tar.gz"
|
||||
|
||||
echo "$file_name processed and placed in $target_dir"
|
||||
}
|
||||
|
||||
# Process each database
|
||||
process_file "$CITY_FILE" "$OUTPUT_DIR/city"
|
||||
process_file "$ASN_FILE" "$OUTPUT_DIR/asn"
|
||||
process_file "$COUNTRY_FILE" "$OUTPUT_DIR/country"
|
||||
|
||||
echo "All files processed successfully."
|
||||
|
||||
Loading…
Reference in New Issue
Block a user