Homedex

The missing inventory for your homelab

  • ghcr.io/harshshah0203/homedex:0.2.5
  • port 6150
  • Networking
Homedex screenshot 1Homedex screenshot 2Homedex screenshot 3Homedex screenshot 4Homedex screenshot 5

Web App

/
http://localhost:6150/

A read-only homelab inventory. It scans Docker, Proxmox, Tailscale and your reverse proxy, then builds a searchable record of services, hosts, ports, routes, certificates, domains and changes.

Features

  • Finds every container, image, port and network on your Docker hosts
  • Shows which reverse proxy route leads to which container, and flags broken ones
  • Tracks certificate and domain expiry by days remaining
  • Change feed shows what moved between scans
  • Read-only by design: a filtering socket proxy blocks any Docker action that changes something
  • SQLite storage in the app data folder

How to use

  1. Open Homedex from your dashboard.
  2. Sign in with the admin password from the app settings.
  3. In the setup wizard, keep the source tcp://docker-socket-proxy:2375 and run the first scan.
  4. Add more sources later under Sources: Traefik, Caddy, Nginx Proxy Manager, Proxmox, Tailscale and more.
  5. Export Markdown, JSON or CSV, or share a read-only view.

Before you install

HOMEDEX_ADMIN_PASSWORD is your admin password. It comes filled with a random value; change it to your own of 12 or more characters if you like, and write it down. It is only used on the first start, before an admin exists. Homedex reads Docker through a small proxy that blocks every change, so it can only look. Open http://your-zimaos-ip:6150, sign in, and keep tcp://docker-socket-proxy:2375 as the Docker source in the setup wizard. More settings are in the Variables tab; add them in the app settings.

The settings in the first table are already in the app settings. To use any other one, open the app settings, add the variable with your value, save, and the app restarts with it. A setting you leave out uses its default.

In the app settings

VariableDefault valueDescription
TZ$TZYour time zone. It is filled in from your ZimaOS time zone. Leave it unless you need another.
HOMEDEX_ADMIN_PASSWORDchange-meYour admin password. It is pre-filled with a random value; you can replace it with your own of 12 or more characters. It is only used on the first start, before an admin exists.

Server

VariableDefault valueDescription
HOMEDEX_SECURE_COOKIESfalseSet to true when you open Homedex over HTTPS through a reverse proxy, so the sign-in cookie is only sent over HTTPS.
HOMEDEX_TRUSTED_PROXIES—IPs or ranges of your reverse proxy, comma separated, like 192.168.1.10/32. Homedex then trusts the visitor address it forwards.
HOMEDEX_GONE_RETENTION_DAYS30How many days Homedex keeps things that are gone (like a removed container) before it forgets them.
HOMEDEX_SECRET—A base64 key that encrypts saved source credentials. Leave it out to use the key made on first start in the data folder.
docker-compose.yml
name: homedex

services:
  docker-socket-proxy:
    image: tecnativa/docker-socket-proxy:v0.4.2
    container_name: homedex-socket-proxy
    restart: unless-stopped
    stop_grace_period: 40s
    environment:
      - CONTAINERS=1
      - IMAGES=1
      - INFO=1
      - NETWORKS=1
      - VERSION=1
      - POST=0
      - ALLOW_START=0
      - ALLOW_STOP=0
      - ALLOW_RESTARTS=0
    volumes:
      - type: bind
        source: /var/run/docker.sock
        target: /var/run/docker.sock
        read_only: true
    read_only: true
    tmpfs:
      - /run
      - /tmp
    cap_drop:
      - ALL
    security_opt:
      - no-new-privileges:true
    networks:
      - discovery
    deploy:
      resources:
        limits:
          cpus: "0.50"
          memory: 128M
        reservations:
          cpus: "0.00"
          memory: 32M
    labels:
      icon: https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/homedex/icon.png
    x-casaos:
      id: com.icestore.homedex
      envs:
        - container: CONTAINERS
          description:
            en_US: Lets Homedex list containers. Keep it at 1.
        - container: IMAGES
          description:
            en_US: Lets Homedex list images. Keep it at 1.
        - container: INFO
          description:
            en_US: Lets Homedex read Docker host info. Keep it at 1.
        - container: NETWORKS
          description:
            en_US: Lets Homedex list networks. Keep it at 1.
        - container: VERSION
          description:
            en_US: Lets Homedex read the Docker version. Keep it at 1.
        - container: POST
          description:
            en_US: >-
              Keep this at 0. It blocks every Docker action that changes
              something, so Homedex can only read.
        - container: ALLOW_START
          description:
            en_US: Keep this at 0, so containers cannot be started through the proxy.
        - container: ALLOW_STOP
          description:
            en_US: Keep this at 0, so containers cannot be stopped through the proxy.
        - container: ALLOW_RESTARTS
          description:
            en_US: Keep this at 0, so containers cannot be restarted through the proxy.
      volumes:
        - container: /var/run/docker.sock
          description:
            en_US: >-
              The Docker socket, read-only. Only this filtering proxy sees it;
              Homedex talks to the proxy on a private network.

  homedex:
    image: ghcr.io/harshshah0203/homedex:0.2.5
    container_name: homedex
    restart: unless-stopped
    stop_grace_period: 40s
    user: "0:0"
    depends_on:
      - docker-socket-proxy
    environment:
      - TZ=$TZ
      - HOMEDEX_ADMIN_PASSWORD=change-me
    ports:
      - target: 7377
        published: "6150"
        protocol: tcp
    volumes:
      - type: bind
        source: /DATA/AppData/$AppID/data
        target: /data
        bind:
          create_host_path: true
    read_only: true
    tmpfs:
      - /tmp
    cap_drop:
      - ALL
    security_opt:
      - no-new-privileges:true
    networks:
      - app
      - discovery
    deploy:
      resources:
        limits:
          cpus: "1.00"
          memory: 512M
        reservations:
          cpus: "0.00"
          memory: 128M
    labels:
      icon: https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/homedex/icon.png
    x-casaos:
      id: com.icestore.homedex
      envs:
        - container: TZ
          description:
            en_US: >-
              Your time zone. It is filled in from your ZimaOS time zone.
              Leave it unless you need another.
        - container: HOMEDEX_ADMIN_PASSWORD
          description:
            en_US: >-
              Your admin password. It is pre-filled with a random value; you
              can replace it with your own of 12 or more characters. It is
              only used on the first start, before an admin exists.
      ports:
        - container: "7377"
          description:
            en_US: Homedex web UI and API, published on host as 6150
      volumes:
        - container: /data
          description:
            en_US: The Homedex SQLite database, its settings and its encryption key.

