GeoIP Enhancement for NGINX Proxy Manager
Budget: $30 – $250 USD
Extend NGINX Proxy Manager to Support GeoIP Allow/Deny Rules Per Domain with CodeIgniter Integration
We are using NGINX Proxy Manager (NPM) as a reverse proxy for managing multiple domains. We need to enhance the NPM Web UI and backend to support GeoIP-based allow/deny configurations per domain. Additionally, this feature should be configurable from an existing CodeIgniter-based admin panel, and changes made via CodeIgniter should reflect seamlessly in the NPM Web UI (and vice versa).
Requirements:
GeoIP Integration:
Use MaxMind GeoLite2 databases.
Enable GeoIP country filtering using ngx_http_geoip2_module or equivalent.
Per-Domain Controls:
Add UI options in NPM Web UI to:
Allow or block specific countries per domain (multi-select).
Save settings persistently per proxy host.
Update the NGINX config generator to reflect these rules.
CodeIgniter Integration:
Develop an API or config interface in CodeIgniter to:
Set allowed/blocked countries for any domain.
Sync with the NPM backend.
Changes from either interface (NPM or CodeIgniter) should remain in sync.
Deployment:
Modify or fork the existing jc21/nginx-proxy-manager Docker image.
Include GeoIP module and volume-mountable MaxMind DB support.
Final setup should run on a Proxmox VM with Docker.
Deliverables:
Modified NPM Web UI with GeoIP dropdown per domain
Enhanced NGINX config template logic
CodeIgniter integration for controlling domain Geo rules
Dockerized deployment script or Dockerfile
Documentation for setup and usage
Ideal Freelancer:
Strong experience with NGINX, Docker, and custom NGINX templates
Familiar with CodeIgniter PHP framework
Working knowledge of GeoIP filtering
Able to work with GitHub fork and container deployments
We are using NGINX Proxy Manager (NPM) as a reverse proxy for managing multiple domains. We need to enhance the NPM Web UI and backend to support GeoIP-based allow/deny configurations per domain. Additionally, this feature should be configurable from an existing CodeIgniter-based admin panel, and changes made via CodeIgniter should reflect seamlessly in the NPM Web UI (and vice versa).
Requirements:
GeoIP Integration:
Use MaxMind GeoLite2 databases.
Enable GeoIP country filtering using ngx_http_geoip2_module or equivalent.
Per-Domain Controls:
Add UI options in NPM Web UI to:
Allow or block specific countries per domain (multi-select).
Save settings persistently per proxy host.
Update the NGINX config generator to reflect these rules.
CodeIgniter Integration:
Develop an API or config interface in CodeIgniter to:
Set allowed/blocked countries for any domain.
Sync with the NPM backend.
Changes from either interface (NPM or CodeIgniter) should remain in sync.
Deployment:
Modify or fork the existing jc21/nginx-proxy-manager Docker image.
Include GeoIP module and volume-mountable MaxMind DB support.
Final setup should run on a Proxmox VM with Docker.
Deliverables:
Modified NPM Web UI with GeoIP dropdown per domain
Enhanced NGINX config template logic
CodeIgniter integration for controlling domain Geo rules
Dockerized deployment script or Dockerfile
Documentation for setup and usage
Ideal Freelancer:
Strong experience with NGINX, Docker, and custom NGINX templates
Familiar with CodeIgniter PHP framework
Working knowledge of GeoIP filtering
Able to work with GitHub fork and container deployments
Related categories:
PHP
Software Architecture
MySQL
Laravel
Docker
Web Development
API Development
Web Application