GeoIP Enhancement for NGINX Proxy Manager

Job ID: 39575561

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