Files
planka/server/start.sh
2025-07-30 13:51:24 +02:00

38 lines
936 B
Bash
Executable File

#!/bin/bash
set -eu
# Load secrets from files if corresponding *__FILE environment variables are set.
# Only the first line of each file is read (stripping carriage returns and newlines).
read_secret() {
local file="$1"
head -n 1 "$file" | tr -d '\r\n'
}
load_secret() {
local envar="$1"
local file="${envar}__FILE"
if [[ -z "${!envar:-}" && -e "${!file:-}" ]]; then
export "$envar"="$(read_secret "${!file}")"
fi
}
if [[ -n "${DATABASE_URL}" ]]; then
if [[ -z "${DATABASE_PASSWORD:-}" && -e "${DATABASE_PASSWORD__FILE:-}" ]]; then
DATABASE_PASSWORD="$(read_secret "${DATABASE_PASSWORD__FILE}")"
export DATABASE_URL="${DATABASE_URL/\$\{DATABASE_PASSWORD\}/${DATABASE_PASSWORD}}"
fi
fi
load_secret SECRET_KEY
load_secret DEFAULT_ADMIN_PASSWORD
load_secret S3_SECRET_ACCESS_KEY
load_secret OIDC_CLIENT_SECRET
load_secret SMTP_PASSWORD
export NODE_ENV=production
node db/init.js
exec node app.js --prod