MongoDB
Cochez MongoDB sur une application et elle reçoit son propre nom de base sur le MongoDB partagé du serveur. Voici exactement ce que ça donne, ce que ça ne couvre pas encore, et quand une instance dédiée a plus de sens.
Ce que vous obtenez
- MongoDB 7 (mongo:7), partagé sur le serveur : chaque application reçoit son propre nom de base (app_<id>) sur cette instance, exposé comme MONGODB_URL ainsi que les alias MONGODB_URI, MONGO_URL, MONGOLAB_URI et MONGOHQ_URL que certains frameworks attendent.
- Contrairement à Postgres et MySQL, le module partagé ne crée pas encore de connexion séparée par application; l'isolation se fait par nom de base et par le réseau privé du serveur, pas par des identifiants propres à chaque application.
- Ne fait pas partie du système de sauvegarde planifiée, qui couvre Postgres, MySQL et ClickHouse. Déplacer une application vers un serveur de base de données copie ses données MongoDB une seule fois, au moment du déplacement.
- Aucune restauration à un instant précis ni basculement automatique pour le module partagé; ceux-ci couvrent Postgres (restauration à un instant précis) ou Postgres, MySQL et Redis (basculement du serveur de secours).
- Les applications qui ont besoin d'un vrai jeu de réplicas, pour les change streams, reçoivent leur propre conteneur MongoDB dédié dans le cadre d'une stack plutôt que le module partagé, parce qu'une seule instance partagée ne peut pas offrir ça.
Comment l'ajouter
- 1
Cochez MongoDB à la création de l'application
Dans Nouvelle application, ou plus tard depuis Modifier → Modules complémentaires, cochez MongoDB et déployez. Railyard injecte MONGODB_URL (et ses alias) avant que le build ne s'exécute.
- 2
Ou ajoutez-le depuis la CLI
railyard apps create <name> <git-url> --addons mongodb fait la même chose depuis un terminal.
- 3
Y accéder depuis l'extérieur de vos applications
Trusted addresses, le proxy TCP pour se connecter depuis votre propre machine, couvre aujourd'hui Postgres, MySQL, ClickHouse, Redis et RabbitMQ. MongoDB n'est pas encore sur cette liste, donc interrogez-le depuis une autre application sur le même serveur ou réseau d'équipe, ou par SSH vers le serveur lui-même.
Un exemple en un clic
LibreChat déploie son propre jeu de réplicas MongoDB à un seul nœud à côté de l'application, le modèle que Railyard utilise chaque fois qu'une application a besoin de change streams plutôt que du module partagé. Rocket.Chat fait la même chose pour le clavardage d'équipe.
Ou déployez une instance autonome déploie une instance MongoDB autonome avec un utilisateur root et un mot de passe générés, si c'est tout ce qu'il vous faut.