Homebox Docker 설치 가이드: 가정용 자산/물품 인벤토리 관리 시스템




개요

Homebox는 가정 사용자를 위해 설계된 인벤토리 및 자산 관리 시스템입니다. 가구, 전자제품, 보증서, 영수증 등 집안의 모든 물건을 체계적으로 관리할 수 있습니다. 심플하고 빠르며, 단일 Docker 컨테이너로 50MB 미만의 메모리만 사용합니다.

항목내용
GitHubhttps://github.com/sysadminsmedia/homebox
공식 문서https://homebox.software
데모https://demo.homebox.software
라이선스AGPL-3.0
GitHub Stars4.7K+

Homebox란?

왜 Homebox인가?

화재, 홍수, 도난 등의 사고가 발생했을 때 보험 청구를 위해 자산 목록이 필요합니다. 또한 “그 보증서 어디 뒀더라?”, “이거 언제 샀지?” 같은 질문에 대한 답을 찾기 위해서도 인벤토리 관리가 필요합니다.

"Snipe-IT는 IT 관리의 표준이지만 너무 복잡하다.
 나는 단순하고 인지적 부담이 적은 것을 원했다."
 - Homebox 개발자

Homebox vs Snipe-IT

구분HomeboxSnipe-IT
대상가정 사용자IT/기업 자산 관리
복잡도단순복잡 (기능 풍부)
설정수 분수 시간
리소스<50MB RAM높음
용도가구, 전자제품, 보증서IT 장비, 소모품

핵심 철학

🧘 단순하지만 확장 가능
🚀 Go로 작성, 극도로 빠름
📦 SQLite + 내장 웹 UI, 휴대성
📇 풍부한 조직 기능
📱 반응형 디자인

주요 기능

자산 관리

기능설명
아이템 생성이름과 설명만으로 간단히 생성
위치 관리계층형 위치 (집 / 거실 / TV 선반)
라벨(태그)다중 라벨로 분류
커스텀 필드사용자 정의 메타데이터
첨부 파일이미지, 영수증, 매뉴얼 업로드

보증 및 구매 추적

기능설명
구매 정보구매일, 가격, 판매처
보증 정보보증 기간, 만료일
영수증영수증 이미지 첨부
유지보수정기 점검/수리 일정

QR 코드 및 라벨

기능설명
QR 코드 생성아이템/위치별 자동 생성
QR 스캐너모바일로 스캔하여 바로 접근
라벨 생성기Avery 5260 호환 라벨 인쇄
Asset ID자동 생성되는 자산 번호

가져오기/내보내기

기능설명
CSV 가져오기대량 아이템 등록
CSV 내보내기백업 및 보험용
Import Ref중복 방지 및 업데이트
BOM 생성Bill of Materials TSV

멀티 유저 및 컬렉션

기능설명
그룹 기반같은 그룹 내 공유
컬렉션여러 인벤토리 분리 관리
가족 초대가족 구성원 추가
권한 관리기본적인 사용자 관리

알림 및 연동

기능설명
유지보수 알림예정된 점검 알림
Shoutrrr 연동Discord, Slack, Telegram, Email 등
MQTT 지원홈 오토메이션 연동
APIREST API 제공

대안 비교

기능HomeboxSnipe-ITGrocyInventree
대상가정IT/기업가정/재고제조/부품
복잡도매우 쉬움복잡중간복잡
QR 코드
보증 추적
소모품 추적
유지보수 일정
멀티 유저
리소스 사용매우 낮음높음낮음중간
설치 난이도매우 쉬움어려움쉬움중간

선택 가이드

용도추천
집안 물품/가구/전자제품Homebox
IT 장비/기업 자산Snipe-IT
식료품/소모품 재고Grocy
제조/부품/BOMInventree

시스템 요구 사항

항목요구 사양
CPU최소 사양
RAM<50MB (유휴 시)
저장소데이터 크기에 따라
포트7745 (기본)

Homebox는 Go로 작성되어 Raspberry Pi에서도 원활하게 실행됩니다.


Docker 설치

방법 1: 기본 설치

# docker-compose.yml
services:
  homebox:
    image: ghcr.io/sysadminsmedia/homebox:latest
    container_name: homebox
    restart: unless-stopped
    ports:
      - "3100:7745"
    volumes:
      - ./homebox-data:/data
    environment:
      - TZ=Asia/Seoul
      - HBOX_LOG_LEVEL=info
      - HBOX_LOG_FORMAT=text
      - HBOX_WEB_MAX_UPLOAD_SIZE=10

