DCDB — Datacenter Database | Roei Amsalem DCDB — Datacenter Database | Roei Amsalem

DCDB — Datacenter Database

Started: 2026-03-29

Project Overview

DCDB is a lightweight, self-hosted web application for managing datacenter device inventory. It tracks servers, network devices, rack layouts, and documentation across multiple sites — all from a single Flask + SQLite app that runs anywhere with Docker or Python.

The goal was to build a practical tool that a small infrastructure team could deploy in minutes and use daily without relying on expensive commercial DCIM platforms.

Built with AI

This project was built heavily with the help of AI. I used AI assistants throughout the entire development process — from initial design decisions and architecture planning through to writing code, debugging, and iterating on features. The result is a working tool that solves a real problem for my team, and AI made it possible to get there much faster than I could have on my own.

Your Mileage May Vary

DCDB is open source and MIT-licensed — anyone is free to use it, fork it, and alter it to fit their needs. That said, the app in its current form is primarily built around what my team and I need day to day. It reflects our workflow, our device categories, and our site structure. It may not perfectly match yours out of the box, but the codebase is straightforward enough to adapt.


Key Features

Inventory Management

Dashboard

Rack View

Administration

User Experience


Tech Stack

Layer Technology
Backend Python 3.12, Flask
Database SQLite (single file, zero config)
Frontend Vanilla JS, CSS variables, Canvas charts
Production server Gunicorn
Deployment Docker, Docker Compose

Architecture

The entire application runs as a single Flask process backed by one SQLite file. There are no external dependencies, no message queues, and no separate database servers. This makes it easy to deploy on any machine that has Docker or Python installed.

DCDB/
├── app.py              # Flask routes, API endpoints, dashboard data
├── database.py         # Schema, constants, DB init, demo seeder
├── templates/          # Jinja2 templates (dashboard, inventory, rack view, settings)
├── static/             # CSS, JS, rack images, user guides
├── Dockerfile          # python:3.12-slim + Gunicorn
└── docker-compose.yml  # Service orchestration with persistent volumes

Quick Start

Getting DCDB running takes a single command:

git clone https://github.com/roeiam3/DCDB.git && cd DCDB
docker compose up -d

The app ships with sample data (2 sites, devices across categories) so you can explore immediately at http://localhost:5000.


What I Learned

This project reinforced several skills across the full stack: