summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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.