38 lines
3.8 KiB
Markdown
38 lines
3.8 KiB
Markdown
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:
|
|
|
|
- [x] OAuth Authentication/Login/Logout
|
|
- [x] Gravatar
|
|
- [x] Linodes (including the dashboard and all related subpages, but not including graphs)
|
|
- [x] Block Storage (Volumes)
|
|
- [x] Images
|
|
- [x] DNS
|
|
- [x] Account Details (exluding PayPal support)
|
|
- [ ] PayPal payments
|
|
- [ ] Graphs
|
|
- [ ] StackScripts
|
|
- [ ] NodeBalancers
|
|
- [ ] Longview
|
|
- [ ] User Profile Settings
|
|
- [ ] 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](https://github.com/linode/manager/blob/develop/CREATE_CLIENT.md)). 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.
|