bluesky-pds-docker/entrypoint.sh

54 lines
1.5 KiB
Bash

#!/bin/bash
PUBLIC_IP=$(curl https://ipinfo.io/ip --silent)
HOSTNAME=$(hostname)
CONFIG_FILE=/pds/pds.env
function main {
if [[ -z "${PDS_JWT_SECRET}" ]]; then
echo "PDS_JWT_SECRET not specified"
exit 1
fi
if [[ -z "${PDS_ADMIN_PASSWORD}" ]]; then
echo "PDS_ADMIN_PASSWORD not specified"
exit 1
fi
if [[ -z "${PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX}" ]]; then
echo "PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX not specified"
exit 1
fi
# set PDS_HOSTNAME to hostname if not set
if [[ -z "${PDS_HOSTNAME}" ]]; then
echo "PDS_HOSTNAME not specified"
exit 1
fi
# create the config if it does not exist
if [[ ! -f ${CONFIG_FILE} ]]; then
echo "PDS_JWT_SECRET=${PDS_JWT_SECRET}" >${CONFIG_FILE}
echo "PDS_ADMIN_PASSWORD=${PDS_ADMIN_PASSWORD}" >>${CONFIG_FILE}
echo "PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX=${PDS_PLC_ROTATION_KEY_K256_PRIVATE_KEY_HEX}" >>${CONFIG_FILE}
echo "PDS_HOSTNAME=${PDS_HOSTNAME}" >>${CONFIG_FILE}
echo "PDS_CRAWLERS=https://bsky.network" >>${CONFIG_FILE}
fi
cat <<STARTED_MESSAGE
========================================================================
PDS Started
------------------------------------------------------------------------
HOSTNAME: ${HOSTNAME}
PUBLIC_IP: ${PUBLIC_IP}
PDS_HOSTNAME: ${PDS_HOSTNAME}
========================================================================
STARTED_MESSAGE
node --enable-source-maps index.js
}
main