실행:

mkdir -p ~/homebox && cd ~/homebox

# docker-compose.yml 생성 후
docker compose up -d

접속: http://localhost:3100

방법 2: 회원가입 비활성화 (운영용)

# docker-compose.yml
services:
  homebox:
    image: ghcr.io/sysadminsmedia/homebox:latest
    container_name: homebox
    restart: unless-stopped
    ports:
      - "3100:7745"
    volumes:
      - ./homebox-data:/data
    environment:
      - TZ=Asia/Seoul
      - HBOX_LOG_LEVEL=info
      - HBOX_LOG_FORMAT=text
      - HBOX_WEB_MAX_UPLOAD_SIZE=10
      # 회원가입 비활성화
      - HBOX_OPTIONS_ALLOW_REGISTRATION=false

💡 먼저 회원가입으로 계정을 만든 후 HBOX_OPTIONS_ALLOW_REGISTRATION=false로 변경하세요.

방법 3: Rootless 이미지 (보안 강화)

# docker-compose.yml
services:
  homebox:
    image: ghcr.io/sysadminsmedia/homebox:latest-rootless
    container_name: homebox
    restart: unless-stopped
    ports:
      - "3100:7745"
    volumes:
      - ./homebox-data:/data
    environment:
      - TZ=Asia/Seoul
      - HBOX_LOG_LEVEL=info
      - HBOX_LOG_FORMAT=text
      - HBOX_WEB_MAX_UPLOAD_SIZE=10

권한 설정 필요:

mkdir -p ~/homebox/homebox-data
chown 65532:65532 -R ~/homebox/homebox-data

방법 4: Hardened 이미지 (최고 보안)

# docker-compose.yml
services:
  homebox:
    image: ghcr.io/sysadminsmedia/homebox:latest-hardened
    container_name: homebox
    restart: unless-stopped
    ports:
      - "3100:7745"
    volumes:
      - ./homebox-data:/data
    environment:
      - TZ=Asia/Seoul
      - HBOX_LOG_LEVEL=info

⚠️ Hardened 이미지는 distroless 기반으로 MQTT 클라이언트가 포함되지 않습니다.

방법 5: 이메일 알림 설정

# docker-compose.yml
services:
  homebox:
    image: ghcr.io/sysadminsmedia/homebox:latest
    container_name: homebox
    restart: unless-stopped
    ports:
      - "3100:7745"
    volumes:
      - ./homebox-data:/data
    environment:
      - TZ=Asia/Seoul
      - HBOX_LOG_LEVEL=info
      - HBOX_LOG_FORMAT=text
      - HBOX_WEB_MAX_UPLOAD_SIZE=10
      # SMTP 설정
      - HBOX_MAILER_HOST=smtp.gmail.com
      - HBOX_MAILER_PORT=587
      - HBOX_MAILER_USERNAME=your-email@gmail.com
      - HBOX_MAILER_PASSWORD=your-app-password
      - HBOX_MAILER_FROM=your-email@gmail.com

방법 6: Traefik 연동

# docker-compose.yml
services:
  homebox:
    image: ghcr.io/sysadminsmedia/homebox:latest
    container_name: homebox
    restart: unless-stopped
    volumes:
      - ./homebox-data:/data
    environment:
      - TZ=Asia/Seoul
      - HBOX_LOG_LEVEL=info
      - HBOX_LOG_FORMAT=text
      - HBOX_WEB_MAX_UPLOAD_SIZE=10
      - HBOX_OPTIONS_ALLOW_REGISTRATION=false
    networks:
      - traefik_network
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.homebox.rule=Host(`homebox.example.com`)"
      - "traefik.http.routers.homebox.entrypoints=websecure"
      - "traefik.http.routers.homebox.tls.certresolver=letsencrypt"
      - "traefik.http.services.homebox.loadbalancer.server.port=7745"

networks:
  traefik_network:
    external: true

방법 7: MQTT 라벨 프린터 연동

# docker-compose.yml
services:
  homebox:
    image: ghcr.io/sysadminsmedia/homebox:latest
    container_name: homebox
    restart: unless-stopped
    ports:
      - "3100:7745"
    volumes:
      - ./homebox-data:/data
      - ./labels:/labels
    environment:
      - TZ=Asia/Seoul
      - HBOX_LOG_LEVEL=info
      - HBOX_LOG_FORMAT=text
      - HBOX_WEB_MAX_UPLOAD_SIZE=10
      # 라벨 프린터 설정
      - HBOX_LABEL_MAKER_PRINT_COMMAND=cp {{.FileName}} /labels/label.png

