From d33ae2a50ae9af1c220f82e8da0fee896aa70d83 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 6 Dec 2020 17:51:18 +1300 Subject: [PATCH 01/19] Update server.js Eliminate requirement to CD into project directory prior to running `npm start` or `node server.js`. --- server.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/server.js b/server.js index 57b5b71f9..8f04edd30 100644 --- a/server.js +++ b/server.js @@ -14,6 +14,8 @@ app.use('/', expressStaticGzip(`${__dirname}/build`, { index : false })); +process.chdir(__dirname); + //app.use(express.static(`${__dirname}/build`)); app.use(require('body-parser').json({ limit: '25mb' })); app.use(require('cookie-parser')()); From 99656357b10cd4d103c21bb944a96ee86b411c76 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 6 Dec 2020 18:01:39 +1300 Subject: [PATCH 02/19] Add rc.d daemon script Adds a RC.d daemon script to control the HomeBrewery status. Based on Andrew Pearson's Node-RED script for the same purpose. --- freebsd/rc.d/homebrewery | 51 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 freebsd/rc.d/homebrewery diff --git a/freebsd/rc.d/homebrewery b/freebsd/rc.d/homebrewery new file mode 100644 index 000000000..6521804a2 --- /dev/null +++ b/freebsd/rc.d/homebrewery @@ -0,0 +1,51 @@ +#!/bin/sh +# +# PROVIDE: homebrewery +# REQUIRE: NETWORKING +# KEYWORD: shutdown + +# Author: S Robertson +# Version: 1.0.0 + +# Description: +# This script runs HomeBrewery as a service under the supplied user on boot + +# How to use: +# Place this file in /usr/local/etc/rc.d/ +# Add homebrewery_enable="YES" to /etc/rc.config +# (Optional) To run as non-root, add homebrewery_runAs="homebrewery" to /etc/rc.config +# (Optional) To pass HomeBrewery args, add homebrewery_args="" to /etc/rc.config + +# Freebsd rc library +. /etc/rc.subr + +# General Info +name="homebrewery" # Safe name of program +program_name="homebrewery" # Name of exec +title="HomeBrewery" # Title to display in top/htop + +# RC.config vars +load_rc_config $name # Loading rc config vars +: ${homebrewery_enable="NO"} # Default: Do not enable HomeBrewery +: ${homebrewery_runAs="root"} # Default: Run HomeBrewery as root + +# Freebsd Setup +rcvar=homebrewery_enable # Enables the rc.conf YES/NO flag +pidfile="/var/run/${program_name}.pid" # File that allows the system to keep track of HomeBrewery status + +# Env Setup +export HOME=$( getent passwd "homebrewery_runAs" | cut -d: -f6 ) # Gets the home directory of the runAs user +export NODE_ENV="local" +export PORT=8001 + +# Command Setup +exec_cmd="/homebrewery/server.js" # Path to the HomeBrewery server.js, /usr/local/bin/ when installed globally +output_file="/var/log/${program_name}.log" # Path to HomeBrewery output file + +# Command +command="/usr/sbin/daemon" +command_args="-r -t ${title} -u ${homebrewery_runAs} -o ${output_file} -P ${pidfile} /usr/local/bin/node ${exec_cmd} ${homebrewery_args}" + +# Loading Config +load_rc_config ${name} +run_rc_command "$1" From 65f4094b5aaf08a61f2329fc061744a9f14f4f06 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 6 Dec 2020 18:06:23 +1300 Subject: [PATCH 03/19] Create install.sh --- freebsd/install.sh | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 freebsd/install.sh diff --git a/freebsd/install.sh b/freebsd/install.sh new file mode 100644 index 000000000..261213047 --- /dev/null +++ b/freebsd/install.sh @@ -0,0 +1,20 @@ +#!/bin/sh + +pkg install -y git nano node npm mongodb36-3.6.20 + +sysrc mongod_enable=YES +service mongod start + +cd / +git clone https://github.com/G-Ambatte/homebrewery.git + +cd homebrewery +npm install +npm audit fix -force +npm run postinstall + +cp freebsd/rc.d/homebrewery /etc/rc.d/ +chmod +x /etc/rc.d/homebrewery + +sysrc homebrewery=YES +service homebrewery start \ No newline at end of file From 88631ed7a82bae93feae4530ebffeef23426d34f Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 6 Dec 2020 18:35:24 +1300 Subject: [PATCH 04/19] Update install.sh --- freebsd/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/freebsd/install.sh b/freebsd/install.sh index 261213047..64d88b4ed 100644 --- a/freebsd/install.sh +++ b/freebsd/install.sh @@ -16,5 +16,5 @@ npm run postinstall cp freebsd/rc.d/homebrewery /etc/rc.d/ chmod +x /etc/rc.d/homebrewery -sysrc homebrewery=YES +sysrc homebrewery_enable=YES service homebrewery start \ No newline at end of file From 897e7dccc6639607670506e59f4ba6939474ccb7 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 6 Dec 2020 18:43:01 +1300 Subject: [PATCH 05/19] Update install.sh Switch to latest version of MongoDB --- freebsd/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/freebsd/install.sh b/freebsd/install.sh index 64d88b4ed..2da579e42 100644 --- a/freebsd/install.sh +++ b/freebsd/install.sh @@ -1,6 +1,6 @@ #!/bin/sh -pkg install -y git nano node npm mongodb36-3.6.20 +pkg install -y git nano node npm mongodb44-4.4.1 sysrc mongod_enable=YES service mongod start From 1224a54884e01edd9e9cff2e02e5e67f1470fca8 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 6 Dec 2020 20:39:43 +1300 Subject: [PATCH 06/19] Add config items Add config items and default values: - web_port (8001) - environment (local) --- config/default.json | 6 ++++-- server.js | 7 ++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/config/default.json b/config/default.json index 1dc3dcb86..ff148ca32 100644 --- a/config/default.json +++ b/config/default.json @@ -1,5 +1,7 @@ { "host" : "homebrewery.local.naturalcrit.com:8000", "naturalcrit_url" : "local.naturalcrit.com:8010", - "secret" : "secret" -} \ No newline at end of file + "secret" : "secret", + "web_port" : 8001, + "environment" : "local" +} diff --git a/server.js b/server.js index 8f04edd30..58f29884a 100644 --- a/server.js +++ b/server.js @@ -27,6 +27,11 @@ const config = require('nconf') .file('environment', { file: `config/${process.env.NODE_ENV}.json` }) .file('defaults', { file: 'config/default.json' }); +if ( !process.env.NODE_ENV && config.get('environment') ) { + process.env.NODE_ENV = config.get('environment'); + console.log('NODE_ENV set from config') +} + //DB const mongoose = require('mongoose'); mongoose.connect(config.get('mongodb_uri') || config.get('mongolab_uri') || 'mongodb://localhost/naturalcrit', @@ -232,6 +237,6 @@ app.use((req, res)=>{ }); -const PORT = process.env.PORT || 8000; +const PORT = process.env.PORT || config.get('web_port') || 8000; app.listen(PORT); console.log(`server on port:${PORT}`); From e727f1749f8fe823e31b042efee85b2a52d90a9f Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 6 Dec 2020 20:41:48 +1300 Subject: [PATCH 07/19] Remove environment variables from rc.d Remove environment variables from rc.d as they are now in config/default.json. --- freebsd/rc.d/homebrewery | 2 -- 1 file changed, 2 deletions(-) diff --git a/freebsd/rc.d/homebrewery b/freebsd/rc.d/homebrewery index 6521804a2..e318f23f8 100644 --- a/freebsd/rc.d/homebrewery +++ b/freebsd/rc.d/homebrewery @@ -35,8 +35,6 @@ pidfile="/var/run/${program_name}.pid" # File that allows the system to keep # Env Setup export HOME=$( getent passwd "homebrewery_runAs" | cut -d: -f6 ) # Gets the home directory of the runAs user -export NODE_ENV="local" -export PORT=8001 # Command Setup exec_cmd="/homebrewery/server.js" # Path to the HomeBrewery server.js, /usr/local/bin/ when installed globally From 443094d28251891b236d8dcdb1e055ab4fb11189 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 6 Dec 2020 21:54:20 +1300 Subject: [PATCH 08/19] Update server.js Change to setting NODE_ENV; default to 'local' if not set via environment variable or in the config file. --- server.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/server.js b/server.js index 58f29884a..39e703d23 100644 --- a/server.js +++ b/server.js @@ -27,9 +27,14 @@ const config = require('nconf') .file('environment', { file: `config/${process.env.NODE_ENV}.json` }) .file('defaults', { file: 'config/default.json' }); -if ( !process.env.NODE_ENV && config.get('environment') ) { - process.env.NODE_ENV = config.get('environment'); - console.log('NODE_ENV set from config') +if ( !process.env.NODE_ENV) { + if ( config.get('environment') ) { + process.env.NODE_ENV = config.get('environment'); + console.log('NODE_ENV set from config'); + } else { + process.env.NODE_ENV = 'local'; + console.log('NODE_ENV set to "local" as no other values were set'); + } } //DB From d3fa8a54ae13ba3efc5300215e7dd6c09267126c Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Mon, 28 Dec 2020 12:56:17 +1300 Subject: [PATCH 09/19] Remove --force option Remove --force option from `npm audit fix`. While this has not caused any issues to date, there is no guarantee that it will continue to be the case. --- freebsd/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/freebsd/install.sh b/freebsd/install.sh index 2da579e42..b26ad2e62 100644 --- a/freebsd/install.sh +++ b/freebsd/install.sh @@ -10,7 +10,7 @@ git clone https://github.com/G-Ambatte/homebrewery.git cd homebrewery npm install -npm audit fix -force +npm audit fix npm run postinstall cp freebsd/rc.d/homebrewery /etc/rc.d/ From 38e098f6c43103bcae0b10c51f325f3394543b73 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Mon, 28 Dec 2020 14:28:49 +1300 Subject: [PATCH 10/19] Create README.FREEBSD.md Initial write up of install instructions. Includes instruction to `wget` from the `naturalcrit/homebrewery` project rather than the FreeBSD fork, on the assumption that the PR will be merged at some point. --- README.FREEBSD.md | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 README.FREEBSD.md diff --git a/README.FREEBSD.md b/README.FREEBSD.md new file mode 100644 index 000000000..92f9064d0 --- /dev/null +++ b/README.FREEBSD.md @@ -0,0 +1,35 @@ +# FreeBSD/FreeNAS Installation Instructions + +## Before Installing + +These instructions assume that you are installing to a completely new, fresh FreeBSD/FreeNAS jail. As such, some steps will not be necessary if you are installing to an existing FreeBSD/FreeNAS install. + +## Installation instructions + +1. Create a new jail, with the appropriate network settings to access the internet. + +2. Install wget (`pkg install -y wget`). On a fresh jail, you will be prompted to press 'Y' to set up `pkg`. + +3. Download the installation script (`wget --no-check-certificate https://raw.githubusercontent.com/naturalcrit/homebrewery/master/freebsd/install.sh`). The parameter `--no-check-certificate` is required as we haven't set up any trusted certificates/authorities yet. + +4. Make the downloaded file executable (`chmod +x install.sh`). + +5. Run the script (`./install.sh`). This will automatically download all of the required packages, install both them and HomeBrewery, configure the system and finally start HomeBrewery. + +**NOTE:** At this time, the script **ONLY** installs HomeBrewery. It does **NOT** install the NaturalCrit login system, as that is currently a completely separate project. + +--- + +### Testing + +These installation instructions have been tested on the following FreeBSD/FreeNAS platforms: + +* FreeNAS-11.3-U5; Jail 11.4-RELEASE-p2 + +## Final Notes + +While this installation process works successfully at the time of writing (December 28, 2020), it relies on all of the Node.JS packages used in the HomeBrewery project retaining their cross-platform capabilities to continue to function under FreeBSD. This is one of the inherent advantages of Node.JS, but it is by no means guaranteed and as such, functionality or even installation under FreeBSD may fail without warning at some point in the future. + +Regards, +G +December 28, 2020 From 5d126ff14df8bc5296de2f51322687bfa51f5348 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Mon, 28 Dec 2020 15:12:51 +1300 Subject: [PATCH 11/19] Update install.sh Change to main project repo, on assumption that the PR will be merged at some point --- freebsd/install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/freebsd/install.sh b/freebsd/install.sh index b26ad2e62..c1e2250d9 100644 --- a/freebsd/install.sh +++ b/freebsd/install.sh @@ -6,7 +6,7 @@ sysrc mongod_enable=YES service mongod start cd / -git clone https://github.com/G-Ambatte/homebrewery.git +git clone https://github.com/naturalcrit/homebrewery.git cd homebrewery npm install From 90fdc71279cef199b80261a011241553ae8e08cf Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Mon, 28 Dec 2020 15:24:29 +1300 Subject: [PATCH 12/19] Change install directory Change of install directory to `/usr/local/homebrewery` --- freebsd/install.sh | 2 +- freebsd/rc.d/homebrewery | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/freebsd/install.sh b/freebsd/install.sh index c1e2250d9..cfb851b9c 100644 --- a/freebsd/install.sh +++ b/freebsd/install.sh @@ -5,7 +5,7 @@ pkg install -y git nano node npm mongodb44-4.4.1 sysrc mongod_enable=YES service mongod start -cd / +cd /usr/local/ git clone https://github.com/naturalcrit/homebrewery.git cd homebrewery diff --git a/freebsd/rc.d/homebrewery b/freebsd/rc.d/homebrewery index e318f23f8..bac844c2c 100644 --- a/freebsd/rc.d/homebrewery +++ b/freebsd/rc.d/homebrewery @@ -37,8 +37,8 @@ pidfile="/var/run/${program_name}.pid" # File that allows the system to keep export HOME=$( getent passwd "homebrewery_runAs" | cut -d: -f6 ) # Gets the home directory of the runAs user # Command Setup -exec_cmd="/homebrewery/server.js" # Path to the HomeBrewery server.js, /usr/local/bin/ when installed globally -output_file="/var/log/${program_name}.log" # Path to HomeBrewery output file +exec_cmd="/usr/local/homebrewery/server.js" # Path to the HomeBrewery server.js +output_file="/var/log/${program_name}.log" # Path to HomeBrewery output file # Command command="/usr/sbin/daemon" From ac8988ad41a31f99a8a5a0ae92b9ecf6280c0752 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Mon, 28 Dec 2020 21:31:00 +1300 Subject: [PATCH 13/19] Update homebrewery Add `dev_mode` to the HomeBrewery service, which starts the HomeBrewery project in live rebuild mode. --- freebsd/rc.d/homebrewery | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/freebsd/rc.d/homebrewery b/freebsd/rc.d/homebrewery index bac844c2c..aff7670ff 100644 --- a/freebsd/rc.d/homebrewery +++ b/freebsd/rc.d/homebrewery @@ -21,6 +21,7 @@ # General Info name="homebrewery" # Safe name of program +location="/usr/local/" # Install location program_name="homebrewery" # Name of exec title="HomeBrewery" # Title to display in top/htop @@ -37,13 +38,24 @@ pidfile="/var/run/${program_name}.pid" # File that allows the system to keep export HOME=$( getent passwd "homebrewery_runAs" | cut -d: -f6 ) # Gets the home directory of the runAs user # Command Setup -exec_cmd="/usr/local/homebrewery/server.js" # Path to the HomeBrewery server.js -output_file="/var/log/${program_name}.log" # Path to HomeBrewery output file +exec_cmd="${location}/${program_name}/server.js" # Path to the HomeBrewery server.js, /usr/local/bin/ when installed globally +output_file="/var/log/${program_name}.log" # Path to HomeBrewery output file # Command command="/usr/sbin/daemon" command_args="-r -t ${title} -u ${homebrewery_runAs} -o ${output_file} -P ${pidfile} /usr/local/bin/node ${exec_cmd} ${homebrewery_args}" +# Extra Commands +extra_commands="dev_mode" + +dev_mode_cmd="homebrewery_dev_mode" + +homebrewery_dev_mode() { +echo "Starting HomeBrewery in live rebuild Developer mode..." +cd ${location}/${program_name}/ +/usr/local/bin/node ${location}/${program_name}/scripts/buildHomebrew.js --dev +} + # Loading Config load_rc_config ${name} run_rc_command "$1" From 7ca9d601a05e94b48394da836d4fdb25c9a4c88a Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Tue, 29 Dec 2020 17:55:15 +1300 Subject: [PATCH 14/19] Update server.js Eliminating unnecessary debugging code, reducing line count and making lint happy :) --- server.js | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/server.js b/server.js index 39e703d23..e56137b3d 100644 --- a/server.js +++ b/server.js @@ -27,15 +27,7 @@ const config = require('nconf') .file('environment', { file: `config/${process.env.NODE_ENV}.json` }) .file('defaults', { file: 'config/default.json' }); -if ( !process.env.NODE_ENV) { - if ( config.get('environment') ) { - process.env.NODE_ENV = config.get('environment'); - console.log('NODE_ENV set from config'); - } else { - process.env.NODE_ENV = 'local'; - console.log('NODE_ENV set to "local" as no other values were set'); - } -} +if(!process.env.NODE_ENV) { process.env.NODE_ENV = ( config.get('environment') || 'local' ); } //DB const mongoose = require('mongoose'); From bd416233ebf876a0d8b46202af1c0b730afc65f2 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Tue, 29 Dec 2020 17:57:33 +1300 Subject: [PATCH 15/19] Update server.js Lint is happy, now attempting to pacify CircleCI --- server.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/server.js b/server.js index e56137b3d..fdca3193a 100644 --- a/server.js +++ b/server.js @@ -27,7 +27,7 @@ const config = require('nconf') .file('environment', { file: `config/${process.env.NODE_ENV}.json` }) .file('defaults', { file: 'config/default.json' }); -if(!process.env.NODE_ENV) { process.env.NODE_ENV = ( config.get('environment') || 'local' ); } +if(!process.env.NODE_ENV) {process.env.NODE_ENV = (config.get('environment') || 'local');} //DB const mongoose = require('mongoose'); From e394539742a177476106b2d59fc9cb332ccc2bad Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 3 Jan 2021 23:57:43 +1300 Subject: [PATCH 16/19] Move NODE_ENV to service file; remove from server.js and config/default.json --- config/default.json | 1 - freebsd/rc.d/homebrewery | 2 ++ server.js | 2 -- 3 files changed, 2 insertions(+), 3 deletions(-) diff --git a/config/default.json b/config/default.json index ff148ca32..d7b5fc31d 100644 --- a/config/default.json +++ b/config/default.json @@ -3,5 +3,4 @@ "naturalcrit_url" : "local.naturalcrit.com:8010", "secret" : "secret", "web_port" : 8001, - "environment" : "local" } diff --git a/freebsd/rc.d/homebrewery b/freebsd/rc.d/homebrewery index aff7670ff..2f921b9f6 100644 --- a/freebsd/rc.d/homebrewery +++ b/freebsd/rc.d/homebrewery @@ -36,6 +36,8 @@ pidfile="/var/run/${program_name}.pid" # File that allows the system to keep # Env Setup export HOME=$( getent passwd "homebrewery_runAs" | cut -d: -f6 ) # Gets the home directory of the runAs user +export NODE_ENV="local" +export PORT=8001 # Command Setup exec_cmd="${location}/${program_name}/server.js" # Path to the HomeBrewery server.js, /usr/local/bin/ when installed globally diff --git a/server.js b/server.js index fdca3193a..5528a3762 100644 --- a/server.js +++ b/server.js @@ -27,8 +27,6 @@ const config = require('nconf') .file('environment', { file: `config/${process.env.NODE_ENV}.json` }) .file('defaults', { file: 'config/default.json' }); -if(!process.env.NODE_ENV) {process.env.NODE_ENV = (config.get('environment') || 'local');} - //DB const mongoose = require('mongoose'); mongoose.connect(config.get('mongodb_uri') || config.get('mongolab_uri') || 'mongodb://localhost/naturalcrit', From 3af43164f40b551c0ccfc7f26a9e7078d425726e Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sat, 9 Jan 2021 23:03:39 +1300 Subject: [PATCH 17/19] Remove hanging comma in config.json Change default port assignment from 8000 to 8001 in config.json and FreeBSD service config --- config/default.json | 2 +- freebsd/rc.d/homebrewery | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/config/default.json b/config/default.json index d7b5fc31d..daf77e82e 100644 --- a/config/default.json +++ b/config/default.json @@ -2,5 +2,5 @@ "host" : "homebrewery.local.naturalcrit.com:8000", "naturalcrit_url" : "local.naturalcrit.com:8010", "secret" : "secret", - "web_port" : 8001, + "web_port" : 8000 } diff --git a/freebsd/rc.d/homebrewery b/freebsd/rc.d/homebrewery index 2f921b9f6..2d8ea2bfb 100644 --- a/freebsd/rc.d/homebrewery +++ b/freebsd/rc.d/homebrewery @@ -37,7 +37,7 @@ pidfile="/var/run/${program_name}.pid" # File that allows the system to keep # Env Setup export HOME=$( getent passwd "homebrewery_runAs" | cut -d: -f6 ) # Gets the home directory of the runAs user export NODE_ENV="local" -export PORT=8001 +export PORT=8000 # Command Setup exec_cmd="${location}/${program_name}/server.js" # Path to the HomeBrewery server.js, /usr/local/bin/ when installed globally From b0c1a5a6b1fe490bc0b4b4a781fc42d697b67e40 Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 10 Jan 2021 15:27:04 +1300 Subject: [PATCH 18/19] Add link to FreeBSD install documenation in the main README.md file --- README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/README.md b/README.md index ccc5ad094..4e26bdcca 100644 --- a/README.md +++ b/README.md @@ -52,6 +52,10 @@ You should now be able to go to [http://localhost:8000](http://localhost:8000) i Please see the docs here: [README.DOCKER.md](./README.DOCKER.md) +### Running the application on FreeBSD or FreeNAS + +Please see the docs here: [README.FreeBSD.md](./README.FREEBSD.md) + ### Standalone PHB Stylesheet If you just want the stylesheet that is generated to make pages look like they are from the Player's Handbook, you will find it in the [phb.standalone.css](./phb.standalone.css) file. From 03e74afe80f8b3198c3e2620a7c524be0c915fbb Mon Sep 17 00:00:00 2001 From: "G.Ambatte" Date: Sun, 10 Jan 2021 17:23:14 +1300 Subject: [PATCH 19/19] Fix for MongoDB package update breaking install script Change to enable use of rcvars for NODE_ENV and PORT --- freebsd/install.sh | 6 +++--- freebsd/rc.d/homebrewery | 6 ++++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/freebsd/install.sh b/freebsd/install.sh index cfb851b9c..0b3bb7fdc 100644 --- a/freebsd/install.sh +++ b/freebsd/install.sh @@ -1,6 +1,6 @@ #!/bin/sh -pkg install -y git nano node npm mongodb44-4.4.1 +pkg install -y git nano node npm mongodb44 sysrc mongod_enable=YES service mongod start @@ -13,8 +13,8 @@ npm install npm audit fix npm run postinstall -cp freebsd/rc.d/homebrewery /etc/rc.d/ -chmod +x /etc/rc.d/homebrewery +cp freebsd/rc.d/homebrewery /usr/local/etc/rc.d/ +chmod +x /usr/local/etc/rc.d/homebrewery sysrc homebrewery_enable=YES service homebrewery start \ No newline at end of file diff --git a/freebsd/rc.d/homebrewery b/freebsd/rc.d/homebrewery index 2d8ea2bfb..20f2bc7e6 100644 --- a/freebsd/rc.d/homebrewery +++ b/freebsd/rc.d/homebrewery @@ -29,6 +29,8 @@ title="HomeBrewery" # Title to display in top/htop load_rc_config $name # Loading rc config vars : ${homebrewery_enable="NO"} # Default: Do not enable HomeBrewery : ${homebrewery_runAs="root"} # Default: Run HomeBrewery as root +: ${homebrewery_port=8000} # Default: Run HomeBrewery on port 8000 +: ${homebrewery_NODE_ENV="local"} # Default: Run HomeBrewery in local mode # Freebsd Setup rcvar=homebrewery_enable # Enables the rc.conf YES/NO flag @@ -36,8 +38,8 @@ pidfile="/var/run/${program_name}.pid" # File that allows the system to keep # Env Setup export HOME=$( getent passwd "homebrewery_runAs" | cut -d: -f6 ) # Gets the home directory of the runAs user -export NODE_ENV="local" -export PORT=8000 +export NODE_ENV=${homebrewery_NODE_ENV} +export PORT=${homebrewery_port} # Command Setup exec_cmd="${location}/${program_name}/server.js" # Path to the HomeBrewery server.js, /usr/local/bin/ when installed globally