Difference between revisions of "Help:How to add new wiki to the farm"

From VGD Wiki Farm
(Created page with " Under development ...")
 
Line 1: Line 1:
  Under development ...
+
Let's see how to add a wiki number 4 for the game ''Among Us''.
 +
 
 +
== Login to the server ==
 +
Open a SSH session:
 +
ssh databank@videogamedatabank.com
 +
 
 +
== Create a database ==
 +
Login to MySQL:
 +
<syntaxhighlight lang="">
 +
sudo mysql
 +
</syntaxhighlight>
 +
Please follow the pattern ''gamewiki_N'' where ''N'' is the next number in the family.
 +
<syntaxhighlight lang="mysql">
 +
CREATE DATABASE gamewiki_4;
 +
</syntaxhighlight>
 +
Allow access to the database for the central database user:
 +
<syntaxhighlight lang="mysql">
 +
GRANT ALL PRIVILEGES ON gamewiki_4.* TO 'gamewiki_0user'@'localhost' WITH GRANT OPTION;
 +
</syntaxhighlight>
 +
Done!
 +
<syntaxhighlight lang="mysql">
 +
exit
 +
</syntaxhighlight>
 +
 
 +
== Prepare the environment ==
 +
=== Create a symlink ===
 +
Please use a simplified, URL friendly game name, eg. <code>amongus</code> for ''Among Us'':
 +
sudo ln -s /var/www/videogamedatabank.com/mediawiki  /var/www/videogamedatabank.com/amongus
 +
 
 +
=== Add a rule for a Giant switch ===
 +
  sudo nano /var/www/videogamedatabank.com/mediawiki/LocalSettings.php
 +
Find this line:
 +
