MongoDB
Marque MongoDB numa aplicação e ela recebe o próprio nome de banco no MongoDB compartilhado do servidor. Veja exatamente o que isso te dá, o que ainda não cobre, e quando uma instância dedicada faz mais sentido.
O que você ganha
- MongoDB 7 (mongo:7), compartilhado no servidor: cada aplicação recebe o próprio nome de banco (app_<id>) nessa instância, exposto como MONGODB_URL e os aliases MONGODB_URI, MONGO_URL, MONGOLAB_URI e MONGOHQ_URL que alguns frameworks esperam.
- Diferente do Postgres e do MySQL, o add-on compartilhado ainda não cria um login separado por aplicação; o isolamento é por nome de banco e pela rede privada do servidor, não por credenciais próprias de cada aplicação.
- Não faz parte do pipeline de backup agendado, que cobre Postgres, MySQL e ClickHouse. Mover uma aplicação para um servidor de banco de dados copia os dados do MongoDB dela como um passo único, só na mudança.
- Sem recuperação para um ponto no tempo nem failover automático para o add-on compartilhado; isso cobre Postgres (recuperação para um ponto no tempo) ou Postgres, MySQL e Redis (failover do standby).
- Aplicações que precisam de um replica set de verdade, para change streams, recebem o próprio container dedicado de MongoDB como parte de uma stack em vez do add-on compartilhado, porque uma única instância compartilhada não consegue oferecer isso.
Como adicionar
- 1
Marque MongoDB ao criar a aplicação
Em Nova app, ou depois em Editar → Add-ons, marque MongoDB e faça o deploy. O Railyard injeta MONGODB_URL (e os aliases dela) antes de o build rodar.
- 2
Ou adicione pela CLI
railyard apps create <name> <git-url> --addons mongodb faz a mesma coisa a partir de um terminal.
- 3
Acessando de fora das suas aplicações
O Trusted addresses, o proxy TCP para se conectar a partir da sua própria máquina, hoje cobre Postgres, MySQL, ClickHouse, Redis e RabbitMQ. O MongoDB ainda não está nessa lista, então consulte-o a partir de outra aplicação no mesmo servidor ou na rede da equipe, ou por SSH direto no servidor.
Um exemplo de um clique
O LibreChat faz o deploy do próprio replica set de MongoDB de um nó só junto com a aplicação, o padrão que o Railyard usa sempre que uma aplicação precisa de change streams em vez do add-on compartilhado. O Rocket.Chat faz a mesma coisa para chat de equipe.
Ou faça o deploy de uma instância independente faz o deploy de uma instância MongoDB independente com um usuário root e senha gerados, se for só isso que você precisa.