mirror of
https://github.com/dani-garcia/vaultwarden.git
synced 2024-12-27 07:35:58 -05:00
d722328f05
* WIP: Container building changes * Small updates - Updated to rust 1.73.0 - Updated crates - Updated documentation - Added a bake.sh script to make baking easier * Update GitHub Actions Workflow - Updated workflow to use qemu and buildx bake In the future i would like to extract the alpine based binaries and add them as artifacts to the release. * Address review remarks and small updates - Addressed review remarks - Added `podman-bake.sh` script to build Vaultwarden with podman - Updated README - Updated crates - Added `VW_VERSION` support - Added annotations - Updated web-vault to v2023.9.1
58 lines
1.8 KiB
Bash
Executable File
58 lines
1.8 KiB
Bash
Executable 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() {
|
|
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
|
|
|
|
addr="${ROCKET_ADDRESS}"
|
|
if [ -z "${addr}" ] || [ "${addr}" = '0.0.0.0' ] || [ "${addr}" = '::' ]; then
|
|
addr='localhost'
|
|
fi
|
|
base_path="$(get_base_path "${DOMAIN}")"
|
|
if [ -n "${ROCKET_TLS}" ]; then
|
|
s='s'
|
|
fi
|
|
curl --insecure --fail --silent --show-error \
|
|
"http${s}://${addr}:${ROCKET_PORT}${base_path}/alive" || exit 1
|