환경 변수

기본 설정

변수설명기본값
TZ타임존UTC
HBOX_MODE실행 모드production
HBOX_LOG_LEVEL로그 레벨 (debug/info/warn/error)info
HBOX_LOG_FORMAT로그 형식 (text/json)text

웹 서버

변수설명기본값
HBOX_WEB_PORT웹 포트7745
HBOX_WEB_HOST바인딩 호스트
HBOX_WEB_MAX_UPLOAD_SIZE최대 업로드 크기 (MB)10

데이터 저장

변수설명기본값
HBOX_STORAGE_DATA데이터 디렉토리./.data
HBOX_STORAGE_SQLITE_URLSQLite 경로./.data/homebox.db

기능 옵션

변수설명기본값
HBOX_OPTIONS_ALLOW_REGISTRATION회원가입 허용true
HBOX_OPTIONS_ALLOW_ANALYTICS분석 허용true
HBOX_OPTIONS_AUTO_INCREMENT_ASSET_IDAsset ID 자동 증가true

이메일 (SMTP)

변수설명
HBOX_MAILER_HOSTSMTP 서버
HBOX_MAILER_PORTSMTP 포트
HBOX_MAILER_USERNAME사용자명
HBOX_MAILER_PASSWORD비밀번호
HBOX_MAILER_FROM발신자 주소

라벨 프린터

변수설명
HBOX_LABEL_MAKER_PRINT_COMMAND라벨 인쇄 명령어

초기 설정

1) 계정 생성

URL: http://localhost:3100
→ Register 클릭
→ 이메일, 이름, 비밀번호 입력

2) 회원가입 비활성화 (권장)

계정 생성 후 docker-compose.yml에서:

environment:
  - HBOX_OPTIONS_ALLOW_REGISTRATION=false
docker compose down
docker compose up -d

3) 위치 설정

기본 위치가 제공되지만, 실제 집 구조에 맞게 수정하세요:

집
├── 거실
│   ├── TV 선반
│   └── 소파 옆
├── 안방
│   ├── 옷장
│   └── 서랍장
├── 주방
│   └── 싱크대 아래
└── 창고
    └── 선반 1

4) 라벨 생성

자주 사용할 라벨 예시:

  • 전자제품
  • 가구
  • 보증서 있음
  • 정기 점검 필요
  • 중요
  • 처분 예정

사용 가이드

아이템 추가

웹 UI:

  1. Items → Create Item
  2. 이름, 위치 선택
  3. 추가 정보 입력 (선택)
    • 설명, 수량
    • 구매일, 가격
    • 보증 정보
    • 커스텀 필드
  4. 첨부파일 (영수증, 사진)

CSV 대량 가져오기

CSV 형식:

HB.import_ref,HB.name,HB.location,HB.label,HB.description,HB.purchase_price
item-001,삼성 TV 65인치,거실 / TV 선반,전자제품;보증서 있음,2023년 구매,1500000
item-002,LG 냉장고,주방,전자제품,양문형 냉장고,2000000
item-003,이케아 책장,서재,가구,빌리 책장,150000

지원 컬럼:

컬럼설명
HB.import_ref중복 방지용 고유 ID (권장)
HB.name아이템 이름 (필수)
HB.location위치 (경로: 집 / 거실 / TV 선반)
HB.label라벨 (세미콜론 구분)
HB.description설명
HB.quantity수량
HB.purchase_price구매 가격
HB.purchase_from구매처
HB.purchase_time구매일 (YYYY-MM-DD)
HB.warranty_expires보증 만료일
HB.field.{필드명}커스텀 필드

가져오기: Tools → Import Items → CSV 파일 업로드

QR 코드 활용

QR 코드 생성:

  • 아이템 상세 페이지 → QR 아이콘 클릭
  • 위치/라벨 페이지에서도 생성 가능

라벨 인쇄:

  • Tools → Label Generator
  • Avery 5260 형식 지원
  • Asset ID 기반 대량 생성

모바일 스캔:

  • 스마트폰 카메라로 QR 스캔
  • 바로 해당 아이템 페이지로 이동

유지보수 알림

