PXE Cloud is a project that tries to create an easy to setup and easy to manage enviroment to boot live images and OS installers. Currently, you can boot both isos and initrd images.
If you are interested in using this project, check out the PXE Cloud Docker repository. There you have containers and Docker Compose definitions for both the local server (the server that is going to server the iPXE binary that is going to connect to the main server) and the main server (the server that is going to serve the API, the front-end and all the boot menus).
There's a diagram that shows all the process:
The red and orange path shows how the client manages the organizations, users, images, menus... through a web browser. This front-end calls the API to make changes to the DB
The purple and green path shows the boot process:

The code is separated in two big folders:
api: The API folder is the folder that contains all the code related with the back-end of the projectwebsite: The website folder is the folder that contains all the code related with the front-end of the projectThe database is structurated as the following:
USERS
+------------------------------------------+
| |
| username PK string |
| password string |
| email string |
| organizations array of strings (FK) +----+
| groups array of strings (FK) +----+----+
| | | |
+------------------------------------------+ | |
| |
ORGANIZATIONS | |
+------------------------------------------+ | |
| | | |
| id PK string |<---+ |
| name string | |
| description string | |
| groups array of strings (FK) +----+ |
| | | |
+------------------------------------------+ | |
| |
GROUPS | |
+--------------------------------+ | |
| | | |
| id PK string |<-------------+----+
| name string |
| description string |
| menu sitrng (FK) +----+
| | |
+--------------------------------+ |
|
MENUS |
+---------------------------+ |
| | |
| id PK string |<--------+
| title string |
| background string |
| entries array |
| type string |
| "image" |
| "separator" |
| * image_id FK string +----------------------------------------------+
| * content string | |
+---------------------------+ |
* If type is image, the field content isn't going to exist and viceversa |
|
IMAGE |
+---------------------------+ |
| | |
| id PK string |<---------------------------------------------+
| title string |
| type string |
| iso |
| kernel_initrd |
| kernel_source string |
| image_source string |
| boot_args array |
| |
+---------------------------+
For the API Reference, check out https://pxecloud.docs.apiary.io. The code of this API Blueprint documentation is at docs/pxecloud.apib
In case you need help or you have a question, just open an issue and we'll be happy to help you!
This project is under a GNU General Public License v3.0. For more information, check LICENSE