Homebox

Homebox
Photo by Keji Gao / Unsplash

I'm going to give Homebox a go since SnipeIt is just a bit too powerful and I'd spend too much time just fussing and administering it.

Create Virtual Machine

Steps performed on HV-03 via Windows Admin Center

  • I navigate to Virtual Machines
  • I click on Add then New
    • Name: HOMEBOX-01
    • Generation: 2 (Recommended)
    • Virtual Processors: 2
    • Memory: 2GB
    • Network: Default External Switch
    • Isolation Mode: Default (None)
    • Storage:
      • New Disk
      • Size: 40GB
      • Select Install Operating System Later
      • Click Create
  • Select HOMEBOX-01
  • Click on Settings
    • Navigate to Disk
      • Select Add Disk
      • Select Use an existing virtual hard disk or ISO image file
      • I load my Debian ISO
      • I click Save disk settings
    • Navigate to Boot Order
      • DVD
      • Hard Disk
      • Network Adapter
      • I click Save boot order settings
    • I navigate to Security
      • I check Enable Secure Boot
      • Template: Microsoft UEFI Certificate Authority
      • Click Save security settings
    • I click Save
  • Click on Power and then Start

Install Operating System

Steps performed on HOMEBOX-01

  • I walk through the Debian installation wizard
  • When the wizard has finished I reboot

Configure Operating System

Configure Sudo

Steps performed on HOMEBOX-01

  • apt install sudo
  • /sbin/adduser david sudo
    • Adding user 'david' to group 'sudo' ...
    • Done

Configure Network

Steps performed on HOMEBOX-01

  • nano /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet static
address 10.10.10.XXX
gateway 10.10.10.254
netmask 255.255.255.0
  • I save the interfaces file
  • systemctl restart networking

Steps performed on DC-02 via Windows Admin Center

  • I navigate to DNS
  • I select domain.local
  • I click Create a new DNS Record
    • DNS Record Type: Host (A)
    • Record Name: HOMEBOX
    • FQDN: HOMEBOX.domain.local
    • IP Address: 10.10.10.XXX
    • Time to live: 3600
    • I click Save

Configure SSH Key

Steps performed on desktop via Windows Terminal

  • ssh-keygen -t ed25519
  • Move-Item -Path c:\Users\david\filename* -Destination c:\Users\david\.ssh -Force
  • I open Windows Terminal Settings
  • I open the JSON file and add the following:
            {
                "colorScheme": "Ubuntu-ColorScheme",
                "commandline": "ssh -i \"~/.ssh/example\" [email protected]",
                "experimental.retroTerminalEffect": false,
                "font": 
                {
                    "face": "Cascadia Code"
                },
                "guid": "{0caa0dad-35be-5f56-a8ff-XXXXXXXXXXXX}",
                "hidden": false,
                "name": "HOMEBOX-01",
                "tabTitle": "HOMEBOX-01"
            },
  • I make sure the GUID is unique and save the JSON file

Configure SSH

Steps performed on HOMEBOX-01

  • mkdir /home/david/.ssh
  • nano /home/david/.ssh/authorized_keys
  • I paste in the public key and save
  • chmod 600 /home/david/.ssh/authorized_keys
  • sudo nano /etc/ssh/sshd_config
    • PermitRootLogin no
    • PubkeyAuthentication yes
    • PubkeyAcceptedKeyTypes ssh-ed25519
    • PasswordAuthentication no
    • AuthorizedKeysFile /home/david/.ssh/authorized_keys
  • I save the sshd_config file
  • sudo sshd -t
  • sudo systemctl restart ssh

Configure UFW

Steps performed on HOMEBOX-01

  • sudo apt install ufw
  • sudo ufw allow 22
  • sudo ufw allow 3100
  • sudo ufw enable

Configure Fail2Ban

Steps performed on HOMEBOX-01

  • sudo apt install fail2ban
  • sudo nano /etc/fail2ban/jail.local
[DEFAULT]
bantime = 100m
findtime = 5m
maxretry = 5
ignoreip = 10.10.10.XXX

[sshd]
enabled = true
port = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
  • I save the file jail.local
  • sudo systemctl enable fail2ban
  • sudo systemctl start fail2ban

Install Homebox Dependencies

Steps performed on HOMEBOX-01

  • sudo apt install docker
  • sudo apt install docker-compose

Install Homebox

Steps performed on HOMEBOX-01

  • sudo mkdir /apps
  • sudo mkdir /apps/homebox
  • cd /apps/homebox
  • sudo nano 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
    volumes:
      - homebox-data:/data/
    ports:
      - 3100:7745

volumes:
   homebox-data:
     driver: local
  • I save the docker-compose.yml file
  • sudo docker-compose pull
  • sudo docker-compose up -d

I browse to http://homebox.domain.local:3100 in Firefox to test. The login page loads successfully! I can't find any documentation for a default login or admin account so I just go ahead and register one. Everything seems to be working just fine. The documentation does note that once you've signed up all the accounts you want, you will need to close registration. This is done by including the setting HBOX_OPTIONS_ALLOW_REGISTRATION to the docker-compose.yml file.

Other than that I guess I just have to start putting everything we own into Homebox now. That will be quite a project.