An open source (GPL v3) Data Center Inventory Management (DCIM) application.
PHP JavaScript Other
Latest commit f00569c Sep 23, 2016 @samilliken Slight wording change in the CHANGELOG just to make sure folks are aw…
…are there is no new functionality.
Permalink
Failed to load latest commit information.
OSS_SNMP Bring OSS_SNMP in line with master Sep 1, 2015
PHPExcel Added in PHPExcel 1.8.0. Jul 16, 2014
Slim Oops, forgot to add the Slim Framework to the commits. This should ma… Dec 31, 2014
api Fixed the default behavior on naming in CopyDevice() so that only the… Aug 31, 2016
classes Accidentally left in some debugging error_log statements. Sep 12, 2016
css Style change for power_panel page Sep 13, 2016
drawings Initial import. Apr 18, 2012
font Adding the missing files to make the fonts work correctly. ref @61e1190 Apr 29, 2015
images Adding in new rack drawing functions Aug 25, 2015
locale Updating latest translations from getlocalization Aug 28, 2016
mpdf User requested changes/fixes Aug 12, 2016
oauth OAUTH fixes for google Dec 17, 2015
pictures Removed pictures from the distro. May 15, 2015
scripts Fix for rack position picker Sep 1, 2016
swiftmailer Replaced Rmail library with swift-mailer. Fixes #3 May 3, 2012
.gitignore Update .gitignore Jun 23, 2016
CHANGELOG Slight wording change in the CHANGELOG just to make sure folks are aw… Sep 23, 2016
INSTALL Grammar correction on the last line. Jul 11, 2012
README.md Update README.md Jul 27, 2016
RIGHTS Still not liking this security model. Added a new function to the dev… Jul 27, 2013
UPGRADING Updated UPGRADING file to simply point users to the wiki. Mar 4, 2016
bulk_importer.php Simply running all the fields through the sanitize function to mainta… Sep 1, 2016
bulk_moves.php Added the sanitize() wrapper around all importer input for the other … Sep 1, 2016
bulk_network.php Added the sanitize() wrapper around all importer input for the other … Sep 1, 2016
bulk_power.php Added the sanitize() wrapper around all importer input for the other … Sep 1, 2016
cabaudit.php Changed all references from the PowerConnections class to the PowerPo… Jun 22, 2015
cabinets.php Updated the cabinets.php file to go ahead and fill in the applicable … Jan 23, 2016
cabnavigator.php Updating translation points Aug 28, 2016
cabrow.php Doh! #528 Feb 1, 2015
cdu_templates.php Additional multiplier for phases OIDs... Jun 11, 2015
config.inc.php This should tighten up our digital borders. close #366 Mar 3, 2014
configuration.php Reverting a portion of 2327456 Jun 9, 2016
conflicts.php updating all references to devices.php?deviceid to DeviceID May 5, 2015
connections_spreadsheet.php Add connection media type selection to workorder Jul 27, 2016
contactpopup.php Correction for the contacts popup not using the new people class. Als… Jun 22, 2015
container.php Corrected quotations encapsulation so that languages with single tick… Apr 11, 2016
container_stats.php Added in the cabinet count for the statistics pages. Also added virtu… May 26, 2016
conversion.php changing conversion to show debug information Dec 3, 2013
create.sql Adding in a changes for a version bump Sep 22, 2016
datacenter.php Reverting reverse cabinet numbering for now. Device position handling… Jun 25, 2015
db-1.0-to-1.1.sql Updated database fac_Config default for the PDFLogoFile. Also removed… May 3, 2012
db-1.1-to-1.2.sql Changed database structure to track voltage at the panel level, rathe… Jun 14, 2012
db-1.2-to-1.3.sql Updated the Changelog with additions for the upcoming 1.3 release. Jul 11, 2012
db-1.3-to-1.4.sql Javascript optimization Aug 8, 2012
db-1.4-to-1.5.sql Reworked vmnamecheck to use swiftmailer, added in translation items, … Sep 23, 2012
db-1.5-to-2.0.sql Added a new report for emailing the Facility Manager with the install… Jan 15, 2013
db-2.0-to-2.1.sql Added option to configuration screen for measurement units. #83 Mar 20, 2013
db-2.1-to-3.0.sql Updated installer to apply new schema and other related changes as we… Sep 1, 2013
db-3.0-to-3.1.sql This should fix the sql craziness that was going on withe the media t… Nov 10, 2013
db-3.1-to-3.2.sql This is what happens when people try to get fancy and make several ch… Apr 14, 2014
db-3.2-to-3.3.sql Updating create.sql to match update file Aug 3, 2014
db-3.3-to-4.0.sql Fixing a bug in the installer and a missing table. #555 Jun 9, 2015
db-4.0-to-4.0.1.sql Bitch, moan, bitch, moan Jun 25, 2015
db-4.0.1-to-4.1.sql Changes for device weight #711 Jan 15, 2016
db-4.1-to-4.1.1.sql Merge branch 'master' of https://github.com/samilliken/openDCIM Feb 16, 2016
db-4.1.1-to-4.2.sql Added in session/login expiration for when LDAP authentication is in … Mar 30, 2016
db-4.2-to-4.3.sql Reverting a portion of 2327456 Jun 9, 2016
db-4.3-to-4.3.1.sql Adding in a changes for a version bump Sep 22, 2016
db.inc.php-dist Make persistent connections the default. Sep 14, 2016
dbclass.inc.php Pushing up proposed db class for further discussion Jun 18, 2015
dc_dashboard.php Touch all the things! close #420 Jul 27, 2014
dc_stats.php Added in the cabinet count for the statistics pages. Also added virtu… May 26, 2016
departments.php More work on the department delete functions. @5fe0422 Mar 22, 2015
dept_groups.php Finished up the UserManager code, including the ability to assign dep… Jan 15, 2015
device_manufacturers.php Updating translation points Aug 28, 2016
device_templates.php Updating translation points Aug 28, 2016
devices.php Fixed the default behavior on naming in CopyDevice() so that only the… Aug 31, 2016
escalations.php Checkpoint - have replaced all of the references to the User class wi… Nov 11, 2014
export_port_connections.php Add connection media type selection to workorder Jul 27, 2016
facilities.inc.php Broke all of the big class container files down into individual class… May 18, 2016
fpdf.php Replace utf8_decode() with iconv() to use cyrillic fonts for pdf-repo… Feb 17, 2015
header.inc.php Fixed the user/people merge to look for people that may not have also… Dec 27, 2014
image_management.php Add translation function for "Return to Main Menu". Apr 15, 2015
index.php Addressing one more divide by zero condition Aug 12, 2016
install.err Removed the configuration screen from the installer code. close #455 Jun 27, 2014
install.php Adding in a changes for a version bump Sep 22, 2016
installer.userconversion.inc.php fixes issue #727 Feb 2, 2016
ldap_bootstrap.php Adding style to the ldap_bootstrap Aug 28, 2016
loadfonts.php More tweaking on fonts Apr 29, 2015
logging.inc.php A little bit of #752, and a little bit of #748. Neither are done, but… Apr 11, 2016
login_ldap.php Simple solutions are often the best. Rather than adding in one field … Jun 15, 2016
mapmaker.php Adding in a changes for a version bump Sep 22, 2016
misc.inc.php User requested changes/fixes Aug 12, 2016
openDCIMdevicetemplate.xsd Started to rework the device_templates to use dialog vs the lightbox … Mar 1, 2014
panelconversion.php Added in the new fields for the linked list of panels and updated the… Mar 28, 2015
pathmaker.php updating all references to devices.php?deviceid to DeviceID May 5, 2015
paths.php SQL Injection Prevention Feb 3, 2016
people_depts.php New file for adding departments on the user screen. Jan 14, 2015
poll_esx_inventory.php ESX Class fully converted over to PDO. #164 Jul 9, 2013
poll_pdu_stats-multiprocess.php Fixed the multiprocessor version of the poll_pdu script to work when … Apr 14, 2016
poll_pdu_stats.php All CDU/PDU methods converted over to PDO as well as all references t… Jun 12, 2013
poll_temperature_sensors.php Fix for poll_temperature_sensors being pointed at cabinet when that f… Jun 3, 2015
power_panel.php Style change for power_panel page Sep 13, 2016
powerconversion.php CDU conversion was operating under a bad assumption that the CDU temp… May 26, 2015
preflight.inc.php Adding additional requirement to preflight Jul 12, 2016
project_members.php Now have the project_mgr.php and project_members.php pages working ho… Apr 21, 2016
project_mgr.php Added the datepicker for date fields on the Project Manager page. Jun 10, 2016
rackrequest.php Updating rackrequest to meet the new user model. #609 Jun 24, 2015
report-em_new_installs.php updating all references to devices.php?deviceid to DeviceID May 5, 2015
report-em_reservations.php updating all references to devices.php?deviceid to DeviceID May 5, 2015
report-em_switch_exceptions.php updating all references to devices.php?deviceid to DeviceID May 5, 2015
report-excel-export.php Set explicit authorization requirements for reports. Most are ReadAcc… Mar 31, 2016
report-projects.php Clearing out debug line Aug 12, 2016
report_aging.php Changed all the PDF report files to skip logo inclusion if the file d… Jun 23, 2016
report_asset.php Changed all the PDF report files to skip logo inclusion if the file d… Jun 23, 2016
report_asset_Excel.php Set explicit authorization requirements for reports. Most are ReadAcc… Mar 31, 2016
report_audit.php Changed all the PDF report files to skip logo inclusion if the file d… Jun 23, 2016
report_audit_frequency.php Changed all the PDF report files to skip logo inclusion if the file d… Jun 23, 2016
report_cabinets.php Stood on my head and modified the report. Sep 1, 2016
report_contact.php Changed all the PDF report files to skip logo inclusion if the file d… Jun 23, 2016
report_cost.php Changed all the PDF report files to skip logo inclusion if the file d… Jun 23, 2016
report_department.php Changed all the PDF report files to skip logo inclusion if the file d… Jun 23, 2016
report_diverse_power_exceptions.php Changed all the PDF report files to skip logo inclusion if the file d… Jun 23, 2016
report_exception.php Changed all the PDF report files to skip logo inclusion if the file d… Jun 23, 2016
report_logging.php Set explicit authorization requirements for reports. Most are ReadAcc… Mar 31, 2016
report_network_map.php Added ability to filter the network map by project name. Jun 10, 2016
report_outage_simulator.php Finally got off my keister and worked on this. Jan 5, 2016
report_panel_schedule.php Set explicit authorization requirements for reports. Most are ReadAcc… Mar 31, 2016
report_power_distribution.php Set explicit authorization requirements for reports. Most are ReadAcc… Mar 31, 2016
report_power_utilization.php Changed all the PDF report files to skip logo inclusion if the file d… Jun 23, 2016
report_project_outage_simulator.php Updating translation points Aug 28, 2016
report_supply_status.php Set explicit authorization requirements for reports. Most are ReadAcc… Mar 31, 2016
report_surplus.php Changed all the PDF report files to skip logo inclusion if the file d… Jun 23, 2016
report_tags.php Set explicit authorization requirements for reports. Most are ReadAcc… Mar 31, 2016
report_vm_by_department.php Changed all the PDF report files to skip logo inclusion if the file d… Jun 23, 2016
report_warranty.php Changed all the PDF report files to skip logo inclusion if the file d… Jun 23, 2016
report_xml_CFD.php Set explicit authorization requirements for reports. Most are ReadAcc… Mar 31, 2016
reports.php Add Project outage report Jul 29, 2016
repository_sync_ui.php Fix for repo sync weirdness close #816 Aug 29, 2016
rightscheck.php rightscheck was looking for pictures/ and images/ to be writable - it… May 5, 2016
rowview.php Bugfix in rowview: color of reservation isn't displayed? Aug 3, 2016
search.php Fixed the search results for Project searches. Aug 31, 2016
search_export.php Update for @7bcad3b Dec 8, 2015
sidebar.inc.php Reverting a portion of 2327456 Jun 9, 2016
simple_html_dom.php fixing issue 737 Feb 24, 2016
storageroom.php Adding in an additional redirect on a device delete. If the cabinet i… May 3, 2015
supplies.php Checkpoint - have replaced all of the references to the User class wi… Nov 11, 2014
supplybin.php Checkpoint - have replaced all of the references to the User class wi… Nov 11, 2014
supplycheckout.php A little more cleanup on #424 and also starting on the Contact replac… Dec 17, 2014
surplus.php Checkpoint - have replaced all of the references to the User class wi… Nov 11, 2014
template.php Touch all the things! close #420 Jul 27, 2014
template_mpdf_reports.inc.php fixes #559 Apr 7, 2015
timeperiods.php Checkpoint - have replaced all of the references to the User class wi… Nov 11, 2014
unauthorized.php Added in the new fields for the linked list of panels and updated the… Mar 28, 2015
updatevmowner.php Added in the PrimaryContact for ESX table, which can also be used to … Dec 1, 2015
usermgr.php Added in ALL THE THINGS to make the Bulk_* functions use a new and di… Jun 1, 2016
vmnamecheck.php I corrected... Aug 5, 2016
vmware.inc.php Correction for brace. close #309 Nov 13, 2013
workorder.php Add connection media type selection to workorder Jul 27, 2016
zone.php Add translation function for "Return to Main Menu". Apr 15, 2015
zone_stats.php Added in the cabinet count for the statistics pages. Also added virtu… May 26, 2016

