Trying to run my own repository, but it's not working quite yet

Hey,

I like F-Droid and would like to make my catalogue of offline map apps available on it free of charge. Actually I’ve been wanting to do that for quite a while, however the fact that I need to make every bit of it open source and invest the time into a reproducible build process scared me away. Especially because my build process is kind of complicated already with the extraction process of map data from OpenStreetMap, generation of map files and databases etc. However I recently discovered that it is possible to run one’s own repository of apps for F-Droid which users can just add to their F-Droid app. If I get it right that makes it possible for me to publish to F-Droid without going open source, correct?

I’ve followed the steps of the tutorial and create a repository here:

https://fdroid.mobanisto.com/

I checked that https://fdroid.mobanisto.com/repo/index.xml gets served, and all the rest is in place, too, as far as I can see.

However, if I add the repository to F-Droid on my phone, I can’t find anything from the repo (at the moment there should be only the app for Berlin inside, however if I type “Berlin”, I do get 8 results, but my own app is missing).

Any way to debug this or find out what’s going wrong?

Thank you!
Sebastian

Okay, well I just found out myself I think. Watching the server logs I noticed that when I refresh F-Droid by swiping from the top, I got access errors from F-Droid trying to fetch index.jar from /. So the solution is to actually add https://fdroid.mobanisto.com/repo as the repository URL instead of https://fdroid.mobanisto.com/

Although I think it shorter is better for the users, so I reconfigured nginx to serve the repo/ content a the root of the website. Or is it for some other reason not a good idea to use something like https://fdroid.mobanisto.com as the repository for users to add (leaving out the /repo suffix)?

It customary to have /repo

Better host a webpage explaining how to add the repo in /

Put the link with the signature and maybe create a QR code since you’re targeting mobile users, eg. https://microg.org/download.html

Alright that came to my mind as well, however I now thought I’d just do both in /. Of course I need to take care that there are no conflicts with the explainer site and the actual repo content, but I think it might be relatively easy

one good reason for serving the repo at https://server.example.com/repo is that when someone taps that URL in a mail, website or wherever while having the F-Droid client installed, that person is directly guided to have the repo added to said client (as the app “registered” for this URL pattern).

A second good reason is that you don’t need another server name for your repo’s archive, which is simply available at https://server.example.com/archive then :wink:

1 Like

It needs to be at /fdroid/repo subpath.

Oops? I thought we captured both? Vaguely remember a list with 3 or 4 entries for that. I stand corrected then. Second reason still remains valid :smile:

The list is here: https://gitlab.com/Bubu/fdroidclassic/-/blob/master/app/src/main/AndroidManifest.xml#L292

1 Like

Okay, the argument with the intent-filter convinces me. Thanks!

Going back to the tutorial I can see that it uses the suggested path fdroid/repo but doesn’t mention the intent-filter argument, would probably be a good addition. It does however mention that F-Droid will automatically try fdroid/repo if the user enters the domain without any path, which sounds convenient, too.

2 Likes

Do you mind adding a note about the intent filter here? https://gitlab.com/fdroid/fdroid-website/edit/master/_docs/Setup_an_F-Droid_App_Repo.md

Sure, here it is: https://gitlab.com/fdroid/fdroid-website/-/merge_requests/594