test/lib/vaultwarden.sh
2022-12-13 16:56:20 +00:00

89 lines
2.5 KiB
Bash

#!/bin/bash
#
# Federated Computer Control Postgresql Service
PATH=$HOME/.docker/cli-plugins:/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
config_vaultwarden() {
echo -ne "\n* Configuring /federated/apps/vaultwarden container.."
spin &
SPINPID=$!
if [ ! -d "/federated/apps/vaultwarden" ]; then
mkdir -p /federated/apps/vaultwarden/data/data
fi
DOMAIN_ARRAY=(${DOMAIN//./ })
DOMAIN_FIRST=${DOMAIN_ARRAY[0]}
DOMAIN_LAST=${DOMAIN_ARRAY[1]}
cat > /federated/apps/vaultwarden/docker-compose.yml <<EOF
version: '3.7'
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
hostname: vaultwarden.$DOMAIN
domainname: $DOMAIN
restart: always
networks:
federated:
ipv4_address: 172.99.0.33
environment:
- VAULTWARDEN_DATABASE_URL=vaultwarden://vaultwarden:$ADMINPASS@vaultwarden.$DOMAIN/vaultwarden
- "DATABASE_URL=vaultwarden://vaultwarden:$ADMINPASS@vaultwarden.$DOMAIN/vaultwarden"
- VIRTUAL_PROTO=http
- VIRTUAL_PORT=80
- VIRTUAL_HOST=vaultwarden.$DOMAIN
- WEBSOCKET_ENABLED=true
- ADMIN_TOKEN=$ADMINPASS
# - SIGNUPS_ALLOWED=false
volumes:
- ./data/data:/data
networks:
federated:
external: true
EOF
kill -9 $SPINPID &> /dev/null
echo -ne "done."
}
start_vaultwarden() {
# Start /federated/apps/vaultwarden with output to /dev/null
echo -ne "\n* Starting /federated/apps/vaultwarden service.."
spin &
SPINPID=$!
if [ $DEBUG ]; then
# Start /federated/apps/vaultwarden with output to console for debug
docker-compose -f /federated/apps/vaultwarden/docker-compose.yml -p vaultwarden up
[ $? -eq 0 ] && echo -ne "done.\n" || fail "There was a problem starting service /federated/apps/vaultwarden"
else
docker-compose -f /federated/apps/vaultwarden/docker-compose.yml -p vaultwarden up -d &> /dev/null
# Keep trying vaultwarden port 80 to make sure it's up
# before we proceed
RETRY="30"
while [ $RETRY -gt 0 ]; do
nc -z 172.99.0.33 80 &> /dev/null
if [ $? -eq 0 ]; then
break
else
if [ "$RETRY" == 1 ]; then
docker-compose -f /federated/apps/vaultwarden/docker-compose.yml -p vaultwarden down &> /dev/null
kill -9 $SPINPID &> /dev/null
fail "There was a problem starting service /federated/apps/vaultwarden\nCheck the output of 'docker logs vaultwarden' or turn on\ndebug with -d"
fi
((RETRY--))
sleep 7
fi
done
fi
kill -9 $SPINPID &> /dev/null
echo -ne "done."
}