account | ||
dns | ||
images | ||
img | ||
include | ||
linodes | ||
logout | ||
profile | ||
user | ||
volumes | ||
.gitignore | ||
404.css | ||
404.html | ||
clientID.js.example | ||
favicon.ico | ||
global.css | ||
global.js | ||
index.html | ||
LICENSE | ||
login.css | ||
login.js | ||
README.md |
Full disclosure: I am an employee of Linode/Akamai, however this project is being developed independently in my own free time and is not associated in any way with Linode, LLC or Akamai Technologies, Inc. Only publicly-available documentation and information is being used in the development of this project.
Linode Manager Classic
LMC is a modern recreation of Linode's original manager interface that many people know and love. It is implemented as a client-side browser app using just vanilla HTML5, CSS3, and JavaScript (no 3rd-party libraries or other external dependencies). It uses Linode's OAuth provider for authentication and interfaces with APIv4.
This app aims to be as faithful a recreation of the original manager as possible, making only minor adjustments to account for discrepancies between APIv4 and the original manager, to fix things which were blatantly broken in the original manager, or to add new functionality that was never present in the original manager. As an example, the original manager uses display groups for grouping Linodes together on the main page, however display groups are currently deprecated and will eventually be removed from APIv4, so instead LMC uses tags for this purpose (but this has the added advantage that you can apply multiple tags to a single Linode).
The canonical deployment of this app can be found at https://lmc.laboon.io, however it is also possible (and easy) to self-host your own copy (see instructions below).
Development Progress
This project is currently a work in progress. The following list provides a high-level overview which features have been implemented and which features are planned for the future:
- OAuth Authentication/Login/Logout
- Gravatar
- Linodes
- Block Storage (Volumes)
- Images
- DNS
- Account Details (excluding PayPal support)
- User Profile Settings
- Graphs
- PayPal payments
- StackScripts
- NodeBalancers
- Longview
- Support Tickets
Eventually I plan to also implement features which were never available in the original manager, including Object Storage, One-Click Apps, and LKE.
Reporting Issues
Before reporting an issue, please search the issue tracker to see if the issue has already reported. The canonical source of this repository is located at https://laboon.dev/brad/lmc. Any forks on any other websites (including GitHub) are unofficial. The issue tracker located at that address should be used for all bug reports. In some cases, the root cause of an issue might be due to features which are currently missing from Linode's APIv4 (for example, APIv4 does not expose which physical host a given Linode instance is running on, so it is not possible to display this information like the original manager did). In these cases I may close the issue and redirect you upstream to Linode.
Contributing
The best way to contribute is by opening issues on the issue tracker. For simple fixes or adjustments I might accept a PR, but for the time being I would prefer to maintain this project as a solo effort. I may change my mind in the future.
Self-hosting
In order to self-host this application, you must first create your own OAuth client using your existing Linode account. When creating the OAuth client, use the URL where you will be hosting the app as the Callback URL. Then you can clone this repository into your webroot and copy the clientID.js.example file to clientID.js
and fill in the empty string with your Client ID. You must ensure that Server Side Includes (SSI) is enabled in your web server. Optionally, you can configure your web server to use the 404.html file as a custom error document.