Closed chl178 closed 1 year ago
As this is an early version for wiki farm support for Canasta, it currently does not support CLI installation and can only be manually installed using docker-compose. You may refer to the official docker-compose manual installation documentation for guidance. The test template for docker-compose.
hosts
file to add an alias for 127.0.0.1 and restart the Apache service.
docker build -t canastafarm .
docker-compose up -d
docker-compose down
docker-compose up -d
to complete the installation.My docker-compose structure:
@yaronkoren @jeffw16
Some general comments:
mwjobrunner.sh
, mwsitemapgen.sh
, mwtranscoder.sh
)update.php
run also need to be changed by adding support for multiple wikiswikis.yaml
or CommonSettings.php
file presence but by some ENV variable insteadPlease do not treat my comments as a call to action but as suggestions
Some general comments:
- It looks like some changes to the job runner scripts are also necessary, to make it run against all the farm wikis (
mwjobrunner.sh
,mwsitemapgen.sh
,mwtranscoder.sh
)- The
update.php
run also need to be changed by adding support for multiple wikis- Images directories ($wgUploadDirectory) need to be also altered per wiki. Otherwise, files will be overwritten
- Not quite sure about Canasta preference here, but maybe it'd be nice to have the farm mode switch controlled not by
wikis.yaml
orCommonSettings.php
file presence but by some ENV variable insteadPlease do not treat my comments as a call to action but as suggestions
Thank @vedmaka for your comments and feedback: We've already initiated the process of resolving the issues concerning the upload and cache directories. This should ensure that files are not overwritten and each wiki in the farm has its own distinct space.
Regarding the ENV variables, we've had discussions with Daniel, a respected MediaWiki community developer. His advice was not to define too many environment variables. As the current practice in the MediaWiki community is to use a YAML file for setting up farms, we've decided to follow this established practice.
We're taking into account your points on modifying the job runner scripts (mwjobrunner.sh, mwsitemapgen.sh, mwtranscoder.sh), and incorporating support for multiple wikis in update.php.
Thanks again for your suggestions. They're not direct calls to action, but we highly value your input.
Related Issue #57
This pull request outlines my progress on the project as part of the Google Summer of Code (GSoC) program. The objective of the project is to implement support for a wiki farm in Canasta, a Docker-based MediaWiki distribution.
Background
Currently, Canasta offers a streamlined way to set up a feature-rich MediaWiki instance on virtually any server. However, it does not currently support running multiple wikis, or a wiki farm, within the same container. This project aims to fill this gap and provide the ability to run different wikis in the same container. The wikis could vary by directory (e.g., example.com/a, example.com/b), subdomain (e.g., a.example.com, b.example.com), or completely different domains (e.g., example1.com, example2.com).
In addition, this project intends to extend Canasta's command-line interface (CLI) to support wiki farm configuration. This would allow administrators to effortlessly create, manage, and delete individual wikis.
Implementation Approach
To simplify management and facilitate use, I've implemented a shared common setting that applies to all wikis. Alongside this commonality, each wiki is distinguished by its unique ID and has its own customized settings. This allows for the definition of unique skins, extensions and configurations for each wiki. In this way, multiple wikis can run independently in a single container.
For wikis under directories, I have scripted an automatic generator generatewikihtaccess.sh for .htaccess files to manage access permissions.
Test
As you can see three different wiki a, k and local run independently in one container. They are under different domain names and different directories.
Next Steps
While this initial implementation is a significant step towards our goal, there is still considerable work to do. The next phase of this project will focus on developing the Canasta CLI to make it even more user-friendly and efficient in managing wiki farms. I'm looking forward to feedback and suggestions on how we can improve this implementation and successfully deliver the project's objectives.