selfhost.directory

The index of self-hostable projects — ranked, categorized and served with live updates.
Own your data and stop giving it to big tech.

OCS Inventory NG logo

Self-host OCS Inventory NG

2.12.6

Open-source IT asset inventory and software deployment

ReleaseOpen SourceGPL-2.0
Updated2 weeks ago
LanguageJavaScript
Setup difficultyModerate
Stars
255
CPU
Dual-Core, 2.0 GHz
RAM
4 GB RAM
Storage
20 GB free disk space
Ports
80 (HTTP web console and API), 443 (HTTPS web console and API)
Docker
ocsinventory/ocsinventory-docker-image
Install with Docker

What is OCS Inventory NG?

OCS Inventory NG is a mature open-source platform for IT asset tracking and software distribution. A central server with a web console collects hardware and software details from agents running on Windows, Linux, macOS, and Android endpoints. It also scans networks via IP discovery and SNMP to inventory printers, routers, and other agentless devices. Administrators can push packages or scripts to thousands of machines with bandwidth controls. The console supports multi-site master/slave setups, role-based access, and authentication through local accounts, LDAP, CAS, or SSO. A REST API allows integration with tools such as iTop and CMDBuild. Deployment options include Docker images, RPM and DEB packages, and manual installation on Debian/Ubuntu or RHEL-family systems. Minimum server specs are a dual-core 2 GHz CPU, 4 GB RAM, and 20 GB disk, with MySQL 8+ or PostgreSQL 17+ required. The GPL-2.0 codebase is actively maintained; version 2.12.6 shipped in August 2026 and a v3.0 release candidate is in testing.

Should you self-host OCS Inventory NG?

OCS Inventory NG scores 53/100 on selfhost.directory (how scoring works) and ranks #8 of 15 in Asset Management. It has 255 GitHub stars.

It shipped 3 stable releases in the past year. The latest, 2.12.6, came out on 3 September 2026. New versions land roughly every 2 months.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is GPL-2.0-licensed and written mostly in JavaScript.

Its closest alternative on selfhost.directory is Snipe-IT (77/100, 15 109 stars). It scores higher overall, so compare the two before you pick. See OCS Inventory NG vs Snipe-IT side by side.

Features

  • Asset categorization
  • CAS authentication
  • CVE vulnerability reporting
  • Hardware Inventory
  • IP discovery
  • LDAP Authentication
  • Multi-site architecture
  • Plugin engine
  • REST API
  • Role-based Access Control
  • Saved Searches
  • SNMP network discovery
  • Software deployment
  • Software inventory
  • Wake-on-LAN

OCS Inventory NG README

How to install OCS Inventory NG

Install OCS Inventory NG with Docker

Docker Engine
Environment variables
OCS_DB_SERVER, OCS_DB_PORT, OCS_DB_USER, OCS_DB_PASS, OCS_DB_NAME, OCS_LOG_DIR, OCS_VARLIB_DIR, OCS_WEBCONSOLE_DIR, OCS_PERLEXT_DIR, OCS_PLUGINSEXT_DIR, OCS_SSL_ENABLED, TZ

docker pull ocsinventory/ocsinventory-docker-image:latest

docker run
-p [HOST_HTTP_PORT]:80
-p [HOST_HTTPS_PORT]:443
--name [PUT_A_NAME_HERE]
-e OCS_DB_NAME=[DB_NAME]
-e OCS_DB_SERVER=[DB_HOST]
-e OCS_DB_PORT=[DB_PORT]
-e OCS_DB_USER=[DB_USER]
-e OCS_DB_PASS=[DB_PASS]
-itd
ocsinventory/ocsinventory-docker-image:MY_TAG

Requires external MySQL/PostgreSQL database

How to configure OCS Inventory NG

  • OCS_DB_NAMEocswebOCS Database name

    OCS Database name

  • OCS_DB_PASSocsOCS MySQL password

    OCS MySQL password

  • OCS_DB_PORT3306Database port

    Database port

  • OCS_DB_SERVERdbsrvDatabase hostname

    Database hostname

  • OCS_DB_USERocsOCS MySQL user

    OCS MySQL user

  • OCS_LOG_DIR/var/log/ocsinventory-serverOCS Inventory log directory

    OCS Inventory log directory

  • OCS_PERLEXT_DIR/etc/ocsinventory-server/perl/OCS communication perl extensions directory

    OCS communication perl extensions directory

  • OCS_PLUGINSEXT_DIR/etc/ocsinventory-server/plugins/OCS communication plugins extensions directory

    OCS communication plugins extensions directory

  • OCS_SSL_ENABLED0 (NO)OCS MySQL SSL Enabled

    OCS MySQL SSL Enabled

    values: 0 or 1

  • OCS_VARLIB_DIR/var/lib/ocsinventory-reports/OCS var lib directory (used to store deployment packages)

    OCS var lib directory (used to store deployment packages)

  • OCS_WEBCONSOLE_DIR/usr/share/ocsinventory-reportsOCS webconsole directory

    OCS webconsole directory

  • TZEurope/ParisDefault timezone

    Default timezone

OCS Inventory NG releases & version history

FAQ

I get Error 417 when using a proxy. How to fix?

Add 'ignore_expect_100 on' to your squid.conf file and run 'squid -k reconfigure'.

I get Error 500 when accessing the console. What should I check?

Error 500 typically means the OCS engine cannot communicate with MySQL. Check the database connection settings in z-ocsinventory-server.conf (OCS_DB_HOST, OCS_DB_PORT, OCS_DB_NAME, OCS_DB_USER, OCS_DB_PWD).

The ocsinventory directory does not exist on my server. Is this an error?

No, ocsinventory is a virtual directory handled by mod_perl in Apache. The physical directory must not exist.

What URL must I put in the agent to contact the server?

Use the format http://dns_or_ip/ocsinventory. Using a DNS name is recommended over an IP address.

After installing the server, the GUI asks me to install the database. Is this normal?

Yes, the database is automatically installed on the first access to the graphical admin console.

Can I upgrade my server from version X to the last stable version?

Direct upgrades from very old versions (1.x to 2.5+) are not recommended due to database schema changes. Upgrade to 2.0 first, then to the latest version.

Rate this project

Click to rate — no account needed.

0 comments

Posting as guest
Loading comments…