Vous avez créé une démo avec Gradio ou Streamlit. Un modèle derrière une petite interface soignée, qui tourne sur votre portable. La question suivante est toujours la même : où la mettre pour que d'autres puissent l'utiliser — sans que les données de vos utilisateurs fassent un détour par un autre pays ?
Depuis cette semaine, la réponse sur Canner est la même que pour un site Next.js : déposez le dossier, obtenez une URL en direct. Les applis Python se déploient maintenant sans Dockerfile et sans configuration, sur une infrastructure qui reste au Québec.
Python se déploie comme le reste maintenant
Canner lit les fichiers de votre projet et détermine ce qu'il est. S'il y a un requirements.txt ou un pyproject.tomlà la racine, c'est une appli Python. À partir de là, il reconnaît le cadre et le démarre correctement :
- Gradio— l'interface se lance sur le port que Canner attribue; partagez l'URL dès que la compilation se termine.
- Streamlit— démarré sur le port attribué, en mode sans interface, prêt pour les visiteurs.
- FastAPI et Flask— exécutés sous un serveur de production, pas celui de développement.
- Django— compilé et servi via le point d'entrée WSGI de votre projet.
- Tout ce qui se lie au port qu'on lui donne fonctionne aussi.
Les dépendances s'installent dans un environnement virtuel isolé avec uv, donc les installations sont rapides et un projet ne peut jamais voir les paquets d'un autre.
Pas seulement Python
Le même chemin de glisser-déposer couvre maintenant une plus grande partie de la pile. En plus des cadres Node.js (Next.js, Astro, SvelteKit, Nuxt, Remix, Vite et Node standard), Canner détecte et exécute :
- Go— compilé en un seul binaire statique.
- Ruby— Rails, Sinatra ou Rack, avec les gems embarqués.
- PHP— Laravel, Symfony ou PHP standard.
- Rust — compilé avec
cargoen mode release.
Aucun buildpack à choisir, aucune image de base à maintenir. La détection est automatique à partir des fichiers déjà présents dans votre projet.
Pourquoi une infrastructure canadienne compte pour une démo d'IA
Une démo d'IA est rarement juste une démo. Les gens y collent du vrai texte, téléversent de vrais documents, l'essaient avec de vraies données clients — souvent avant que quiconque ait réfléchi à l'endroit où ces données aboutissent. Si l'appli tourne dans un nuage détenu par une entreprise américaine, ces données relèvent de la portée juridique américaine, peu importe à quel point l'entreprise qui la déploie est canadienne. Nous avons expliqué pourquoi une région AWS canadienne n'est pas un hébergement canadien si vous voulez le détail juridique.
Canner exécute votre appli, ses variables d'environnement et toute base de données sur des disques au Québec. Le trafic ne passe pas par un réseau de périphérie étranger en fonctionnement normal. Pour un outil dans lequel les gens vont entrer de vraies informations, c'est la différence entre « hébergé dans une région canadienne » et réellement souverain. Plus de détails sur la page souveraineté.
En déployer une
Mettez vos dépendances dans un requirements.txt, puis choisissez l'une des trois entrées : glissez le dossier sur canner.ca, connectez un dépôt Git, ou exécutez npx @canner-ca/cli deploy. Si votre appli lit une clé d'API ou un jeton de modèle depuis l'environnement, Canner le demande avant la publication. Une minute plus tard, vous avez une URL HTTPS en direct.
Les applis d'apprentissage automatique plus lourdes — celles qui chargent PyTorch, TensorFlow ou transformers — nécessitent plus de mémoire de compilation et d'exécution; elles tournent donc sur le forfait Pro ou Entreprise. Une interface Gradio ou Streamlit simple tient confortablement dans le forfait gratuit.
Si vous venez d'un outil de codage par IA plutôt que d'un carnet, le guide de déploiement sans Git couvre le même flux par glisser-déposer pour les exports Cursor, Bolt et v0.