This project aims to replicate a Fanon-equivalent level of service for a MediaWiki installation while heavily leveraging composer's capabilities, and reducing to a minimum the amount of code we directly handle.
Similarly, it tries to embrace as many of the other aspects of Twelve-Factor App methodology it can, without producing a ton of extra code and tools to be maintained.
- Caddy
- PHP-FPM
- Composer
- Git
- ghostscript
- imagemagick
- xpdf-utils
- ffmpeg
- Other possible dependencies from the extension to be documented
From inside the public directory, run caddy run --watch
- After installation, git patches is applied to the vendor folder:
vendor-check.patch
shortcircuitsPHPVersionCheck::checkVendorExistence()
, that function doesn't know how to properly locate our vendor directory, and we should make sure that it exists, and it has good dependencies.maintenance-autoload.patch
injects the composer autoloader inside of Maintenance.phpsocial-profile.patch
alters the sub-extension of SocialProfile inclusion to use an explicit relative path.
- After installation, a git submodule for Extension:VisualEditor is installed.
- Extension:WikiForum is currently disabled due to a known vulnerability, can be reactivated once that vulnerability is addressed.
- Extension:HTMLets is still installed using the old inclusion strategy, as opposed as to use
wfLoadExtension
- Some extensions may still need to have symlinks created for them in order to access frontend assets.
- A number of extensions are not tagged
REL1_40
- Extension:Discord (REL1_39, 1.0.13)
- Extension:DynamicPageList3 (REL1_39, 3.5.2)
- Extension:EmbedSpotify (1.0.3)
- Extension:EmbedVideo (3.3.0)
- Extension:ExcludeRandom (2.0.0)
- Extension:MobileTabsPlugin (0.1.0)
- Extension:Moderation (1.7.4)
- Extension:PDFEmbed (3.0.1)
- Extension:Sketchfab (1.0.0)
- Extension:WikiDexFileRepository (1.2.0)
- A composer plugin that catalogues all the extensions data and simplifies the loading of the extension
- A composer plugin that scans all the extensions for ResourceFileModulePaths configurations, and creates symlinks accordingly (might not be necessary, load.php seems to be able to handle most cases, keep an eye on the logfile)