Manual:Huggle/Deploying

Installing huggle on custom mediawiki installation
Huggle3 can be used with any mediawiki installation, however keep in mind that it was originally created for WMF wikis, which can be considered a large wiki farm. For this reason huggle is designed mostly for large wiki farms and in order to run it on single small wiki, you may need to slightly tweak it. This guide is covering installation to any wiki.

Huggle home
There is a special folder in huggle which is called huggle home. This folder is displayed by huggle in logs when it starts, for example:

Wed Feb 11 10:01:47 2015  Home: /home/petanb/.local/share/data/Wikimedia/Huggle/Configuration/

This folder contains all configuration files of huggle. It is possible to have multiple homes in order to create a number of separate huggle installations that are running isolated from each other by passing argument --chroot. If you want to use huggle with WMF wikis and your own wiki farm, it is recommended to create 2 homes for it. If you only want to use huggle for 1 wiki farm, you can ignore this.

Global wiki
Since huggle is designed to run on wiki farms, it requires 1 wiki that is called "global wiki" this wiki contains global configuration file that has the information about individual wikis. In case you have only 1 wiki, you will need to make it a global wiki as well, so that you will have both global and local configuration file there.

Configuration files
See Manual:Huggle/Configuration

Huggle is using 4 configuration files in following order:
 * $huggle_home/Configuration/huggle3.xml Local configuration on pc where it is installed - this file contains URL of global wiki
 * Huggle/Config Global configuration on global wiki which contains information about local wikis
 * Project:Huggle/Config Local configuration on wiki to which you login
 * User:$NAME/huggle3.css User configuration on local wiki

Step by step deployment on 3rd wiki farm
In this scenario we have a wiki farm with 4 wikis on domains:


 * meta.testfarm.wmflabs.org
 * wiki1.testfarm.wmflabs.org
 * wiki2.testfarm.wmflabs.org
 * wiki3.testfarm.wmflabs.org

On meta.testfarm.wmflabs.org/wiki/Huggle/Configuration we need to have following content:

enable-all:true

version:3.1.0 min-version:3.1.0

config:Project:Huggle/Config documentation:https://www.mediawiki.org/wiki/Manual:Huggle feedback:https://en.wikipedia.org/wiki/Wikipedia:Huggle/Feedback // Only if you have irc recent change stream for your wikis - this is optional // irc-server:irc.wikimedia.org // irc-server-name:irc.wikimedia.org

user-agent:Huggle/$1 http://en.wikipedia.org/wiki/Wikipedia:Huggle user-config:Special:Mypage/huggle.css user-config-hg3:Special:Mypage/huggle3.css

// URL of your whitelist server, if you don't have any, keep this commented out // whitelist-server:http://huggle.wmflabs.org/data/

In Project:Huggle/List put

Important xmlrcs_name is name of your wiki as seen by XmlRcs provider, if you don't have this provider, you can remove it from XML entry. Same applies for wl (whitelist id).

Now on each of these 3 wikis, you put this in Project:Huggle/Config

// This is a minimal huggle 3 configuration file for a target wiki enable-all:true min-version:3.1.0

approval:false require-admin:false require-autoconfirmed:false require-config:false require-edits:0 require-rollback:false require-time:0

confirm-ignored:true confirm-multiple:false confirm-page:true confirm-range:true confirm-same:true confirm-self-revert:true confirm-warned:true

manual-revert-summary:Reverted edits by $1 to last revision by $2 multiple-revert-summary-parts:Reverted,edit by,edits by,and,other users,to last revision by,to an older version by

template-summ: delete;Reverted edits by $1 (talk): unexplained content removal, spam;Reverted edits by $1 (talk): spam

rollback:true rollback-summary:Reverted edits by $1 (talk) to last revision by $2 default-summary:Reverted edits by $1 (talk) to last revision by $2 rollback-summary-unknown:Reverted edits by $1 (talk) single-revert-summary:Undid edit by $1 (talk) undo-summary:Undoing own edit

// ip addresses are more likely to be vandals score-ip:20 // flagged bots are likely not vandals, even if they add swear words score-bot:-20000 // people with high amount of flags are trusted even if not whitelisted score-flag:-200 // userpages are frequently used to test stuff score-user:-250 // userpages edited by other user than owner are typically vandalism score-foreign-user:100 // talk pages are often false positives, let's put them low score-talk:-200 // users with score lower than this are inserted to wl score-wl:-2000

// The list bellow is called "score words" it contains words presence of increase the score of edit by value in brackets, // you can define as many score words as you want, these words must be lowercase, otherwise ignored (they are compared with diff text which // is lowercase so that it's case insensitive)

// score-parts are parts of a word, they can be even in a middle of a word, so be careful here or you create too many false possitives

score-parts(200): haha, fuuuu, !!!!!!, ??????, --, Special:Contributions

