Déploiement¶
RandomLock est déployé sur le serveur avec Dokploy. L'image est construite par Railpack à partir du dépôt GitHub. Chaque push sur main redéploie automatiquement.
Configuration Dokploy¶
| Paramètre | Valeur |
|---|---|
| Projet / environnement | randomlock / production |
| Application | front |
| Source | GitHub DuncanCos/RandomDeadlock, branche main |
| Type de build | Railpack (version 0.2.2) |
| Build path | / |
| Variables d'environnement | Aucune (ni variable d'env, ni build arg) |
| Domaine | randomlock.dunkan.xyz, chemin / vers le port 80 du conteneur |
| HTTPS | Oui, certificat Let's Encrypt |
| Auto deploy | Activé (déclenché par un push) |
| Réplicas | 1 |
Chaîne de déploiement¶
flowchart LR
A["git push origin main"] --> B["GitHub<br/>DuncanCos/RandomDeadlock"]
B -->|auto deploy| C[Dokploy]
C --> D["Railpack<br/>install + npm run build"]
D --> E["Conteneur Caddy<br/>sert dist/ sur :80"]
U([Navigateur]) -->|"HTTPS randomlock.dunkan.xyz"| F["Reverse proxy Dokploy<br/>(Let's Encrypt)"]
F --> E
Ce que fait Railpack¶
Pour un projet Node qui utilise Vite, Railpack applique son mode « site statique » (doc Railpack Node) :
- Il détecte Vite grâce au fichier
vite.config.js. - Il installe les dépendances. Aucun lockfile pnpm, yarn ou bun n'est présent, donc il utilise npm.
- Il lance le script
build(vite build), qui produitdist/. - Il sert
dist/avec Caddy et son Caddyfile par défaut.
En production, une URL inconnue renvoie index.html avec un code 200. Comme l'appli n'a pas de routeur, cela ne change rien pour l'utilisateur.
Version de Node au build
Le dépôt ne fixe pas de version de Node (pas de engines, .nvmrc ni .node-version), donc Railpack prend sa version par défaut. Pour la fixer, on peut ajouter "engines": { "node": "22.x" } dans package.json ou définir la variable RAILPACK_NODE_VERSION dans Dokploy.
Redéployer¶
Dokploy reçoit l'événement GitHub, puis reconstruit et redéploie l'application.
- Ouvrir https://dokploy.dunkan.xyz.
- Aller dans le projet randomlock, environnement production, puis l'application front.
- Cliquer sur Deploy.
- Suivre le build dans l'onglet Deployments.
# Lancer un déploiement
dokploy POST application.deploy '{"applicationId":"<applicationId>"}'
# Statut de l'application (done / running / error)
dokploy GET 'application.one?applicationId=<applicationId>' | jq -r .applicationStatus
# Derniers déploiements
dokploy GET 'application.one?applicationId=<applicationId>' \
| jq '.deployments[] | {title, status, createdAt}'
Vérifier après un déploiement¶
# La page répond
curl -sI https://randomlock.dunkan.xyz | head -1 # HTTP/2 200
# Un asset est bien servi (ici le nom contient un « & »)
curl -sI "https://randomlock.dunkan.xyz/Deadlock_Render_Heroes/Mo_&_Krill_Render.png" | head -1
Ensuite, ouvrir le site et cliquer plusieurs fois sur Choisir à nouveau pour vérifier que les images s'affichent.
Revenir en arrière¶
L'application suit directement main. Pour annuler un changement, il suffit d'annuler le commit et de pousser :
Dépannage¶
| Symptôme | Piste |
|---|---|
| Le build échoue | Lire les logs du déploiement dans Dokploy (onglet Deployments). Vérifier que npm run build passe en local. |
| Un héros s'affiche sans image | Le nom de fichier ne respecte pas la convention, ou la casse est différente. Le serveur Linux est sensible à la casse. Voir Assets. |
| Le site ne répond plus | Vérifier le statut de l'application (applicationStatus) et le domaine dans Dokploy. |