AGPL-3.0Open source
Open source, dalle formule ai server
Ogni riga di OpenAthlete è pubblica su GitHub: i calcoli del carico di allenamento, i connettori degli orologi, i prompt dell'IA. Usa i nostri server, o installalo sui tuoi con un solo 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);
}La licenza
AGPL-3.0, in parole semplici
Una licenza di software libero con una regola in più per il software usato tramite rete. Ecco cosa significa per te.
Puoi
- Usarlo per qualsiasi cosa: il tuo allenamento, la tua attività di coaching, la tua società.
- Leggere e studiare ogni riga.
- Modificarlo a tuo piacimento.
- Far girare una tua copia, per te o per altri.
La licenza chiede di
- Se delle persone usano una versione modificata tramite rete, offrire loro il suo codice sorgente.
- Condividere le tue modifiche con la stessa licenza.
- Mantenere le note di copyright e di licenza.
Usarlo senza modifiche per la tua società non comporta alcun obbligo. Questo è un riassunto, non una consulenza legale: il testo completo è su gnu.org.
Perché è importante
Il tuo storico di allenamento non dovrebbe dipendere dal business plan di qualcun altro
Marzo 2024
Today's Plan, di proprietà di Specialized, chiude. I suoi allenatori e atleti devono cambiare piattaforma.
Luglio 2026
Garmin acquista TrainingPeaks. La piattaforma di coaching indipendente più nota ora appartiene a un produttore di orologi.
Con OpenAthlete
Il codice è pubblico. Se ci fermassimo domani, chiunque potrebbe farlo girare il giorno dopo, e la tua esportazione contiene tutto il tuo storico.
Self-hosting
La tua istanza in tre passaggi
Per una società sportiva, un laboratorio, un'attività di coaching, o solo per te.
- 1
Procurati un server con Docker
Qualsiasi macchina Linux con Docker e il suo plugin Compose. 1 GB di RAM basta: lo stack usa circa 250 MB a riposo. Punta il DNS del tuo dominio verso di essa.
- 2
Esegui lo script di installazione
Scarica il file Compose, scrive un .env con nuovi segreti, scarica le immagini e avvia PostgreSQL, Redis, l'API, la web app e Caddy per l'HTTPS automatico.
- 3
Crea il primo account
Apri il tuo dominio. Il primo account è il tuo; dopo, la registrazione è su invito, quindi invita i tuoi atleti o allenatori. Esegui di nuovo lo script per aggiornare.
- Conserva una copia del .env: senza HASH_PEPPER, nessuna password può essere verificata.
$ 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.domainFunziona subito
- Ogni funzionalità, senza limite di atleti e senza paywall
- Sincronizzazione COROS, che richiede solo il tuo indirizzo
- Importazione FIT, GPX e TCX, e l'API di importazione attività
- Il server MCP per Claude, ChatGPT e altri agenti
- Le chiavi IA degli utenti, e modelli locali come Ollama
Disattivato finché non lo imposti nel .env
- Email: inviti, reimpostazione della password
SMTP_HOST · BREVO_API_KEY - Sincronizzazione Strava, Garmin, Polar e Suunto, con un account sviluppatore presso ciascun marchio
STRAVA_* · GARMIN_* · POLAR_* · SUUNTO_* - Single sign-on
OIDC_ISSUER · OIDC_CLIENT_ID - IA con le chiavi dell'istanza, con un budget mensile per utente
OPENAI_API_KEY · AI_HOSTED_MONTHLY_BUDGET_USD - Stima del carico con l'IA per le sedute pianificate
ENABLE_TRAINING_LOAD_ESTIMATION - Analytics e segnalazioni di errore
POSTHOG_PROJECT_TOKEN - Fatturazione, che non ti serve
STRIPE_*
Privacy
Un'istanza self-hosted non ci invia nulla
Niente analytics, niente segnalazioni di errore, niente chiamate a casa. Un test end-to-end apre l'app self-hosted in un vero browser e fallisce se fa anche una sola richiesta a terzi.
Restano due chiamate esterne, per scelta: le tessere della mappa da OpenStreetMap nel browser e il meteo da Open-Meteo sul tuo server.
Trasparenza
Ogni numero ha la sua formula
Nell'app, ogni metrica dice cos'è e quali sono i suoi limiti. Nel codice, puoi vedere esattamente come viene calcolata.
Contribuisci
C'è posto anche per te
Codice
Scegli una «good first issue», o sistema quello che ti dà fastidio. L'ambiente di sviluppo è documentato.
Good first issuesTraduzioni
L'app parla inglese, francese, italiano, spagnolo e portoghese brasiliano. Correggi una frase goffa o porta una nuova lingua.
File di traduzioneFeedback
Dicci cosa manca, cosa non funziona, per cosa pagheresti. Su Discord si discute la roadmap.
Unisciti al DiscordFinanziamento
Pagato dai suoi utenti, da nessun altro
Nessun investitore, nessuna pubblicità, nessun dato venduto. I Supporter (5 € al mese o 50 € all'anno) e i caffè offerti una tantum pagano i server, l'IA e il tempo di sviluppo.
Costruito con NestJS, PostgreSQL con pgvector, Redis e BullMQ, React 19 e Vite, Capacitor e Next.js. Immagini Docker su GHCR per amd64 e arm64.
Preferisci che lo ospitiamo noi?
Stesso codice, sui nostri server in Francia. Gratis, con Supporter se vuoi l'IA con le nostre chiavi o più di cinque atleti.
Gratis per sempre. Nessuna carta di credito.