If your app already runs in a container, getting it onto an offshore server should take minutes, not an afternoon of provisioning. Impreza deploys containers straight to your VPS and handles the HTTPS certificate for you. Here are the three ways in, and the settings worth getting right.
Three ways to ship
- A public image. Point at any published Docker image and it runs
- A Dockerfile in git. Build straight from your repo, public or private
- A compose manifest. Bring a multi-service stack as one app
Deploy it
Get a VPS
Order an offshore VPS with no KYC and pay in crypto. Sized for your container, with room for the image build if you are building from source.
Choose your source
For a published image, give the image reference. To build from source, give the git URL and branch, plus a Dockerfile path if it is not at the repo root. For a multi-service stack, hand over the compose manifest instead.
Set the runtime details
Name the deployment, set the port your container listens on, and give it a hostname so HTTPS is issued automatically. Adjust the CPU and memory limits if the defaults are tight, and pass configuration as environment variables.
Persist your data
Declare the container paths that hold state, such as a database directory or an uploads folder, so they become named volumes and survive every redeploy. Skip this and a redeploy starts from an empty disk.
Never bake API keys, database passwords or tokens into a Dockerfile or commit them to the repo: anyone who pulls the image or clones the repo gets them, and they persist in the layer history. Pass them as environment variables at deploy time instead. For a private repo, use a deploy key or a fine-grained, repo-scoped, read-only token, never your personal access token with full account scope.
Any deployment can also publish a Tor v3 .onion address alongside the public hostname, or be onion-only with no clearnet hostname at all. See how to publish a Tor .onion site.
Expose the single port your app serves. Admin panels, database ports and metrics endpoints should stay unreachable from the internet, reachable only from inside the deployment or over your own private path.
Keep it running
Once it is up, you can read the container logs, restart it, redeploy a new build or remove it entirely. Connect a git webhook and every push rebuilds and ships automatically: see auto-deploy on git push.
Start now
Spin up an offshore VPS, or let your AI assistant do the whole flow from chat with the Impreza MCP.









