Strider — How to Install the Platform and Plugins

This is the second post in our in-depth series about the Strider continuous integration and deployment platform. This week we guide you through the platform’s installation process and show you how to extend the capabilities by installing additional plugins.

First, let’s have a look at the series overview.

Strider Series Overview

Strider Installation

This guide walks you through the installation process of Strider on your own infrastructure. Since there are many operating systems out there, we keep this guide as universal as possible. We use Ubuntu 14.04 to test and prepare all blogposts in this series. We outline required technologies and please make sure you have them installed on your machine.

Requirements

Strider is build on top of Node.js and MongoDB as data store. Since it integrates to services like GitHub, GitLab and Bitbucket you need to have git installed as well.

Installation

Before starting the installation process, please install the required technologies. Afterwards, go ahead and follow the steps to install a basic platform and later on change the configuration to connect against a MongoDB with authentication enabled. Of course you can use a remote database like one provided by MongoLab.

Create a Strider User

Keep an eye on security if you run an internet-accessible Strider deployment. You should create a separate operating system user with restricted access for Strider. Unix-systems have the system function addUser <username> which provides the ability to quickly add a new system user.

Clone Strider Repository

Now you need the Strider source code. You can head over to Strider’s GitHub repository and choose your desired clone url or just copy the command below.

git clone https://github.com/Strider-CD/strider.git && cd strider  

Go to the folder of your choice and clone the Strider code to your machine.

Install Strider

Verify all requirements are installed on your machine. From here it’s just one command to get Strider installed.

npm install  

Strider uses the Node Package Manager to install required dependencies and set up a default platform. If there went something wrong during the installation, NPM will output the errors.

Strider may point you to an error where issues with permissions occur installing global modules. In case you have those troubles, set the global modules directory to ~/npm by npm config set prefix ~/npm. Additionally, you have to add ~/npm/bin to your PATH environment variable.

The default configuration should be fine to test if everything was installed correctly. This requires you to run MongoDB without authentication. Start Strider to check if everything went smooth.

# either
npm start

# or
bin/strider  

This way requires you run a local MongoDB instance without authentication. If you use a MongoDB instance with authentication turned on (we recommend that!), the start up command will print out connection errors with MongoDB. You can follow the steps below to set up Strider correctly for MongoDB with activated authentication.

Running Strider with Activated MongoDB Authentication

We totally recommend to run MongoDB with authentication. You need to create a MongoDB user, a database and grant the user access to the database.

Create Strider User in MongoDB

Connect to MongoDB as an admin user. Authenticate against your admin database (or what authentication source you use). Now switch to the database you want to use for Strider. The example snippet below uses strider for user and database name.

# if not running on default port 27017, pass the MongoDB port number
mongo --port <port> 

## Mongo CLI
> use admin
> db.auth('admin', 'adminpassword')
1

use strider  
db.createUser({user: "strider", pwd: "striderpw", roles: [{role: "dbOwner"}]})  

The snippet above creates a new user called strider within the database called strider as well. Further we assign our strider user the dbOwner role to have correct access rights to modify the database.

Pass Database Uri to Strider

Strider uses Mongoose for database connection and operations. We need to pass a connection string to Strider when running MongoDB with authentication. You can use the DB_URI environment variable to pass it to Strider.

Change the MongoDB port if you run the database on another port than default 27017.

```

We’ll cover more configuration options in the next post. For now it’s important to know that `DB_URI` configures a custom MongoDB connection string.


## Start Strider in Production
For production environments, please use the `NODE_ENV` environment variable to set Strider into production mode. By default, Strider starts into development mode and you need to make the switch:

bash NODE_ENV=production npm start

Starting Strider will output debug information in the command line. If an error occurs, you’ll see the respective output.


## How to Install Plugins
Strider provides a command line wrapper to install plugins from the [ecosystem index](https://github.com/Strider-CD/ecosystem-index). If you don’t want to crawl through the command line, you can use the web UI and install new plugins via Strider’s admin panel. 


### Install Plugins in Strider Admin Panel
The admin panel displays all plugins listed in the ecosystem index. You can (un)install them freely within the browser.

<img src="/blog/content/images/2015/04/strider-plugin-overview.png" alt="Strider Plugin Overview" />

The plugin overview also prints out the currently installed and latest plugin version. In case you’ve installed outdated plugins, you can update them directly from web as well.


### Install Plugins via Command Line
Love the command line? Don't worry, you're covered and can install the plugins listed in the ecosystem index right away with the following command:

bash bin/strider install

At first, Strider checks if the plugin is already installed. If not, it looks in the index to find the plugins GitHub repository. Afterwards, it clones the plugin repository and installs via npm.

Another way to install new plugins is to do so directly with npm. Just navigate to Strider's base repository and install the desired plugin. This way you rely on third party addons which may not work correctly with Strider and isn’t approved by the Strider team.

There are some Strider addons not listed in the ecosystem index and you still want to install them? Don't worry, go ahead an install using npm. In case you recognize any misfunction just remove the trouble causing plugin.

bash npm install
```

You need to restart your Strider server to activate newly installed plugins.

What’s Next

The next post will explain Strider’s configuration options. Besides that, we show you how to pass configuration values to the Strider server process.

Feel free to let us know about any problem you’ve got with installing Strider. Use the comments below or shoot us @futurestud_io.


Additional Resources

Explore the Library

Find interesting tutorials and solutions for your problems.

Miscellaneous