name: deployment-railway description: Deploy Python Flask applications to Railway.app with environment configuration and webhook setup
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 tokenLINE_CHANNEL_SECRET- Channel secretFIREBASE_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
ProcfileandPORTusage - Webhook 400: Verify
LINE_CHANNEL_SECRET - Firebase failed: Check JSON format in env var
- No scheduled jobs: Upgrade to Hobby plan ($5/mo)