Skip to content

Shipping from Iran: when the network is part of your architecture

Engineering ·

Requests to foreign services blocked at a wall while self-hosted services stay connected

Most deployment guides assume the internet works the same everywhere. Mine don't get to. On the first production deploy of a platform I built, Docker Hub returned 403s from the server, and the fix had to go into provisioning, not into my memory.

What I now assume from day one

  • Every base image comes through a mirror that's set up in provisioning, so a fresh server works on its first run.
  • No third-party browser SDKs. Foreign CDNs, hosted fonts and client-side telemetry tend to fail for exactly the users you built for.
  • Long remote commands run so that a dropped SSH session can't leave a half-finished rollout.
  • Every fix found during a launch gets written back into the repository the same day.

None of this is exotic. It's mostly a habit of treating the environment as a real constraint, the same way you'd treat a data quirk or a business rule, and writing the answer down where the next deploy will find it.