Brilliant continuous deployment platform
Strider is an Open Source Continuous Deployment / Continuous Integration
store. It is published under the BSD license.
Strider is extremely customizable through plugins. Plugins can
Note: Installing on OS X might require XCode to be installed. Note: We are currently not having great success with Strider + npm3, please use npm2.
Make sure you have MongoDB installed on your system. You can get the latest version at mongodb.org.
Next you will need Node.JS. You can get binary packages for most platforms at nodejs.org.
Once you have Node.JS on your system, you can fetch & install all the dependencies for your Strider clone by executing the following command in the project root:
Note: Sometimes there are issues with permissions and installing global modules, in those cases run
npm config set prefix ~/npmto set your global modules directory to '~/npm'. You will also have to add
Strider configuration comes from environment variables. Most of the default
values should work fine for running on localhost, however for an
Internet-accessible deployment the following variables will need to be exported:
SERVER_NAME- Required; Address at which server will be accessible on the Internet. E.g.
https://strider.example.com(note: no trailing slash, and included protocol)
HOST- Host where strider listens, optional (defaults to 0.0.0.0).
PORT- Port that strider runs on, optional (defaults to 3000).
CONCURRENT_JOBS- How many jobs to run concurrently (defaults to 1). Concurrency only works across different project and branch combinations. So if two jobs come in for the same project and branch, concurrency will always be 1.
STRIDER_CLONE_DEST- Where the repositories are cloned to (defaults to ~/.strider)
DB_URI- MongoDB DB URI if not localhost (you can safely use MongoLab free plan - works great)
HTTP_PROXY- Proxy support, optional (defaults to null)
SMTP_HOST- SMTP server hostname e.g. smtp.example.com
SMTP_PORT- SMTP server port e.g. 587 (default)
SMTP_SECURE- SMTP server TLS or SSL ("true" or "false")
SMTP_USER- SMTP auth username e.g. "myuser"
SMTP_PASS- SMTP auth password e.g. "supersecret"
SMTP_FROM- Default FROM address e.g. "Strider firstname.lastname@example.org" (default)
BODY_PARSER_LIMIT- Increase the maximum payload size that our body parser will attempt to parse. Useful for github web hooks.
You might need to follow these instructions if you use any of these, please do so before filing issues.
Strider isn't much use without an account to login with. Once you create an administrative user, you can invite as many
other people as you like to your instance. There is a simple CLI subcommand to help you create the initial user:
node bin/strider addUser
$ node bin/strider addUserEnter email : email@example.comIs admin? (y/n) [n]: yEnter password : *******Email: firstname.lastname@example.orgPassword: ****isAdmin: trueOK? (y/n) [y]:22 Oct 21:21:01 - info: Connecting to MongoDB URL: mongodb://localhost/strider-foss22 Oct 21:21:01 - info: User added successfully! Enjoy.
See the strider-cli for more details.
Strider has been installed and configured, it can be started with:
NODE_ENV=production npm start
To get up and running quickly on Heroku, you can simply use the button above. If you run into any issues, see the wiki entry.
Many users like to run Strider within a Docker container. Although this works well, supporting it is outside the scope of the Strider project.
Advanced topics are located in the Wiki, here's a small subset of what's covered:
An effort has been started to document the existing REST API, and to have versioned documentation going forward. We use apiDoc for the documentation.
To build the documentation run
npm run gendocs and the documentation will be accessable from
We are very responsive to Github Issues - please think of them as a message board for the project!
You can find us on irc.freenode.net in #strider.
If nobody is responding, don't leave immediately. Someone will eventually respond. If you don't want to wait please create a Github issue! Many Strider contributors don't use IRC at all, but will respond pretty quickly to new Github Issues.
For a view of what's going on with the project, check out our boards by setting up ZenBoard and visiting the "Boards" page.