diff options
author | Jesús Daniel Colmenares Oviedo <dtxdf@FreeBSD.org> | 2025-07-04 13:14:32 -0400 |
---|---|---|
committer | Jesús Daniel Colmenares Oviedo <dtxdf@FreeBSD.org> | 2025-07-04 13:20:49 -0400 |
commit | ca2724a67d3820cc3ac238faf2df60cb6af727a6 (patch) | |
tree | 335a7e5adf2f6ae14adc5f8cea0f5c50c4ed5058 | |
parent | textproc/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-- | GIDs | 2 | ||||
-rw-r--r-- | UIDs | 2 | ||||
-rw-r--r-- | finance/Makefile | 1 | ||||
-rw-r--r-- | finance/homebox/Makefile | 53 | ||||
-rw-r--r-- | finance/homebox/distinfo | 7 | ||||
-rw-r--r-- | finance/homebox/files/homebox.in | 33 | ||||
-rw-r--r-- | finance/homebox/pkg-descr | 18 |
7 files changed, 114 insertions, 2 deletions
@@ -778,7 +778,7 @@ beehive:*:832: pocket-id:*:834: filebrowser:*:835: tinyauth:*:836: -# free: 837 +homebox:*:837: # free: 838 # free: 839 netdisco:*:840: @@ -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. |