networks:
  app:
    internal: false
  discovery:
    internal: true

x-casaos:
  id: com.icestore.homedex
  architectures:
    - amd64
    - arm64
  main: homedex
  author: HSinghHira
  category: Networking
  developer: Harsh Shah
  icon: https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/homedex/icon.png
  thumbnail: https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/homedex/screenshot-1.png
  screenshot_link:
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/homedex/screenshot-1.png
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/homedex/screenshot-2.png
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/homedex/screenshot-3.png
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/homedex/screenshot-4.png
    - https://cdn.jsdelivr.net/gh/HSinghHira/IceStore@main/Apps/homedex/screenshot-5.png
  title:
    en_US: Homedex
  tagline:
    en_US: The missing inventory for your homelab
  description:
    en_US: >-
      A read-only homelab inventory. It scans Docker, Proxmox, Tailscale and
      your reverse proxy, then builds a searchable record of services, hosts,
      ports, routes, certificates, domains and changes.


      **Features**


      - Finds every container, image, port and network on your Docker hosts

      - Shows which reverse proxy route leads to which container, and flags
        broken ones

      - Tracks certificate and domain expiry by days remaining

      - Change feed shows what moved between scans

      - Read-only by design: a filtering socket proxy blocks any Docker
        action that changes something

      - SQLite storage in the app data folder


      **How to use?**


      1. Open Homedex from the Zima OS dashboard.

      2. Sign in with the admin password from the app settings.

      3. In the setup wizard, keep the source tcp://docker-socket-proxy:2375
         and run the first scan.

      4. Add more sources later under Sources: Traefik, Caddy, Nginx Proxy
         Manager, Proxmox, Tailscale and more.

      5. Export Markdown, JSON or CSV, or share a read-only view.
  tips:
    before_install:
      en_US: >-
        1. Open the app configuration before you install.


        2. Find HOMEDEX_ADMIN_PASSWORD. It is your admin password, filled
           with a random value.


        3. You can change it to your own. Use 12 or more characters.


        4. Write it down. You need it to sign in.


        5. More settings are listed on the Homedex page at
           https://icestore.hsinghhira.me/app/homedex/ (Variables tab). You
           can add them now or later in the app settings.


        6. Start the installation.


        7. Open http://your-zimaos-ip:6150 and sign in with the password.


        8. In the setup wizard, keep tcp://docker-socket-proxy:2375 as the
           Docker source and run the first scan.
  index: /
  port_map: "6150"
  scheme: http
  is_uncontrolled: false
  version: "0.2.5"
  update_at: "2026-10-25"
  release_notes:
    en_US: |-
      - Moved to IceStore, now on port 6150
      - ghcr.io/harshshah0203/homedex 0.2.5
      - tecnativa/docker-socket-proxy v0.4.2, read-only (the version upstream ships with)
  repo: "https://github.com/HarshShah0203/homedex"
  support: "https://github.com/HarshShah0203/homedex/issues"
  docs: "https://github.com/HarshShah0203/homedex/tree/main/docs"