<syntaxhighlight lang="php">
 +
} else {
 +
</syntaxhighlight>
 +
Insert this piece of code right before it:
 +
<syntaxhighlight lang="php">
 +
} elseif ( strpos( $callingurl, '/amongus' ) === 0 ) {
 +
        require_once $customizationdir . '/LocalSettings_gamewiki4.php';
 +
</syntaxhighlight>
 +
 
 +
=== Create a separate directory for uploads ===
 +
sudo mkdir /var/www/videogamedatabank.com/mediawiki/images_gamewiki4
 +
 
 +
sudo cp /var/www/videogamedatabank.com/mediawiki/images_gamewiki0/.htaccess /var/www/videogamedatabank.com/mediawiki/images_gamewiki4/.htaccess
 +
 
 +
sudo chown -R www-data: /var/www/videogamedatabank.com/mediawiki/images_gamewiki4
 +
 
 +
=== Copy configuration ===
 +
Copy a standard per wiki config:
 +
sudo cp /var/www/videogamedatabank.com/mediawiki/extensions/wikivisor/LocalSettings_{gamewiki0,gamewiki4}.php
 +
Copy a custom per wiki config:
 +
sudo cp /var/www/videogamedatabank.com/mediawiki/extensions/wikivisor/Special_{gamewiki0,gamewiki4}.php
 +
Adjust:
 +
$wgSitename = "Among Us Wiki";
 +
$wgScriptPath = "/amongus";
 +
$wgUploadDirectory = "$IP/images_gamewiki4";
 +
$wgUploadPath = "$wgScriptPath/images_gamewiki4";
 +
$wgDBname = "gamewiki_4";
 +
enableSemantics( 'amongus' );
 +
require_once( 'Special_gamewiki4.php' );
 +
 
 +
== Automate mediawiki job queue processing ==
 +
=== Create a job runner ===
 +
Copy the job runner script:
 +
sudo cp /var/www/videogamedatabank.com/mediawiki/extensions/wikivisor/mwjobrunner_{gamewiki0,gamewiki4}
 +
Adjust it accordingly:
 +
sudo nano /var/www/videogamedatabank.com/mediawiki/extensions/wikivisor/mwjobrunner_gamewiki4
 +
Example (adjusted lines are highlighted):
 +
<syntaxhighlight lang="php"  highlight="4,9">
 +
#!/bin/bash
 +
MW_INSTALL_PATH=/var/www/videogamedatabank.com/mediawiki
 +
RUNJOBS=$MW_INSTALL_PATH/maintenance/runJobs.php
 +
CONFIG=$MW_INSTALL_PATH/extensions/wikivisor/LocalSettings_gamewiki4.php
 +
echo Starting job service...
 +
sleep 60
 +
echo Started.
 +
while true; do
 +
        echo Processing Among Us Wiki ...
 +
        php $RUNJOBS --type="enotifNotify" --conf $CONFIG
 +
        php $RUNJOBS --wait --maxjobs=50 --conf $CONFIG
 +
        echo Waiting for 10 seconds...
 +
        sleep 10
 +
done
 +
</syntaxhighlight>
 +
Symlink it to the system path:
 +
sudo ln -s /var/www/videogamedatabank.com/mediawiki/extensions/wikivisor/mwjobrunner_gamewiki4 /usr/local/bin/
 +
 
 +
=== Create a system service ===
 +
Copy the system service definition:
 +
sudo cp /var/www/videogamedatabank.com/mediawiki/extensions/wikivisor/mw-jobqueue_{gamewiki0,gamewiki4}.service
 +
Adjust it accordingly:
 +
sudo nano /var/www/videogamedatabank.com/mediawiki/extensions/wikivisor/mw-jobqueue_gamewiki4.service
 +
Example (adjusted lines are highlighted):
 +
<syntaxhighlight lang="php"  highlight="2,5">
 +
[Unit]
 +
Description=MediaWiki Job runner service - Among Us
 +
 
 +
[Service]
 +
ExecStart=/usr/local/bin/mwjobrunner_gamewiki4
 +
Nice=10
 +
ProtectSystem=full
 +
User=www-data
 +
OOMScoreAdjust=200
 +
StandardOutput=journal
 +
 
 +
[Install]
 +
WantedBy=multi-user.target
 +
</syntaxhighlight>
 +
Symlink it to the system path:
 +
sudo ln -s /var/www/videogamedatabank.com/mediawiki/extensions/wikivisor/mw-jobqueue_gamewiki4.service /etc/systemd/system
 +
Enable the service:
 +
sudo systemctl enable mw-jobqueue_gamewiki4.service
 +
Start the service:
 +
sudo systemctl start mw-jobqueue_gamewiki4.service
 +
Check the service is running:
 +
sudo systemctl status mw-jobqueue_gamewiki4.service
 +
Follow the service log:
 +
sudo journalctl -f -u mw-jobqueue_gamewiki4.service

Revision as of 12:37, 4 January 2021

Let's see how to add a wiki number 4 for the game Among Us.

Login to the server

Open a SSH session:

ssh databank@videogamedatabank.com

Create a database

Login to MySQL:

 sudo mysql

Please follow the pattern gamewiki_N where N is the next number in the family.

CREATE DATABASE gamewiki_4;

Allow access to the database for the central database user:

GRANT ALL PRIVILEGES ON gamewiki_4.* TO 'gamewiki_0user'@'localhost' WITH GRANT OPTION;

Done!

exit

Prepare the environment

Create a symlink

Please use a simplified, URL friendly game name, eg. amongus for Among Us:

sudo ln -s /var/www/videogamedatabank.com/mediawiki  /var/www/videogamedatabank.com/amongus

Add a rule for a Giant switch

sudo nano /var/www/videogamedatabank.com/mediawiki/LocalSettings.php

Find this line:

 } else {

Insert this piece of code right before it:

 } elseif ( strpos( $callingurl, '/amongus' ) === 0 ) {
        require_once $customizationdir . '/LocalSettings_gamewiki4.php';

Create a separate directory for uploads

sudo mkdir /var/www/videogamedatabank.com/mediawiki/images_gamewiki4
sudo cp /var/www/videogamedatabank.com/mediawiki/images_gamewiki0/.htaccess /var/www/videogamedatabank.com/mediawiki/images_gamewiki4/.htaccess 
sudo chown -R www-data: /var/www/videogamedatabank.com/mediawiki/images_gamewiki4

Copy configuration

Copy a standard per wiki config:

sudo cp /var/www/videogamedatabank.com/mediawiki/extensions/wikivisor/LocalSettings_{gamewiki0,gamewiki4}.php

Copy a custom per wiki config:

sudo cp /var/www/videogamedatabank.com/mediawiki/extensions/wikivisor/Special_{gamewiki0,gamewiki4}.php

Adjust: $wgSitename = "Among Us Wiki"; $wgScriptPath = "/amongus"; $wgUploadDirectory = "$IP/images_gamewiki4"; $wgUploadPath = "$wgScriptPath/images_gamewiki4"; $wgDBname = "gamewiki_4"; enableSemantics( 'amongus' ); require_once( 'Special_gamewiki4.php' );

Automate mediawiki job queue processing

Create a job runner

Copy the job runner script:

sudo cp /var/www/videogamedatabank.com/mediawiki/extensions/wikivisor/mwjobrunner_{gamewiki0,gamewiki4}

Adjust it accordingly:

sudo nano /var/www/videogamedatabank.com/mediawiki/extensions/wikivisor/mwjobrunner_gamewiki4

Example (adjusted lines are highlighted):

#!/bin/bash
MW_INSTALL_PATH=/var/www/videogamedatabank.com/mediawiki
RUNJOBS=$MW_INSTALL_PATH/maintenance/runJobs.php
CONFIG=$MW_INSTALL_PATH/extensions/wikivisor/LocalSettings_gamewiki4.php
echo Starting job service...
sleep 60
echo Started.
while true; do
        echo Processing Among Us Wiki ...
        php $RUNJOBS --type="enotifNotify" --conf $CONFIG
        php $RUNJOBS --wait --maxjobs=50 --conf $CONFIG
        echo Waiting for 10 seconds...
        sleep 10
done

Symlink it to the system path:

sudo ln -s /var/www/videogamedatabank.com/mediawiki/extensions/wikivisor/mwjobrunner_gamewiki4 /usr/local/bin/

Create a system service

Copy the system service definition:

sudo cp /var/www/videogamedatabank.com/mediawiki/extensions/wikivisor/mw-jobqueue_{gamewiki0,gamewiki4}.service

Adjust it accordingly:

sudo nano /var/www/videogamedatabank.com/mediawiki/extensions/wikivisor/mw-jobqueue_gamewiki4.service

Example (adjusted lines are highlighted):

[Unit]
Description=MediaWiki Job runner service - Among Us

[Service]
ExecStart=/usr/local/bin/mwjobrunner_gamewiki4
Nice=10
ProtectSystem=full
User=www-data
OOMScoreAdjust=200
StandardOutput=journal

[Install]
WantedBy=multi-user.target

Symlink it to the system path:

sudo ln -s /var/www/videogamedatabank.com/mediawiki/extensions/wikivisor/mw-jobqueue_gamewiki4.service /etc/systemd/system

Enable the service:

sudo systemctl enable mw-jobqueue_gamewiki4.service

Start the service:

sudo systemctl start mw-jobqueue_gamewiki4.service

Check the service is running:

sudo systemctl status mw-jobqueue_gamewiki4.service

Follow the service log:

sudo journalctl -f -u mw-jobqueue_gamewiki4.service