Go
Déployez des services Go avec des workers via Procfile, des bases de données auto-détectées et le cron.
Étape par étape : Déployer Go sur DigitalOcean · Déployer Go sur Hetzner · Déployer Go sur Vultr · Déployer Go sur OVHcloud · Déployer Go sur Scaleway · Déployer Go sur UpCloud
- Détecté à partir de
go.mod; construit avec Railpack ou votre Dockerfile. Un module dans un sous-dossier (server/go.modà côté d’unfrontend/) est trouvé et construit depuis ce dossier automatiquement. - Le binaire doit écouter sur
$PORT(et sur toutes les interfaces). - Un import de driver connu (
github.com/jackc/pgx,github.com/lib/pq,github.com/go-sql-driver/mysql,github.com/redis/go-redis…) provisionne sa base de données et injecteDATABASE_URL/REDIS_URLautomatiquement; ajoutez-en une vous-même depuis l’application ou le canvas autrement.
Les workers : déclarez le processus, Railyard le met à l’échelle
Go n’a pas de convention de framework pour le travail en arrière-plan, donc il n’y a rien à détecter automatiquement — déclarez un second processus dans un Procfile à la racine du module et il tourne et se met à l’échelle indépendamment de web.
web: ./server
worker: ./server -mode=worker
Les deux exécutent le même binaire construit; votre main() lit un flag ou une variable d’environnement pour décider quelle boucle lancer — un seul code et un seul build, plusieurs types de processus, le modèle 12-factor. Ajoutez ou modifiez des processus depuis l’onglet Workers de l’application sans toucher au dépôt, et mettez n’importe lequel à l’échelle depuis la CLI :
railyard scale my-app worker=2
Pour du travail planifié, utilisez le cron plutôt qu’une boucle qui dort dans worker — il exécute votre binaire avec un flag différent selon un horaire et garde un historique d’exécution.
Configuration et secrets
Tout ce que votre binaire lit avec os.Getenv est une simple variable d’environnement : définissez-la sous Variables, ou avec railyard env:set my-app KEY=VALUE depuis la CLI, et le même binaire construit tourne sans changement de staging jusqu’en production — la parité dev/prod, pas une recompilation par environnement. Pour pointer vers une base de données ou un Redis qui tourne comme son propre service sur le canvas, référencez-le avec ${{redis.RAILYARD_PRIVATE_URL}} — résolu par environnement. Voir Variables et secrets.
Déployez-le
- Depuis un dépôt : collez l’URL Git, ou choisissez-le dans le sélecteur une fois GitHub connecté — Railyard construit avec Railpack (ou votre propre Dockerfile) et déploie à chaque push.
- Depuis la CLI :
railyard create my-app https://github.com/me/my-app --port 8080, ourailyard deploy my-app --localpour construire avec votre propre Docker et pousser une seule image au lieu d’utiliser le builder de l’équipe. - En un clic : ajoutez le bouton de déploiement à votre README, ou publiez-le dans le catalogue de modèles pour que n’importe qui puisse le lancer avec ses addons et variables déjà remplis.