Skip to content


Folders and files

Last commit message
Last commit date

Latest commit



13 Commits

Repository files navigation

Oxidized Manager

A web application to manage devices for the Oxidized Network Configuration Manager. The Oxidized API does not have any authentication mechanism nor any mechanism to manage the router database. This application works by sharing an SQLite3 database with Oxidized and querying the Oxidized Web API.


Oxidized itself is very easy to install and update because it's published as a ruby gem. Please refer to the installation documentation available in the Oxidized Readme File to get Oxidized up and running.

The following instructions assume that oxidized is run as the user oxidized in the /home/oxidized/.config/oxidized path.

Install system dependencies

sudo apt install cmake libsqlite3-dev libssl-dev libyaml-dev

Clone the repo

sudo -u oxidized -H git clone /home/oxidized/oxidized-manager

Modify the oxidized configuration file

Edit the configuration file's source setting and ensure the rest API is enabled at

    adapter: sqlite
    database: /home/oxidized/.config/router.db
    table: devices
      name: address
      model: type
      username: username
      password: password
      enable: enable

Install dependencies

Make sure bundler is installed:

sudo gem install bundler

Run bundler in the oxidized-manager path:

sudo -u oxidized -H /bin/bash
cd ~/oxidized-manager
bundle install --without development

Copy and edit the configuration file

cp config.yml.dist config.yml
vi config.yml

Note that the database config entry should point to whatever file you specified in the Oxidized configuration file. Fill in the ldap section with your domain information, and the credentials of an unprivileged user.

Copy the systemd service file and enable

sudo cp share/oxidized-manager.service /etc/systemd/system/oxidized-manager.service
sudo systemctl enable oxidized-manager
sudo systemctl start oxidized-manager

Install and configure NGINX

Install and configure NGINX (outside the scope of this article) to proxy the puma application server running at the uri, and use a configuration similar to this:

upstream app {
  server fail_timeout=0;

server {
  listen 80;
  root /home/oxidized/oxidized-manager/public;
  keepalive_timeout 5;

  try_files $uri @app;

  location @app {
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $host;
    proxy_pass http://app;


Stop the application

sudo systemctl stop oxidized-manager

Backup the device database

Copy your SQLite database somewhere safe in case things go south. Reference the config.yml file if you've forgotten where the database is located.

Get the latest code

sudo -u oxidized -H /bin/bash
cd ~/oxidized-manager
git fetch --all
git checkout master
bundle install --without development

Check for configuration changes

Take a quick peek at config/config.yml.dist to make sure no new settings are available. If they are, add them to your config.

Copy the latest systemd file

sudo cp share/oxidized-manager.service /etc/systemd/system/oxidized-manager.service
sudo systemctl daemon-reload

Start the application

sudo systemctl start oxidized-manager


Web-based device management for oxidized.







No releases published


No packages published