- Endurain एक self-hosted fitness tracking service है जिसे users को अपने data और hosting environment पर सीधा control देने के लिए बनाया गया है; यह Strava जैसा है, लेकिन privacy protection और customization पर केंद्रित है
- frontend Vue.js पर और backend Python FastAPI पर आधारित है, और PostgreSQL, Jaeger, Alembic, SQLAlchemy आदि का उपयोग करके activity data management और basic tracing तैयार करता है
- Strava और Garmin Connect integration support करता है, और
.gpx,.tcx,.fitfiles के जरिए activities को manually upload करना भी संभव है - Docker image और
docker-compose.yml.exampleexample उपलब्ध हैं, और settings environment variables से handle की जाती हैं ताकि deployment और customization आसान रहे - GitHub repository read-only mirror है और project activity Codeberg पर होती है; फिलहाल यह नई features के बजाय foundation मजबूत करने पर केंद्रित temporary feature freeze स्थिति में है
Endurain क्या-क्या features देता है
- Endurain एक self-hosted fitness tracking service है, जिसका लक्ष्य users को अपने data और hosting environment पर पूरा control देना है
- यह Strava जैसी service है, लेकिन focus privacy protection और customization पर है
- activity data को external service integration या file upload के जरिए import किया जा सकता है
- Strava integration support
- Garmin Connect integration support
.gpx,.tcx,.fitfiles का manual upload support
Technical stack
- frontend Vue.js, Notivue, Bootstrap CSS से बना है
- backend मुख्य रूप से Python FastAPI पर आधारित है
- Alembic
- SQLAlchemy
- Apprise
- Strava integration के लिए
stravalib - Garmin Connect integration के लिए
python-garminconnect .gpximport के लिएgpxpy.tcximport के लिएtcxreader.fitimport के लिएfitdecode
- database के लिए PostgreSQL इस्तेमाल होता है
- basic tracing और monitoring के लिए Jaeger इस्तेमाल होता है
Deployment और configuration
- Endurain deployment के लिए Docker image उपलब्ध है
- repository में
docker-compose.yml.examplefile है, जिससे deployment example देखा जा सकता है - settings environment variables के जरिए handle की जाती हैं, जिससे flexibility और customization में सुविधा मिलती है
- अधिक जानकारी Endurain documentation में देखी जा सकती है
Demo environment
- Endurain को install किए बिना आज़माने के लिए demo उपलब्ध है
- https://demo.endurain.com
- username:
admin - password:
admin
- demo environment Europe/Lisbon timezone के अनुसार हर दिन midnight पर reset होता है
- demo में important data save नहीं करना चाहिए
Project status और license
- GitHub repository read-only mirror है, और issues, pull requests व project activity Codeberg पर manage होते हैं
- Endurain temporary feature freeze स्थिति में है
- project बंद नहीं हुआ है; focus नई features से हटकर foundation मजबूत करने पर गया है
- संबंधित explanation Pausing new features so Endurain can keep growing में देखी जा सकती है
- multilingual support है और Codeberg Translate के जरिए translation में contribute किया जा सकता है
- license AGPL-3.0 है
- Endurain® João Vitória Silva का trademark है
- personal, educational, research और community purposes के लिए non-commercial self-hosting और name/logo usage allowed है
- paid hosting, products या services देने जैसे Endurain name या logo के commercial use की अनुमति पहले से लिखित permission के बिना नहीं है
1 टिप्पणियां
Hacker News की राय
धीरे-धीरे intervals.icu(https://intervals.icu/) की तरफ शिफ्ट हो रहा/रही हूँ
यह donation-based है, इसलिए कुछ हद तक “open source” के करीब लगता है, और Strava से कहीं बेहतर महसूस होता है
Strava इस्तेमाल करने की वजह यह है कि दोस्त और परिवार motivate करते हैं, न कि इसलिए कि बड़े power/heart-rate numbers चाहिए
web app के तौर पर एक feature गायब है: मुझे लगता है smartwatch द्वारा रिकॉर्ड की गई activities की automatic tracking मुश्किल होगी
workaround शायद यह है कि पहले Strava में automatic import हो, फिर Strava को Endurain से connect किया जाए
Garmin, FIT activities import करने के लिए Connect का REST interface देता है
https://developer.garmin.com/gc-developer-program/activity-a...
इसलिए जो चीज़ missing है वह Endurain और प्रमुख manufacturer platforms के बीच integration लगती है। असल में missing है या नहीं, code नहीं देखा
याद है Garmin में भी संभव था, लेकिन latest version के बारे में ठीक से नहीं पता
अगर कोई professional developer नहीं है और development concepts बस 10 साल पहले university में सीखे स्तर तक हैं, तो इतना polished दिखने वाला system बनाना वाकई अच्छी बात है
हालांकि पता नहीं original developer हैं या नहीं, लेकिन क्या उन्हें डर नहीं लगता कि कहीं ऐसी mistakes कर दी हों जो बाद में मुश्किल बनें? जैसे security issues या ऐसे errors जिन्हें बाद में ठीक करना कठिन हो
मैं ऐसा व्यक्ति हूँ जो मामूली typo या ऐसे bug पर एक घंटा गंवा देता है जो आसानी से मिल जाना चाहिए था
मैं ChatGPT को project assistance, code generation, और code issues point out करने के लिए इस्तेमाल कर रहा हूँ
खासकर common features implement करते समय, यह मेरे अकेले करने की तुलना में edge cases बेहतर संभालता है, और security holes बंद करने को कहूँ तो मेरे स्तर से बेहतर करता है
कल ही इसने form भरने वाले bots को रोकने की 7 strategies सुझाईं, और उनमें से कुछ को कुछ मिनटों में लागू करते ही bot problem तुरंत रुक गई
गलतियाँ तो स्वाभाविक हैं, लेकिन AI tools को अपनी critical thinking के साथ इस्तेमाल करने पर वे ऐसी mistakes कम करने में मदद करते हैं। अक्सर AI को correct करना, किसी खास तरह की समस्या रोकने के नजरिए से मदद माँगना, या existing knowledge के आधार पर prompt बनाना—इनसे बहुत बेहतर जवाब मिलते हैं
impressive बात यह है कि उसने system बनाया और शायद community feedback के लिए खोल दिया, जो किसी experienced developer के security की चिंता में सालों तक अकेले बनाने से बेहतर नतीजा दे सकता है
मेरे हिसाब से mistake से ज्यादा अहम है उसे खोजने और ठीक करने की speed। और वही चीज़ दोबारा न हो, इसके लिए linters, unit tests, type system, CI/CD जैसे self-reinforcing systems बनाना ज़रूरी है। मज़ाक में मैं इसे humility-driven development कहता हूँ
सबसे experienced developers भी ऐसी mistakes करते हैं। अगर आपको लगता है कि आप उस stage से आगे निकल चुके हैं, तो सच देखने के लिए आपको और experience चाहिए
सीखने का सबसे अच्छा तरीका है project बनाना, mistakes करना, और उन्हें ठीक करने का तरीका खोजना। जितना मुश्किल fix होगा, अगले project में उतना ही आप उसे शुरू की design से consider करेंगे
AI हो या beginner, आखिर फर्क बस इस बात की degree का है कि कितना गलत है
नाम शानदार है। लगता है endurance और Spain के महान cycling champion Miguel Induráin के नाम को मिलाकर बनाया गया pun है
https://en.m.wikipedia.org/wiki/Miguel_Indur%C3%A1in
उसने EPO pioneer Dr. Conconi के साथ काम किया, और कभी पकड़ा नहीं गया, लेकिन उसके clean होने की संभावना कम लगती है
क्या यह backup feature वाला alternative frontend ज्यादा नहीं है?
आखिर इस tool तक आने से पहले data पहले Strava को देना पड़ता है, ऐसा structure लगता है
Strava की बिल्कुल जरूरत न रखने वाला, मेरा बनाया हुआ काफी rough alternative भी है: https://github.com/cfe84/gpx-tools/blob/main/README.md
यह GPX tracks वाले folder में चलाया जाने वाला CLI command है, और segments को सीधे JSON file में define करके segment-wise performance list की जा सकती है
मैं activities OsmAnd से record करता हूँ, foldersync से syncthing के जरिए sync करता हूँ, फिर target folder में इसे run करके इस्तेमाल करता हूँ
segment calculation logic reference के तौर पर काम आ सकता है। मैं दावा नहीं करूँगा कि यह बेहतरीन है, लेकिन server में जोड़ने लायक अच्छा extra feature हो सकता है
मुझे लगता है कि Strava का killer feature segments है
सभी users में सबसे तेज़ रिकॉर्ड, यानी KOM, में दिलचस्पी न भी हो, तब भी किसी खास road segment पर समय के साथ अपनी प्रगति की तुलना कर पाना मूल्यवान है
heart rate और perceived exertion को साथ देखकर अंदाज़ा लगाया जा सकता है कि अभी fitness किस स्तर पर है, या peak condition से कितने नीचे हैं
उसके बाद malicious segments और submitters को block या remove करने का तरीका चाहिए होगा, और शायद voting system भी संभव हो
activity के दौरान segments detect करना tricky है, इसलिए इस पर और research करना चाहता था। शायद ChatGPT की explanation का सहारा लिया जा सकता है, लेकिन इतना जानता हूँ कि इसमें latitude/longitude bounding box और उसके अंदर start/end points detect करने जैसा कुछ शामिल होता है
धुंधला-सा याद है कि Strava के पास segments को लेकर कोई patent था
Gadgetbridge[0] जैसे mobile tools के साथ इसे कैसे इस्तेमाल किया जा सकता है, यह जानने की उत्सुकता है
यह app smartwatch की proprietary app को bypass करने और health/location data को commercial services पर upload न करने में मदद करता है
लेकिन यह Garmin की प्रमुख sports watches को support नहीं करता और सिर्फ कुछ devices को support करता है[1]। इसलिए watch को USB से जोड़कर tracks transfer करने पड़ते हैं और computer से access करना पड़ता है; mobile support नहीं है
[0] https://f-droid.org/en/packages/nodomain.freeyourgadget.gadg...
[1] https://gadgetbridge.org/gadgets/
क्या यह Fediverse के साथ integrate होता है? Strava इस्तेमाल करने की मुख्य वजह उसका social network जैसा होना है
Garmin Connect के analysis tools Strava से बेहतर हैं। Endurain अभी इस्तेमाल नहीं किया है
दुख है कि Runalyze अब open source नहीं है, लेकिन पुराने versions अभी भी मौजूद हैं
https://github.com/Runalyze/Runalyze