MongoDB
Aktiviere MongoDB für eine App, und sie bekommt ihren eigenen Datenbanknamen auf dem gemeinsamen MongoDB des Servers. Hier ist genau, was du bekommst, was es noch nicht abdeckt, und wann eine dedizierte Instanz mehr Sinn ergibt.
Was du bekommst
- MongoDB 7 (mongo:7), auf dem Server geteilt: jede App bekommt ihren eigenen Datenbanknamen (app_<id>) auf dieser Instanz, verfügbar als MONGODB_URL sowie die Aliasse MONGODB_URI, MONGO_URL, MONGOLAB_URI und MONGOHQ_URL, die manche Frameworks erwarten.
- Anders als bei Postgres und MySQL legt das gemeinsame Add-on noch keinen separaten Login pro App an; die Isolation erfolgt über den Datenbanknamen und das private Netzwerk des Servers, nicht über App-eigene Zugangsdaten.
- Nicht Teil der geplanten Backup-Pipeline, die deckt Postgres, MySQL und ClickHouse ab. Das Verschieben einer App auf einen Datenbankserver überträgt ihre MongoDB-Daten einmalig als Teil des Umzugs.
- Keine Point-in-Time-Recovery oder automatisches Failover für das gemeinsame Add-on; das gibt es für Postgres (PITR) bzw. Postgres, MySQL und Redis (Standby-Failover).
- Apps, die einen echten Replica Set brauchen, für Change Streams, bekommen statt des gemeinsamen Add-ons ihren eigenen dedizierten MongoDB-Container als Teil eines Stacks, weil eine einzelne gemeinsame Instanz das nicht bieten kann.
Wie du sie hinzufügst
- 1
MongoDB bei der App-Erstellung aktivieren
Bei New app, oder später unter Edit → Add-ons, MongoDB aktivieren und deployen. Railyard schreibt MONGODB_URL (und ihre Aliasse) ein, bevor der Build läuft.
- 2
Oder über die CLI hinzufügen
railyard apps create <name> <git-url> --addons mongodb macht dasselbe vom Terminal aus.
- 3
Zugriff von außerhalb deiner Apps
Trusted addresses, der TCP-Proxy zum Verbinden von deiner eigenen Maschine, deckt derzeit Postgres, MySQL, ClickHouse, Redis und RabbitMQ ab. MongoDB steht noch nicht auf dieser Liste, also frage es von einer anderen App auf demselben Server oder Team-Netzwerk ab, oder per SSH direkt auf dem Server.
Ein Beispiel per Klick
LibreChat deployt neben der App seinen eigenen Single-Node-MongoDB-Replica-Set, das Muster, das Railyard immer dann nutzt, wenn eine App Change Streams statt des gemeinsamen Add-ons braucht. Rocket.Chat macht dasselbe für Team-Chat.
Oder eine eigenständige Instanz deployen deployt eine eigenständige MongoDB-Instanz mit generiertem Root-User und Passwort, falls das alles ist, was du brauchst.