Homebox

Homebox is an open source inventory and organization system built for the Home User.


Note

For this guide you should be familiar with the basic concepts of

Prerequisites

Set up a subdomain and associate the web backend with it

First add a new subdomain and then associate the homebox default port with that subdomain:

[isabell@stardust ~]$ uberspace web domain add homebox.example.com
The webserver's configuration has been adapted.
Now you can use the following records for your DNS:
    A -> 35.195.215.42
    AAAA -> 2a00:1450:4005:802::200e
[isabell@stardust ~]$ uberspace web backend set homebox.example.com --http --port 7745
[isabell@stardust ~]$

The uberspace web domain add command will return different instructions / ip addresses on your system. Be sure to use the output from your command executions and not from this tutorial.

Note

Don’t forget to add the subdomain into the DNS record of your DNS provider.

Installation

The official documentation recommends using Docker, but since Uberspace doesn’t support Docker and the Docker container doesn’t do that much we set up the application as a supervisord process.

Download latest release and extract

Download the latest release from the GitHub releases page:

[isabell@stardust ~]$ wget https://github.com/hay-kot/homebox/releases/download/v0.10.3/homebox_Linux_x86_64.tar.gz
[isabell@stardust ~]$ mkdir -p ~/homebox/data
[isabell@stardust ~]$ tar -xf homebox_Linux_x86_64.tar.gz -C ~/homebox
[isabell@stardust ~]$

Create supervisord service and start the app

Create the supervisord entry at ~/etc/services.d/homebox.ini:

[program:homebox]
directory=%(ENV_HOME)s/homebox
command=%(ENV_HOME)s/homebox/homebox
environment=HBOX_MODE="production",HBOX_STORAGE_DATA="%(ENV_HOME)s/homebox/data/",HBOX_STORAGE_SQLITE_URL="%(ENV_HOME)s/homebox/data/homebox.db?_fk=1"
autostart=true
autorestart=true
stderr_logfile = %(ENV_HOME)s/homebox/err.log
stdout_logfile = %(ENV_HOME)s/homebox/out.log
startsecs=60

After creating the configuration, tell supervisord to refresh its configuration and start the service:

[isabell@stardust ~]$ supervisorctl reread
homebox: available
[isabell@stardust ~]$ supervisorctl update
homebox: added process group
[isabell@stardust ~]$

Great, you’re done. Your homebox installation should be reachable at https://homebox.example.com now. There is no default admin account. The application starts with registrations opened.

Closing user registration

Since the app is now publicly available on the internet it might be a good idea to close down registration once you have created the accounts that you need. Create the accounts you want, then close registration by setting HBOX_OPTIONS_ALLOW_REGISTRATION to false in the supervisord ini:

[program:homebox]
directory=%(ENV_HOME)s/homebox
command=%(ENV_HOME)s/homebox/homebox
environment=HBOX_MODE="production",HBOX_STORAGE_DATA="%(ENV_HOME)s/homebox/data/",HBOX_STORAGE_SQLITE_URL="%(ENV_HOME)s/homebox/data/homebox.db?_fk=1",HBOX_OPTIONS_ALLOW_REGISTRATION="false"
autostart=true
autorestart=true
stderr_logfile = %(ENV_HOME)s/homebox/err.log
stdout_logfile = %(ENV_HOME)s/homebox/out.log
startsecs=60

Then restart the service

[isabell@stardust ~]$ supervisorctl update
homebox: stopped
homebox: updated process group
[isabell@stardust ~]$

Updates

To update Homebox repeat the steps described in Download latest release and extract. After updating the binary tell supervisord to restart the service:

[isabell@stardust ~]$ supervisorctl restart homebox
homebox: stopped
homebox: started
[isabell@stardust ~]$ supervisorctl status
homebox                            RUNNING   pid 26020, uptime 0:03:14
[isabell@stardust ~]$

Tested with Homebox 0.10.8, Uberspace 7.15.15

Written by: fap <https://github.com/fapdash/>