STFN

Making my own private Strava

20 minutes

Go straight to the main part and skip my personal musings and all that boring stuff.

I bought a new bike

I used to bike a lot. Starting with the smallest bike with additional wheels for stability, I remember the big moment that was removing those supports, and riding for the first time without them, as the grownups did.

Then it was the staple of every child growing up in Poland in the 90s: the First Communion bicycle. It was an MTB, with horn-style handlebars, 3x6 gearing, 26” inch and crude steel (I guess?) frame. In line with another ancient Polish tradition, it was in adult size to “serve you longer as you grow”. For the first few years I had trouble getting on and from it, because it was much too large for me, and that would often end in scraped knees.

With even bad traditions having a grain of truth in them, it served me well into high school. And then I went to a big city to go to the University. The bike was left in my hometown, and some years later my dad threw it away. I still kinda miss it. And I don’t have any photos of it.

For the first few years in the big city I did not cycle at all, but that changed when my grandpa decided he is too old to cycle, and gave me his MTB. I was lucky enough to live at that time in a place that had a dedicated communal bike and trolley room, so I could store it. It was also at that time that I started working, so I used my bike to commute to work, which turned out to be much faster than by public transport.

The device in
it's glory. It's a bright orange tear-shaped plastic device with large holes.
You can see the logic board through the holes in the caseThe only photo of my second MTB that I have, I got a flat tire that day and came back home by tram

And I got hooked into biking on a totally new level. I gave that MTB to my sister and bought myself a very old road bike which I renovated and converted into a city single speed. I later turned it into a fixie bike, and replaced so many parts it became a Theseus’ bike.

The device in
it's glory. It's a bright orange tear-shaped plastic device with large holes.
You can see the logic board through the holes in the caseMy fixie, probably fourth or fifth iteration. That was a fun thing to ride and to build. At some point I was even making my own wheels.

Finally I bought a proper road bike, it was an awesome retro bicycle, with a mix of Shimano and Campagnolo road components, which I later switch to all Shimano. The brakes and axles were Dura-Ace. If you know, you know. I rode it a lot around Poznań, took it to the mountains. My record was 95km in a day.

The device in
it's glory. It's a bright orange tear-shaped plastic device with large holes.
You can see the logic board through the holes in the caseSomewhere in the Sudety mountains.

Then the pandemic came, and I moved from Poznań to a small nearby town. And the biking died out. I wasn’t commuting to work anymore, the roads around weren’t that good, and I lost heart in riding in traffic.

Since 2021 until March of this year I did maybe 50km altogether. Yet, to paraphrase Bloc Party, “At 36 I have decided something must change”. I sold my single speed - fixie - again single speed of Theseus, I sold my road bike, and bought an MTB.

It’s a Goetze* Define PRO with 29” tires, 2x10 Shimano drivetrain and hydraulic disk brakes. And it’s a life changer.

The device in
it's glory. It's a bright orange tear-shaped plastic device with large holes.
You can see the logic board through the holes in the caseMy new MTB in it’s natural habitat.

I now live next to a large forest, and not being confined to asphalt roads changes everything. There are hundreds of kilometers of sand and gravel roads around me, and I can travel them all. I can go to a lake, I can go to my homestead*, I can ride and ride and not see any cars for hours.

Popey recently wrote about regaining the Joy of Code. I have regained the Joy of Biking :3

So far I did around 300km with my new bike, and switching from a road bike required some adjusting. Mostly mental, I had to stop being afraid of going into loose gravel or sand, and gain the courage that I am able to ride over most terrains, even small brooks. And the disk brakes are awesome, totally different and much better than the road bike traditional brakes. One other I had to get used is that I have a working suspension, and the bike bending under you is actually a good thing.

So that is my biking story in a nutshell, now let’s talk about the software.

Setting up my private activity logger

My first activity logger was a basic “bike computer” attached to the handlebars, showing data like current speed and total distance. Then came the era of smartphones, and already on my first one, a HTC Wildfire S, I installed an activity tracking app. Somehow I never used Endomondo. At first I was using Runkeeper, and later on switched to Strava.

Open Tracks

Today, with the growing enshittifaction of Internet services, and my current preference for private, FOSS solutios, I started looking for something of the latter kind. I asked a question on Mastodon what do people prefer, and from their suggestions (thank you so much!) I chose OpenTracks.

It can be installed on an Android phone using F-droid. One more reason I am happy with my recent switch from iOS to Android.

Open Tracks allows tracking your activities with GPS, and saving them locally on your phone. No cloud services, no ads, no subscriptions. It just works. And can also show summarized stats, total distance, average speed etc.

Exporting data

The activities are only saved locally on my phone. OpenTracks allows for automatic exporting them to a particular location in the phone’s storage. I have enabled that to store the tracks on my phone’s microSD card (yes, my Fairphone 4 has a microSD slot, and it’s still a great idea). I also configured Open Tracks to export files as *.gpx, more on that later.

The next step is to move the data from the phone.

Also with the use of F-droid, I installed Termux, which is a terminal emulator for Android phones.

In Termux I wrote a oneliner bash script that uses rsync to copy the files from the phone to my NAS.

The device in
it's glory. It's a bright orange tear-shaped plastic device with large holes.
You can see the logic board through the holes in the caseMy script to backup activities from my home to my NAS. I also use it to backup photos.

And this part is done, I now have a quick and simple way to export tracks to my NAS, which gives the additional advantage of having them backed up in more than one place. From time to time I open Termux on my phone and run the bash script to export new files.

Presenting data

I now have the GPX files on my NAS. The next step is to visualize them on a map.

For that I use GPSPrune, a free piece of software that can be simply installed with apt on my Debian 12 machines.

At first I exported the files in the default KMZ format, but GPSPrune had problems opening them, so I switched to GPX, and it worked.

What is especially cool about it is that I can open multiple activity files at once, which will generate a sort of a heat map of my rides. Something, if I remember correctly, is only available in Strava premium subscription :)

The device in
it's glory. It's a bright orange tear-shaped plastic device with large holes.
You can see the logic board through the holes in the caseScreenshot from GPSPrune tutorial video

Bottom Text

And that’s it. With the use of free and open software I am able to have my own activity tracker allowing me to review and visualize my rides. And all that without sharing my private data with some corporate cloud vaporware.

I admit that using Open Tracks, Termux, Bash, Rsync and then GPSPrune is a bit unwieldy and requires some technical skills, but in my personal case, the pros outweigh the cons by a lot. What do you think?

Thanks for reading!

* I’m sure you Internet people of 2000’s will smile now :)

* I still haven’t decided how to call that piece of land that I have. A garden? A homestead? A future house location? Not sure.

If you enjoyed this post, please consider helping me make new projects by supporting me on the following crowdfunding sites: