To create a truely reproducible experiment and eliminate as much variables as I can, I created a new Debian VM from cloud official Debian images.
https://cloud.debian.org/images/cloud/
Because the 2Gb initial disk image can be filled nearly instantaneously by a new xwiki install, I extended disk initial size from 2 to 16 Gb and started it with one CPU and 4Gb of RAM. I added the Maven apt repository and installed the xwiki-tomcat9-mariadb meta-package. To keep this experimental protocol as short as possible, I did deliberately not customize any xwiki config file afterwards. Yet unoptimized, it still runs.
I then downloaded XIP package and unzipped it in /var/lib/xwiki/data/extension/repository. I changed to tomcat:tomcat
all the files ownerships.
I blocked any outgoing traffic from the server with those iptables commands :
# First flush previous rules
iptables --flush
iptables -t nat --flush
iptables -t mangle --flush
# Simulate a blocked internet access
# - Keep everything established
iptables -A OUTPUT -m state --state ESTABLISHED -j ACCEPT
# - Allow everything on 127.0.0.1
iptables -A OUTPUT -o lo -j ACCEPT
# - Drop all the rest
iptables -A OUTPUT -j DROP
In doubt, I restarted tomcat9 service, then logged on http://serverip:8080/xwiki/
The wizard started. After the 1. Admin user step I arrived on 2. Flavor. Nothing is listed. Reloading the page or going back to it doesn’t change anything. The page remains empty of any flavor.
Your mission (should you choose to accept it ) is to find the needle that I probably forgot in this haystack. At least, this protocol seems easily reproducible.