Components

  1. File Structure
  2. Obmin Server
  3. OBMIN Center
  4. Other Configuration Tools
  5. Monitoring Tools
  6. Gnome Extension
  7. Plugins Management

File Structure

The project has been built on Gnome JavaScript (GJS). GJS is pretty awesome language. It’s not an Electron JavaScript application on WebKit render and it’s not using Node.JS with huge frameworks. Gnome JavaScript is just utilizing GObject Introspection widely used in all Gnome Stack from GLib, Gtk to GStreamer etc. Actually, Gnome JavaScript has only two components: gjs - the interpreter with bindings to system GIRs, and libmozjs - pure Mozilla ECMAScript engine. So GJS applications create same pure Gtk, GLib objects and render them like any other system applications written on Python, Ruby, Vala etc.

First versions were only for Gnome Shell like a Gnome Extension. After Gnome Extension release, many Ubuntu users and many others asked for supporting other desktop environments. Actually, users were able to lunch the server from a command line but there were any options to configure or monitor the server. It’s how was born the idea to use just binaries hooks to the existing extension modules and make a few new tools for the server.

# Binary Applications
obmin-server        # OBMIN Server
obmin-center        # Obmin Center
obmin-extensions    # Extensions Manager
obmin-indicator     # System Tray Indicator
obmin-preferences   # Obmin Preferences
# Modules
[common]            # Main Modules Folder
[plugins]           # Server Plugins
convenience.js      # Basic utilities
prefs.js            # Preferences Module
# Gnome Extension
extension.js        # Main Extension
metadata.json       # Extension metadata
stylesheet.css      # Extension CSS
# Other Assets
[data]              # Icons, styles, shortcuts etc
[locale]            # Translations
[schemas]           # GSettings schema
# Documentation
[man]               # MAN pages
config_sample.json  # Configuration Sample
INSTALL.md          # Installation
README.md           # README

Obmin Server

obmin-server

It runs an instance of OBMIN Server. See Configuration and WEB Interface for more information.

OBMIN Center

obmin-center

This is the main UI component of OBMIN. Here is you can do almost all tasks:

  • control panel for running the server;
  • monitor page to see a statistic and actual connections;
  • logs page to see the server logs;
  • settings page to configure the application (see Configuration).


obmin-center Monitor/Stats Page.


obmin-center Logs Page.

You don't need to run it all the time. You can configure, run/stop the server, look at logs and quit to free system resources. The server will be running in the background. There are other lightweight monitoring tools like OBMIN Gnome extension and Obmin Indicator. They could be running during all user session and do not consuming more system resources.

Configuration Tools

obmin-center
obmin-preferences

You can configure the OBMIN through several tools:

  1. OBMIN Center has the Settings Page with embedded Preferences Window widget;
  2. OBMIN Preferences is a standalone lightweight application for the configuration;
  3. Gnome Shell users can use other standard utilities to call OBMIN Preferences widget:

See more about the configuration on Configuration page.


obmin-center Settings Page.


Installed Extensions Page OBMIN Configuration.

Monitoring Tools

Monitoring Tools can be active and passive. System logs are a passive monitoring option. You can find logs in the system journal sudo journalctl or in the local logs. You could find them on the Logs Page of OBMIN Center or in the user’s ~/.local/obmin/ folder. You should enable the local logs option in the preferences window to store it. Obmin Center (Statistic page), Obmin Indicator and Gnome OBMIN Extension are active tools for the monitoring. They have the main task to notify users about current activity and show a statistic usage like amount of active connections, total requests, transfered data. Also, they show information about local and external IP addresses.


OBMIN Indicator on Pantheon Desktop of Elementary OS.

Gnome Extension

OBMIN Gnome Extension is a monitor. It has the same functionality like OBMIN Indicator and a deep integration with Gnome Desktop environment.


OBMIN Gnome Extension Activity statistic on Gnome Shell.

Plugins Management

obmin-extensions

You can call the extension manager from the General Settings Page

OBMIN Server Extension’s System is a powerful feature of the solution. It’s easy to enhance, customize the server with server extensions and streamed pipelines. You could bring all power of Linux command line to your personal WEB server and utilize all your installed system packages. Later we will overview the OBMIN Extension Structure and look at a simple extension.


OBMIN Extensions Manager A list of installed extensions.