[WIP] Allow multiple installations of same blueprint (#88)
* Multi-install support, Blueprints and config changes. Initial commit
* Migrating jails to blueprints, first steps.
Tested Working:
- Transmission
- Lidarr
- Sonarr
- Radarr
fix lidarr config (+10 squashed commit)
Squashed commit:
[5f14653] always link ports folders
[f18f2f0] Optional (blueprint) ports mount
Fixes #89
[96ef7e7] chmod all the things
[129e707] same mistake... again...
[e1596dc] missing reference
[6da3567] Forgot one reference
[d78b5b6] Update wiki.yml
[cecc53a] Update filecheck.yml
[5244abd] basic settings changed.
More involved blueprints still need changes, such as: Bitwarden, nextcloud, Mariadb
[6568e92] jails -> blueprints
* Added Tested Working:
- KMS
- Plex
- Tautulli
- Organizr
- InfluxDB
- MariaDB
Many squashed small fixes included:
Make *.rc executable (+13 squashed commit)
Squashed commit:
[b28aa83] use .rc for rc.d config files
[e940a48] some mariadb cleanup
[dc27aff] testing another way
[83bd91b] Mariadb root password alter instead of update, initial config for unifi
[0ca3074] some light config cleanup
[a0d4352] also remove database from influxdb example config (db should be created when required)
[2c218cc] Prepare influxdb and remove unneeded content
[1b34109] more shellcheck fixups
[c96566c] Some shellcheck cleanup
[8969ca7] bitwarden mostly done, some work on nextcloud and unifi
[7f89bfa] initial mariadb patch
[dd7e85f] missed one problem
[f814cb7] Initial pseudo-compatibility patch for unifi
* Enable Bitwarden support and some small fixes/tweaks
Fixes #95
more bugs and typo's (+3 squashed commit)
Squashed commit:
[3b5213e] Bitwarden not correctly installing db
[b7438a5] yeah thats not gonna cut it... >.<
[e7987c2] some slight bitwarden tweaks
* Enable Unifi support and some small fixes/tweaks
small unifi cleanup. Unifi is working (+3 squashed commit)
Squashed commit:
[d906d2d] chmod unifi
[545e999] Add extra sanity, remove unneeded variables from example
[b8c0b24] Some small Unifi Tweaks
* Nextcloud Cleanup, Some fixes, Initial support for blueprintsystem
Fixes #96
Fixes #97
Fixes #98
some bloat and syntax fixes (+5 squashed commit)
Squashed commit:
[78f6428] Some more nextcloud cleanup and tweaks
- combines multiple variables for cert system selection (Fixes #98 )
- Default to self signed cert
- Force manual admin password
[7cacae4] slight fixes
[3d81cda] More cleanup
[50496cc] small mariadb fix and more nextcloud cleanup
[c1b2c20] Cleaning nextcloud
- Remove external DB (Fixes #97 )
- Remove Postgresql (Fixes #96 )
- Some preparation for blueprint
* Nextcloud done
and.. another... (+5 squashed commit)
Squashed commit:
[c65751b] caddy not installed right.
[e5da66b] more fixes
[a33300e] Damnit, two typo's same scentence
[4292a7a] another typo
[1b820cf] typo and example hotfix
* Introduce version checking for config file
2020-05-02 15:45:13 +00:00
|
|
|
#!/usr/local/bin/bash
|
|
|
|
# This file contains the install script for unifi-controller & unifi-poller
|
|
|
|
|
|
|
|
# Initialize variables
|
|
|
|
# shellcheck disable=SC2154
|
|
|
|
JAIL_IP="jail_${1}_ip4_addr"
|
|
|
|
JAIL_IP="${!JAIL_IP%/*}"
|
|
|
|
|
|
|
|
# shellcheck disable=SC2154
|
|
|
|
DB_JAIL="jail_${1}_db_jail"
|
|
|
|
|
|
|
|
POLLER="jail_${1}_unifi_poller"
|
|
|
|
|
|
|
|
# shellcheck disable=SC2154
|
|
|
|
DB_IP="jail_${!DB_JAIL}_ip4_addr"
|
|
|
|
DB_IP="${!DB_IP%/*}"
|
|
|
|
|
|
|
|
# shellcheck disable=SC2154
|
|
|
|
DB_NAME="jail_${1}_up_db_name"
|
|
|
|
DB_NAME="${!DB_NAME:-$1}"
|
|
|
|
|
|
|
|
# shellcheck disable=SC2154
|
|
|
|
DB_USER="jail_${1}_up_db_user"
|
|
|
|
DB_USER="${!DB_USER:-$DB_NAME}"
|
|
|
|
|
|
|
|
# shellcheck disable=SC2154
|
|
|
|
DB_PASS="jail_${1}_up_db_password"
|
|
|
|
|
|
|
|
# shellcheck disable=SC2154
|
|
|
|
UP_USER="jail_${1}_up_user"
|
|
|
|
UP_USER="${!UP_USER:-$1}"
|
|
|
|
|
|
|
|
# shellcheck disable=SC2154
|
|
|
|
UP_PASS="jail_${1}_up_password"
|
|
|
|
INCLUDES_PATH="${SCRIPT_DIR}/blueprints/unifi/includes"
|
|
|
|
|
2020-05-05 12:58:49 +00:00
|
|
|
if [ -z "${!DB_PASS}" ]; then
|
[WIP] Allow multiple installations of same blueprint (#88)
* Multi-install support, Blueprints and config changes. Initial commit
* Migrating jails to blueprints, first steps.
Tested Working:
- Transmission
- Lidarr
- Sonarr
- Radarr
fix lidarr config (+10 squashed commit)
Squashed commit:
[5f14653] always link ports folders
[f18f2f0] Optional (blueprint) ports mount
Fixes #89
[96ef7e7] chmod all the things
[129e707] same mistake... again...
[e1596dc] missing reference
[6da3567] Forgot one reference
[d78b5b6] Update wiki.yml
[cecc53a] Update filecheck.yml
[5244abd] basic settings changed.
More involved blueprints still need changes, such as: Bitwarden, nextcloud, Mariadb
[6568e92] jails -> blueprints
* Added Tested Working:
- KMS
- Plex
- Tautulli
- Organizr
- InfluxDB
- MariaDB
Many squashed small fixes included:
Make *.rc executable (+13 squashed commit)
Squashed commit:
[b28aa83] use .rc for rc.d config files
[e940a48] some mariadb cleanup
[dc27aff] testing another way
[83bd91b] Mariadb root password alter instead of update, initial config for unifi
[0ca3074] some light config cleanup
[a0d4352] also remove database from influxdb example config (db should be created when required)
[2c218cc] Prepare influxdb and remove unneeded content
[1b34109] more shellcheck fixups
[c96566c] Some shellcheck cleanup
[8969ca7] bitwarden mostly done, some work on nextcloud and unifi
[7f89bfa] initial mariadb patch
[dd7e85f] missed one problem
[f814cb7] Initial pseudo-compatibility patch for unifi
* Enable Bitwarden support and some small fixes/tweaks
Fixes #95
more bugs and typo's (+3 squashed commit)
Squashed commit:
[3b5213e] Bitwarden not correctly installing db
[b7438a5] yeah thats not gonna cut it... >.<
[e7987c2] some slight bitwarden tweaks
* Enable Unifi support and some small fixes/tweaks
small unifi cleanup. Unifi is working (+3 squashed commit)
Squashed commit:
[d906d2d] chmod unifi
[545e999] Add extra sanity, remove unneeded variables from example
[b8c0b24] Some small Unifi Tweaks
* Nextcloud Cleanup, Some fixes, Initial support for blueprintsystem
Fixes #96
Fixes #97
Fixes #98
some bloat and syntax fixes (+5 squashed commit)
Squashed commit:
[78f6428] Some more nextcloud cleanup and tweaks
- combines multiple variables for cert system selection (Fixes #98 )
- Default to self signed cert
- Force manual admin password
[7cacae4] slight fixes
[3d81cda] More cleanup
[50496cc] small mariadb fix and more nextcloud cleanup
[c1b2c20] Cleaning nextcloud
- Remove external DB (Fixes #97 )
- Remove Postgresql (Fixes #96 )
- Some preparation for blueprint
* Nextcloud done
and.. another... (+5 squashed commit)
Squashed commit:
[c65751b] caddy not installed right.
[e5da66b] more fixes
[a33300e] Damnit, two typo's same scentence
[4292a7a] another typo
[1b820cf] typo and example hotfix
* Introduce version checking for config file
2020-05-02 15:45:13 +00:00
|
|
|
echo "up_db_password can't be empty"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -z "${!DB_JAIL}" ]; then
|
|
|
|
echo "db_jail can't be empty"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
if [ -z "${!UP_PASS}" ]; then
|
|
|
|
echo "up_password can't be empty"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Enable persistent Unifi Controller data
|
|
|
|
iocage exec "${1}" mkdir -p /config/controller/mongodb
|
|
|
|
iocage exec "${1}" cp -Rp /usr/local/share/java/unifi /config/controller
|
|
|
|
iocage exec "${1}" chown -R mongodb:mongodb /config/controller/mongodb
|
|
|
|
# shellcheck disable=SC2154
|
|
|
|
cp "${INCLUDES_PATH}"/mongodb.conf /mnt/"${global_dataset_iocage}"/jails/"${1}"/root/usr/local/etc
|
|
|
|
# shellcheck disable=SC2154
|
|
|
|
cp "${INCLUDES_PATH}"/rc/mongod.rc /mnt/"${global_dataset_iocage}"/jails/"${1}"/root/usr/local/etc/rc.d/mongod
|
|
|
|
# shellcheck disable=SC2154
|
|
|
|
cp "${INCLUDES_PATH}"/rc/unifi.rc /mnt/"${global_dataset_iocage}"/jails/"${1}"/root/usr/local/etc/rc.d/unifi
|
|
|
|
iocage exec "${1}" sysrc unifi_enable=YES
|
|
|
|
iocage exec "${1}" service unifi start
|
|
|
|
|
|
|
|
# shellcheck disable=SC2154
|
|
|
|
if [[ ! "${!POLLER}" ]]; then
|
|
|
|
echo "Installation complete!"
|
|
|
|
echo "Unifi Controller is accessible at https://${JAIL_IP}:8443."
|
|
|
|
else
|
|
|
|
# Check if influxdb container exists, create unifi database if it does, error if it is not.
|
|
|
|
echo "Checking if the database jail and database exist..."
|
|
|
|
if [[ -d /mnt/"${global_dataset_iocage}"/jails/"${!DB_JAIL}" ]]; then
|
2020-05-05 12:58:49 +00:00
|
|
|
DB_EXISTING=$(iocage exec "${!DB_JAIL}" curl -G http://"${DB_IP}":8086/query --data-urlencode 'q=SHOW DATABASES' | jq '.results [] | .series [] | .values []' | grep "$DB_NAME" | sed 's/"//g' | sed 's/^ *//g')
|
[WIP] Allow multiple installations of same blueprint (#88)
* Multi-install support, Blueprints and config changes. Initial commit
* Migrating jails to blueprints, first steps.
Tested Working:
- Transmission
- Lidarr
- Sonarr
- Radarr
fix lidarr config (+10 squashed commit)
Squashed commit:
[5f14653] always link ports folders
[f18f2f0] Optional (blueprint) ports mount
Fixes #89
[96ef7e7] chmod all the things
[129e707] same mistake... again...
[e1596dc] missing reference
[6da3567] Forgot one reference
[d78b5b6] Update wiki.yml
[cecc53a] Update filecheck.yml
[5244abd] basic settings changed.
More involved blueprints still need changes, such as: Bitwarden, nextcloud, Mariadb
[6568e92] jails -> blueprints
* Added Tested Working:
- KMS
- Plex
- Tautulli
- Organizr
- InfluxDB
- MariaDB
Many squashed small fixes included:
Make *.rc executable (+13 squashed commit)
Squashed commit:
[b28aa83] use .rc for rc.d config files
[e940a48] some mariadb cleanup
[dc27aff] testing another way
[83bd91b] Mariadb root password alter instead of update, initial config for unifi
[0ca3074] some light config cleanup
[a0d4352] also remove database from influxdb example config (db should be created when required)
[2c218cc] Prepare influxdb and remove unneeded content
[1b34109] more shellcheck fixups
[c96566c] Some shellcheck cleanup
[8969ca7] bitwarden mostly done, some work on nextcloud and unifi
[7f89bfa] initial mariadb patch
[dd7e85f] missed one problem
[f814cb7] Initial pseudo-compatibility patch for unifi
* Enable Bitwarden support and some small fixes/tweaks
Fixes #95
more bugs and typo's (+3 squashed commit)
Squashed commit:
[3b5213e] Bitwarden not correctly installing db
[b7438a5] yeah thats not gonna cut it... >.<
[e7987c2] some slight bitwarden tweaks
* Enable Unifi support and some small fixes/tweaks
small unifi cleanup. Unifi is working (+3 squashed commit)
Squashed commit:
[d906d2d] chmod unifi
[545e999] Add extra sanity, remove unneeded variables from example
[b8c0b24] Some small Unifi Tweaks
* Nextcloud Cleanup, Some fixes, Initial support for blueprintsystem
Fixes #96
Fixes #97
Fixes #98
some bloat and syntax fixes (+5 squashed commit)
Squashed commit:
[78f6428] Some more nextcloud cleanup and tweaks
- combines multiple variables for cert system selection (Fixes #98 )
- Default to self signed cert
- Force manual admin password
[7cacae4] slight fixes
[3d81cda] More cleanup
[50496cc] small mariadb fix and more nextcloud cleanup
[c1b2c20] Cleaning nextcloud
- Remove external DB (Fixes #97 )
- Remove Postgresql (Fixes #96 )
- Some preparation for blueprint
* Nextcloud done
and.. another... (+5 squashed commit)
Squashed commit:
[c65751b] caddy not installed right.
[e5da66b] more fixes
[a33300e] Damnit, two typo's same scentence
[4292a7a] another typo
[1b820cf] typo and example hotfix
* Introduce version checking for config file
2020-05-02 15:45:13 +00:00
|
|
|
if [[ "$DB_NAME" == "$DB_EXISTING" ]]; then
|
|
|
|
echo "${!DB_JAIL} jail with database ${DB_NAME} already exists. Skipping database creation... "
|
|
|
|
else
|
|
|
|
echo "${!DB_JAIL} jail exists, but database ${DB_NAME} does not. Creating database ${DB_NAME}."
|
|
|
|
if [[ -z "${DB_USER}" ]] || [[ -z "${!DB_PASS}" ]]; then
|
|
|
|
echo "Database username and password not provided. Cannot create database without credentials. Exiting..."
|
|
|
|
exit 1
|
|
|
|
else
|
2020-05-05 12:58:49 +00:00
|
|
|
# shellcheck disable=SC2027,2086
|
|
|
|
iocage exec "${!DB_JAIL}" "curl -XPOST -u ${DB_USER}:${!DB_PASS} http://"${DB_IP}":8086/query --data-urlencode 'q=CREATE DATABASE ${DB_NAME}'"
|
[WIP] Allow multiple installations of same blueprint (#88)
* Multi-install support, Blueprints and config changes. Initial commit
* Migrating jails to blueprints, first steps.
Tested Working:
- Transmission
- Lidarr
- Sonarr
- Radarr
fix lidarr config (+10 squashed commit)
Squashed commit:
[5f14653] always link ports folders
[f18f2f0] Optional (blueprint) ports mount
Fixes #89
[96ef7e7] chmod all the things
[129e707] same mistake... again...
[e1596dc] missing reference
[6da3567] Forgot one reference
[d78b5b6] Update wiki.yml
[cecc53a] Update filecheck.yml
[5244abd] basic settings changed.
More involved blueprints still need changes, such as: Bitwarden, nextcloud, Mariadb
[6568e92] jails -> blueprints
* Added Tested Working:
- KMS
- Plex
- Tautulli
- Organizr
- InfluxDB
- MariaDB
Many squashed small fixes included:
Make *.rc executable (+13 squashed commit)
Squashed commit:
[b28aa83] use .rc for rc.d config files
[e940a48] some mariadb cleanup
[dc27aff] testing another way
[83bd91b] Mariadb root password alter instead of update, initial config for unifi
[0ca3074] some light config cleanup
[a0d4352] also remove database from influxdb example config (db should be created when required)
[2c218cc] Prepare influxdb and remove unneeded content
[1b34109] more shellcheck fixups
[c96566c] Some shellcheck cleanup
[8969ca7] bitwarden mostly done, some work on nextcloud and unifi
[7f89bfa] initial mariadb patch
[dd7e85f] missed one problem
[f814cb7] Initial pseudo-compatibility patch for unifi
* Enable Bitwarden support and some small fixes/tweaks
Fixes #95
more bugs and typo's (+3 squashed commit)
Squashed commit:
[3b5213e] Bitwarden not correctly installing db
[b7438a5] yeah thats not gonna cut it... >.<
[e7987c2] some slight bitwarden tweaks
* Enable Unifi support and some small fixes/tweaks
small unifi cleanup. Unifi is working (+3 squashed commit)
Squashed commit:
[d906d2d] chmod unifi
[545e999] Add extra sanity, remove unneeded variables from example
[b8c0b24] Some small Unifi Tweaks
* Nextcloud Cleanup, Some fixes, Initial support for blueprintsystem
Fixes #96
Fixes #97
Fixes #98
some bloat and syntax fixes (+5 squashed commit)
Squashed commit:
[78f6428] Some more nextcloud cleanup and tweaks
- combines multiple variables for cert system selection (Fixes #98 )
- Default to self signed cert
- Force manual admin password
[7cacae4] slight fixes
[3d81cda] More cleanup
[50496cc] small mariadb fix and more nextcloud cleanup
[c1b2c20] Cleaning nextcloud
- Remove external DB (Fixes #97 )
- Remove Postgresql (Fixes #96 )
- Some preparation for blueprint
* Nextcloud done
and.. another... (+5 squashed commit)
Squashed commit:
[c65751b] caddy not installed right.
[e5da66b] more fixes
[a33300e] Damnit, two typo's same scentence
[4292a7a] another typo
[1b820cf] typo and example hotfix
* Introduce version checking for config file
2020-05-02 15:45:13 +00:00
|
|
|
echo "Database ${DB_NAME} created with username ${DB_USER} with password ${!DB_PASS}."
|
|
|
|
fi
|
|
|
|
fi
|
|
|
|
else
|
|
|
|
echo "Influxdb jail does not exist. Unifi-Poller requires Influxdb jail. Please install the Influxdb jail."
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Download and install Unifi-Poller
|
|
|
|
FILE_NAME=$(curl -s https://api.github.com/repos/unifi-poller/unifi-poller/releases/latest | jq -r ".assets[] | select(.name | contains(\"amd64.txz\")) | .name")
|
|
|
|
DOWNLOAD=$(curl -s https://api.github.com/repos/unifi-poller/unifi-poller/releases/latest | jq -r ".assets[] | select(.name | contains(\"amd64.txz\")) | .browser_download_url")
|
|
|
|
iocage exec "${1}" fetch -o /config "${DOWNLOAD}"
|
|
|
|
|
|
|
|
# Install downloaded Unifi-Poller package, configure and enable
|
|
|
|
iocage exec "${1}" pkg install -qy /config/"${FILE_NAME}"
|
|
|
|
# shellcheck disable=SC2154
|
|
|
|
cp "${INCLUDES_PATH}"/up.conf /mnt/"${global_dataset_config}"/"${1}"
|
|
|
|
# shellcheck disable=SC2154
|
|
|
|
cp "${INCLUDES_PATH}"/rc/unifi_poller.rc /mnt/"${global_dataset_iocage}"/jails/"${1}"/root/usr/local/etc/rc.d/unifi_poller
|
2020-05-05 12:58:49 +00:00
|
|
|
chmod +x /mnt/"${global_dataset_iocage}"/jails/"${1}"/root/usr/local/etc/rc.d/unifi_poller
|
[WIP] Allow multiple installations of same blueprint (#88)
* Multi-install support, Blueprints and config changes. Initial commit
* Migrating jails to blueprints, first steps.
Tested Working:
- Transmission
- Lidarr
- Sonarr
- Radarr
fix lidarr config (+10 squashed commit)
Squashed commit:
[5f14653] always link ports folders
[f18f2f0] Optional (blueprint) ports mount
Fixes #89
[96ef7e7] chmod all the things
[129e707] same mistake... again...
[e1596dc] missing reference
[6da3567] Forgot one reference
[d78b5b6] Update wiki.yml
[cecc53a] Update filecheck.yml
[5244abd] basic settings changed.
More involved blueprints still need changes, such as: Bitwarden, nextcloud, Mariadb
[6568e92] jails -> blueprints
* Added Tested Working:
- KMS
- Plex
- Tautulli
- Organizr
- InfluxDB
- MariaDB
Many squashed small fixes included:
Make *.rc executable (+13 squashed commit)
Squashed commit:
[b28aa83] use .rc for rc.d config files
[e940a48] some mariadb cleanup
[dc27aff] testing another way
[83bd91b] Mariadb root password alter instead of update, initial config for unifi
[0ca3074] some light config cleanup
[a0d4352] also remove database from influxdb example config (db should be created when required)
[2c218cc] Prepare influxdb and remove unneeded content
[1b34109] more shellcheck fixups
[c96566c] Some shellcheck cleanup
[8969ca7] bitwarden mostly done, some work on nextcloud and unifi
[7f89bfa] initial mariadb patch
[dd7e85f] missed one problem
[f814cb7] Initial pseudo-compatibility patch for unifi
* Enable Bitwarden support and some small fixes/tweaks
Fixes #95
more bugs and typo's (+3 squashed commit)
Squashed commit:
[3b5213e] Bitwarden not correctly installing db
[b7438a5] yeah thats not gonna cut it... >.<
[e7987c2] some slight bitwarden tweaks
* Enable Unifi support and some small fixes/tweaks
small unifi cleanup. Unifi is working (+3 squashed commit)
Squashed commit:
[d906d2d] chmod unifi
[545e999] Add extra sanity, remove unneeded variables from example
[b8c0b24] Some small Unifi Tweaks
* Nextcloud Cleanup, Some fixes, Initial support for blueprintsystem
Fixes #96
Fixes #97
Fixes #98
some bloat and syntax fixes (+5 squashed commit)
Squashed commit:
[78f6428] Some more nextcloud cleanup and tweaks
- combines multiple variables for cert system selection (Fixes #98 )
- Default to self signed cert
- Force manual admin password
[7cacae4] slight fixes
[3d81cda] More cleanup
[50496cc] small mariadb fix and more nextcloud cleanup
[c1b2c20] Cleaning nextcloud
- Remove external DB (Fixes #97 )
- Remove Postgresql (Fixes #96 )
- Some preparation for blueprint
* Nextcloud done
and.. another... (+5 squashed commit)
Squashed commit:
[c65751b] caddy not installed right.
[e5da66b] more fixes
[a33300e] Damnit, two typo's same scentence
[4292a7a] another typo
[1b820cf] typo and example hotfix
* Introduce version checking for config file
2020-05-02 15:45:13 +00:00
|
|
|
iocage exec "${1}" sed -i '' "s|influxdbuser|${DB_USER}|" /config/up.conf
|
|
|
|
iocage exec "${1}" sed -i '' "s|influxdbpass|${!DB_PASS}|" /config/up.conf
|
|
|
|
iocage exec "${1}" sed -i '' "s|unifidb|${DB_NAME}|" /config/up.conf
|
|
|
|
iocage exec "${1}" sed -i '' "s|unifiuser|${UP_USER}|" /config/up.conf
|
|
|
|
iocage exec "${1}" sed -i '' "s|unifipassword|${!UP_PASS}|" /config/up.conf
|
|
|
|
iocage exec "${1}" sed -i '' "s|dbip|http://${DB_IP}:8086|" /config/up.conf
|
|
|
|
|
|
|
|
|
|
|
|
iocage exec "${1}" sysrc unifi_poller_enable=YES
|
|
|
|
iocage exec "${1}" service unifi_poller start
|
|
|
|
|
|
|
|
echo "Installation complete!"
|
|
|
|
echo "Unifi Controller is accessible at https://${JAIL_IP}:8443."
|
|
|
|
echo "Please login to the Unifi Controller and add ${UP_USER} as a read-only user."
|
|
|
|
echo "In Grafana, add Unifi-Poller as a data source."
|
|
|
|
fi
|