Files
2026-08-28 17:31:02 +02:00

37 lines
1.0 KiB
Bash
Executable File

#!/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[@]}"