Meilix Generator
A webapp which generates an iso live image with a custom Meilix Linux upon the request of a user.
- fossasia/meilix consists the backend script of a Linux Operating System based on Lubuntu. The bootscreen is build as a deb package in fossasia/meilix-artwork. Meilix uses Travis to trigger that script to result in a release of an iso file.
- 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 as a Github release. The user receives a link to the build.
- We use Travis API with a shell script. The script takes the input of the users, repository, and branch to decide to where the trigger to take place.
- The Meilix Generator webapp follows the standard frontend of other FOSSASIA projects like Open Event Webapp
Communication
Please join our chat channel on Gitter gitter.im/fossasia/meilix and our mailing list to discuss questions regarding the project and ongoing development.
Technologies Used
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
Components and its working
- 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 a 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.
Working
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.
Installation
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) etc.
-
Then click on build button to start the building of the iso with the given configuration.
-
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 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.
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 Integration and Token Generation
License
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.