Service/wiki: Difference between revisions
Move parsoid to container.yml Tag: visualeditor |
→Account Creation: update link |
||
| (12 intermediate revisions by 3 users not shown) | |||
| Line 8: | Line 8: | ||
* [http://wiki.sugarlabs.org wiki.sugarlabs.org] | * [http://wiki.sugarlabs.org wiki.sugarlabs.org] | ||
* [http://wiki-devel.sugarlabs.org wiki-devel.sugarlabs.org] | * [http://wiki-devel.sugarlabs.org wiki-devel.sugarlabs.org] | ||
* [http://pe.sugarlabs.org pe.sugarlabs.org] | * [http://pe.sugarlabs.org pe.sugarlabs.org] - Peru Local Lab (in maintenance mode) | ||
== Hosted on == | == Hosted on == | ||
| Line 24: | Line 21: | ||
* See https://www.mediawiki.org/wiki/Manual:Preventing_access#Restrict_account_creation | * See https://www.mediawiki.org/wiki/Manual:Preventing_access#Restrict_account_creation | ||
* Create account page: https://wiki.sugarlabs.org/ | * Create account page: https://wiki.sugarlabs.org/go/Special:CreateAccount | ||
== Local Labs contacts == | == Local Labs contacts == | ||
* Peru: [[User:Sebastian|Sebastian Silva]] | * Peru: [[User:Sebastian|Sebastian Silva]] (in maintenance mode) | ||
== Sysadmins == | == Sysadmins == | ||
* [[Wiki Team/Contacts]] for wiki content and user accounts | * [[Wiki Team/Contacts]] for wiki content and user accounts | ||
* [[User:Bernie|Bernie Innocenti]] for hosting issues | * [[User:Bernie|Bernie Innocenti]] for hosting issues - '''EMERITUS - PLEASE DON'T EXPECT SUPPORT''' | ||
* [[User:Srevin03|Srevin Saju]] ('''srevinsaju''' on #sugar) for MediaWiki issues | |||
* [[User:Sebastian|Sebastian Silva]] for the Local Labs wikis | * [[User:Sebastian|Sebastian Silva]] for the Local Labs wikis | ||
| Line 44: | Line 38: | ||
The main wiki lives here at <code>/srv/www-sugarlabs/wiki/</code> | The main wiki lives here at <code>/srv/www-sugarlabs/wiki/</code> | ||
Except for trivial changes, work on the wiki should be carried | Except for trivial changes, work on the wiki should be carried in the parallel wiki-devel instance before landing onto the production instance. | ||
in the parallel wiki-devel instance before landing onto the production instance. | |||
{{Highlight|'''Note:''' The devel wiki has an | {{Highlight|'''Note:''' The devel wiki has an out of date snapshot of the DB and a slightly different LocalConfig.php.}} | ||
{{Highlight|'''Note:''' Often, the devel instance contains changes performed by various wiki admins to test extensions and configuration options. Do not sync LocalConfig.php blindly to the production wiki! Use vimdiff.}} | |||
production wiki! | |||
Before overwriting the page database, please | Before overwriting the page database, please | ||
* observe http://wiki-devel.sugarlabs.org/go/Category:Under_construction | * observe http://wiki-devel.sugarlabs.org/go/Category:Under_construction | ||
* announce the plan on systems@ and to any collaborators who have signed their 'Under construction' pages in the template (such as by using the 'E-mail this user' link in the sidebar for the wiki user's page, even when it is a red link or not yet created). | * announce the plan on systems@ and to any collaborators who have signed their 'Under construction' pages in the template (such as by using the 'E-mail this user' link in the sidebar for the wiki user's page, even when it is a red link or not yet created). | ||
== Installation == | == Installation == | ||
Our MediaWiki instances are installed from git to allow easy rebasing of our changes on upgrades. | Our MediaWiki instances are installed from git to allow easy rebasing of our changes on upgrades. | ||
For the full details on this installation method, see http://www.mediawiki.org/wiki/Download_from_Git | |||
git clone https://gerrit.wikimedia.org/r | The initial setup process (probably outdated now) lookd like this: | ||
git clone https://gerrit.wikimedia.org/r/mediawiki/core.git --branch REL1_34 wiki-devel | |||
cd wiki-devel | cd wiki-devel | ||
git submodule update --init | git submodule update --init | ||
For | Checkout additional extensions we wish to enable. For ease of management, check them out into extensions-all and then symlink them from extensions/ | ||
= | EXTENSIONS=CheckUser ContributionScores HTMLets LastUserLogin LdapAuthentication MobileFrontend TimedMediaHandler UniversalLanguageSelector UserMerge VisualEditor Widgets | ||
mkdir extensions-all | |||
for i in EXTENSIONS; do | |||
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/$i extensions-all/$i --branch REL1_34; | |||
(cd extensions && ln -s ../extensions-all/$i); | |||
composer update --no-dev | |||
done | |||
== Upgrading == | |||
'''Note:''' Before blindly following the procedure below, check the official documentation for anything that might have changed: | |||
https://www.mediawiki.org/wiki/Download_from_Git#Keeping_up_to_date | |||
We update our MediaWiki instances by simply pulling from the remote git repo and then switching to a | We update our MediaWiki instances by simply pulling from the remote git repo and then switching to a different stable branch: | ||
different stable branch: | |||
git | git fetch | ||
git | git branch -a | grep REL | sort -V | ||
git checkout -b REL1_XX origin/REL1_XX | |||
git submodule update --init --recursive | |||
The "extensions-all" directory contains a bunch of git repositories stitched together with 'git submodule'. | The "extensions-all" directory contains a bunch of git repositories stitched together with 'git submodule'. | ||
| Line 122: | Line 86: | ||
cd extensions-all | cd extensions-all | ||
git | for ext in *; do (cd $ext && git fetch && git checkout -b REL1_XX origin/REL1_XX); done | ||
Along with the extensions, we would also need to update the skins to the latest release. We officially use Vector (fro Desktop) and Minerva Neue (for Mobiles, v1.35+, Minerva Neue is the official responsive theme used by Wikipedia). | |||
cd skins | |||
for skin in *; do (cd $skin && git fetch && git checkout -b REL1_XX origin/REL1_XX); done | |||
Please revise if the following steps are still needed: | |||
You also need to update some dependencies using a PHP manager called 'composer': | |||
composer update --no-dev | |||
Now run update script: | Now run update script: | ||
| Line 128: | Line 103: | ||
php maintenance/update.php | php maintenance/update.php | ||
In the case of Local Labs wikis the correct command for performing the updates is: | In the case of Local Labs wikis, the correct command for performing the updates is: | ||
php maintenance/update.php --conf /srv/www-sugarlabs/pe.sugarlabs.org/wiki/LocalSettings.php | php maintenance/update.php --conf /srv/www-sugarlabs/pe.sugarlabs.org/wiki/LocalSettings.php | ||
(replace pe.sugarlabs.org for the correct path for your local lab | (replace pe.sugarlabs.org for the correct path for your local lab) | ||
== Obsolete documentation == | |||
=== SemanticMediaWiki === | |||
If the SemanticMediaWiki extension is enabled (we don't use it), also refresh its tables: | If the SemanticMediaWiki extension is enabled (we don't use it), also refresh its tables: | ||
| Line 137: | Line 116: | ||
cd extensions/SemanticMediaWiki/maintenance | cd extensions/SemanticMediaWiki/maintenance | ||
php SMW_setup.php | php SMW_setup.php | ||
=== Skins === | |||
As of this writing, the default skin vector is integrated into MediaWiki, and we don't load other skins in LocalSettings.php. | |||
The skins also need to be updated from time to time (particularly after a major release). Instead of checking out hundreds od skins using the official process, we refresh only the skins that are installed: | |||
cd skins | |||
for i in MonoBook Timeless; do | |||
(cd $i && git fetch && git checkout -b REL1_34 origin/REL1_34) | |||
done | |||
=== Creating a Local Labs wiki === | |||
* Add a group for the wiki (vigr) | |||
cd /srv/www-sugarlabs | |||
cp -a co.sugarlabs.org pe.sugarlabs.org | |||
chown -R icarito:sugarwiki-pe pe.sugarlabs.org | |||
cd pe.sugarlabs.org/wiki | |||
rm -r images/* | |||
vim LocalSettings.php | |||
vim SecretSettings.php | |||
* Create apache virtual host: | |||
cp -a /etc/apache2/sites-available/pe.sugarlabs.org /etc/apache2/sites-available/ar.sugarlabs.org | |||
vim /etc/apache2/sites-available/ar.sugarlabs.org | |||
a2ensite ar.sugarlabs.org | |||
* Create DB with some clever trick. I reused <code>config/index.php</code> to setup a new MediaWiki instance and then I've thrown away the generated <code>LocalConfig.php</code>: | |||
mv LocalConfig.php LocalConfig.good | |||
cp -a /srv/www-sugarlabs/co.sugarlabs.org/config . | |||
(go to http://ar.sugarlabs.org/wiki/config/index.php) | |||
rm -r config LocalConfig.php | |||
mv LocalConfig.good LocalConfig.php | |||
* Create tables for OpenID: | |||
mysql -u root -p pe_sugarlabswiki < extensions/OpenID/openid_table.sql | |||