Skip to content
Statutory Tax Compliance, Pakistan

Odoo 18 On-Premise with FBR Tax Integration, Behind a Corporate Firewall

Challenge

The problem

A Pakistani organisation needed Odoo 18 running on their own hardware, inside their corporate network, integrated with the FBR IRIS system for statutory tax reporting. Nothing could be hosted externally, and our access had to be granted through their network team rather than assumed.

Constraints
  • Everything sits behind the client's firewall on internal addressing. Our access exists only because their network team explicitly allowed it, and can be withdrawn
  • Statutory tax integration is not optional and not forgiving. It either files correctly or the organisation has a compliance problem
  • We do not hold administrative rights on these machines, so every change had to be achievable within the access actually granted
Approach

How we ran it

  1. Built staging first and proved the full module set there before production existed, so production was a known-good configuration rather than an experiment
  2. Production created as a validated clone with its own fresh database, not by promoting the staging box and hoping nothing staging-specific came along
  3. Disabled the database manager on production and moved logins to keys only. A public-facing Odoo with an open database manager is one careless request away from a bad day
  4. Backed up the inherited database before deleting anything, because "we do not need this" is a claim that should survive being wrong
  5. Documented which hardening steps still need the client's own administrative access, rather than reporting the work as finished when part of it was not ours to do

Staging first, production built and cut over separately

By the numbers
environments, staging and production separated
2environments, staging and production separated
components hosted outside the client network
0components hosted outside the client network
Results

What we delivered

  • Odoo 18 on PostgreSQL 18 running on client-owned hardware, no external hosting
  • Separate staging and production environments instead of one box doing both
  • Production database manager disabled and access restricted to keys only
Tech stack
Odoo 18PostgreSQL 18UbuntuPythonFBR IRIS ConnectorOn-Premise
Start a similar project →