A modern implementation of Linode's original manager https://lmc.laboon.io
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
L. Bradley LaBoon 2311f43537 Custom images are out of beta 3 months ago
account Add CVV field to payment card update form 6 months ago
dns Fix CSS issue for slave domains 2 years ago
images Custom images are out of beta 3 months ago
img Implemented plan upgrades 2 years ago
include Implemented user profile settings, OAuth apps, and maintenance windows. Other minor fixes/improvements 7 months ago
linodes APIv4 now gives resolvers, so get resolver list from the API instead of hard-coding them 6 months ago
logout Initial commit. Implemented OAuth, Linodes, volumes, and images 2 years ago
profile Implemented user profile settings, OAuth apps, and maintenance windows. Other minor fixes/improvements 7 months ago
user Implemented user profile settings, OAuth apps, and maintenance windows. Other minor fixes/improvements 7 months ago
volumes Added Account section 2 years ago
.gitignore Initial commit. Implemented OAuth, Linodes, volumes, and images 2 years ago
404.css Initial commit. Implemented OAuth, Linodes, volumes, and images 2 years ago
404.html Initial commit. Implemented OAuth, Linodes, volumes, and images 2 years ago
LICENSE Initial commit. Implemented OAuth, Linodes, volumes, and images 2 years ago
README.md Implemented user profile settings, OAuth apps, and maintenance windows. Other minor fixes/improvements 7 months ago
clientID.js.example Initial commit. Implemented OAuth, Linodes, volumes, and images 2 years ago
favicon.ico Implemented user profile settings, OAuth apps, and maintenance windows. Other minor fixes/improvements 7 months ago
global.css Implemented user profile settings, OAuth apps, and maintenance windows. Other minor fixes/improvements 7 months ago
global.js Implement image uploads 4 months ago
index.html Initial commit. Implemented OAuth, Linodes, volumes, and images 2 years ago
login.css Initial commit. Implemented OAuth, Linodes, volumes, and images 2 years ago
login.js Added Account section 2 years ago

README.md

Full disclosure: I am an employee of Linode, however this project is being developed independently in my own free time and is not associated in any way with Linode, LLC. 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 (including the dashboard and all related subpages, but not including graphs)
  • Block Storage (Volumes)
  • Images
  • DNS
  • Account Details (excluding PayPal support)
  • User Profile Settings
  • PayPal payments
  • Graphs
  • 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://git.bradleylaboon.com/lb.laboon/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 (instructions for doing this in Linode's new manager can be found here). 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.