Meilix-Generator is a webapp which generates an iso with a custom meilix.
- fossasia/meilix consists the script of a Linux Operating System based on Lubuntu. It uses Travis to build 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 an idea of a webapp which ask user it’s email id and tag of the build and e.g. a wallpaper image uploaded by the user which will be set. A user is able to config its distro according to its needs via the app user interface without a single line to code.
- Through the webapp, a build button is taken as an input to go to a build page which triggers the Travis with the same user configuration to build the iso and deploy it on Github page. The user gets the link to the build on the next page only.
- We use Travis API with a shell script to outframe our concept. The script takes the input of the user’s, repository, and branch to decide to where the trigger to take place.
- The webapp follows the standard frontend of other FOSSASIA projects like Open Event Webapp
Please join our mailing list to discuss questions regarding the project: https://groups.google.com/forum/#!forum/meilix
Our chat channel is on Gitter here: gitter.im/fossasia/meilix
- User can give their own configuration
- Travis will build for them
- Github will release the iso
- User can upload wallpaper which will be set as desktop background
- Get the iso within 20 minutes of starting of the build
Meilix Generator can generate iso for you based upon your configuration and need.
The main aim for the project is to help a user/organisation to make its own linux distro which he/she can use, share and distribute.
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 Travis API
- Heroku - Webapp deployed here
- Travis - Continuous Integration which build the iso
- Github Release - Deploying the iso here
Components and its working
The source of the webapp frontend can be found here. It consists of:
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.inwill 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.infix 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:
Accessing the Generator Web App
- 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).
You can click on toggle within tweakes and features and checkbox the packages which you want to install.
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.
Contributions, Bug Reports, Feature Requests
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
Issue and Branch Policy
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 in a 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.
Contributions Best Practices
- 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.