How To Use the MEAN One-Click Install Image
This article exists for historical reference and is no longer maintained.
Reason: This MEAN One-Click image is no longer offered.
Creating the MEAN Droplet
To create a MEAN Droplet, start on the Droplet creation page. In the Choose an image section, click the One-click apps tab and select the MEAN image.
Next, select a size, your desired region, and any additional settings (like private networking, IPv6 support, or backups). Add SSH keys and fill in a hostname for the Droplet. When you're ready, click Create Droplet to spin up the server.
Once you have created the Droplet, connect to it using SSH:
- ssh firstname.lastname@example.org
When you connect, the message of the day will explain how to get started:
------------------------------------------------------------------------------- Welcome to the MEAN Stack! MEAN has been installed via "docker-compose" - To run the sample application and for development work, run the mean-do.sh script which disables public access to MongoDB: /opt/mean/mean-do.sh When the script is finished running, visit your site at <IP>:3000 - For production sites start the stack with the following command: docker-compose -f /opt/mean/docker-compose-production.yml up -d Note: "/opt/mean" is a git checkout of the public MEAN repository. You can update to the latest version with "git pull". * See https://do.co/mean for additional information about this one-click installation of MEAN. * See http://meanjs.org/docs.html#folders for help putting existing applications in place. * See https://github.com/meanjs/mean for information about MEAN in Docker. The "ufw" firewall is enabled. All ports except for 22, 80, 443 are BLOCKED. Docker-compose will open and manage public ports for MEAN, including port 3000. ------------------------------------------------------------------------------ To delete this message of the day: rm -rf /etc/update-motd.d/99-one-click
Launching the Sample Project
A sample MEAN project is installed at
/opt/mean To launch it, change to that directory and run the startup-command:
- cd /opt/mean
Using the shell script protects your database. Without using the script, MongoDB is publically accessible on the Internet.
The script will continue to run in the foreground, providing console output as you develop and test.
Accessing the Sample Project in a Web Browser
Once launched, you can visit the homepage of the sample project at
Developing your own application
Before starting a new project, it’s good practice to update the Droplet's package information to be sure if you install new packages, you'll get the latest version.
- apt update
When they update is complete, we will need to install an update to allow tools like NPM and Bower to work.
- sudo apt-get install nodejs-legacy
- apt install npm
The MEAN sample project provides you with a template on which to build your application. Let's look at the folder structure:
root@meanjs:/opt/mean# ls app config fig.yml karma.conf.js node_modules Procfile README.md bower.json Dockerfile gruntfile.js LICENSE.md package.json public server.js
app folder contains the server-side Model View Controller (MVC) files. Mongoose is used to communicate with the MongoDB instance which is available at
config folder contains the configuration files for your application. This includes developer credentials for the social login feature provided by Passport. The template supports five social platforms out of the box: Facebook, Twitter, Google, Linkedin, and Github. If your application needs to send mail, you can also configure your Nodemailer settings here as well.
public folder contains all of the static files for your application. You can use
bower to install additional front-end libraries for use in your app. For instance if you need JQuery, it can be installed with:
- cd /opt/mean/public
- npm install -g bower
- bower --allow-root install jquery
It will now be installed to
Deploying your own
If you already have an application built on the MEAN stack, there's no need to use the sample project. This image provides you with a pre-installed Node environment with MongoDB running on
- rm -r /opt/mean
- cd /opt/
- git clone email@example.com:you/your_project.git
- cd your_project
- npm install
- NODE_ENV=production PORT=80 npm start
For more detailed information on the MEAN stack check out the the docs at Mean.js. To learn more about running MongoDB and Node, check out their respective tags here at DigitalOcean: