Rackslab announces the release of RacksDB v0.4.0 with an new modern and intuitive web UI!

RacksDB is an open source solution to modelize your datacenters infrastructures. This release notably includes a new modern web UI to explore your database, and many new drawing parameters to tune graphical representations of your IT infrastructures.

Along with its share of minor bugs fixes and general improvements, as referenced in the full release notes:


  • lib:
    • Add advanced tags property and _filter() method specializations on RacksDBStorageEquipment, RacksDBNetworkEquipment and RacksDBSMiscEquipment classes, similarly to RacksDBNode.
    • Introduce RacksDBSchemaError and RacksDBFormatError in order to easily catch these errors from other software that use RacksDB as an external library.
    • Add optional path property to DBLoader class.
  • cli: Add -c, --coordinates and --coordinates-format arguments on racksdb draw sub-command to generate coordinate file in either JSON or YAML format with coordinates of racks and equipment in the image along with the image file.
  • web:
    • Add coordinates and coordinates_format query parameter on draw action enpoint to get coordinates of racks and equipment along with image file in multipart response (#56).
    • Optional default drawing parameters in arguments of RacksDBWebBlueprint used for all requests to draw endpoint unless overriden in request body.
    • Add --with-ui option to enabled web UI in racksdb-web.
  • draw:
    • Add general pixel_perfect boolean drawing parameter, disabled by default. When enabled, RacksDB properly align graphical representation with pixels matrix with concession on relative dimensions correctness (#4).
    • Add room racks_labels boolean drawing parameter, enabled by default. When enabled, RacksDB label all racks with their names in room diagrams (#58).
    • Add infrastructure equipment_labels boolean drawing parameter, enabled by default. When enabled, RacksDB label equipment with their names in infrastructure diagrams (#55).
    • Add infrastructure equipment_tags optional drawing parameter to give the possibility to select equipment represented in infrastructure diagrams with their tags (#57).
    • Add infrastructure ghost_unselected boolean drawing parameter, disabled by default, to control if unselected equipment is represented as ghosted in racks to mark their presence in the infrastructure. When disabled, the unselected equipment is simply discarded.
    • Add colors equipment ghost drawing parameter to specify the color of ghosted equipment.
    • Add infrastructure discard_empty_racks boolean drawing parameter, enabled by default, to control if racks used by infrastructure that contain only unselected equipment are represented in infrastructure diagrams.
    • Add infrastructure other_racks boolean drawing parameter to control if other racks located in the same rows as the infrastructure are represented, even if they do not contain infrastructure equipment. Other racks are represented when set to true. It is false by default (#61).
    • Add support for optional alpha channel in ~hexcolor defined type (#65).
    • Make racks labels scalable to avoid exceeding rack width in infrastructure diagrams (#69).
  • schema:
    • Add position computed property on Node, StorageEquipment, NetworkEquipment and MiscEquipment objects to get their exact position in the racks (#72).
    • Introduce DatacenterLocation object attached to Datacenter optional location property to define GPS coordinates of the datacenters.
  • ui:
    • Add map of datacenters if datacenters view with their geographical positions if defined in database (#43).
    • Add possibility to filter equipment in infrastructure by rack, equipment category, equipment type, equipment name and tags (#42).
  • pkg:
    • Add dependency on PyGObject python library (used to call Pango library).
    • Add optional dependency on requests-toolbelt python library on web variant to generate multipart response with graphical representations images and coordinates.
  • docs:
    • Mention development libraries required for external dependencies in Quickstart guide.
    • Mention new class specializations on RacksDBStorageEquipment, RacksDBNetworkEquipment and RacksDBSMiscEquipment in library reference documentation.
    • Update racksdb manpage to mention -c, --coordinates and --coordinates-format arguments on racksdb draw sub-command.
    • Mention optional alpha channel in documentation of drawing parameters ~hexcolor defined type.
    • Mention concept of computed property with the corresponding attribute.
    • Mention new --with-ui option in racksdb-web manpage.


  • draw:
    • Replace Room/Infrastructure scale drawing parameters by maximum width/height dimensions. RacksDB compute a dynamic ratio based on these maximum dimensions to define the sizes of represented racks and equipment in pixels.
    • Make font size of text labels on racks and equipment responsive to the size of the corresponding items. The font size is reduced, down to its minimum size, until the text label fits into the item.
    • Change unit (pixels→mm) and default value (10→40) of Rack pane_width drawing parameter.
    • In infrastructure diagrams, computed rows widths and heights, thus drawing scale eventually, are now based on represented racks by taking into account empty racks, discard_empty_racks and other_racks drawing parameters.
  • web:
    • Change some HTTP status code to report errors on draw action endpoint:
      • 415 → 500 when unable to load drawing parameters schema.
      • 415 → 400 when unable to load drawing parameters.
      • 415 → 400 for unsupported coordinates format.
  • ui:
    • Many improvements in datacenter details page (#39), such as:
      • The table of rooms is moved upper in the page.
      • The datacenter search input is replaced by a filter input in the top right corner to filter rooms by name.
      • The table of rooms does not use all page width anymore.
      • The “Access to the room” button is be renamed “View room”.
      • The table header for view room button has been removed.
      • Add button to sort rooms by name in alphabetical order, either in ascending or descending order.
      • Adopt the same font as in datacenter room details view.
    • More ergonomic combobox to select datacenter and infrastructure (#38).
    • Many improvements in datacenter room page (#40), such as:
      • The datacenter search input is replaced by a filter input in the top right corner to filter racks by name.
      • Improve readability of racks table by reducing its width, add lines between rows and increase row height.
      • Add “Hide empty” button to hide empty racks.
      • Add button to invert racks sorting by name in alphabetical order, either in ascending or descending order.
      • More accessible dialog to view room map in bigger size which can be closed with escape key or by clicking outside.
      • Add link to infrastructure details view in infrastructures list.
      • Add alternative text for the images.
    • Many improvements in infrastructure details page (#41), such as:
      • The cards are removed in favor of the table view only.
      • Equipment tags are displayed in table.
      • The table is splitted by racks sections with grouped rows, sorted by names. Racks sections can be closed and opened at will.
      • A button gives the possibility to invert the order of racks.
      • Equipments in racks sections are ordered by position in the racks from top to bottom.
      • Readability of equipment table is improved by reducing its width on large screens.
      • When the infrastructure image is maximized, it can be closed with escape button or by clicking on the sides.
  • schema: Declare all computed properties in schema.
  • pkg: Move Flask-Cors python dependency in dev variant package.
  • docs:
    • Update supported Linux distributions in quickstart guide (add fedora 39 and RHEL9, drop fedora 37 and Ubuntu 22.04 LTS).
    • Update OpenAPI description for REST API documentation.
    • Update drawing parameters reference doc.


  • ui: Bump missed version number in UI application metadata.
  • core:
    • Fix dump of properties in JSON and YAML when not defined in database but overriden by specialized classes.
    • Fix folded equipment name filtering (#73).
    • Add missing raise instructions in some DB format error cases.
    • Avoid reporting duplicated tags when defined on both parent part and equipment (#77).
  • web:
    • Send HTTP/400 status code when JSON error instead of crashing with exception in case of error when drawing an infrastructure or a room.
    • Warn instead of crash when CORS is enabled but the corresponding Flask-Cors module cannot be imported.
  • docs: Add missing version in example REST API queries.


  • docs: Remove mention of computed properties in Python library reference documentation as computed properties are now properly declared along with back references in database structure reference documentation.

For more details about RacksDB, please read its full description.

Ready to try? Follow the quickstart guide!

Useful links: