Help:How to add new wiki to the farm
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 these guys:
$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