cd5adfd94b
* set branch (+2 squashed commit) Squashed commit: [e322f24] remove placeholder [8647131] palceholder * Code cleanup and (primarily) consolidation (#21) * set branch * Exit 1 on iocage create failure * - Move jailcreate to global function - Remove Jailcreate.sh * Add dataset creation function * - add test script to test new global changes - also create folder in jail with createmount * fix * make test executable * more verbosity, fixing folder creation * moving global dataset create * move jails to new dataset-mount creation function * remove test jail and test branch-ref * Add Nextcloud (#22) * Basic working nextcloud integration * Enable persistent reinstall of Nextcloud * prepare for dev merge * Licence alert * Add external database and integrated jail * small improvements and update script * Add mariadb to dev (#31) * Working MariaDB config * - Set ZFS settings for DB on Nextcloud and MariaDB - Cleanup MariaDB * prepare for dev merge * Niceify Readme (#34) * put content from master into it * Some readme itteration * more niceification * [WIP} Wiki workflow test (#37) introduce automatic wiki generation * Add Bitwarden support (#35) * Nextcloud-Cleanup for v1.1.0 (#40) * Nextcloud cleanup - add db-type sanity check - remove some integrated db checks - Move ssl to /config/ssl - remove integrated databases * slight default tweaking * fix mariadb install bug * QA cycle
66 lines
3.5 KiB
Bash
Executable File
66 lines
3.5 KiB
Bash
Executable File
#!/usr/local/bin/bash
|
|
# This file contains the update script for bitwarden
|
|
# Due to it being build from scratch or downloaded directly to execution dir,
|
|
# Update for Bitwarden is pretty similair to installation
|
|
|
|
# Initialise defaults
|
|
JAIL_NAME="bitwarden"
|
|
DB_DATABASE=${JAIL_NAME}
|
|
DB_USER=${JAIL_NAME}
|
|
INSTALL_TYPE=${bitwarden_type}
|
|
DB_HOST="$(sed 's|\(.*\)/.*|\1|' <<<"${mariadb_ip4_addr}"):3306"
|
|
DB_PASSWORD="${bitwarden_db_password}"
|
|
DB_STRING="mysql://${DB_USER}:${DB_PASSWORD}@${DB_HOST}/${DB_DATABASE}"
|
|
ADMIN_TOKEN=${bitwarden_admin_token}
|
|
|
|
if [ -z "${ADMIN_TOKEN}" ]; then
|
|
ADMIN_TOKEN=$(openssl rand -base64 16)
|
|
fi
|
|
|
|
iocage exec ${JAIL_NAME} service bitwarden stop
|
|
|
|
# install latest rust version, pkg version is outdated and can't build bitwarden_rs
|
|
iocage exec ${JAIL_NAME} "curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y"
|
|
|
|
# Install Bitwarden_rs
|
|
iocage exec ${JAIL_NAME} "git -C /usr/local/share/bitwarden/src fetch"
|
|
TAG=$(iocage exec ${JAIL_NAME} "git -C /usr/local/share/bitwarden/src tag --sort=v:refname | tail -n1")
|
|
iocage exec ${JAIL_NAME} "git -C /usr/local/share/bitwarden/src checkout ${TAG}"
|
|
#TODO replace with: cargo build --features mysql --release
|
|
if [ "${INSTALL_TYPE}" == "mariadb" ]; then
|
|
iocage exec ${JAIL_NAME} "cd /usr/local/share/bitwarden/src && $HOME/.cargo/bin/cargo build --features mysql --release"
|
|
iocage exec ${JAIL_NAME} "cd /usr/local/share/bitwarden/src && $HOME/.cargo/bin/cargo install diesel_cli --no-default-features --features mysql"
|
|
else
|
|
iocage exec ${JAIL_NAME} "cd /usr/local/share/bitwarden/src && $HOME/.cargo/bin/cargo build --features sqlite --release"
|
|
iocage exec ${JAIL_NAME} "cd /usr/local/share/bitwarden/src && $HOME/.cargo/bin/cargo install diesel_cli --no-default-features --features sqlite-bundled"
|
|
fi
|
|
|
|
|
|
iocage exec ${JAIL_NAME} cp -r /usr/local/share/bitwarden/src/target/release /usr/local/share/bitwarden/bin
|
|
|
|
# Download and install webvault
|
|
WEB_RELEASE_URL=$(curl -Ls -o /dev/null -w %{url_effective} https://github.com/dani-garcia/bw_web_builds/releases/latest)
|
|
WEB_TAG="${WEB_RELEASE_URL##*/}"
|
|
iocage exec ${JAIL_NAME} "fetch http://github.com/dani-garcia/bw_web_builds/releases/download/$WEB_TAG/bw_web_$WEB_TAG.tar.gz -o /usr/local/share/bitwarden"
|
|
iocage exec ${JAIL_NAME} "tar -xzvf /usr/local/share/bitwarden/bw_web_$WEB_TAG.tar.gz -C /usr/local/share/bitwarden/"
|
|
iocage exec ${JAIL_NAME} rm /usr/local/share/bitwarden/bw_web_$WEB_TAG.tar.gz
|
|
|
|
iocage exec ${JAIL_NAME} chown -R bitwarden:bitwarden /usr/local/share/bitwarden /config
|
|
cp ${SCRIPT_DIR}/jails/${JAIL_NAME}/includes/bitwarden.rc /mnt/${global_dataset_iocage}/jails/${JAIL_NAME}/root/usr/local/etc/rc.d/bitwarden
|
|
cp ${SCRIPT_DIR}/jails/${JAIL_NAME}/includes/bitwarden.rc.conf /mnt/${global_dataset_iocage}/jails/${JAIL_NAME}/root/usr/local/etc/rc.conf.d/bitwarden
|
|
echo 'export DATABASE_URL="'${DB_STRING}'"' >> /mnt/${global_dataset_iocage}/jails/${JAIL_NAME}/root/usr/local/etc/rc.conf.d/bitwarden
|
|
echo 'export ADMIN_TOKEN="'${ADMIN_TOKEN}'"' >> /mnt/${global_dataset_iocage}/jails/${JAIL_NAME}/root/usr/local/etc/rc.conf.d/bitwarden
|
|
|
|
if [ "${ADMIN_TOKEN}" == "NONE" ]; then
|
|
echo "Admin_token set to NONE, disabling admin portal"
|
|
else
|
|
echo "Admin_token set and admin portal enabled"
|
|
iocage exec "${JAIL_NAME}" echo "${DB_NAME} Admin Token is ${ADMIN_TOKEN}" > /root/${JAIL_NAME}_admin_token.txt
|
|
fi
|
|
|
|
|
|
iocage exec ${JAIL_NAME} chmod u+x /usr/local/etc/rc.d/bitwarden
|
|
iocage exec ${JAIL_NAME} service bitwarden restart
|
|
echo "Jail ${JAIL_NAME} finished Bitwarden update."
|
|
echo "Admin Token is ${ADMIN_TOKEN}"
|