There is no package built for FreeBSD so the application will have to be built from source
Building from source
## Install dependencies
pkg install mongodb
pkg install npm
pkg install git (only if you want to use git to checkout the source)
npm install -g typescript
## Clone the repo and build the application
mkdir -p /usr/local/share/petio
cd /usr/local/share/petio
git clone -b dev https://github.com/petio-team/petio.git .
cd pkg/admin
npm install
npm run build
cd ../frontend
npm install
npm run build
cd ../api
npm install
npm run build
cd
mkdir -p /usr/local/petio
chown $petio_user:$petio_group /usr/local/petio
su -m $petio_user
setenv VIEWS_FOLDER /usr/local/share/petio/pkg/
setenv DATA_FOLDER /usr/local/petio
# Run the application
node /usr/local/share/petio/pkg/api/dist/main.js --host 0.0.0.0 --port 7777
Create a Petio service
rc.d script to run petio. It checks whether mongod is enabled and running, warns if not, and forcefully starts it if not running.
Place this script in /usr/local/etc/rc.d/petio
Give it execute permissions: chmod +x /usr/local/etc/rc.d/petio
Configure it in /etc/rc.conf
sysrc petio_enable="YES"
optionally set user: sysrc petio_user="petio"
optionally set group: sysrc petio_group="petio"
optionally set data directory: sysrc petio_data_dir="/usr/local/petio"
#!/bin/sh
# PROVIDE: petio
# REQUIRE: DAEMON mongod
# BEFORE: LOGIN
# KEYWORD: shutdown
. /etc/rc.subr
name=petio
rcvar=petio_enable
load_rc_config $name
: ${petio_enable:="NO"}
: ${petio_user:="petio"}
: ${petio_group:="petio"}
: ${petio_data_dir:="/usr/local/petio"}
export NODE_ENV=production
export APP_DIR=/usr/local/share/petio
export VIEWS_FOLDER=/usr/local/share/petio/pkg/
export DATA_FOLDER=${petio_data_dir}
pidfile="/var/run/${name}/${name}.pid"
start_precmd="petio_precmd"
procname="/usr/local/bin/node"
command="/usr/sbin/daemon"
command_args="-f -p ${pidfile} ${procname} --no-warnings /usr/local/share/petio/pkg/api/dist/main.js --host 0.0.0.0 --port 7777"
petio_precmd()
{
if [ ! -d $(dirname ${pidfile}) ]; then
install -d -o ${petio_user} -g ${petio_group} $(dirname ${pidfile})
fi
if [ ! -d ${petio_data_dir} ]; then
install -d -o ${petio_user} -g ${petio_group} ${petio_data_dir}
fi
# make sure mongod is running
if ! checkyesno mongod_enable && \
! /usr/local/etc/rc.d/mongod forcestatus 1>/dev/null 2>&1; then
echo "Make sure to enable and start mongod"
/usr/local/etc/rc.d/mongod forcestart || return 1
fi
return 0
}
run_rc_command "$1"
Once you've completed these steps, you can navigate to http://<hostname>:7777 to start configuring Petio.