Un site et sa base de données
Un site ou une API en Node.js, une base PostgreSQL dans le même projet, des migrations au démarrage et ton domaine en HTTPS.
Ce guide met en ligne une application web et sa base, reliées par le réseau privé du projet. L’exemple est en Node.js ; la démarche est la même pour PHP, Python ou Go.
1. Le manifeste
Depuis le dossier de ton site, crée l’application, puis déclare la base :
ark init --app boutique --project Boutique{
"app": "boutique",
"dockerfile": "Dockerfile",
"context": ".",
"project": "Boutique",
"start": "./start.sh",
"services": {
"db": { "type": "postgres", "size": { "cpu": 1, "ram": 1, "disk": 10 } }
},
"env": {}
}ark plan --applyLa base s’appelle boutique-db. Note son mot de passe : ark l’affiche une seule fois.
2. Les migrations au démarrage
start remplace la commande de l’image par un script qui migre, puis lance le serveur :
#!/bin/sh
set -e
npx prisma migrate deploy
exec node server.jsRends-le exécutable avant de construire : chmod +x start.sh. Le exec final passe le signal d’arrêt au serveur.
3. La connexion à la base
Dans l’espace client, onglet Variables de boutique :
DATABASE_URL=postgres://arkya:MOT_DE_PASSE@${boutique-db.URL}/boutique_dbMarque la variable comme secrète. ${boutique-db.URL} devient l’adresse interne de la base, hôte:port, à chaque démarrage.
4. Déployer
ark deployTon site répond sur son adresse arkya.app, en HTTPS.
5. Ton domaine
Dans l’onglet Domaines de boutique, ajoute www.maboutique.fr, puis pose chez ton registrar le CNAME affiché. Le certificat suit tout seul. Voir Adresse et domaines.
6. Les sauvegardes
Active les sauvegardes automatiques de boutique-db, dans son onglet Sauvegardes. Elles sont coupées par défaut. Voir Sauvegardes d’une base.
Les fichiers envoyés par tes visiteurs
Ton application n’a pas de disque : une image envoyée par un visiteur disparaît au prochain déploiement. Range ces fichiers dans un stockage objet externe, compatible S3, et garde leur adresse en base.