socktop-webterm/docker/entrypoint.sh

107 lines
2.8 KiB
Bash
Raw Permalink Normal View History

#!/bin/bash
set -e
# Entrypoint script for socktop webterm container
# This script handles initialization and starts services
echo "==================================="
echo "Starting socktop webterm container"
echo "==================================="
# Function to verify config files are mounted correctly
copy_config_files() {
echo "Checking for configuration files..."
# Verify Alacritty configuration
if [ -f "/home/socktop/.config/alacritty/alacritty.toml" ]; then
echo " ✓ alacritty.toml is mounted"
else
echo " WARNING: alacritty.toml not found"
fi
# Verify Catppuccin Frappe theme
if [ -f "/home/socktop/.config/alacritty/catppuccin-frappe.toml" ]; then
echo " ✓ catppuccin-frappe.toml is mounted"
else
echo " WARNING: catppuccin-frappe.toml not found"
fi
# Verify socktop profiles.json
if [ -f "/home/socktop/.config/socktop/profiles.json" ]; then
echo " ✓ profiles.json is mounted"
else
echo " WARNING: profiles.json not found"
fi
# Check for TLS certificates
echo "Checking for TLS certificates..."
for key in rpi-master.pem rpi-worker-1.pem rpi-worker-2.pem rpi-worker-3.pem; do
if [ -f "/home/socktop/.config/socktop/certs/$key" ]; then
echo "$key found"
else
echo " - $key not found (optional)"
fi
done
}
# Set up Alacritty as default terminal
setup_alacritty() {
echo "Setting up Alacritty as default terminal..."
# Set TERM environment variable (already set in deployment env)
export TERM=alacritty
echo "Alacritty setup complete"
}
# Start socktop agent
start_socktop_agent() {
echo "Starting socktop-agent on port 3001..."
# Start socktop-agent in the background on port 3001
/usr/bin/socktop_agent --port 3001 > /tmp/socktop-agent.log 2>&1 &
AGENT_PID=$!
echo "socktop-agent started (PID: $AGENT_PID)"
# Give it a moment to start
sleep 1
# Check if it's running
if kill -0 $AGENT_PID 2>/dev/null; then
echo " ✓ socktop-agent is running on port 3001"
else
echo " ⚠ socktop-agent may have failed to start (check /tmp/socktop-agent.log)"
fi
}
# Main initialization
main() {
echo "Running initialization..."
# Copy configuration files
copy_config_files
# Set up Alacritty
setup_alacritty
# Start socktop agent
start_socktop_agent
echo ""
echo "==================================="
echo "Initialization complete!"
echo "==================================="
echo ""
echo "Services:"
echo " - Webterm: http://localhost:8082"
echo " - Socktop Agent: ws://localhost:3001/ws"
echo ""
# Execute the main command
exec "$@"
}
# Run main function
main "$@"