37 lines
1.0 KiB
Bash
Executable File
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[@]}"
|