vw_small

Hardened fork of Vaultwarden (https://github.com/dani-garcia/vaultwarden) with fewer features.
git clone https://git.philomathiclife.com/repos/vw_small
Log | Files | Refs | README

commit fdf50f0064e7fa7949a3acf0e94bea5ab00463b8
parent ccf6ee79d0e8855cd3653667bd4e9b906458ff8b
Author: Jeremy Lin <jjlin@cs.stanford.edu>
Date:   Tue, 24 Mar 2020 19:57:10 -0700

Update healthcheck script to handle alternate base dir

Diffstat:
Mdocker/healthcheck.sh | 61++++++++++++++++++++++++++++++++++++++++++++++++++++---------
1 file changed, 52 insertions(+), 9 deletions(-)

diff --git a/docker/healthcheck.sh b/docker/healthcheck.sh @@ -1,8 +1,52 @@ -#!/usr/bin/env sh - -if [ -z "$ROCKET_TLS"] -then - curl --fail http://localhost:${ROCKET_PORT:-"80"}/alive || exit 1 -else - curl --insecure --fail https://localhost:${ROCKET_PORT:-"80"}/alive || exit 1 -fi -\ No newline at end of file +#!/bin/sh + +# Use the value of the corresponding env var (if present), +# or a default value otherwise. +: ${DATA_FOLDER:="data"} +: ${ROCKET_PORT:="80"} + +CONFIG_FILE="${DATA_FOLDER}"/config.json + +# Given a config key, return the corresponding config value from the +# config file. If the key doesn't exist, return an empty string. +get_config_val() { + local key="$1" + # Extract a line of the form: + # "domain": "https://bw.example.com/path", + grep "\"${key}\":" "${CONFIG_FILE}" | + # To extract just the value (https://bw.example.com/path), delete: + # (1) everything up to and including the first ':', + # (2) whitespace and '"' from the front, + # (3) ',' and '"' from the back. + sed -e 's/[^:]\+://' -e 's/^[ "]\+//' -e 's/[,"]\+$//' +} + +# Extract the base path from a domain URL. For example: +# - `` -> `` +# - `https://bw.example.com` -> `` +# - `https://bw.example.com/` -> `` +# - `https://bw.example.com/path` -> `/path` +# - `https://bw.example.com/multi/path` -> `/multi/path` +get_base_path() { + echo "$1" | + # Delete: + # (1) everything up to and including '://', + # (2) everything up to '/', + # (3) trailing '/' from the back. + sed -e 's|.*://||' -e 's|[^/]\+||' -e 's|/*$||' +} + +# Read domain URL from config.json, if present. +if [ -r "${CONFIG_FILE}" ]; then + domain="$(get_config_val 'domain')" + if [ -n "${domain}" ]; then + # config.json 'domain' overrides the DOMAIN env var. + DOMAIN="${domain}" + fi +fi + +base_path="$(get_base_path "${DOMAIN}")" +if [ -n "${ROCKET_TLS}" ]; then + s='s' +fi +curl --insecure --fail "http${s}://localhost:${ROCKET_PORT}${base_path}/alive" || exit 1