When to use this skill
Deploy Flask LINE bots to Railway.app, configure environment variables, set up webhooks, and monitor deployments.
How to use it
Required Files
Procfile:
web: python main.py
requirements.txt:
Flask==3.0.0
line-bot-sdk==3.5.0
APScheduler==3.10.4
firebase-admin==6.2.0
main.py entry point:
if __name__ == "__main__":
port = int(os.getenv("PORT", 5000))
app.run(host="0.0.0.0", port=port)
Environment Variables
Set in Railway dashboard:
LINE_CHANNEL_ACCESS_TOKEN - LINE Bot token
LINE_CHANNEL_SECRET - Channel secret
FIREBASE_CONFIG_JSON - Complete Firebase JSON
Deployment Steps
- Connect GitHub repo to Railway
- Set environment variables
- Get generated domain URL
- Configure LINE webhook:
https://your-app.up.railway.app/callback
Monitoring
Add health check:
@app.route("/", methods=['GET'])
def health_check():
return "Bot is running!", 200
View logs in Railway dashboard → Deployments → View Logs
Common Issues
- Crashed: Check
Procfile and PORT usage
- Webhook 400: Verify
LINE_CHANNEL_SECRET
- Firebase failed: Check JSON format in env var
- No scheduled jobs: Upgrade to Hobby plan ($5/mo)
Links