
Deploy Cycling Coach
BYOK single-tenant Telegram cycling coach with persistent /data.
cycling-coach
Just deployed
/data
Deploy and Host Cycling Coach on Railway
Cycling Coach is an open-source, bring-your-own-key Telegram cycling coach for cyclists. It syncs with intervals.icu, reads your training data, and uses your chosen LLM provider to answer training questions, inspect recent load, and help plan workouts.
About Hosting Cycling Coach
This Railway template deploys your own private Cycling Coach bot from ghcr.io/yerzhansa/cycling-coach:stable. Railway keeps it running 24/7, so your computer does not need to stay on. Telegram updates are received by outbound long polling, so no public HTTP endpoint is required. Railway mounts persistent state at /data, and image auto-updates are enabled.
Railway hosts the container and volume in your Railway account. The bot reads your Railway variables, then talks directly to Telegram, intervals.icu, and your selected LLM provider. The project maintainer does not run a shared backend and does not receive your API keys, athlete data, Telegram messages, or volume contents. Your hosting and billing relationship is with Railway. Railway currently lists Hobby as the practical minimum for always-on apps: $5 minimum usage/month, including $5 monthly usage credits.
Common Use Cases
- Run a private AI cycling coach in Telegram without managing a VPS.
- Connect intervals.icu activity data to coaching conversations.
- Keep a persistent, single-tenant bot that updates through Railway image auto-updates.
How to Deploy
- Click Deploy Now.
- Fill the required Railway variables below.
- Wait for Railway to deploy the service.
- Open Telegram and send
/startto the bot you created with BotFather.
Railway does not run cycling-coach setup; the variables below are the setup. If a value is wrong, edit the service variables in Railway and redeploy or restart the service.
Dependencies for Cycling Coach Hosting
Before you click Deploy, prepare three accounts: one LLM provider account, intervals.icu, and Telegram.
| Variable | What to enter | Where to get it |
|---|---|---|
LLM_PROVIDER | One lower-case provider id: anthropic, openai, google, deepseek, qwen, minimax, kimi, zai, or openrouter. Start with anthropic if unsure. | Pick the provider that issued your LLM_API_KEY. ChatGPT Plus login is not supported in Railway because it needs an interactive browser login. |
LLM_API_KEY | API key for the provider in LLM_PROVIDER. | Anthropic Console, OpenAI Platform, Google AI Studio, DeepSeek Platform, Alibaba Cloud DashScope, MiniMax Platform, Moonshot AI, Z.AI, or OpenRouter. |
INTERVALS_API_KEY | Your intervals.icu API key. | intervals.icu/settings > Developer Settings. |
INTERVALS_ATHLETE_ID | Your intervals.icu athlete id, usually like i12345. Include the leading i when intervals.icu shows one. | Open your intervals.icu profile/settings URL and copy the athlete id from the URL or profile details. |
TELEGRAM_BOT_TOKEN | Token for the Telegram bot users will message. | In Telegram, open @BotFather, run /newbot, choose a name and username, then copy the token. |
CYCLING_COACH_OPERATOR_ID | Your numeric Telegram user id, for example 123456789. This is not the bot token and not the bot username. | In Telegram, message a helper bot such as @userinfobot and copy your numeric id. Only this Telegram user is allowed to talk to your bot by default. |
Deployment Dependencies
- Source and docs: https://github.com/yerzhansa/cycling-coach
- Docker image: https://ghcr.io/yerzhansa/cycling-coach
- intervals.icu settings: https://intervals.icu/settings
- Telegram BotFather: https://t.me/BotFather
Why Deploy Cycling Coach on Railway?
Railway is a singular platform to deploy your infrastructure stack. Railway will host your infrastructure so you don't have to deal with configuration, while allowing you to vertically and horizontally scale it.
By deploying Cycling Coach on Railway, you are one step closer to supporting a complete full-stack application with minimal burden. Host your servers, databases, AI agents, and more on Railway.
Template Content
cycling-coach
ghcr.io/yerzhansa/cycling-coach:stableLLM_API_KEY
LLM_PROVIDER
INTERVALS_API_KEY
TELEGRAM_BOT_TOKEN
INTERVALS_ATHLETE_ID
CYCLING_COACH_OPERATOR_ID
