Skip to content

CLI tool to discover, manage, and document your IT infrastructure and home lab.

License

Notifications You must be signed in to change notification settings

Timmoth/RackPeek

Repository files navigation

RackPeek

RackPeek is a lightweight, opinionated CLI tool for documenting and managing home lab and small-scale IT infrastructure.

It helps you track hardware, services, networks, and their relationships in a clear, scriptable, and reusable way without enterprise bloat or proprietary lock-in.

RackPeek is open source and community-driven. Code, docs, ideas, bug reports, and real-world usage feedback are all massively appreciated. If you run a home lab, you belong here.

Join our Discord Live Demo Docker Hub

We’re gathering feedback from homelabbers to validate direction and prioritize features.
Answer whichever questions stand out to you, your input directly shapes the project.

User Questionnaire

Philosophy

RackPeek treats infrastructure documentation as living reference data rather than static paperwork.

You should be able to document your environment as you build it, explore relationships between systems, and quickly understand how everything fits together, without drowning in unnecessary metadata or process.

RackPeek is not a CMDB replacement. It’s a clean framework for understanding and maintaining your lab.

RackPeek demo RackPeek demo

Running RackPeek with Docker


# Named volume
docker volume create rackpeek-config
docker run -d \
  --name rackpeek \
  -p 8080:8080 \
  -v rackpeek-config:/app/config \
  aptacode/rackpeek:latest

# Bind mount
docker run -d \
  --name rackpeek \
  -p 8080:8080 \
  -v $(pwd)/config:/app/config \
  aptacode/rackpeek:latest

# Note - RackPeek stores its state in YAML
config/
└── config.yaml

Or Docker compose

version: "3.9"

services:
  rackpeek:
    image: aptacode/rackpeek:latest
    container_name: rackpeek
    ports:
      - "8080:8080"
    volumes:
      - rackpeek-config:/app/config
    restart: unless-stopped

volumes:
  rackpeek-config:
docker compose up -d

Core Values

Simplicity
RackPeek focuses on clarity and usefulness. Its scope is intentionally kept narrow to avoid unnecessary abstraction and feature creep.

Ease of Deployment
The tool exists to reduce operational complexity. Installation, upgrades, and day-to-day usage should be straightforward and low-friction.

Openness
RackPeek uses open, non-proprietary data formats. You fully own your data and should be free to easily inspect, migrate, or reuse it however you choose.

Community
Contributors of all experience levels are welcome. Knowledge sharing, mentorship, and collaboration are core to the project’s culture.

Privacy & Security
No telemetry, no ads, no tracking, and no artificial restrictions. What runs on your infrastructure stays on your infrastructure.

Dogfooding
RackPeek is built to solve real problems we actively have. If a feature isn’t useful in practice, it doesn’t belong.

Opinionated
The project is optimized for home labs and self-hosted environments, not enterprise CMDBs or corporate documentation workflows.

Release Status

[x] Ideation
[x] Development
[~] Alpha Release
[ ] Beta Release
[ ] v1.0.0 Release

