From b13125c8d834656c6ecba37b48342ee72e9b363b Mon Sep 17 00:00:00 2001 From: Phil Date: Sun, 19 Jan 2025 11:25:00 +0000 Subject: [PATCH] Added first config files --- README.md | 4 ++-- docker-compose.yml | 18 ++++++++++++++++++ echoip-apache2.conf | 21 +++++++++++++++++++++ geolite2-db-update.sh | 40 ++++++++++++++++++++++++++++++++++++++++ 4 files changed, 81 insertions(+), 2 deletions(-) create mode 100644 docker-compose.yml create mode 100644 echoip-apache2.conf create mode 100644 geolite2-db-update.sh diff --git a/README.md b/README.md index f67bcf4..cbe925a 100644 --- a/README.md +++ b/README.md @@ -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 \ No newline at end of file +Scripts and configuration files for quickly setting up the echo lookup server created by mpolden - https://github.com/mpolden/echoip diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..bfa20cb --- /dev/null +++ b/docker-compose.yml @@ -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 + diff --git a/echoip-apache2.conf b/echoip-apache2.conf new file mode 100644 index 0000000..ef9d2d0 --- /dev/null +++ b/echoip-apache2.conf @@ -0,0 +1,21 @@ + + 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 + + + + + diff --git a/geolite2-db-update.sh b/geolite2-db-update.sh new file mode 100644 index 0000000..a6adca8 --- /dev/null +++ b/geolite2-db-update.sh @@ -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." +