summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJesús Daniel Colmenares Oviedo <dtxdf@FreeBSD.org>2025-07-04 13:14:32 -0400
committerJesús Daniel Colmenares Oviedo <dtxdf@FreeBSD.org>2025-07-04 13:20:49 -0400
commitca2724a67d3820cc3ac238faf2df60cb6af727a6 (patch)
tree335a7e5adf2f6ae14adc5f8cea0f5c50c4ed5058
parenttextproc/py-docx-generator: Add missing dependency (diff)
finance/homebox: New port: Inventory and organization system built for the Home User
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. While developing this project, I've tried to keep the following principles in mind: - Simple - Homebox is designed to be simple and easy to use. No complicated setup or configuration required. Use either a single docker container, or deploy yourself by compiling the binary for your platform of choice. - Blazingly Fast - Homebox is written in Go, which makes it extremely fast and requires minimal resources to deploy. In general, idle memory usage is less than 50MB for the whole container. - Portable - Homebox is designed to be portable and run on anywhere. We use SQLite and an embedded Web UI to make it easy to deploy, use, and backup. Approved by: acm (mentor)
-rw-r--r--GIDs2
-rw-r--r--UIDs2
-rw-r--r--finance/Makefile1
-rw-r--r--finance/homebox/Makefile53
-rw-r--r--finance/homebox/distinfo7
-rw-r--r--finance/homebox/files/homebox.in33
-rw-r--r--finance/homebox/pkg-descr18
7 files changed, 114 insertions, 2 deletions
diff --git a/GIDs b/GIDs
index a3973718fa8a..f9fa5c057101 100644
--- a/GIDs
+++ b/GIDs
@@ -778,7 +778,7 @@ beehive:*:832:
pocket-id:*:834:
filebrowser:*:835:
tinyauth:*:836:
-# free: 837
+homebox:*:837:
# free: 838
# free: 839
netdisco:*:840:
diff --git a/UIDs b/UIDs
index 7d43fd99f971..e852d87c9771 100644
--- a/UIDs
+++ b/UIDs
@@ -784,7 +784,7 @@ beehive:*:832:832::0:0:beehive user:/nonexistent:/usr/sbin/nologin
pocket-id:*:834:834::0:0:OIDC provider that allows users to authenticate with their passkeys:/var/db/pocket-id:/usr/sbin/nologin
filebrowser:*:835:835::0:0:Web File Browser:/var/db/filebrowser:/usr/sbin/nologin
tinyauth:*:836:836::0:0:Simplest way to protect your apps with a login screen:/nonexistent:/usr/sbin/nologin
-# free: 837
+homebox:*:837:837::0:0:Inventory and organization system built for the Home User:/var/db/homebox:/usr/sbin/nologin
# free: 838
# free: 839
netdisco:*:840:840::0:0:netdisco daemon:/usr/local/etc/netdisco:/bin/sh
diff --git a/finance/Makefile b/finance/Makefile
index 3bc8bbd91aab..636d68dbf6f0 100644
--- a/finance/Makefile
+++ b/finance/Makefile
@@ -36,6 +36,7 @@
SUBDIR += gnucash-docs
SUBDIR += grisbi
SUBDIR += homebank
+ SUBDIR += homebox
SUBDIR += hs-hledger
SUBDIR += hs-hledger-ui
SUBDIR += hs-hledger-web
diff --git a/finance/homebox/Makefile b/finance/homebox/Makefile
new file mode 100644
index 000000000000..82e6f3bea236
--- /dev/null
+++ b/finance/homebox/Makefile
@@ -0,0 +1,53 @@
+PORTNAME= homebox
+DISTVERSIONPREFIX= v
+DISTVERSION= 0.20.2
+CATEGORIES= finance
+MASTER_SITES= LOCAL/dtxdf/${PORTNAME}/
+DISTFILES= ${PORTNAME}-${DISTVERSION}.frontend${EXTRACT_SUFX}
+
+MAINTAINER= dtxdf@FreeBSD.org
+COMMENT= Inventory and organization system built for the Home User
+WWW= https://homebox.software
+
+LICENSE= AGPLv3
+
+USES= go:modules
+USE_GITHUB= yes
+GH_ACCOUNT= sysadminsmedia
+
+USE_RC_SUBR= ${PORTNAME}
+
+GO_MOD_DIST= github
+GO_MODULE= github.com/sysadminsmedia/${PORTNAME}
+GO_TARGET= ./app/api:${PORTNAME}
+GO_BUILDFLAGS= -ldflags "\
+ -X 'main.commit=${GITID}' \
+ -X 'main.buildTime=${BUILD_TIME}' \
+ -X 'main.version=${DISTVERSIONPREFIX}${DISTVERSION}'"
+
+SUB_LIST= USER=${USERS:[1]}
+
+WRKSRC_SUBDIR= backend
+
+USERS= ${HOMEBOX_USER}
+GROUPS= ${HOMEBOX_GROUP}
+
+PLIST_FILES= bin/${PORTNAME} \
+ "@dir(${HOMEBOX_USER},${HOMEBOX_GROUP},0700) /var/db/${PORTNAME}"
+
+# Run 'git checkout ${DISTVERSIONPREFIX}${DISTVERSION} && git rev-parse HEAD'
+# in the Homebox repository to get the value of GITID.
+GITID= bd604f5867defe38d66a476226546f65f5e0e223
+
+HOMEBOX_USER= ${PORTNAME}
+HOMEBOX_GROUP= ${HOMEBOX_USER}
+
+pre-build:
+ @${RM} -r ${WRKSRC}/app/api/static/public
+ @${MKDIR} ${WRKSRC}/app/api/static/public
+ @cd ${WRKDIR}/homebox-frontend && ${COPYTREE_SHARE} . ${WRKSRC}/app/api/static/public
+
+post-install:
+ @${MKDIR} ${STAGEDIR}/var/db/${PORTNAME}
+
+.include <bsd.port.mk>
diff --git a/finance/homebox/distinfo b/finance/homebox/distinfo
new file mode 100644
index 000000000000..e8a102eb4311
--- /dev/null
+++ b/finance/homebox/distinfo
@@ -0,0 +1,7 @@
+TIMESTAMP = 1751649092
+SHA256 (go/finance_homebox/sysadminsmedia-homebox-v0.20.2_GH0/homebox-0.20.2.frontend.tar.gz) = a40b4c1d24f89317f73d1dcbdb066091cf7d0f2d6d5dc6555bec2ff974886193
+SIZE (go/finance_homebox/sysadminsmedia-homebox-v0.20.2_GH0/homebox-0.20.2.frontend.tar.gz) = 937158
+SHA256 (go/finance_homebox/sysadminsmedia-homebox-v0.20.2_GH0/go.mod) = 396b62476859e771e2683d03a3acef10d15bbcea10f7db86fc6bba99529f5e13
+SIZE (go/finance_homebox/sysadminsmedia-homebox-v0.20.2_GH0/go.mod) = 10316
+SHA256 (go/finance_homebox/sysadminsmedia-homebox-v0.20.2_GH0/sysadminsmedia-homebox-v0.20.2_GH0.tar.gz) = e541fb4e807d061525afded4e574ed53f846d3390d459b9d5b5eec9c145d5330
+SIZE (go/finance_homebox/sysadminsmedia-homebox-v0.20.2_GH0/sysadminsmedia-homebox-v0.20.2_GH0.tar.gz) = 1161314
diff --git a/finance/homebox/files/homebox.in b/finance/homebox/files/homebox.in
new file mode 100644
index 000000000000..6a7d71438e3e
--- /dev/null
+++ b/finance/homebox/files/homebox.in
@@ -0,0 +1,33 @@
+#!/bin/sh
+
+# PROVIDE: homebox
+# REQUIRE: LOGIN
+# KEYWORD: shutdown
+#
+# Configuration settings for homebox in /etc/rc.conf
+#
+# homebox_enable (bool): Enable homebox.
+# homebox_log (str): Log output.
+# homebox_runas (str): User to run homebox as.
+# homebox_args (str): Arguments used by homebox.
+#
+
+. /etc/rc.subr
+
+name="homebox"
+desc="Inventory and organization system built for the Home User"
+rcvar="${name}_enable"
+
+load_rc_config $name
+
+: ${homebox_enable:="NO"}
+: ${homebox_log:="/var/log/homebox.log"}
+: ${homebox_runas:="%%USER%%"}
+: ${homebox_args="--mode production --storage-conn-string file:///var/db/homebox/ --database-sqlite-path '/var/db/homebox/homebox.db?_pragma=busy_timeout=999&_pragma=journal_mode=WAL&_fk=1&_time_format=sqlite'"}
+
+pidfile="/var/run/${name}.pid"
+procname="/usr/local/bin/${name}"
+command="/usr/sbin/daemon"
+command_args="-c -u '${homebox_runas}' -p '${pidfile}' -t '${desc}' -o '${homebox_log}' '${procname}' ${homebox_args}"
+
+run_rc_command "$1"
diff --git a/finance/homebox/pkg-descr b/finance/homebox/pkg-descr
new file mode 100644
index 000000000000..cee5a150ee2e
--- /dev/null
+++ b/finance/homebox/pkg-descr
@@ -0,0 +1,18 @@
+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. While developing this project, I've tried to keep the following
+principles in mind:
+
+- Simple - Homebox is designed to be simple and easy to use. No
+complicated setup or configuration required. Use either a single
+docker container, or deploy yourself by compiling the binary for
+your platform of choice.
+
+- Blazingly Fast - Homebox is written in Go, which makes it extremely
+fast and requires minimal resources to deploy. In general, idle
+memory usage is less than 50MB for the whole container.
+
+- Portable - Homebox is designed to be portable and run on anywhere.
+We use SQLite and an embedded Web UI to make it easy to deploy,
+use, and backup.