Skip to main content

Introduction

Pour développer et héberger une application Phoenix sur Square Cloud, il est essentiel de suivre une séquence structurée de configurations et de prérequis. Ce guide technique couvrira l’ensemble du processus, de la configuration initiale au déploiement en production.

Prérequis

  • Compte Square Cloud : Inscrivez-vous via la page d’inscription en utilisant votre adresse e-mail.
  • Plan actif : Garantit des ressources dédiées et des performances optimisées pour votre application. Consultez nos plans disponibles et choisissez celui qui convient le mieux à vos besoins.
Ce guide utilise le runtime Elixir.

Créer le projet

Vous avez besoin d’Erlang/OTP et d’Elixir sur votre machine. Si ce n’est pas le cas, suivez le guide d’installation officiel d’Elixir. Installez le générateur de projets Phoenix et créez un projet :
--no-ecto crée un projet sans base de données, la configuration la plus simple à déployer. Retirez cette option si vous avez besoin d’Ecto, puis consultez Variables d’environnement pour l’adresse de la base de données. Démarrez le serveur de développement :
Phoenix écoute sur http://localhost:4000 en développement.

Générer le build de production

Square Cloud génère le build de votre application au démarrage : avant d’exécuter votre commande START, il récupère vos dépendances avec mix deps.get. La commande START ci-dessous compile ensuite l’application en mode production (MIX_ENV=prod), génère et condense les assets avec mix assets.deploy, puis démarre le serveur. Vous n’avez rien à compiler sur votre machine, et votre ZIP contient le code source du projet.
Le premier démarrage compile vos dépendances et télécharge les outils d’assets (esbuild et Tailwind) : il prend donc quelques minutes. Les démarrages suivants réutilisent les fichiers compilés.

Port et hôte

Rien à modifier : en production, le fichier config/runtime.exs généré lit la variable d’environnement PORT, que Square Cloud définit à 80, et écoute sur toutes les interfaces réseau.

Variables d’environnement

Définissez ces variables d’environnement dans le tableau de bord ou avec squarecloud app env set :

Configurer Square Cloud

Créez un fichier squarecloud.app à la racine de votre projet :
squarecloud.app
MAIN=mix.exs indique à Square Cloud que le projet s’exécute sur Elixir, et START remplace la commande par défaut mix run --no-halt. mix phx.server démarre le serveur web : vous n’avez donc pas besoin de PHX_SERVER. Les projets avec Ecto peuvent appliquer les migrations à chaque démarrage en ajoutant MIX_ENV=prod mix ecto.migrate && avant mix phx.server.

Contenu du ZIP

  • mix.exs et mix.lock.
  • config/, lib/, assets/, priv/ et les autres dossiers source.
  • squarecloud.app.
Excluez _build/, qui contient des fichiers compilés pour votre machine, et deps/ : Square Cloud récupère à nouveau les dépendances et compile tout sous Linux.
Vous préférez une release ? Une release générée sous Windows ou macOS ne s’exécute pas sur Square Cloud, qui tourne sous Linux : générez-la sous Linux, par exemple dans WSL. Son script de démarrage est _build/prod/rel/my_app/bin/my_app, la commande est donc START=PHX_SERVER=true _build/prod/rel/my_app/bin/my_app start ; PHX_SERVER=true fait démarrer le serveur web par la release. Gardez mix.exs et mix.lock dans le ZIP, car Square Cloud exécute mix deps.get avant START.

Déployer et vérifier

Via le tableau de bord

1

Accéder à la page d'upload

Accédez à la page d’upload et téléversez le fichier zip de votre projet.
2

Configurer votre environnement

Après avoir téléversé votre zip, vous devrez configurer le nom, le fichier principal ou l’environnement d’exécution ainsi que d’autres paramètres de votre projet.
Si vous téléversez un projet web, veillez à sélectionner « Publication Web » et à définir un sous-domaine pour votre projet.
3

Déployer votre projet

Enfin, cliquez sur le bouton « Deploy » pour héberger votre projet sur Square Cloud.
Une fois le déploiement effectué, vous pouvez suivre l’état et les logs de votre projet depuis le tableau de bord.
Téléversement d'une application vers Square Cloud
4

Confirmez que votre application est en ligne

Votre premier déploiement prend généralement moins d’une minute. Dans le tableau de bord, attendez que le statut de votre application affiche « en cours d’exécution » et vérifiez les logs pour détecter d’éventuelles erreurs de démarrage.
Si vous avez déployé un site web ou une API, ouvrez https://<votre-sous-domaine>.squareweb.app dans votre navigateur, vous devriez voir votre application répondre. Si vous avez déployé un bot, envoyez-lui une commande pour confirmer qu’il est en ligne.
Votre application ne démarre pas ? Consultez le guide de dépannage pour les causes les plus courantes et leurs solutions.

