A Docker image for publishing your own Android application store using F-Droid.
The F-Droid server tools provide various scripts and tools
that are used to maintain the main F-Droid application repository. You can use these
same tools to create your own additional or alternative repository for publishing,
or to assist in creating, testing and submitting metadata to the main repository.
gotsunami/fdroid Docker image aims to ease the building of a "simple binary repository",
as defined in F-Droid's server manual.
That means only publishing of binary APKs is supported at the moment. If all you want is
easily making available a bunch of Android applications to users through an F-Droid repository, with
automatic app updates, this Docker image might do the trick.
First, pull the Docker image:
$ docker pull gotsunami/fdroid
Then create a directory where all your Android
.apk files will belong to:
$ export APK_REPO=~/apk $ mkdir $APK_REPO
Copy some APK files there then build the F-Droid repository (static data) with:
$ docker run --rm -v $APK_REPO:/apk/repo gotsunami/fdroid
That's it! Your
APK_REPO directory holds applications and metadata ready to be
served with your web server.
Serving Files With nginx
If you need to install a web server for serving static content from this new repository,
nginx and run it:
$ docker pull nginx $ docker run -d --name nginx-fdroid \ -v $APK_REPO:/usr/share/nginx/html:ro \ -p 8080:80 nginx
You might certainly want to customize the repo description and title, right? Just grab a
copy of the
$ wget https://raw.githubusercontent.com/gotsunami/docker-fdroid/master/config.py
Make the appropriate changes then use it when refreshing your application repository:
$ docker run --rm -v $APK_REPO:/apk/repo -v config.py:/apk/config.py gotsunami/fdroid
Signing Your Repository
Following the instructions for signing
your repository, generate a key if you need one with:
$ keytool -genkey -v -keystore my.keystore -alias repokey -keyalg RSA \ -keysize 2048 -validity 10000
Then edit your custom
config.py by setting up the
repo_keyalias variables accordingly.
Finally, run an update using your keystore with:
$ docker run --rm -v $APK_REPO:/apk/repo \ -v config.py:/apk/config.py \ -v my.keystore:/tmp/my.keystore \ gotsunami/fdroid