Missing environment variables reported when testing app metadata

I’m preparing to submit my app to F-Droid and have been following the instructions in the docs at Submitting to F-Droid Quick Start Guide

Disclaimer: I usually use Windows, but have set up a Linux Mint machine for this work, so I’m very much a Linux newbie (and likely to have missed something obvious!)

I’ve set up the fdroiddata and fdroidserver repos, and started the docker container, which appears to be working okay. I’ve then started running the commands setting up the PATH and JAVA_HOME variables, which are now set to:

  • PATH: /home/vagrant/fdroidserver:/usr/local/bin... (etc)
  • PYTHONPATH: /home/vagrant/fdroidserver
  • JAVA_HOME: /usr/lib/jvm/java-17-openjdk-amd64

But when I try to run any of the fdroid commands in the container, e.g. fdroid readmeta, I get the following output:

2025-06-05 14:14:46,131 ERROR: Environment variable {env: serverwebroot} is not set!
2025-06-05 14:14:46,131 ERROR: serverwebroot: has blank value!
2025-06-05 14:14:46,131 ERROR: Environment variable env from gpghome is not set!
2025-06-05 14:14:46,131 ERROR: Environment variable env from keystore is not set!
2025-06-05 14:14:46,131 ERROR: Environment variable env from keystorepass is not set!
2025-06-05 14:14:46,131 ERROR: Environment variable env from keypass is not set!

Given that this is running in the container, it sounds like something is just not set up properly, but I don’t know what. FWIW, the only reference I can find to these variables in the docs is in the ‘Real World Setup’ section of Setup an F-Droid App Repo, but there’s no mention of them in the Getting Started guide.

Any clues?

Maybe look at config.yml · master · F-Droid / Data · GitLab as an example?

Thanks for the pointer.

Sounds like running fdroidserver in a docker container, as the Getting Started guide suggests, is a bit of a red herring, and I’m better off setting it all up myself so I don’t miss anything that the container just assumes is configured.