Project Canasta/Infrastructure solution

This is an informal RFC/RFP for finding/creating a system to generate downloadables for the project known as Project Canasta. Project Canasta, in brief, is aimed at enabling easy-installed MediaWiki instances that contain not just MediaWiki but also skins and extension, and a set of wiki pages, that together can fulfill some use case. Part of that task involves finding, or creating, a solution to generate these downloadables.

The solution should meet as many as possible of the following criteria:

(The person generating the downloadable is referred to here as a "creator", and the person downloading it is referred as an "administrator".)


 * The solution should let the creator specify a set of skins and extensions, and configurations for each (separately or just through one LocalSettings.php file). It should then generate a downloadable file or image. That file, when downloaded, should allow an administrator to simply run some command, and then, with a minimum of options presented, the script should generate an entire MediaWiki instance, as well as a database that is set up and initialized for both MediaWiki and all the installed extensions. This should include having a database user and password that are generated - perhaps in real time by the script - and then stored in LocalSettings.php.


 * Ideally the creator can specify whether or not this downloadable should additionally include instances of PHP, a DB system and a web server (e.g., MySQL and Apache), and potentially an operating system as well (e.g., CentOS). That way, administrators will have their choice of whether they want a container that includes all of these, or whether they want to use their own existing systems and simply download/install MediaWiki.


 * Additionally, the solution should be fully open source, and it should be relatively easy for a creator to run on their system.

Please create sections below for any existing solutions that could be used for this purpose, briefly explaining how they work and whether they could be made to fit all of these criteria.

Linux/Docker: dataspectsSystemBuilder
''The principles and concepts of the following use case steps are implemented and I use them almost every week. For now and in the context of Canasta, they shall represent my current opinion of an optimal integration/abstraction level.''

Administrator: Initial setup of e.g. mediawiki-canasta-1.35.0-201215.zip

 * 1) Download mediawiki-canasta-1.35.0-201215.zip
 * 2) Unpack to
 * 3) Run
 * 4) * (This checks whether docker-compose is installed)
 * 5) * (This runs )
 * 6) * This prompts for new passwords for DB user "canasta" and MW user "admin"
 * 7) Visit

Administrator: Upgrading to e.g. mediawiki-canasta-1.35.1-210109.zip

 * 1) Download
 * 2) Merge into
 * 3) Run
 * 4) * (This process is idempotent)
 * 5) * (This process can be rolled back)

Administrator: Backup (take snapshot)

 * 1) Run
 * 2) * (This prompts for a snapshot name)

Administrator: Restore snapshot

 * 1) Run
 * 2) * (This prompts for a snapshot name)
 * 3) * (This process can be rolled back)

Creator use cases
''I operate a build system based on sets of YAML files and environment variables. Based on what you all think about my outline of administrators' use cases, I can explain them here step by step.''