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/>