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
-
Railway Docs
-
LINE Developers