A modern implementation of Linode's original manager https://lmc.laboon.io
Go to file
2024-06-17 18:21:01 -04:00
account Switch to new payment method endpoints 2024-06-17 18:21:01 -04:00
dns apiPut not needed for zonefile page 2022-10-20 20:29:39 -04:00
images Get region names from API instead of hard-coding them 2024-05-06 16:57:12 -04:00
img Implemented plan upgrades 2020-01-22 21:01:47 -05:00
include Switch to new payment method endpoints 2024-06-17 18:21:01 -04:00
linodes Get region names from API instead of hard-coding them 2024-05-06 16:57:12 -04:00
logout Initial commit. Implemented OAuth, Linodes, volumes, and images 2020-01-10 00:24:59 -05:00
profile Add navigation helpers to Account and Profile sections 2023-04-18 16:48:28 -04:00
user Add navigation helpers to Account and Profile sections 2023-04-18 16:48:28 -04:00
volumes Get region names from API instead of hard-coding them 2024-05-06 16:57:12 -04:00
.gitignore Initial commit. Implemented OAuth, Linodes, volumes, and images 2020-01-10 00:24:59 -05:00
404.css Initial commit. Implemented OAuth, Linodes, volumes, and images 2020-01-10 00:24:59 -05:00
404.html Update 404 dev URL 2024-05-06 17:29:18 -04:00
clientID.js.example Initial commit. Implemented OAuth, Linodes, volumes, and images 2020-01-10 00:24:59 -05:00
favicon.ico Implemented user profile settings, OAuth apps, and maintenance windows. Other minor fixes/improvements 2021-03-11 10:37:07 -05:00
global.css Basic graph implementation 2023-04-03 20:01:50 -04:00
global.js Get region names from API instead of hard-coding them 2024-05-06 16:57:12 -04:00
index.html Initial commit. Implemented OAuth, Linodes, volumes, and images 2020-01-10 00:24:59 -05:00
LICENSE Initial commit. Implemented OAuth, Linodes, volumes, and images 2020-01-10 00:24:59 -05:00
login.css Initial commit. Implemented OAuth, Linodes, volumes, and images 2020-01-10 00:24:59 -05:00
login.js Added Account section 2020-03-13 23:01:39 -04:00
README.md Update source URL in README 2024-02-29 18:37:30 -05:00

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.