NEMS Linux Source Code

Are you a coder or want to explore some of the things NEMS does under the hood? Perhaps you’d like to add some features or fix a bug and then submit your own pull request. Or maybe you’re not a coder but would still like to contribute by reporting a bug or issue you’ve found. This is all done through our GitHub repositories and the associated Issue trackers. Feature Requests may also be submitted via the appropriate issue tracker. If unsure, please ask the community on our Discord server.

NEMS Linux itself is a Linux distro built by pre-compiling several tools into a customized Debian server base. The features of NEMS is fascilitated by combining these tools (Eg., Nagios, Monitorix, Webmin, Check_MK) plus integration of a wide variety of custom applications to make NEMS a complete, well-rounded enterprise-ready distribution.

You can explore these custom scripts on GitHub.

Debpack

Debpack is a custom front-end developed by NEMS Linux’s develoeprs and used by NEMS Linux’s provision infrastructure, which compiles Debian packages for distribution via the NEMS Linux Debian repositories located at https://repos.nemslinux.com/

When browsing our source code, you will often see a folder called debpack in the root folder of the repository. Entering this folder will provide you with the root tree of the application. E.g., /debpack/usr/local/bin/nems-info will place a file on the NEMS Server at /usr/local/bin/nems-info

Official Repositories

NEMS Admin

nems-admin is where the scripts live that build the NEMS Linux distributable image. Generally users will never need this repository since it’s only used by our development team to create new images, but if you are having a problem specifically with one of our distros (E.g., not booting on a new model Raspberry Pi) this would be the appropriate repository to post your issue. Think: if it has to do with the image itself (not the software contained therein), this is the place.

NEMS Migrator

nems-migrator is the suite of tools that provides an automated backup (both onsite and offsite) to NEMS Servers, and also provides the utilities to restore a backup to a new NEMS Server. If restoring your backup.nems file shows issues, this is where to report it.

NEMS Migrator Data

nems-migrator-data is where the sample data resides for NEMS Migrator. Generally this is not a place for end users. We separated the data from the main nems-migrator application to reduce the time to perform a nems-update when nems-migrator is updated (as the sample data is unlikely to change). NEMS Migrator uses the sample data not only for restoration of backups, but this data is also tapped into by tools such as nems-init, which is included in the nems-scripts repository. If you are having issues with NEMS Migrator, this is not the correct repository: You’d be looking for nems-migrator above.

NEMS Scripts

nems-scripts contains custom scripts to perform a variety of NEMS Linux tasks. Examples would be the nems-init command and nems-quickfix. NEMS Scripts also contains the underlying code to provision the operation of checks such as temper and speedtest. If you are having an issue with a check command, it’s more likely you’re looking for nems-plugins below. NEMS Scripts is generally not user-serviceable and simply fascilitates features our developers tap into in order to provide functionality to other tools within NEMS Linux.

NEMS Plugins

nems-plugins are the check commands included in NEMS NConf. If you’re having an issue with a particular check command, this is most likely the place to post an issue.

NEMS Tools

nems-tools provides some “behind the scenes” functionality to NEMS Linux, such as NEMS GPIO Extender and NEMS Warning Light.

nems-www

nems-www provides the web site interface and navigation of NEMS Dashboard.

NEMS TV Dashboard

nems-tv provides NEMS TV Dashboard.

NEMS NConf

nconf provides the PHP side of NEMS NConf. This system utilizes a MySQL database which exists within nems-migrator-data.

WMIC

wmic provides Microsoft Windows’ WMI compatibility for NEMS Linux (Windows Management Instrumentation).

Hardware Detection

hw-detect allows NEMS Linux to detect and update the running NEMS Server’s hardware profile.

9590

9590 provides a simple tool to respond on port 9590 for testing TCP port up/down status. Part of the NEMS Linux Getting Started Guide.

NEMS Documentation

nems-docs is the Restructured Text source code for the NEMS Linux documentation found at https://docs.nemslinux.com/ - if you contribute via a PR, please ensure you add your name to the credits.