Files
slack-to-ntfy/scripts/setup.sh
2025-09-22 12:26:50 -07:00

57 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
set -e
echo "⚙️ Setting up Slack to ntfy middleware..."
# Check if Docker is installed
if ! command -v docker &> /dev/null; then
echo "❌ Docker is not installed. Please install Docker first."
exit 1
fi
# Check if Docker Compose is available
if ! docker compose version &> /dev/null; then
echo "❌ Docker Compose is not available. Please install Docker Compose."
exit 1
fi
echo "✅ Docker and Docker Compose are available"
# Prompt for configuration
echo
echo "📝 Please provide your ntfy server configuration:"
read -p "ntfy server URL (e.g., https://ntfy.example.com): " NTFY_URL
read -p "Bearer token (e.g., tk_xxxxx) [optional]: " NTFY_TOKEN
read -p "ntfy username (for basic auth) [optional]: " NTFY_USERNAME
read -p "ntfy password (for basic auth) [optional]: " NTFY_PASSWORD
# Update docker-compose.yml
if [ ! -z "$NTFY_URL" ]; then
sed -i '' "s|https://your-ntfy-server.com|$NTFY_URL|g" docker-compose.yml
fi
# Reset all auth lines to commented placeholders first to ensure a clean state
sed -i '' "s|^ - NTFY_TOKEN=.*| # - NTFY_TOKEN=tk_your_bearer_token_here|" docker-compose.yml
sed -i '' "s|^ - NTFY_USERNAME=.*| # - NTFY_USERNAME=your_username|" docker-compose.yml
sed -i '' "s|^ - NTFY_PASSWORD=.*| # - NTFY_PASSWORD=your_password|" docker-compose.yml
if [ ! -z "$NTFY_TOKEN" ]; then
sed -i '' "s|^ # - NTFY_TOKEN=tk_your_bearer_token_here| - NTFY_TOKEN=$NTFY_TOKEN|" docker-compose.yml
elif [ ! -z "$NTFY_USERNAME" ] && [ ! -z "$NTFY_PASSWORD" ]; then
sed -i '' "s|^ # - NTFY_USERNAME=your_username| - NTFY_USERNAME=$NTFY_USERNAME|" docker-compose.yml
sed -i '' "s|^ # - NTFY_PASSWORD=your_password| - NTFY_PASSWORD=$NTFY_PASSWORD|" docker-compose.yml
fi
echo "✅ Configuration updated in docker-compose.yml"
# Build and start
echo "🐳 Building and starting the service..."
docker compose up -d --build
echo "✅ Service is starting up..."
echo
echo "Next steps:"
echo "1. Test the service: ./scripts/test.sh"
echo "2. Check logs: docker compose logs -f"
echo "3. Configure Slack webhook URL: http://your-server-ip:8080/your-topic-name"