// score-words are separate words, they don't even actually need to be words, they can be short phrases as well, but must not contain // comma (fuck off - is valid word)

score-words(100): cool, stupid, rape, raping, bla, sex, tits, porn, yeah, yea, yee, balls, weed, arse, stupid, hello, homosexual, dicks, ugly

score-words(200): crackhead, bieber, porn, bold text, italic text, crap, p3n1s, omg, lmao, rofl, blabla

score-words(800): pr0n, p0rn, sh1t, bullshit, wank, peace be upon him

agf:Reverted good faith edits by $2 talk: $1

warn-summary:Message re. $1 warn-summary-2:Level 2 warning re. $1 warn-summary-3:Level 3 warning re. $1 warn-summary-4:Level 4 warning re. $1

// how many days old templates are considered fresh (-30 means 30 day templates are fresh and counted, older than that are ignored) template-age:-100

keep-section:true

warning-im:true warning-mode:4 // the following is a HG2-setting, see key "headings" for the HG3 version warning-month-headings:true warning-series:warning,bio

shared-ip-template-tag: shared-ip-template:

warning-template-tags: 1;,   2;,    3;,    4;

warning-types: warning;Vandalism, spam;Spam

expand-report:false

warning1:$1 warning2:$1 warning3:$1 warning4:$1

spam1:$1 spam2:$1 spam3:$1 spam4:$1

report:auto report-summary:Reporting $1

aiv-reports:false protection-requests:false prod:false speedy:false admin:true block:true block-expiry-options:15 minutes,3 hours,12 hours,24 hours,31 hours,48 hours,55 hours,72 hours,1 week,2 weeks,1 month,3 months,6 months,1 year,indefinite blocktime:indefinite blocktime-anon:31 hours block-message:$1 block-message-default:true block-message-indef:$1 block-prompt:true block-reason:Vandalism block-summary:Notification: Blocked

delete:true protect:true protection-reason:Excessive vandalism deletion-reasons: G1: Patent nonsense, meaningless, or incomprehensible, G2: Test page

months: mn1;January, mn2;February, mn3;March, mn4;April, mn5;May, mn6;June, mn7;July, mn8;August, mn9;September, mn10;October, mn11;November, mn12;December

// these are needed especially for wikis where months in signatures are not same as these in months // every line is for 1 month, the alternative names are separated by a colon, for example: // January;Jan;J.;1., // every line needs to be terminated with comma, except for last one, which shouldn't be alternative-months: 1.;Jan, 2.;Feb, 3.;Mar, 4.;Apr, 5.;May, 6.;Jun, 7.;Jul, 8.;Aug, 9.;Sep, 10.;Oct, 11.;Nov, 12.;Dec

page-blanked-pattern:(\[\[(Wikipedia|WP):(AES|Automatic edit summaries)|(←|Automatic summary)\]\])?(:|←)? ?(Page was blanked|(Blank(ed|ing) the page))\.? page-created-pattern:(\[\[(Wikipedia|WP):(AES|Automatic edit summaries)|(←|Automatic summary)\]\])?(:|←)? ?Created page with .* page-redirected-pattern:(\[\[(Wikipedia|WP):(AES|Automatic edit summaries)|(←|Automatic summary)\]\])?(:|←)? ?(Created page as redirect|Redirect(ed|ing)) to .* page-replaced-pattern:(\[\[(Wikipedia|WP):(AES|Automatic edit summaries)|(←|Automatic summary)\]\])?(:|←)? ?(Page was replaced|Replac(ed|ing) (page|content)) with .*

revert-patterns: automatically reverting .*, bot - (rv|revert) .*, bot--revert.*, js: revert .*, ^[rR]evert.*, .*\[\[Help:Reverting\|Reverted\]\] edits by.*, ^rv .*, ^[Uu]ndid .*, ^[Uu]ndo .*, .* [Uu]ndid revision [\d]+ by .*

queues: Filtered edits: diff:preload filter-ignored:exclude filter-notifications:exclude filter-own-userspace:exclude filter-reverts:exclude filter-tags:exclude filter-warnings:exclude remove-old:true sort-order:quality

Filtered new pages: filter-ignored:exclude filter-new-pages:require sort-order:quality spaces:0

All edits:

All new pages: filter-new-pages:require

Assisted edits: filter-assisted:require filter-bot:exclude

Huggle edits: filter-huggle:require

My edits: filter-me:require remove-viewed:false

Candidates for speedy deletion: type:dynamic source-type:category source:Candidates for speedy deletion

default-queue:Filtered edits default-queue-2:Filtered new pages startup-message-location:Project:Huggle/Message summary:(HG)

Now all you need is update the huggle local configuration, open $huggle_home/Configuration/huggle3.xml and change



to



Now you can start huggle and hit reload button. It should load a list of local wikis. Since now you should be able to use huggle on your wikis.

Note: If your wiki doesn't support HTTPS you must not check it on login form