AGPL-3.0Código aberto
Código aberto, das fórmulas aos servidores
Cada linha do OpenAthlete é pública no GitHub: a matemática da carga de treino, os conectores dos relógios, os prompts da IA. Use nossos servidores, ou instale nos seus com um único comando.
/**
* Banister TRIMP for `minutes` spent at `hr`:
* minutes × HRr × y × e^(k × HRr),
* with HRr = (HR - HRrest) / (HRmax - HRrest)
*/
function trimpAt(hr, minutes, hrMax, hrRest, gender) {
const hrFraction = (hr - hrRest) / (hrMax - hrRest);
if (hrFraction <= 0) {
return 0;
}
const { k, y } = getTrimpCoefficients(gender);
return minutes * hrFraction * y * Math.exp(k * hrFraction);
}A licença
AGPL-3.0, em palavras simples
Uma licença de software livre com uma regra a mais para software usado pela rede. Veja o que isso significa para você.
Você pode
- Usá-lo para qualquer coisa: seu próprio treino, sua assessoria, seu clube.
- Ler e estudar cada linha.
- Modificá-lo do seu jeito.
- Rodar sua própria cópia, para você ou para outras pessoas.
A licença pede
- Se pessoas usam uma versão modificada pela rede, ofereça a elas o código-fonte.
- Compartilhe suas alterações sob a mesma licença.
- Mantenha os avisos de direitos autorais e de licença.
Rodá-lo sem modificações para o seu clube não traz nenhuma obrigação. Este é um resumo, não uma orientação jurídica: o texto completo está em gnu.org.
Por que isso importa
Seu histórico de treino não deveria depender do plano de negócios de outra pessoa
Março de 2024
O Today's Plan, da Specialized, fecha as portas. Seus treinadores e atletas precisam mudar de plataforma.
Julho de 2026
A Garmin compra o TrainingPeaks. A plataforma de treinamento independente mais conhecida agora pertence a um fabricante de relógios.
Com o OpenAthlete
O código é público. Se parássemos amanhã, qualquer pessoa poderia rodá-lo no dia seguinte, e sua exportação guarda todo o seu histórico.
Auto-hospedagem
Sua própria instância em três passos
Para um clube, um laboratório, uma assessoria esportiva, ou só para você.
- 1
Arrume um servidor com Docker
Qualquer máquina Linux com Docker e o plugin Compose. 1 GB de RAM é suficiente: a stack usa cerca de 250 MB em repouso. Aponte o DNS do seu domínio para ela.
- 2
Rode o script de instalação
Ele baixa o arquivo Compose, gera um .env com segredos novos, baixa as imagens e inicia o PostgreSQL, o Redis, a API, o app web e o Caddy para HTTPS automático.
- 3
Crie a primeira conta
Abra seu domínio. A primeira conta é sua; depois disso, o cadastro é por convite, então convide seus atletas ou treinadores. Rode o script de novo para atualizar.
- Guarde uma cópia do .env: sem o HASH_PEPPER, nenhuma senha pode ser verificada.
$ curl -fsSL https://raw.githubusercontent.com/openathleteorg/openathlete/main/scripts/install.sh | sh -s -- --domain your.domain
Created .env with new secrets.
✔ postgres Started
✔ redis Started
✔ api Started
✔ web Started
✔ caddy HTTPS ready
→ https://your.domainFunciona de cara
- Todos os recursos, sem limite de atletas e sem paywall
- Sincronização com a COROS, que só precisa do seu endereço
- Importação de FIT, GPX e TCX, e a API de importação de atividades
- O servidor MCP para Claude, ChatGPT e outros agentes
- As próprias chaves de IA dos usuários, e modelos locais como o Ollama
Desativado até você configurar no .env
- E-mail: convites, redefinição de senha
SMTP_HOST · BREVO_API_KEY - Sincronização com Strava, Garmin, Polar e Suunto, com uma conta de desenvolvedor em cada marca
STRAVA_* · GARMIN_* · POLAR_* · SUUNTO_* - Login único (SSO)
OIDC_ISSUER · OIDC_CLIENT_ID - IA com as chaves da instância, com orçamento mensal por usuário
OPENAI_API_KEY · AI_HOSTED_MONTHLY_BUDGET_USD - Estimativa de carga por IA para sessões planejadas
ENABLE_TRAINING_LOAD_ESTIMATION - Analytics e relatórios de erros
POSTHOG_PROJECT_TOKEN - Cobrança, de que você não precisa
STRIPE_*
Privacidade
Uma instância auto-hospedada não nos envia nada
Sem analytics, sem relatórios de erros, sem comunicação com a gente. Um teste de ponta a ponta abre o app auto-hospedado em um navegador real e falha se ele fizer uma única requisição a terceiros.
Duas chamadas externas permanecem de propósito: os blocos de mapa do OpenStreetMap no navegador e o clima do Open-Meteo no seu servidor.
Transparência
Cada número tem sua fórmula
No app, cada métrica diz o que é e onde estão seus limites. No código, você vê exatamente como ela é calculada.
Contribua
Tem espaço para você aqui
Código
Escolha uma “good first issue”, ou corrija o que estiver te incomodando. O ambiente de desenvolvimento está documentado.
Good first issuesTraduções
O app fala inglês, francês, italiano, espanhol e português do Brasil. Corrija uma frase esquisita ou traga um novo idioma.
Arquivos de traduçãoFeedback
Conte o que está faltando, o que está quebrado, pelo que você pagaria. O Discord é onde o roadmap é debatido.
Entrar no DiscordFinanciamento
Pago pelos usuários, e por mais ninguém
Sem investidores, sem anúncios, sem venda de dados. Os Supporters (€5 por mês ou €50 por ano) e os cafés avulsos pagam os servidores, a IA e o tempo de desenvolvimento.
Feito com NestJS, PostgreSQL com pgvector, Redis e BullMQ, React 19 e Vite, Capacitor e Next.js. Imagens Docker no GHCR para amd64 e arm64.
Prefere que a gente hospede?
O mesmo código, nos nossos servidores na França. Grátis, com o Supporter se você quiser IA com as nossas chaves ou mais de cinco atletas.
Grátis para sempre. Sem cartão de crédito.