Apostrophe is a Content Management Systems that’s designed to build content-driven web sites. Because of their ease of use, Apostrophe is built upon MongoDB and Node.js.
This post explains why MongoDB Atlas is an ideal choice for Apostrophe and then goes on to show how to configure Apostrophe to use it.
Why MongoDB Atlas is the Ideal Database for Apostrophe
MongoDB delivers flexible schemas, rich queries, an idiomatic Node.js driver, and simple to use high availability and scaling. This makes it the go-to database for anyone looking to build applications on Node.js.
MongoDB Atlas provides all of the features of MongoDB, without the operational heavy lifting required for any new application. MongoDB Atlas is available on demand through a pay-as-you-go model and billed on an hourly basis, letting you focus on what you do best.
It’s easy to get started – use a simple GUI to select the instance size, region, and features you need. MongoDB Atlas provides:
- Security features to protect access to your data
- Built in replication for always-on availability, tolerating complete data center failure
- Backups and point in time recovery to protect against data corruption
- Fine-grained monitoring to let you know when to scale. Additional instances can be provisioned with the push of a button
- Automated patching and one-click upgrades for new major versions of the database, enabling you to take advantage of the latest and greatest MongoDB features
- A choice of cloud providers, regions, and billing options
Like Apostrophe, MongoDB Atlas is a natural fit for users looking to simplify their development and operations work, letting them focus on what makes their application unique rather than commodity (albeit essential) plumbing.
Installing Apostrophe and Setting it up to Use MongoDB Atlas
Before starting with Apostrophe, you should launch your MongoDB cluster using MongoDB Atlas and then (optionally) create a user with read and write privileges for just the database that will be used for this project, as shown in Figure 1. You must also add the IP address of your application server to the IP Whitelist in the MongoDB Atlas security tab.
If it isn’t already installed on your system, download and install Node.js:
You should then add the bin
sub-folder to your .bash_profile
file and then install ImageMagick (used by Apostrophe to handle image files); clone the Apostrophe Sandbox project; and then install its dependencies:
Before starting Apostrophe you need to configure it with details on how to connect to your specific MongoDB Atlas cluster. This is done by cloning the configuration file to data/local.js
:
You should then edit the data/local.js
file and set the uri
parameter using the specific connection information provided for your MongoDB Atlas group:
The URI contains these components:
apostrophe_user
is the name of the user you created in the MongoDB Atlas UImy_password
is the password you chose when creating the user in MongoDB Atlascluster0-shard-00-00-qfovx.mongodb.net
,cluster0-shard-00-01-qfovx.mongodb.net
, &cluster0-shard-00-02-qfovx.mongodb.net
are the hostnames of the instances in your MongoDB Atlas replica set (click on the “CONNECT” button in the MongoDB Atlas UI if you don’t have these)27017
is the standard MongoDB port numberclusterdb
is the name of the database (schema) that Apostrophe will use (note that this must match the project name used when installing Apostrophe as well as the database you granted the user access to- To enforce security, MongoDB Atlas mandates that the
ssl
option is used admin
is the database that’s being used to store the credentials forapostrophe_user
Clients connect to Apostrophe through port 3000 and so you must open that port in your firewall.
You can then create the database and start Apostrophe:
Testing the Application
Browse to the application at http://address-of-app-server:3000
as shown in Figure 2 and then login using the username admin
and the password demo
.
Now, go ahead and add some content (Figure 3).
Upload some images as shown in Figure 4.
Optionally, to confirm that, MongoDB Atlas really is being used by Apostrophe, you can connect using the MongoDB shell:
To visually navigate through the schema and data created by Apostrophe, download and install MongoDB Compass. Use your MongoDB Atlas credentials to connect Compass to your MongoDB database – Figure 5.
Navigate through the structure of the data in the clusterdb
database (Figure 6) and view the JSON documents (Figure 7).
What Next?
While MongoDB Atlas radically simplifies the operation of MongoDB there are still some decisions to take to ensure the best performance and reliability for your application. The MongoDB Atlas Best Practices white paper provides guidance on best practices for deploying, managing, and optimizing the performance of your database with MongoDB Atlas.
The guide outlines considerations for achieving performance at scale with MongoDB Atlas across a number of key dimensions, including instance size selection, application patterns, schema design and indexing, and disk I/O. While this guide is broad in scope, it is not exhaustive. Following the recommendations in the guide will provide a solid foundation for ensuring optimal application performance.