#!/usr/bin/with-contenv bash # shellcheck shell=bash # create our folders mkdir -p \ /run/unifi/work/ROOT \ /config/{data,logs} # create symlinks for config symlinks=( \ /usr/lib/unifi/data \ /usr/lib/unifi/logs ) for i in "${symlinks[@]}"; do if [[ -L "$i" && ! "$i" -ef /config/"$(basename "$i")" ]]; then unlink "$i" fi if [[ ! -L "$i" ]]; then ln -s /config/"$(basename "$i")" "$i" fi done if [[ -L "/usr/lib/unifi/run" && ! "/usr/lib/unifi/run" -ef "/run/unifi" ]]; then unlink "/usr/lib/unifi/run" fi if [[ ! -L "/usr/lib/unifi/run" ]]; then ln -s "/run/unifi" "/usr/lib/unifi/run" fi if [[ ! -e /config/data/system.properties ]]; then if [[ -z "${MONGO_URI}" || -z "${STAT_MONGO_URI}" || -z "${MONGO_DBNAME}" ]]; then echo "*** Required environments are not set, cannot configure database settings. ***" sleep infinity else envsubst < /defaults/system.properties > /config/data/system.properties fi fi # generate key if [[ ! -f /config/data/keystore ]]; then keytool -genkey -keyalg RSA -alias unifi -keystore /config/data/keystore \ -storepass aircontrolenterprise -keypass aircontrolenterprise -validity 3650 \ -keysize 4096 -dname "cn=unifi" -ext san=dns:unifi fi # permissions lsiown -R abc:abc \ /config \ /run/unifi lsiown abc:abc \ /config/data/keystore