Meilix-Generator is a webapp which generates an iso with a custom meilix Linux upon request of a user.
- fossasia/meilix consists the script of a Linux Operating System based on Lubuntu. The bootscreen is build as a deb package in fossasia/meilix-artwork. The app uses Travis to trigger that script to result in a release of an iso file.
- Now we thought an idea of building an autonomous system to start this build and in the meanwhile also make some required changes to the script to get it into the OS. We came up with a webapp which asks users about their email id and tag of the build and several other options e.g. a default wallpaper image upload. A user is able to config its distro release according to its needs via the app user interface without a single line to code. You can get the iso within 25 minutes of starting of the build.
- Through the webapp, a build button is taken as an input to go to a build page which triggers Travis with the same user configuration to build the iso and deploy it on a Github page. The user receives a link to the build.
- We use Travis API with a shell script to outframe our concept. The script takes the input of the users, repository, and branch to decide to where the trigger to take place.
- The webapp follows the same standard frontend of other FOSSASIA projects like Open Event Webapp
Please join our chat channel on Gitter gitter.im/fossasia/meilix and our mailing list to discuss questions regarding the project and ongoing development.
Meilix-Generator uses a number of open source projects to work properly:
- Flask - Microframework powered by python
- Bootstrap - Responsive frontend framework for webapp
- Shell - Script used for triggering Travis using their Travis API
- Heroku - Webapp deployed here
- Travis - Continuous Integration which build the iso
- Github Release - Deploying the iso here
- Webapp
The source of the webapp frontend can be found here. It consists of:
- index.html - The webform page
- 404.html - The non-found page
- Generator
The generator runs on flask framework, using the main app script
- script.sh - Use the Travis API to trigger the build
- travis_tokens - Sends the user, repo and branch required for triggering to script.sh.
This contains the required packages for running the app.
pip install --upgrade -r requirements.in
will install latest packages- Note that if you would like to change the requirements, please edit the requirements.in file and run this command to update the dependencies:
pip-compile --output-file requirements.txt requirements.in
fix the versions that definitely work for an eternity.
Webapp ask user for their email-id and event name and a wallpaper which will further be the default wallpaper of the distro. The given event name is used as a tag name of the release. Heroku sends these data to Travis to trigger the build. After successful build Travis deployed the iso in the Github Release of the repository whose information is provided in travis_tokens.
Please go through all the docs before starting the development process
The meilix-generator can be easily deployed on a variety of platform. Detailed platform specific installation instructions have been provided below:
- Once deployed, you'll find the generator running on http://localhost:5000, it should look like this:
-
Add your email id, event-name, upload an wallpaper (this picture will be set as the default wallpaper) etc.
-
Then click on build button to start the building of the iso with the given configuraiton.
-
You will be welcomed by a screen which has a message that your ISO will be mailed to you on the provided email.
This is an Open Source project and we would be happy to see contributors who report bugs and file feature requests submitting pull requests as well. Please report issues here https://github.com/fossasia/meilix-generator/issues
Before making a pull request, please file an issue. So, other developers have the chance to give feedback or discuss details. Match every pull request with an issue please and add the issue number in description e.g. like "Fixes #123". Go for only one issue per pull request
We have the following branches
- master All development goes on in the master branch. If you're making a contribution, you are supposed to make a pull request to master. PRs to the branch must pass a build check and a unit-test check on Travis.
- Go through the doc before making any contribution.
- Do read the Open Source Developer Guide and Best Practices at FOSSASIA.
Write-up containing project buildup
- These documents will help you to know more about the backbone of the project: Flask and Heroku Travis Intergration and Token Generation
This project is currently licensed under GNU Lesser General Public License v3.0 (LGPL-3.0). A copy of LICENSE.md should be present along with the source code. To obtain the software under a different license, please contact FOSSASIA.
If you like the project, don't forget to star it.