You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Hans-Christoph Steiner f38cee991f add stable tags for docker images 3 weeks ago
.idea Organize Python imports 5 years ago
debian set supported versions for django tinymce, use embedded tinymce 2 years ago
doc Point to GitHub's deploy keys docs and add info on server SSH keys 5 years ago
docker use apksigner without binfmt in Docker 1 year ago
repomaker release v1.0.0b2 (#223) 2 years ago
tests support running tests with Debian's coverage, or other installs 2 years ago
.dockerignore Add README for Docker deployment 4 years ago
.gitignore add vagrant setup based on the .gitlab-ci.yml setup 2 years ago
.gitlab-ci.yml add stable tags for docker images 3 weeks ago
.pylintrc pylint: ignore W0707: Consider explicitly re-raising using the 'from' keyword 2 years ago
.travis.yml purge all references to aapt and a specific JDK version 2 years ago
.weblate add .weblate to setup wlc 2 years ago release v1.0.0b2 (#223) 2 years ago
Dockerfile use apksigner without binfmt in Docker 1 year ago
LICENSE First working prototype 5 years ago Include tests in source distribution and use new website 5 years ago README: update install instructions 2 years ago
Vagrantfile add vagrant setup based on the .gitlab-ci.yml setup 2 years ago Make repomaker installable 5 years ago
package.json set supported versions for django tinymce, use embedded tinymce 2 years ago Don't delete fonts on release 4 years ago Add pre-release script and move stuff to data directory 5 years ago
requirements-dev.txt tests do not pass with python-django >= 2.4 1 year ago
requirements-gui.txt confirm_quit renamed to confirm_close in webview.create_window 2 years ago
requirements.txt port to Debian/buster 2 years ago Parallelize tests 5 years ago Download remote app icons in dedicated tasks 5 years ago
setup.cfg properly mark long_description as Markdown 2 years ago properly mark long_description as Markdown 2 years ago Provide more information in readme 4 years ago Updated translations from Weblate 4 years ago

build status
coverage report
translation status

Repomaker needs a maintainer, please adopt me! Repomaker currently runs on Django 1.11, which went out of security support in July 2020. Please see #234 for more information.


There are several different ways to install Repomaker.


Repomaker is available as Flatpak and
distributed on Flathub.
Once you got Flatpak installed on your system,
either go to your system's app store or execute the following commands (without sudo!):

$ flatpak remote-add --if-not-exists flathub
$ flatpak install flathub org.fdroid.Repomaker
$ flatpak run --runtime=org.gnome.Sdk org.fdroid.Repomaker

On a server / Docker

There is a test image available in Docker for quickly trying out
Repomaker. Note that you can run Repomaker on a server and make use
of its multi user functionality. See Docker
and the
general docs
for more information on that topic.


If you don't want or can't install Repomaker with one of the mentioned
methods, you can install it with pip from PyPi.


Please make sure you have the following requirements installed
before proceeding with the installation.


  • pip for installation of Python 3 dependencies
  • virtualenv to create an isolated Python environment
  • Python development and build files for installing/building some dependencies

On Debian, you can simply run this:

apt install python3-pip python3-wheel python3-dev virtualenv build-essential


  • keytool from Java Runtime Environment (JRE)
  • jarsigner from Java JDK for signing the repo indexes
  • libmagic for mime-type detection
  • rsync to publish repositories
  • git to publish repositories to git mirrors

On Debian, you can simply run this:

sudo apt install fdroidserver libmagic1 rsync git \
    python3-pyqt5.qtwebengine python3-pyqt5.qtwebkit

Install into virtual environment

To not mess with other Python libraries you have installed,
we will install repomaker into its own isolated Python environment.

virtualenv -p /usr/bin/python3 repomaker
source repomaker/bin/activate
pip install repomaker[gui]

You should now be able to start by typing:



First check that you really have all dependencies from above installed.

If the installation fails with something about openssl,
try to install libssl-dev with apt install libssl-dev.

If the graphical user interface fails to start,
you can try running repomaker-server and repomaker-tasks.
If that works, you should be able to open
in your browser.


To work on repomaker, you need npm to fetch CSS and JavaScript dependencies: apt install npm.

Then run npm install to install these dependencies.

If you want to run repomaker in your browser rather then using the GUI,
you can start it like this:

virtualenv -p /usr/bin/python3 repomaker
source repomaker/bin/activate

Vagrant VM

There also a Vagrant setup based on the GitLab CI setup, it is a quick
way to get a development setup. First, set up Vagrant on your machine,
then run:

$ cd repomaker
$ vagrant up
$ vagrant ssh
vagrant@basebox-buster64:~$ ip a | sed -En 's,.*inet +(192\.168\.[0-9]+\.[0-9]+).*,open http://\1:8000,p'
vagrant@basebox-buster64:~$ cd $CI_PROJECT_DIR
vagrant@basebox-buster64:/builds/fdroid/repomaker$ ./tests/


  • GNU gettext apt install gettext


This program is free software: you can redistribute it and/or modify it
under the terms of the GNU Affero General Public License
as published by the Free Software Foundation,
either version 3 of the License,
or (at your option) any later version.

This program is distributed in the hope that it will be useful,
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU Affero General Public License for more details.


Everything can be translated. See
Translation and Localization
for more info.

  • To update translations, run ./
  • To add a new translation, run python3 makemessages -l <lg> where <lg> is the language code, e.g. de.

translation status