The Linode manager
JavaScript CSS HTML
Latest commit f4c9117 Feb 21, 2017 @na3d na3d committed with eatonphil Wire up profile display 1148 (#1252)
* rough-1148

* Wire up profile display

* add tests to profile display

* format text properly

* test put to api

* linter fix

* streamline expectRequest

* i need to quit forgetting thigns

README.md


The Linode Manager

Build status Code coverage Sprint status much badges

This is the new Linode Manager. It provides a web interface for managing your Linode account. Currently this software is pre-alpha and won't be released for a while. Read the blog post.

The following buzzwords are involved in this project:

Setup

git clone https://github.com/Linode/manager.git
cd manager
node --version # should be 6.x or better
npm install

Currently the codebase is hardcoded to point to our alpha environment. It communicates with Linode via Linode API 4. You'll need to register an OAuth client in the alpha environment, then create a file at src/secrets.js with your client ID and client secret set appropriately:

export const clientId = 'change me';
export const clientSecret = 'change me';
export const LISH_ROOT = 'wss://lish.alpha.linode.com';

Be sure to set your callback URL to something like http://localhost:3000/oauth/callback when you register your OAuth client.

Note: if you pick a callback url that is not on localhost:3000, you will need to update the APP_ROOT variable in src/constants.js to point to the different server.

Development

Run:

npm start

to start the development server. Connect to localhost:3000 to try it out. Most of the changes you make will be applied on the fly, but you may occasionally find that you have to restart it.

While running the manager in development mode, you may press Ctrl+H to view the redux dev tools to track the state of the application, and Ctrl+Q to move them around the screen if necessary. If you'd rather disable the devtools, you can set the NODE_ENV flag to "production" or set the DEVTOOLS_DISABLED flag to false:

DEVTOOLS_DISABLED=true npm start

Tests

To run tests:

npm test

To automatically re-run tests when you make changes:

npm run test:watch

To automatically re-run tests on a single test file:

npm run test:watch --single_file=**/name.spec.js

Our tests live in test/**.spec.js. They're based on Mocha and do assertions with Chai plus DOM/React testing with enzyme. We run them with Karma. We're aiming for 95%+ test coverage.

Contributing

Come chat with us in #linode-next on irc.oftc.net if you're interested in helping out with this. We'd love to have community input on how the new manager takes shape. This is your chance to help build the features you need into it! We'll take pull requests in the usual way. We're still learning about the technologies in use here ourselves, so bear with us as we figure out the right patterns - some large scale refactorings may be in order.

License

The Linode Manager's code is distributed under the terms of the BSD 3-clause license. The assets are not licensed for any purpose without prior written approval from Linode, unless otherwise noted.