← All postsDeploy

How to Host a Gradio or Streamlit App in Canada

So you built a demo with Gradio or Streamlit, a nice model behind a clean UI, running on your laptop. The next question is always the same: how do you get it somewhere for people to use it, and (sometimes) is it possible to do it from Canada?

On Canner, Python apps deploy the same way as everything else: no Docker, no config, just pop it on Canner and it all runs from Canada.

Python deploys like everything else

Canner reads your project files to figure out what it is — a requirements.txt, pyproject.toml, or Pipfile at the root, and generally no package.json. From there it infers the framework from your dependencies and starts it up. Gradio and Streamlit launch on the assigned port, FastAPI runs under uvicorn and Flask under gunicorn, not the dev server. Django is also served through gunicorn. Your dependencies install into a project-local virtual environment via pip or uv, so installs are fast and one project remains isolated.

Not just Python

The same detection covers a lot more of the stack. Alongside Python we cover the Node family (Next.js, Astro, SvelteKit, Nuxt, Remix, Vite, or just plain Node), Canner detects and runs Go, Ruby, PHP, Rust, Java, and BoxLang, a JVM-based CFML-compatible runtime — great if you're leaving ColdFusion or Lucee.

Why Canadian infrastructure?

An AI demo is rarely just a demo. People paste real text, upload real documents, and try it with real customer data, often before anyone's thought about who owns that data. If this runs in a US-owned cloud — which most app hosts are — that data sits under US legal reach no matter how Canadian you are. We wrote about why a Canadian AWS region is not Canadian hosting if you want the legal detail.

Canner runs your app, its env vars, and any databases all in Quebec. So before you even ask your customers whether they have compliance obligations to keep personal data protected, you've already passed. More on that on the sovereignty page.

Deploy one

Put your dependencies in a requirements.txt, create a project, then either connect a GitHub repo or drag a zipped archive directly into the Source panel — or run canner deployfrom the CLI. If your app reads an API key or needs other env vars, configure those in the dashboard, the CLI, or the API. A minute later you've got yourself an HTTPS URL.

Heavier apps using PyTorch, TensorFlow, or transformers need a bit more build memory. If it doesn't run or you get an OOM, you can bump up the application RAM for $4/GB. In our experience, plain Gradio or Streamlit apps run fine on the free Starter plan.

If you came from an AI coding tool rather than a notebook, the no-Git deploy guide covers the same upload flow for Cursor, Bolt, and v0 exports.

About the author

Colin Shand is the founder of Canner, a Canadian deployment platform operated from Quebec. He writes about sovereign infrastructure, the Canadian startup ecosystem, and building independently.

Try Canner.

Drop a project, get a live URL on Canadian infrastructure in about 30 seconds. Free tier available.