1
0
mirror of https://github.com/bitwarden/server.git synced 2024-11-29 13:25:17 +01:00
bitwarden-server/scripts/bitwarden.sh

175 lines
3.9 KiB
Bash
Raw Normal View History

2017-08-19 23:59:04 +02:00
#!/usr/bin/env bash
set -e
cat << "EOF"
_ _ _ _
| |__ (_) |___ ____ _ _ __ __| | ___ _ __
| '_ \| | __\ \ /\ / / _` | '__/ _` |/ _ \ '_ \
| |_) | | |_ \ V V / (_| | | | (_| | __/ | | |
|_.__/|_|\__| \_/\_/ \__,_|_| \__,_|\___|_| |_|
EOF
cat << EOF
Open source password management solutions
2017-08-20 03:45:13 +02:00
Copyright 2015-$(date +'%Y'), 8bit Solutions LLC
2017-08-19 23:59:04 +02:00
https://bitwarden.com, https://github.com/bitwarden
2017-08-23 22:15:42 +02:00
===================================================
2017-08-19 23:59:04 +02:00
EOF
2017-08-23 22:15:42 +02:00
# Setup
2017-08-19 23:59:04 +02:00
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
SCRIPT_NAME=$(basename "$0")
2017-08-23 22:22:02 +02:00
SCRIPT_PATH="$DIR/$SCRIPT_NAME"
2017-10-03 22:34:39 +02:00
OUTPUT="$DIR/bwdata"
2017-08-21 14:49:44 +02:00
if [ $# -eq 2 ]
2017-08-20 03:45:13 +02:00
then
2017-08-21 14:49:44 +02:00
OUTPUT=$2
2017-08-20 03:45:13 +02:00
fi
2022-02-24 16:36:59 +01:00
if command -v docker-compose &> /dev/null
then
dccmd='docker-compose'
else
dccmd='docker compose'
fi
2017-08-20 03:45:13 +02:00
SCRIPTS_DIR="$OUTPUT/scripts"
2019-01-19 04:23:46 +01:00
GITHUB_BASE_URL="https://raw.githubusercontent.com/bitwarden/server/master"
2021-05-17 20:51:29 +02:00
# Please do not create pull requests modifying the version numbers.
COREVERSION="1.46.2"
WEBVERSION="2.26.1"
KEYCONNECTORVERSION="1.0.1"
2017-08-20 03:45:13 +02:00
echo "bitwarden.sh version $COREVERSION"
docker --version
2022-02-24 16:36:59 +01:00
if [[ "$dccmd" == "docker compose" ]]; then
$dccmd version
else
$dccmd --version
fi
echo ""
2017-08-23 22:15:42 +02:00
# Functions
function downloadSelf() {
2020-05-04 21:44:38 +02:00
if curl -s -w "http_code %{http_code}" -o $SCRIPT_PATH.1 $GITHUB_BASE_URL/scripts/bitwarden.sh | grep -q "^http_code 20[0-9]"
then
mv $SCRIPT_PATH.1 $SCRIPT_PATH
chmod u+x $SCRIPT_PATH
else
rm -f $SCRIPT_PATH.1
fi
2017-08-23 22:15:42 +02:00
}
function downloadRunFile() {
2017-09-18 18:11:03 +02:00
if [ ! -d "$SCRIPTS_DIR" ]
then
mkdir $SCRIPTS_DIR
fi
2017-08-23 22:15:42 +02:00
curl -s -o $SCRIPTS_DIR/run.sh $GITHUB_BASE_URL/scripts/run.sh
chmod u+x $SCRIPTS_DIR/run.sh
rm -f $SCRIPTS_DIR/install.sh
2017-08-23 22:15:42 +02:00
}
2017-09-18 18:11:03 +02:00
function checkOutputDirExists() {
if [ ! -d "$OUTPUT" ]
then
2018-06-01 03:47:06 +02:00
echo "Cannot find a Bitwarden installation at $OUTPUT."
2017-09-18 18:11:03 +02:00
exit 1
fi
}
function checkOutputDirNotExists() {
if [ -d "$OUTPUT/docker" ]
2017-09-18 18:11:03 +02:00
then
2018-06-01 03:47:06 +02:00
echo "Looks like Bitwarden is already installed at $OUTPUT."
2017-09-18 18:11:03 +02:00
exit 1
fi
}
2019-10-25 02:04:09 +02:00
function listCommands() {
cat << EOT
Available commands:
install
2019-10-25 02:04:09 +02:00
start
restart
stop
update
updatedb
updaterun
updateself
2019-10-25 02:04:09 +02:00
updateconf
uninstall
2020-06-17 15:05:35 +02:00
renewcert
2019-10-25 02:04:09 +02:00
rebuild
help
See more at https://bitwarden.com/help/article/install-on-premise/#script-commands-reference
EOT
}
2017-08-23 22:15:42 +02:00
# Commands
case $1 in
"install")
checkOutputDirNotExists
mkdir -p $OUTPUT
downloadRunFile
$SCRIPTS_DIR/run.sh install $OUTPUT $COREVERSION $WEBVERSION $KEYCONNECTORVERSION
;;
"start" | "restart")
checkOutputDirExists
$SCRIPTS_DIR/run.sh restart $OUTPUT $COREVERSION $WEBVERSION $KEYCONNECTORVERSION
;;
"update")
checkOutputDirExists
downloadRunFile
$SCRIPTS_DIR/run.sh update $OUTPUT $COREVERSION $WEBVERSION $KEYCONNECTORVERSION
;;
"rebuild")
checkOutputDirExists
$SCRIPTS_DIR/run.sh rebuild $OUTPUT $COREVERSION $WEBVERSION $KEYCONNECTORVERSION
;;
"updateconf")
checkOutputDirExists
$SCRIPTS_DIR/run.sh updateconf $OUTPUT $COREVERSION $WEBVERSION $KEYCONNECTORVERSION
;;
"updatedb")
checkOutputDirExists
$SCRIPTS_DIR/run.sh updatedb $OUTPUT $COREVERSION $WEBVERSION $KEYCONNECTORVERSION
;;
"stop")
checkOutputDirExists
$SCRIPTS_DIR/run.sh stop $OUTPUT $COREVERSION $WEBVERSION $KEYCONNECTORVERSION
;;
"renewcert")
checkOutputDirExists
$SCRIPTS_DIR/run.sh renewcert $OUTPUT $COREVERSION $WEBVERSION $KEYCONNECTORVERSION
;;
"updaterun")
checkOutputDirExists
downloadRunFile
;;
"updateself")
downloadSelf && echo "Updated self." && exit
;;
"uninstall")
checkOutputDirExists
$SCRIPTS_DIR/run.sh uninstall $OUTPUT
;;
"help")
listCommands
;;
*)
echo "No command found."
echo
listCommands
esac