알림 설정:

  1. Profile → Notifiers → Create
  2. Shoutrrr URL 입력

Shoutrrr URL 예시:

서비스URL 형식
Discorddiscord://token@webhookid
Telegramtelegram://token@telegram?chats=@channel
Slackslack://token@channel
Emailsmtp://user:pass@host:port/?from=from&to=to

유지보수 일정:

  • 아이템 → Maintenance → Add Entry
  • 다음 점검일 설정
  • 알림 자동 발송

백업 및 복원

백업

데이터 위치:

./homebox-data/
├── homebox.db      # SQLite 데이터베이스
├── attachments/    # 첨부파일
└── ...

백업 방법:

# 전체 데이터 디렉토리 백업
tar -czvf homebox-backup-$(date +%Y%m%d).tar.gz homebox-data/

# 또는 Docker 볼륨 사용 시
docker run --rm \
  -v homebox-data:/data \
  -v $(pwd):/backup \
  alpine tar czvf /backup/homebox-backup.tar.gz /data

CSV 내보내기

Tools → Export Items → CSV 다운로드

보험 청구 시 유용합니다.

복원

# 백업 해제
tar -xzvf homebox-backup.tar.gz

# 컨테이너 재시작
docker compose up -d

업데이트

cd ~/homebox

# 백업 먼저!
tar -czvf homebox-backup-$(date +%Y%m%d).tar.gz homebox-data/

# 최신 이미지
docker compose pull

# 재시작
docker compose down
docker compose up -d

# 로그 확인
docker compose logs -f homebox

⚠️ 업그레이드 전 반드시 백업하세요. 다운그레이드는 백업 없이 불가능합니다.


트러블슈팅

권한 오류 (Rootless 이미지)

# 데이터 폴더 권한 설정
chown 65532:65532 -R ./homebox-data

업로드 실패

environment:
  # 업로드 크기 증가 (MB)
  - HBOX_WEB_MAX_UPLOAD_SIZE=50

로그인 안 됨

# 로그 확인
docker compose logs homebox | grep -i error

데이터베이스 손상

# SQLite 무결성 검사
docker compose exec homebox sqlite3 /data/homebox.db "PRAGMA integrity_check;"

이미지 태그

태그설명
latest안정 버전
latest-rootless비root 실행
latest-hardened최고 보안 (distroless)
nightly개발 버전

활용 사례

1. 가정 자산 인벤토리

목적: 보험, 이사, 자산 관리

  • 가구, 전자제품, 귀중품 등록
  • 구매 영수증 첨부
  • 보증서 만료일 추적
  • 보험 청구용 CSV 내보내기

2. 보증서/영수증 관리

목적: 보증 청구, AS 접수

  • 구매일, 가격, 보증 기간 기록
  • 영수증/보증서 스캔 첨부
  • 보증 만료 전 알림
  • QR 코드로 빠른 검색

3. 창고/수납 관리

목적: 물건 찾기

  • 위치 계층 구조 (창고 / 선반 1 / 박스 A)
  • QR 라벨 부착
  • 스마트폰으로 스캔하여 내용물 확인

4. 이사 준비

목적: 물건 분류, 처분

  • “처분 예정” 라벨로 기증/판매 물품 분류
  • 위치별로 짐 정리
  • 새 집 위치 미리 설정

5. 가족 공유

목적: 가족 구성원 모두 접근

  • 그룹으로 가족 초대
  • 누구나 물건 위치 검색 가능
  • “엄마, OO 어디 있어?”에 즉답

마무리

Homebox는 가정 사용자를 위해 설계된 심플하고 빠른 인벤토리 관리 시스템입니다. 복잡한 IT 자산 관리 도구 대신, 집안 물품을 체계적으로 관리하고 보증서/영수증을 보관하는 데 최적화되어 있습니다.

핵심 장점

장점설명
단순함설정 5분, 학습 곡선 없음
가벼움<50MB RAM, Raspberry Pi 가능
QR 코드라벨 생성, 모바일 스캔
보증 추적구매/보증 정보, 알림
CSV 가져오기대량 등록, 백업
멀티 유저가족 공유

이런 분께 추천

집안 물품을 체계적으로 관리하고 싶은 분
보증서/영수증을 잃어버리는 분
이사를 준비하는 분
보험 청구용 자산 목록이 필요한 분
"이거 어디 뒀더라?"를 자주 묻는 분
Snipe-IT가 너무 복잡한 분



댓글 남기기