Via la CLI

Pour utiliser cette méthode, votre projet a besoin d’un fichier de configuration nommé squarecloud.app à sa racine. Il indique à Square Cloud comment exécuter votre application.

Guide du fichier de configuration

Apprenez comment créer le fichier de configuration squarecloud.app qui définit l’environnement de votre application.
1

Installer la CLI

Installez la CLI Square Cloud. Si vous l’avez déjà, exécutez la même commande pour la mettre à jour :
2

Se connecter

Exécutez la commande ci-dessous. Elle ouvre votre navigateur : approuvez-y la connexion et la CLI est prête. Il n’y a aucune clé API à copier. Pour les scripts et la CI, consultez Authentification de la CLI.
3

Téléverser votre projet

Depuis le dossier de votre projet, exécutez la commande ci-dessous. La CLI compresse le dossier courant en zip, sans ce que liste squarecloud.ignore, puis l’envoie :
Pour téléverser un zip que vous avez créé vous-même, passez-le avec --file :
4

Confirmez que votre application est en ligne

Votre premier déploiement prend généralement moins d’une minute. Vérifiez le statut et les logs de votre application directement depuis le terminal :
Si vous avez déployé un site web ou une API, ouvrez https://<votre-sous-domaine>.squareweb.app dans votre navigateur, vous devriez voir votre application répondre. Si vous avez déployé un bot, envoyez-lui une commande pour confirmer qu’il est en ligne.
Votre application ne démarre pas ? Consultez le guide de dépannage pour les causes les plus courantes et leurs solutions.

Erreurs courantes

Domaine personnalisé

Pour utiliser un domaine personnalisé (par exemple mysite.com) au lieu de l’URL par défaut mysite.squareweb.app, vous avez besoin du plan Standard ou supérieur. L’URL par défaut provient du champ SUBDOMAIN du fichier de configuration. Pour connecter votre domaine, suivez comment configurer votre propre domaine.

Prérequis minimum en RAM

Minimum : 512 Mo de RAM pour les sites web et les API, ce qui suffit pour un build statique sur le runtime statique. Pour les applications qui génèrent les pages sur un serveur (Next.js, Nuxt, Angular SSR et similaires), nous recommandons au moins 1 Go de RAM. Pour les applications plus volumineuses, allouez davantage de RAM afin d’éviter que l’application ne manque de mémoire et ne plante.

Impossible de trouver ce site.

Vérifiez que le sous-domaine/domaine correspond à ce qui est configuré dans le champ SUBDOMAIN ou dans les paramètres du domaine personnalisé. Si vous venez tout juste de mettre en ligne le site, patientez jusqu’à 60 secondes pour que Square active le premier accès.

Le site a mis trop de temps à répondre…

Votre serveur doit écouter sur le port 80 et l’hôte 0.0.0.0. Square Cloud définit les variables d’environnement PORT (80) et HOST (0.0.0.0) dans votre application : lisez-les dans votre code au lieu de coder en dur d’autres valeurs. Un serveur qui n’écoute que sur localhost ou 127.0.0.1 ne reçoit jamais de requêtes.

environment variable SECRET_KEY_BASE is missing

Définissez SECRET_KEY_BASE comme indiqué dans Variables d’environnement, puis redémarrez l’application.

LiveView se reconnecte sans cesse

PHX_HOST ne correspond pas à l’adresse affichée dans le navigateur. Définissez-le avec votre sous-domaine ou votre domaine personnalisé, puis redémarrez l’application.

Prochaines étapes

Variables d'environnement

Gardez les secrets et les paramètres hors de votre code et lisez-les à l’exécution.

Domaine personnalisé

Servez votre application sur votre propre domaine, à partir du plan Standard.

Dépannage

Corrigez une application qui ne démarre pas ou un site qui ne répond pas.
Pour en savoir plus sur Phoenix, consultez la documentation officielle de Phoenix et son guide des releases.

Contactez-nous

Si vous rencontrez toujours des difficultés techniques, notre équipe de support spécialisée est disponible pour vous aider. Contactez-nous et nous serons ravis de vous aider à résoudre tout problème. La qualité du support compte pour beaucoup dans la note que les développeurs donnent à Square Cloud, 4,9/5 sur 402 avis sur Google et Trustpilot.