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] - Peru Local Lab (in maintenance mode) | + | * [http://pe.sugarlabs.org pe.sugarlabs.org] |
| + | * [http://cl.sugarlabs.org cl.sugarlabs.org] |
| + | * [http://co.sugarlabs.org co.sugarlabs.org] |
| + | * [http://ar.sugarlabs.org ar.sugarlabs.org] |
| | | |
| == Hosted on == | | == Hosted on == |
Line 25: |
Line 28: |
| == Local Labs contacts == | | == Local Labs contacts == |
| | | |
− | * Peru: [[User:Sebastian|Sebastian Silva]] (in maintenance mode) | + | * Peru: [[User:Sebastian|Sebastian Silva]] |
| + | * Colombia: Cristian Paul Peñaranda Rojas |
| + | * Argentina: Gustavo Ibarra |
| + | |
| + | Local labs, please confirm contacts and add links. |
| | | |
| == 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 - '''EMERITUS - PLEASE DON'T EXPECT SUPPORT''' | + | * [[User:Bernie|Bernie Innocenti]] for hosting issues |
| * [[User:Sebastian|Sebastian Silva]] for the Local Labs wikis | | * [[User:Sebastian|Sebastian Silva]] for the Local Labs wikis |
| | | |
Line 37: |
Line 44: |
| 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 in the parallel wiki-devel instance before landing onto the production instance. | + | Except for trivial changes, work on the wiki should be carried on |
| + | in the parallel wiki-devel instance before landing onto the production instance. |
| | | |
− | {{Highlight|'''Note:''' The devel wiki has an out of date snapshot of the DB and a slightly different LocalConfig.php.}} | + | {{Highlight|'''Note:''' The devel wiki has an outdated snapshot of the page database and its own slightly different server configuration.}} |
| | | |
− | {{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.
| + | Sometimes the devel instance contains interim work performed by various wiki helpers. Do not sync changes blindly to the |
| + | 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). |
| + | |
| + | == 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 |
| | | |
| == 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
| |
| | | |
− | The initial setup process (probably outdated now) lookd like this:
| + | git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git wiki-devel |
− | | |
− | git clone https://gerrit.wikimedia.org/r/mediawiki/core.git --branch REL1_34 wiki-devel | |
| cd wiki-devel | | cd wiki-devel |
| + | git co -b REL1_19 remotes/origin/REL1_19 |
| + | git clone https://gerrit.wikimedia.org/r/p/mediawiki/extensions.git extensions-all |
| + | cd extensions-all |
| git submodule update --init | | git submodule update --init |
| + | cd ../extensions |
| + | # for each needed extensions |
| + | ln -s ../extensions-all/EXT |
| | | |
− | Checkout additional extensions we wish to enable. For ease of management, check them out into extensions-all and then symlink them from extensions/
| + | For the full details on this installation method, see http://www.mediawiki.org/wiki/Download_from_Git |
| | | |
− | EXTENSIONS=CheckUser ContributionScores HTMLets LastUserLogin LdapAuthentication MobileFrontend TimedMediaHandler UniversalLanguageSelector UserMerge VisualEditor Widgets
| + | == Visual Editor == |
| | | |
− | mkdir extensions-all
| + | This wiki has the VisualEditor extension. |
− | 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);
| |
− | done
| |
| | | |
− | == Upgrading ==
| + | In order to do that, we need the parsoid node js service. Since Sunjammer is running too old of a version, this service is hosted on freedom. It can be started using: |
| + | container.yml start /home/sam/parsoid -d |
| + | And is accessed at http://freedom.sugarlabs.org:8001/ |
| | | |
− | '''Note:''' Before blindly following the procedure below, check the official documentation for anything that might have changed:
| + | == Upgrade notes == |
− | 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 different stable branch: | + | We update our MediaWiki instances by simply pulling from the remote git repo and then switching to a |
| + | different stable branch: |
| | | |
− | git fetch | + | git pull |
− | git branch -a | grep REL | sort -V | + | git co -b REL1_xx remotes/origin/REL1_xx |
− | git checkout -b REL1_XX origin/REL1_XX
| |
− | git submodule update --init
| |
| | | |
| 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 84: |
Line 122: |
| | | |
| cd extensions-all | | cd extensions-all |
− | for ext in *; do (cd $ext && git fetch && git checkout -b REL1_XX origin/REL1_XX); done | + | git submodule update |
− | | |
− | 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 94: |
Line 128: |
| 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 w) |
− | | |
− | == 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 107: |
Line 137: |
| 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
| |