README.md

openDCIM

An Open Source Software package for managing the infrastructure of a 
data center, no matter how small or large.  Initially developed 
in-house at Vanderbilt University Information Technology Services by 
Scott Milliken.  

After leaving Vanderbilt for Oak Ridge National Laboratory, Vanderbilt 
granted permission for the package to be open sourced under GPLv3.  
Scott continues as the primary contributor to the package and is 
actively recruiting assistance from others.

    This program is free software:  you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published
    by the Free Software Foundation, version 3.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    For further details on the license, see http://www.gnu.org/licenses

THE CURRENT RELEASE IN GITHUB IS FOR DEVELOPMENT ONLY

Github issues are not for asking questions - use the mailing list for that.

Official Website

Installation

Supposing you are using apache, php and apache-php-module firstly clone openDCIM in a directory which is accessible by apache user (e.g. /srv/http/) and then configure apache to load required modules and have access to project directory (you can define virtual host too).

If you're gonna create Dockerized development environment, you should enable apache's fast-cgi to connect to php-fpm's container

Database (PDO, PDODRIVERS, DB.INC)

Install and Configure Mysql and PHP-Mysql

Follow the guide

Create Database and Configuration File

Create the database and user

    mysql -uroot -p -e "CREATE DATABASE dcim;CREATE USER 'dcim'@'localhost' IDENTIFIED BY 'dcim';GRANT ALL ON dcim.* TO 'dcim'@'localhost';"
    mysql -udcim -pdcim < create.sql

