mirror of
				https://github.com/dani-garcia/vaultwarden.git
				synced 2025-10-29 09:20:01 +02:00 
			
		
		
		
	* Switch healthcheck interval/timeout from 30s/3s to 60s/10s. 30s interval is arguably overkill, and 3s timeout is definitely too short for lower end machines. * Use HEALTHCHECK CMD exec form to avoid superfluous `sh` invocations. * Add `--silent --show-error` flags to curl call to avoid progress meter being shown in healthcheck logs.
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.6 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() {
 | |
|     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 --silent --show-error \
 | |
|      "http${s}://localhost:${ROCKET_PORT}${base_path}/alive" || exit 1
 |