The Linode Manager
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.