Here are some common setup issues and how to solve them.

The config file (ipa.cfg) is missing or cannot be parsed

Cause: The ipa.cfg file is created on the server when the database is initialized and whenever you change a setting. It is then downloaded to the client by the ipa_wrapper.sh script. main.py should not be started directly.

Solution: [This summarizes the regular instructions.] Open the admin page in your browser and make sure there are no error messages. To verify this step, manually download the ipa-client.zip archive from the client/ directory on the server to a temporary directory. Verify it contains the client side Python scripts and the ipa.cfg file, then delete the archive and any files you might have extracted. Now start ipa_wrapper.sh as described in the instructions. This will (again) download ipa-client.zip, unzip it and start the main Python script. Whenever the configuration changes and the server updates ipa-client.zip the ipa_wrapper.sh script repeats this automatically.

It may seem complicated to have the Pi pull the configuration (and the application), but depending on how the Pi is connected to the internet (dynamic IP, NAT) it is not straightforward to push config changes.