Skip to content

Commit c709d03

Browse files
authored
Merge pull request #261 from DefangLabs/eric/add_mongodb-got-gcp
2 parents a107194 + 5172785 commit c709d03

File tree

2 files changed

+31
-5
lines changed

2 files changed

+31
-5
lines changed

docs/concepts/managed-storage/managed-mongodb.md

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ sidebar_position: 3000
77
# Managed MongoDB
88

99
:::info
10-
This feature was introduced in Defang v1.2.0 released on June 3, 2025. [Upgrade to the latest version](/docs/cli/defang_upgrade)
10+
This feature was introduced in Defang v1.2.0 released on June 3, 2025 for AWS. [Upgrade to the latest version](/docs/cli/defang_upgrade)
1111
:::
1212

1313
Managed MongoDB is a service that allows you to store and retrieve large amounts of data in a document-oriented format. MongoDB is ideal for storing unstructured data like JSON documents, making it a popular choice for modern applications.
@@ -19,15 +19,33 @@ Managed MongoDB is a service that allows you to store and retrieve large amounts
1919
| [Playground](/docs/providers/playground#managed-services) | ⚠️ Unmanaged |
2020
| [AWS](/docs/providers/aws#managed-storage) | ✅ DocumentDB |
2121
| [DigitalOcean](/docs/providers/digitalocean#future-improvements) | ⚠️ Unmanaged |
22-
| [GCP](/docs/providers/gcp#future-improvements) | ⚠️ Unmanaged |
22+
| [GCP](/docs/providers/gcp#future-improvements) | ✅ Firestore |
2323

2424
## How to use Managed MongoDB
2525

2626
To use managed MongoDB, in your `compose.yaml` file, use the `x-defang-mongodb` extension to define your MongoDB service. Adding the extension will tell Defang to provision a managed instance, rather than running MongoDB as a container.
2727

2828
### Required Configuration
2929

30-
When using managed MongoDB, you **must** set a username and password for the database. By default, these are read from the `MONGO_INITDB_ROOT_USERNAME` and `MONGO_INITDB_ROOT_PASSWORD` config variables, conform [the official MongoDB container image](https://hub.docker.com/_/mongo). These can be set using the `defang config set MONGO_INITDB_ROOT_USERNAME` and `defang config set MONGO_INITDB_ROOT_PASSWORD` commands. If you do not provide these values, the deployment will fail.
30+
### AWS
31+
When using managed MongoDB on AWS, you **must** set a username and password for the database. By default, these are read from the `MONGO_INITDB_ROOT_USERNAME` and `MONGO_INITDB_ROOT_PASSWORD` config variables, following [the official MongoDB container image](https://hub.docker.com/_/mongo) convention.
32+
33+
You can set these using the following commands:
34+
35+
```bash
36+
defang config set MONGO_INITDB_ROOT_USERNAME <your-username>
37+
defang config set MONGO_INITDB_ROOT_PASSWORD <your-password>
38+
```
39+
40+
If you do not provide these values, the deployment will fail.
41+
42+
### GCP
43+
44+
When using managed MongoDB on GCP, you **must** set a `MONGO_INITDB_DATABASE` environment variable with the name of the database to create.
45+
46+
Defang will automatically create a config variable named `<SERVICE_NAME>_URL` that contains the connection string for your MongoDB database. For example, if your service is named `db`, the config variable will be `DB_URL`.
47+
48+
**Important:** GCP will ignore `MONGO_INITDB_ROOT_USERNAME` and `MONGO_INITDB_ROOT_PASSWORD` credentials since they are not needed. GCP automatically handles authentication and grants your service access to the MongoDB database.
3149

3250
### Example
3351

@@ -36,15 +54,23 @@ services:
3654
app:
3755
# [...]
3856
environment:
39-
MONGO_URI: mongodb://$MONGO_INITDB_ROOT_USERNAME:$MONGO_INITDB_ROOT_PASSWORD@db:27017/
57+
DB_URL: mongodb://$MONGO_INITDB_ROOT_USERNAME:$MONGO_INITDB_ROOT_PASSWORD@db:27017/
4058
depends_on:
4159
- db
4260

4361
db:
4462
image: mongo:5
4563
x-defang-mongodb: true
64+
environment:
65+
MONGO_INITDB_DATABASE: mydb
4666
```
4767
68+
:::warning[Deleting a GCP Firestore MongoDB Database]
69+
Please be aware that GCP Firestore does not allow deletion of your database when you bring down your project using `defang compose down`. You must go to the [GCP Cloud Console for Firestore](https://console.cloud.google.com/firestore/databases/) to delete it manually.
70+
:::
71+
4872
:::warning[Version]
4973
AWS DocumentDB is compatible with MongoDB 3.6, 4.0, and 5.0. The `mongo:5` image is compatible with DocumentDB 5.0, so we recommend using this version for your MongoDB service. Deployment will fail for versions higher than 5.
74+
75+
GCP Firestore does not have a configurable version.
5076
:::

docs/concepts/managed-storage/managed-storage.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ sidebar_position: 000
66

77
# Managed Storage
88

9-
Defang helps you provision the infrastructure you need to run your services. That infrastructure is designed to scale in and out without persistent storage, so you can build highly scalable services. But Defang can also help you provision managed services to store and persist your data, like [caches](./managed-redis.md), [databases](./managed-postgres.mdx), and [object storage](./managed-object-storage.md).
9+
Defang helps you provision the infrastructure you need to run your services. That infrastructure is designed to scale in and out without persistent storage, so you can build highly scalable services. Defang can also help you provision managed services to store and persist your data, like [caches](./managed-redis.md), [sql databases](./managed-postgres.mdx), [nosql databases](./managed-mongodb.md), and [object storage](./managed-object-storage.md).

0 commit comments

Comments
 (0)