Command Tree

  • rpk
    • summary - Show a summarized report of all resources in the system
    • servers - Manage servers and their components
      • summary - Show a summarized hardware report for all servers
      • add - Add a new server to the inventory
      • get - List all servers or retrieve a specific server by name
      • describe - Display detailed information about a specific server
      • set - Update properties of an existing server
      • del - Delete a server from the inventory
      • tree - Display the dependency tree of a server
      • cpu - Manage CPUs attached to a server
        • add - Add a CPU to a specific server
        • set - Update configuration of a server CPU
        • del - Remove a CPU from a server
      • drive - Manage drives attached to a server
        • add - Add a storage drive to a server
        • set - Update properties of a server drive
        • del - Remove a drive from a server
      • gpu - Manage GPUs attached to a server
        • add - Add a GPU to a server
        • set - Update properties of a server GPU
        • del - Remove a GPU from a server
      • nic - Manage network interface cards (NICs) for a server
        • add - Add a NIC to a server
        • set - Update properties of a server NIC
        • del - Remove a NIC from a server
    • switches - Manage network switches
      • summary - Show a hardware report for all switches
      • add - Add a new network switch to the inventory
      • list - List all switches in the system
      • get - Retrieve details of a specific switch by name
      • describe - Show detailed information about a switch
      • set - Update properties of a switch
      • del - Delete a switch from the inventory
      • port - Manage ports on a network switch
        • add - Add a port to a switch
        • set - Update a switch port
        • del - Remove a port from a switch
    • routers - Manage network routers
      • summary - Show a hardware report for all routers
      • add - Add a new network router to the inventory
      • list - List all routers in the system
      • get - Retrieve details of a specific router by name
      • describe - Show detailed information about a router
      • set - Update properties of a router
      • del - Delete a router from the inventory
      • port - Manage ports on a router
        • add - Add a port to a router
        • set - Update a router port
        • del - Remove a port from a router
    • firewalls - Manage firewalls
      • summary - Show a hardware report for all firewalls
      • add - Add a new firewall to the inventory
      • list - List all firewalls in the system
      • get - Retrieve details of a specific firewall by name
      • describe - Show detailed information about a firewall
      • set - Update properties of a firewall
      • del - Delete a firewall from the inventory
      • port - Manage ports on a firewall
        • add - Add a port to a firewall
        • set - Update a firewall port
        • del - Remove a port from a firewall
    • systems - Manage systems and their dependencies
      • summary - Show a summary report for all systems
      • add - Add a new system to the inventory
      • list - List all systems
      • get - Retrieve a system by name
      • describe - Display detailed information about a system
      • set - Update properties of a system
      • del - Delete a system from the inventory
      • tree - Display the dependency tree for a system
    • accesspoints - Manage access points
      • summary - Show a hardware report for all access points
      • add - Add a new access point
      • list - List all access points
      • get - Retrieve an access point by name
      • describe - Show detailed information about an access point
      • set - Update properties of an access point
      • del - Delete an access point
    • ups - Manage UPS units
      • summary - Show a hardware report for all UPS units
      • add - Add a new UPS unit
      • list - List all UPS units
      • get - Retrieve a UPS unit by name
      • describe - Show detailed information about a UPS unit
      • set - Update properties of a UPS unit
      • del - Delete a UPS unit
    • desktops - Manage desktop computers and their components
      • add - Add a new desktop
      • list - List all desktops
      • get - Retrieve a desktop by name
      • describe - Show detailed information about a desktop
      • set - Update properties of a desktop
      • del - Delete a desktop from the inventory
      • summary - Show a summarized hardware report for all desktops
      • tree - Display the dependency tree for a desktop
      • cpu - Manage CPUs attached to desktops
        • add - Add a CPU to a desktop
        • set - Update a desktop CPU
        • del - Remove a CPU from a desktop
      • drive - Manage storage drives attached to desktops
        • add - Add a drive to a desktop
        • set - Update a desktop drive
        • del - Remove a drive from a desktop
      • gpu - Manage GPUs attached to desktops
        • add - Add a GPU to a desktop
        • set - Update a desktop GPU
        • del - Remove a GPU from a desktop
      • nic - Manage network interface cards (NICs) for desktops
        • add - Add a NIC to a desktop
        • set - Update a desktop NIC
        • del - Remove a NIC from a desktop
    • Laptops - Manage Laptop computers and their components
      • add - Add a new Laptop
      • list - List all Laptops
      • get - Retrieve a Laptop by name
      • describe - Show detailed information about a Laptop
      • del - Delete a Laptop from the inventory
      • summary - Show a summarized hardware report for all Laptops
      • tree - Display the dependency tree for a Laptop
      • cpu - Manage CPUs attached to Laptops
        • add - Add a CPU to a Laptop
        • set - Update a Laptop CPU
        • del - Remove a CPU from a Laptop
      • drive - Manage storage drives attached to Laptops
        • add - Add a drive to a Laptop
        • set - Update a Laptop drive
        • del - Remove a drive from a Laptop
      • gpu - Manage GPUs attached to Laptops
        • add - Add a GPU to a Laptop
        • set - Update a Laptop GPU
        • del - Remove a GPU from a Laptop
    • services - Manage services and their configurations
      • summary - Show a summary report for all services
      • add - Add a new service
      • list - List all services
      • get - Retrieve a service by name
      • describe - Show detailed information about a service
      • set - Update properties of a service
      • del - Delete a service
      • subnets - List subnets associated with a service, optionally filtered by CIDR

About

CLI tool to discover, manage, and document your IT infrastructure and home lab.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages