With t3versions you can find out, which major version is used on a given TYPO3 website. I started this project in 2015 as a non public project based on a PHP command line application.
In 2018 I re-created the project from scratch and made it publically available as a TYPO3 version check with an aggregated statistic of all TYPO3 sites analyzed.
t3versions is created with the Python framework Django. Core parts of the application are covered with unit tests, that are automatically executed on a GitLab CI runner on every commit. When all tests pass, GitLab deploys the application using fabric to the production server.
The TYPO3 analyzer checks the TYPO3 frontend output, the TYPO3 backend login (if available) and the existence of files, which are unique for each TYPO3 major version. In order to determine unique files for each TYPO3 major version, I analyzed the files (8 GB of data excluding PHP files) of all available TYPO3 versions for uniqueness.
TYPO3 Analyzer Task Queue
In order to run automated TYPO3 version tests in the background (e.g. check a huge amount of domains), a task queue is running with Redis as broker to store tasks.
The TYPO3 analyzer is executed on 2 servers (1 x 4 CPU cores, 12 GB RAM and 1 x 6 CPU cores, 24 GB RAM). Both servers share the same database and can execute website check tasks from the task queue.