Spaces:
Runtime error
Runtime error
Deployment Guide
Complete deployment instructions for Smart LINE Bot + Dashboard + Scraper Pipeline.
Prerequisites
- Docker 20.10+
- Docker Compose 2.0+
- PostgreSQL 15+ (optional, using Docker)
- Redis 7+ (optional, using Docker)
Quick Start (Docker Compose)
1. Clone and Setup
git clone https://github.com/Smiledangers/smart-line-automation-suite.git
cd smart-line-automation-suite
# Copy environment template
cp .env.example .env
# Edit .env with your settings
nano .env
2. Configure Environment
# Required
LINE_CHANNEL_ACCESS_TOKEN=your_line_token
LINE_CHANNEL_SECRET=your_line_secret
OPENAI_API_KEY=your_openai_key
# Database
POSTGRES_PASSWORD=your_secure_password
SECRET_KEY=your_secret_key
3. Start Services
# Build and start all services
docker compose up -d --build
# Check status
docker compose ps
4. Initialize Database
# Run migrations
docker compose exec web alembic upgrade head
# Create superuser
docker compose exec web python scripts/create_superuser.py
5. Access Application
- API: http://localhost:8000/docs
- Health: http://localhost:8000/health
Production Deployment
Using Docker Compose (Production)
# Create production compose file
cp docker-compose.yml docker-compose.prod.yml
# Edit for production
# - Use specific image tags
# - Enable health checks
# - Configure logging
# Start production
docker compose -f docker-compose.prod.yml up -d
Using Kubernetes
# Apply Kubernetes manifests
kubectl apply -f deploy/k8s/
# Or use Helm
helm install demo-bot deploy/helm/demo-bot/
Using Helm Chart
# Install Helm chart
helm install smart-line-bot deploy/helm/demo-bot/ \
--set env.LINE_CHANNEL_ACCESS_TOKEN=xxx \
--set env.LINE_CHANNEL_SECRET=xxx \
--set env.OPENAI_API_KEY=xxx
Using Cloud Platforms
Render.com
# Deploy using render.yaml
render deploy
Railway
# Deploy using railway.json
railway deploy
Environment Variables
| Variable | Required | Description |
|---|---|---|
LINE_CHANNEL_ACCESS_TOKEN |
Yes | LINE Messaging API token |
LINE_CHANNEL_SECRET |
Yes | LINE channel secret |
OPENAI_API_KEY |
Yes | OpenAI API key |
DATABASE_URL |
Yes | PostgreSQL connection string |
REDIS_URL |
Yes | Redis connection string |
SECRET_KEY |
Yes | JWT signing key |
SENTRY_DSN |
No | Sentry error tracking |
SMTP_* |
No | Email configuration |
Health Checks
# Check container health
docker compose ps
# Check application health
curl http://localhost:8000/health
# Check database
docker compose exec db pg_isready
# Check Redis
docker compose exec redis redis-cli ping
Troubleshooting
Container Won't Start
# Check logs
docker compose logs web
# Check environment
docker compose exec web env
Database Connection Error
# Verify database is running
docker compose ps db
# Check connection
docker compose exec web python -c "from app.core.database import engine; engine.connect()"
LINE Webhook Not Working
# Verify LINE credentials
docker compose exec web python -c "from app.core.config import settings; print(settings.LINE_CHANNEL_ACCESS_TOKEN)"
Backup and Restore
Backup Database
docker compose exec db pg_dump -U postgres demo_project > backup.sql
Restore Database
docker compose exec -T db psql -U postgres demo_project < backup.sql
Monitoring
View Logs
# All services
docker compose logs -f
# Specific service
docker compose logs -f web
Prometheus Metrics
# Access metrics
curl http://localhost:8000/metrics