← Datenbanken
MO

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. 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. 2

    Oder über die CLI hinzufügen

    railyard apps create <name> <git-url> --addons mongodb macht dasselbe vom Terminal aus.

  3. 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.

LibreChat deployen Free-Plan, keine Karte.

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.

FAQ

Was kostet MongoDB auf Railyard?
Für das gemeinsame Add-on gibt es keinen separaten Posten; es läuft auf dem Server, den du bereits bezahlst. Ein Stack wie LibreChat, der sein eigenes dediziertes MongoDB mitbringt, läuft ebenfalls auf demselben Server, zum selben Plan-Preis.
Wird das MongoDB-Add-on gesichert?
Das gemeinsame Add-on ist nicht Teil der geplanten Datenbank-Backups von Railyard, die decken Postgres, MySQL und ClickHouse ab. Eine eigenständige MongoDB-App, aus dem Vorlagen-Katalog deployt, wird genauso gesichert wie das Datenvolumen jeder anderen App, nach dem Zeitplan, den du dafür festlegst.
Wie verbinde ich mich von außen, mit Compass oder mongosh?
Das gemeinsame Add-on ist privat im Netzwerk des Servers; Trusted addresses deckt MongoDB noch nicht ab. Deploye statt dessen eine eigenständige MongoDB-Instanz, wenn du Compass oder mongosh direkt darauf zeigen lassen willst, denn die bekommt eigene generierte Zugangsdaten zum Verbinden.
Wie migriere ich bestehende MongoDB-Daten?
Führe mongodump gegen deine alte Datenbank aus, dann mongorestore gegen die generierte MONGODB_URL, sobald das Add-on läuft, oder richte die App unter Resources auf einen externen Connection String, während du die Daten überträgst.

Tutorials, die sie nutzen

Allgemeine Dokumentation