#!/bin/bash set -e DB_DIR="/simplex/data" DB_PREFIX="simplex" BOT_NAME="${SIMPLEX_BOT_DISPLAY_NAME}" BOT_DESCRIPTION="${SIMPLEX_BOT_DESCRIPTION}" BOT_AVATAR="/simplex/bot_avatar.jpeg" INTERNAL_PORT=5226 EXTERNAL_PORT=5225 has_chat_db() { find "$DB_DIR" -maxdepth 1 -type f -name '*.db' 2>/dev/null | grep -q . } mkdir -p "$DB_DIR" cd "$DB_DIR" echo "Starting socat proxy (0.0.0.0:$EXTERNAL_PORT -> 127.0.0.1:$INTERNAL_PORT)..." socat TCP-LISTEN:$EXTERNAL_PORT,fork,reuseaddr TCP:127.0.0.1:$INTERNAL_PORT & DB_ARGS=(-d "$DB_PREFIX") ARGS=("${DB_ARGS[@]}" -p "$INTERNAL_PORT") if ! has_chat_db; then echo "First run detected. Creating bot profile: $BOT_NAME" AVATAR_DATA="$(base64 -w 0 "$BOT_AVATAR")" simplex-chat \ --create-bot-display-name "$BOT_NAME" \ "${DB_ARGS[@]}" \ -e "/_profile 1 {\"displayName\":\"$BOT_NAME\",\"fullName\":\"$BOT_NAME\",\"shortDescr\":\"$BOT_DESCRIPTION\",\"image\":\"$AVATAR_DATA\"}" fi echo "Starting SimpleX CLI in API mode on internal port $INTERNAL_PORT..." exec simplex-chat "${ARGS[@]}"