Skip to content
karlito139 edited this page Jun 1, 2014 · 7 revisions

Welcome to the wiki of lamadmin. This software is part of the lamamos project. This wiki is made or the developers. If you are a user of this software you might certainly find the answer to your question into the Getting started of our website. If not you can contact us as explained here.

Table of content

Presentation of the project

This software is a web interface for the lamamos project. The goal is to provide a way to simply access the configuration of your servers.

This web interface is developed using php, javascript and CSS. The javascript part is developed using angular JS. The CSS part use some parts of Bootstrap very badly.

How it works

As far as the lamamos project use Rex to configure the servers. Lamadmin need to simply generate forms from the current configuration of the servers, and write the configuration back with the modifications you add to it using those forms.

There is a certain number of words that are used throughout the project that needs to be defined :

  • Module : This is a part of the configuration of the servers. For example apache is one module. It is a coherent part of the servers. Each module has it's own folder in /etc/lamamos/rex/lib/Service/. The file defining the module is the one called __module__.pm. For example the file defining the apache module is : /etc/lamamos/rex/lib/Service/apache/__module__.pm.

  • submodule : This is a part of a module. For example the submodule php is part of apache. By itself php doesn't do nothing, it needs apache to be useful (other web servers are available). The submodules have a file to there name inside of the module they are part of. For example the submodule php of the apache module is going to be defined into the file : /etc/lamamos/rex/lib/Service/apache/php.pm.

  • Instance : This is the definition the use of one module or submodule. The fact of creating an instance is going to enable the module/submodule. The instance also define the parameters of this module/submodule. The instances are the one we are directly touching with the lamadmin interface. The instances are just the calls to the corresponding modules/submodules files with the parameters we wants them to have. All those calls are in : /etc/lamamos/rex/Rexfile.

The application is separated in two parts : the server side with all the configuration reading and writing. And the client side with all the displaying.

  • Server side (reading and writing the configuration)

    • Generation of the forms

      • listing of the installed module in rex.
      • reading of all those modules to extract there parameters and type of parameters.
    • filling in the forms

      • read rexify which is at a known location, shared between the servers.
      • Extract the entries in that file.
    • Writting the new configuration :

      • writting a new Rexify
  • Client side (displaying the configuration)

    • Retrieving the configuration from the server
    • Displaying it

Developers documentation

The documentation of the project (using doxygen like syntax) is autogenerated at every commit in the project and is available here :

Project Branch Part  Link
lamamos installation script master todo
lamadmin master PHP here
lamadmin master JS here
lamadmin develop PHP here
lamadmin develop JS here

How to contribute

If you like this project you might be interested into contributing to it. For that it's extremely simple : just use github. Send issues, fork, code, send pull request. And if you have any questions, or if you are just asking yourself what you could start with to contribute to this project, just ask on the mailing liste : [email protected].

Get in contact

If you want to directly talk with the humans that are currently working on this project don't hesitate to contact us. All the information to do that are available here.