harb/containers/txn-bot-entrypoint.sh
root ea27fcb722 feat: Complete Podman stack setup with working services
- Fixed service dependencies (removed bootstrap dependency for runtime services)
- Added landing service for documentation site at root path
- Moved web-app to /app path, landing to / path
- Fixed permission issues with lowercase 'z' SELinux context
- Added kraiken-lib compilation in txn-bot container
- Fixed TypeScript build for kraiken-lib with proper volumes
- Updated entrypoint scripts to handle npm installs properly
- Added locale fixes to Containerfiles
- Changed Caddy port from 80 to 8081 for external access
- Updated Docs link to point to local landing page

All services now working:
- Landing page at /
- Web app at /app/
- GraphQL at /graphql
- Transaction bot at /txn
- Anvil RPC at /rpc/anvil

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-24 12:12:54 +00:00

62 lines
1.8 KiB
Bash
Executable file

#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR=/workspace
TXNBOT_ENV_FILE=$ROOT_DIR/tmp/podman/txnBot.env
BOT_DIR=$ROOT_DIR/services/txnBot
KRAIKEN_LIB_DIR=$ROOT_DIR/kraiken-lib
while [[ ! -f "$TXNBOT_ENV_FILE" ]]; do
echo "[txn-bot-entrypoint] waiting for env file"
sleep 2
done
# Build kraiken-lib first
echo "[txn-bot-entrypoint] Building kraiken-lib..."
cd "$KRAIKEN_LIB_DIR"
# Install dependencies if needed
if [[ ! -d node_modules ]]; then
echo "[txn-bot-entrypoint] Installing kraiken-lib dependencies..."
npm install --loglevel error
fi
# Install TypeScript if not present
if [[ ! -f node_modules/.bin/tsc ]]; then
echo "[txn-bot-entrypoint] Installing TypeScript..."
npm install --loglevel error typescript
fi
# Build TypeScript files (dist is now a volume, writable by node user)
echo "[txn-bot-entrypoint] Compiling TypeScript..."
if [[ ! -f dist/index.js ]]; then
echo "[txn-bot-entrypoint] Running tsc to compile kraiken-lib..."
./node_modules/.bin/tsc \
--outDir dist \
--declaration \
--module commonjs \
--target es2020 \
--skipLibCheck \
--esModuleInterop \
--allowSyntheticDefaultImports \
--resolveJsonModule \
src/index.ts src/helpers.ts src/subgraph.ts src/__generated__/graphql.ts 2>&1 | head -20 || {
echo "[txn-bot-entrypoint] TypeScript compilation had some issues, checking if files were created..."
}
# Verify the main file exists
if [[ ! -f dist/index.js ]]; then
echo "[txn-bot-entrypoint] ERROR: Failed to compile kraiken-lib"
exit 1
fi
fi
cd "$BOT_DIR"
echo "[txn-bot-entrypoint] Installing txn-bot dependencies..."
npm install --no-save --loglevel error 2>&1 || {
echo "[txn-bot-entrypoint] npm install failed, trying with --force"
npm install --force --no-save --loglevel error
}
export TXN_BOT_ENV_FILE="$TXNBOT_ENV_FILE"
exec npm run start