**Purpose**: Homebox is the inventory and organization system built for the Home User! With a focus on simplicity and ease of use, Homebox is the perfect solution for your home inventory, organization, and management needs.

[Reference Documentation](https://hay-kot.github.io/homebox/quick-start/)

!!! warning "Protect with Keycloak"
    The GitHub project for this software appears to have been archived in a read-only state in June 2024.  There is no default admin credential, so setting the environment variable `HBOX_OPTIONS_ALLOW_REGISTRATION` to `false` will literally make you unable to log into the system.  You also cannot change it after-the-fact, so you cannot just register an account then disable it and restart the container, it doesn't work that way.  

    Due to this behavior, it is imperative that you deploy this either only internally, or if its external, put it behind something like [Authentik](https://docs.bunny-lab.io/Docker %26 Kubernetes/Docker/Docker Compose/Authentik/) or [Keycloak](https://docs.bunny-lab.io/Docker%20%26%20Kubernetes/Docker/Docker%20Compose/Keycloak/).

## Docker Configuration
```jsx title="docker-compose.yml"
version: "3.4"

services:
  homebox:
    image: ghcr.io/hay-kot/homebox:latest
    container_name: homebox
    restart: always
    environment:
    - HBOX_LOG_LEVEL=info
    - HBOX_LOG_FORMAT=text
    - HBOX_WEB_MAX_UPLOAD_SIZE=10
    - HBOX_MODE=production
    - HBOX_OPTIONS_ALLOW_REGISTRATION=true
    - HBOX_WEB_MAX_UPLOAD_SIZE=50
    - HBOX_WEB_READ_TIMEOUT=20
    - HBOX_WEB_WRITE_TIMEOUT=20
    - HBOX_WEB_IDLE_TIMEOUT=60
    - HBOX_MAILER_HOST=${HBOX_MAILER_HOST}
    - HBOX_MAILER_PORT=${HBOX_MAILER_PORT}
    - HBOX_MAILER_USERNAME=${HBOX_MAILER_USERNAME}
    - HBOX_MAILER_PASSWORD=${HBOX_MAILER_PASSWORD}
    - HBOX_MAILER_FROM=${HBOX_MAILER_FROM}
    volumes:
      - /srv/containers/homebox:/data/
    ports:
      - 7745:7745
    networks:
        docker_network:
          ipv4_address: 192.168.5.25
networks:
  docker_network:
    external: true
```

```jsx title=".env"
HBOX_MAILER_HOST=mail.bunny-lab.io
HBOX_MAILER_PORT=587
HBOX_MAILER_USERNAME=noreply@bunny-lab.io
HBOX_MAILER_PASSWORD=REDACTED
HBOX_MAILER_FROM=noreply@bunny-lab.io
```

## Traefik Reverse Proxy Configuration
If the container does not run on the same host as Traefik, you will need to manually add configuration to Traefik's dynamic config file, outlined below.
``` yaml
http:
  routers:
    homebox:
      entryPoints:
        - websecure
      tls:
        certResolver: letsencrypt
      http2:
      service: homebox
      rule: Host(`box.bunny-lab.io`)
      middlewares:
        - "auth-bunny-lab-io"  # Referencing the Keycloak Server
  services:
    homebox:
      loadBalancer:
        servers:
          - url: http://192.168.5.25:7745
        passHostHeader: true
```