Make db.inc.php from db.inc.php-dist

    cp db.inc.php-dist db.inc.php

PHP SNMP Module

Install php-snmp and enable it in /etc/php/php.ini by uncomment or adding the line containing: extension=snmp.so

Apache User Authentication (AUTHENTICATION, REMOTE USER)

Enbale below apache modules:

  • mod_authn_file.so
  • mod_authn_core.so
  • mod_authz_user.so
  • mod_authz_core.so
  • mod_auth_basic.so

Then follow this link To create apache authentication database (such as htpasswd) and enable apache auth in openDCIM directory (e.g. using .htaccess in root). As an example you can follow this instruction (Don't forget to change paths and names to correct onse):

sudo htpasswd -c /etc/httpd/users pouyan
echo 'AuthName "restricted stuff"\nAuthType Basic\nAuthUserFile /etc/httpd/users\nrequire valid-user' > /srv/http/openDCIM

Apache Rewrite (MOD_REWRITE)

Install Apache Rewrite Module and enable it

Run the application

Execute application by openning it in browser and do the installation

Contribution

Contributions are always welcome, please follow these steps to submit your changes:

  1. Install git from http://git-scm.com/
  2. Create a github account on https://github.com
  3. Set up your git ssh key using these instructions http://help.github.com/set-up-git-redirect
  4. Open the openDCIM project home page on github on https://github.com/samilliken/openDCIM/
  5. Click the "Fork" button, this will get you to a new page: your own copy of the code.
  6. Copy the SSH URL at the top of the page and clone the repository on your local machine

    git clone git@github.com:your-username/openDCIM.git my-opendcim-repo
  7. Create a branch and switch to it

    cd my-opendcim-repo
    git branch mynewfeature-patch
    git checkout mynewfeature-patch
  8. Apply your changes, then commit using a meaningful comment, that's the comment everybody will see!

    git add .
    git commit -m "Fixing issue 157, blablabla"
  9. Push the changes back to github (under a different branch, here myfeature-patch)

    git push origin mynewfeature-patch
  10. Open your forked repository on github at https://github.com/your-username/openDCIM

  11. Click "Switch Branches" and select your branch (mynewfeature-patch)
  12. Click "Pull Request"
  13. Submit your pull request to the openDCIM Developers