Wikitech labswiki https://wikitech.wikimedia.org/wiki/Main_Page MediaWiki 1.47.0-wmf.24 first-letter Media Special Talk User User talk Wikitech Wikitech talk File File talk MediaWiki MediaWiki talk Template Template talk Help Help talk Category Category talk Obsolete Obsolete talk OfficeIT OfficeIT talk Tool Tool talk Nova Resource Nova Resource Talk Heira Heira Talk TimedText TimedText talk Module Module talk Zap/Hat 0 18552 2471909 132479 2026-10-21T23:09:29Z Legoktm 621 circa 2014 2471909 wikitext text/x-wiki {{Archive}} '''Zap''' and '''Hat''' represented the current and future MediaWiki application server stacks in 2014. === Zap === * '''Z'''end PHP * '''A'''pache 2.2 * Ubuntu '''P'''recise === Hat === * '''H'''ipHopVM PHP * '''A'''pache 2.4 * Ubuntu '''T'''rusty f7tcckplf2g916o8cgfuqnydm1rndam Tool:Openstack-browser 116 441059 2471875 1884231 2026-10-21T18:37:00Z BryanDavis 1604 git hosting update 2471875 wikitext text/x-wiki {{Tool |name = openstack-browser |description = OpenStack cluster information |website = https://tools.wmflabs.org/openstack-browser/ |keywords = VPS, OpenStack |author = [[User:BryanDavis|BryanDavis]], [[User:Andrew Bogott|Andrew Bogott]] |maintainer = [[User:BryanDavis|BryanDavis]], [[User:Andrew Bogott|Andrew Bogott]] |repository = [[gitlab:toolforge-repos/openstack-browser]] |license = GPL-3.0+ |issues = }} '''openstack-browser''' is a tool for finding information about the OpenStack cluster operated by Wikimedia Cloud Services. It lists all projects and their instances along with related information collected from the live OpenStack APIs and other operational data sources. This tool has replaced (and in some cases enhanced) information that was once stored in Wikitech using Semantic MediaWiki. 7fy2z0twn2o342qw4trdfq76ma7mrwe SRE/Clinic Duty/Access requests 0 442028 2471859 2404947 2026-10-21T16:48:22Z Ottomata 88 /* Analytics Groups */ don't need sign off for analytics-privatedata-users 2471859 wikitext text/x-wiki ==LDAP access== Access to a range of mostly web-based services is granted via the "wmf" and "nda" groups. The specific permissions are listed at [[LDAP Groups]]. The change should be tracked in a ticket. We're slowing migrating access requests for LDAP groups to Wikimedia IDM/Bitu. The current list of groups managed via Wikimedia IDM can be found at [[SRE/LDAP/Groups/Request access]] === Checklist === Users should create the phabricator ticket using the link on the following [[phab:project/profile/1564/|LDAP-Access-Requests project page]]. If that has not taken place then you need to ensure that the task has the <code>LDAP-Access-Requests</code> tag and also add the following checklist to the task description and make sure its completed before actioning the request [] The **username** of your existing account on wikitech.wikimedia.org: [] Do you currently have **shell access** (Yes/No)? [] **Purpose** (Specify which service you need to get access to, e.g. Icinga, Grafana, Superset etc): [] The specific **LDAP group** that you want to be added to (optional): //For contractors only:// [] Contract end date: [] Contract contact person: === WMF Group === The wmf group is no longer handled via Phabricator, instead access is being requested via Wikimedia IDM (https://idm.wikimedia.org). If you run into tasks when this is still requested, please add a message to point the user to request the group by following the steps listed at [[SRE/LDAP/Groups/Request access#Using the Wikimedia Identity Management System]]. Following that, the task can be closed. === NDA Group === *For contractors that do not exist in LDAP (i.e. they do not have a wikimedia.org email address), ask for the person's manager/point of contact for approval, on the phabricator task *Volunteers and researchers can be added to the "nda" group, assuming they have signed an NDA which can be confirmed by adding @KFrancis to the Phab task. *Also add the user to the [[phab:project/members/61/|wmf-nda Phabricator group]] (click "add members", see [[phab:T299839]] / [[phab:T290605|T290605]] for background on this). *Ensure a corresponding user entry exists in data.yaml (typically within ldap_only_users). === WMDE Group === Anyone at Wikimedia Deutschland who wants to get added to the "wmde" LDAP group needs to sign an NDA with the Legal department of the WMF. Simply add [[phab:p/KFrancis|@KFrancis]] to the Phab task and she'll deal with it. The access to "wmde" needs to be approved by an engineering manager from Wikimedia Deutschland. You can add either of the people below to the Phab task: *[[phab:p/conny-kawohl_WMDE|@conny-kawohl_WMDE]] *[[phab:p/WMDE-leszek|@WMDE-leszek]] *[[phab:p/darthmon_wmde|@darthmon_wmde]] *[[phab:p/Tobi_WMDE_SW|@Tobi_WMDE_SW]] *[[phab:p/karapayneWMDE|@karapayneWMDE]] *[[phab:p/jdfraine|@jdfraine]] *[[phab:p/Martyn.ranyard|@Martyn.ranyard]] *[[phab:p/Lena_WMDE|@Lena_WMDE]] *[[phab:p/katiamusiolekwmde|@katiamusiolekwmde]] Katia Musiolek, head of UX/Design Finally, when granting access, ensure that the user is added to both ldap groups "nda" and "wmde" ===Analytics Groups=== *There are multiple potential groups. They have been detailed on [[Analytics/Data_access#Access_Groups]]. **The clinic duty person can often link to this page for the person requesting access, and require the requestor to define which of the groups are required. **The clinic duty person should also highlight [[Analytics/Data access#User responsibilities]] to the requestor. ==== <code>analytics-privatedata-users</code> ==== The '''<code>analytics-privatedata-users</code>''' Unix group is one of the more confusing groups as it can be configured in three different ways. Either: no ssh (no shell) and no Kerberos; no Kerberos (standard admin.yaml) or as a shell account with Kerberos. In all cases the user should be configured under the user section of admin.yaml and not the ldap_only_user section. [[Data Engineering/Systems/Kerberos/Administration#Create a principal for a real user]] describes the steps how to add a Kerberos user principal for a user Please '''tag the access request ticket with "Data-Engineering"''' to increase visibility. Tickets asking for membership for '''non-WMF & non-WMDE staff''' in <code>'''analytics-privatedata-users'''</code> need approval from one of the group owners listed in [[gerrit:c/operations/puppet/+/1041735/2/modules/admin/data/data.yaml|data.yaml]]. '''WMF or WMDE staff do not need''' explicit approval from group owners<ref>[[phab:T370424|T370424 Streamline Data Platform access approvals for WMF staff]]</ref><ref>[[phab:T381824|T381824 Data Platform access streamlining for WMDE staff]]</ref>. === Other groups === *All other groups need to be approved by the user's manager ====Create/Get LDAP account==== In order to add or update a a user's LDAP permissions, they will first need to [[Help:Create a Wikimedia developer account|create a developer account]]. In either case you will need to know the username used. You can also search ldap to try and find it: <syntaxhighlight lang=bash> ldap-maint1001$ ldapsearch -x mail=user@example.org </syntaxhighlight> If the user claims to be a Wikimedia Foundation staff member or contractor, you should verify that by following the instructions in [[SRE/Clinic Duty/Access requests#Verifying%20WMF%20developer%20accounts|#Verifying WMF developer accounts]]. ====Update data.yaml==== Check whether there's an existing entry in {{Gitweb|project=operations/puppet|file=modules/admin/data/data.yaml}}: *If the user already has shell access, no further change is needed. You can proceed with the LDAP change below: *If not, add the user to the ''ldap_only_users'' table at the end of the file, using their would-be shell username (LDAP <code>uid=</code>) as the key within ''ldap_only_users''. (This is just added for tracking/verification purposes. As you'll be making the LDAP changes yourself, no puppet run is required after this.) **Add the ''realname'' of the user (most Cloud VPS accounts don't have a real name set) **Add the ''email'' address of the users: ***If the user is WMF staff, use the email address of their Google account (You can double-check the account name in the Gmail interface). Some users have aliases for their nickname; don't use these, use the official Google account (this allows cross-checking data against corp LDAP) ***If the user is not staff, ask for a contact email address (to have a reliable contact e.g. in case of an account compromise) **If the user is someone with a time-limited access e.g. interns, researchers who have time-limited MOUs or short term contractor, add the estimated account end date as <code>expiry_date</code> (format is YYYY-MM-DD) and a staff contact as <code>expiry_contact</code> The entry should look something like the following:<syntaxhighlight lang="yaml"> exampleuser: ensure: present realname: Example User email: exampleuser@example.org expiry_date: 2038-01-19 expiry_contact: examplestaff@wikimedia.org </syntaxhighlight> ====Modify LDAP groups==== After having added the user to data.yaml, the change in LDAP can be done from one of the LDAP maintenance hosts like <code>ldap-maint1001</code> (this will be automated in a subsequent step): *Check if they are a member of the group from the Cloud VPS LDAP server: <code>ldapsearch -x cn=grpname</code> *Add them if they are not there: <code>sudo modify-ldap-group grpname</code> and add their entry in the editor window that pops up *To remove someone from an ldap group you can <code>sudo modify-ldap-group grpname</code> and delete their entry in the editor window that pops up {{note|If a user has to be removed from special LDAP access, in most cases (e.g. contract termination) you may want to notify also @aklapper to remove/check Phabricator access on the same ticket.}} *When adding a user to the wmf, wmde or nda LDAP groups, please also add them to the [[phab:tag/wmf-nda/|Phabricator group wmf-nda]] ((click "members"->"add members", see [[phab:T299839]]/[[phab:T290605]] for background on this). For further instructions see [[Help:Accessing Cloud VPS instances]], [[LDAP]] and [[LDAP Groups]]. ==Production shell access== Access and reasoning for requesting it are documented on [[Requesting shell access]]. Please read and understand entirely before processing any access requests, as this very brief summary documentation may not cover all required points in the linked page. If a request asks for things like new shell accounts, access to additional servers, log files, personal data, admin roles in systems like Mailman, Bugzilla, data center access, opening a firewall rule etc, then it is an access request and should be moved into the [[phab:project/view/956/|SRE-Access-Requests]] Project. === Check list === Users should create requests using the the [https://phabricator.wikimedia.org/maniphest/task/edit/form/8/ access request form], if this has not been followed then you will need to make sure the following checklist is copy/pasted to the task and completed before processing the request. [] - User has signed the L3 Acknowledgement of Wikimedia Server Access Responsibilities Document. [] - User has a valid NDA on file with WMF legal. (All WMF Staff/Contractor hiring are covered by NDA. Other users can be validated via the NDA tracking sheet) [] - User has provided the following: wikitech username, email address, and full reasoning for access (including what commands and/or tasks they expect to perform) [] - User has provided a public SSH key. This ssh key pair should only be used for WMF cluster access, and not shared with any other service (this includes not sharing with WMCS access, no shared keys.) [] - access request (or expansion) has sign off of WMF sponsor/manager (sponsor for volunteers, manager for wmf staff) [] - access request (or expansion) has sign off of group approver indicated by the approval field in data.yaml More details on the above: *The [[phab:legalpad/signatures/3/|L3 acknowledgement signature list]]. *User's direct supervisor has approved of access request via comment on phabricator task. *Approval from project lead where user's access will be granted via comment on phabricator task. ''See above for [[#analytics-privatedata-users|Staff exceptions]]''. *[[phab:legalpad/signatures/|Confirmation]] that the user has read, comprehend, and signed the [[phab:L3|Acknowledgement of Wikimedia Server Access Responsibilities]] document. *ALL ACCESS REQUESTS REQUIRE AN NDA. **Anyone who's Wikimedia staff has signed an NDA as part of their work contract. To validate that someone is staff you can either (1) check ldap-corp1001 via an LDAP search for the GCorp username (2) have the person's manager confirm (they need to sign off anyway) **Volunteers and researchers need to sign an NDA with the legal department. You can check existing NDAs on file at https://docs.google.com/spreadsheets/d/1xQNx5s2yErvayCMzvk9VkIA2ZihFXSBEhT5Z5ziCsi4 **If that's not the case, add @[[phab:p/KFrancis|KFrancis]] to the Phabricator task to prepare an NDA (she'll confirm on task when that's completed) *SSH public key has to be submitted via gerrit patchset by user, or by some confirmed (non-email) method (suggestion: wiki user page). ** If a group is marked as '''require_fido: true''', then all of the user's SSH key(s) must be FIDO-backed keys (see [[Yubikey-SSH-FIDO]]) **You can verify that the SSH key is not used in WMCS by running from the current LDAP maintenance host (<code>ldap-maint1001</code> as of July 2025) the cross-validate-accounts command, for example like:<syntaxhighlight lang="shell"> cross-validate-accounts --username USRNAME --uid 00000 --email address@example.com --real-name "Real User" --ssh-key "ssh-ed25519 AAAAC...." --kerberos </syntaxhighlight> *Any requests to add sudo rights to a ''group'' should be reviewed at the Infrastructure Foundations SRE meeting. Tag the task with [[phab:tag/Infrastructure-Foundations|#Infrastructure-Foundations]] and assign it to [[phab:p/LSobanski|@LSobanski]] to add it to the next meeting's agenda; don't grant access until it's discussed at the meeting. Skip this step for requests to add a ''user'' to an existing group (the most common kind of production access request). *Please update the Task in phabricator, as the requestor will get update. *Please raise any security concerns on ticket via comments. ====Deployment Groups==== *Requires Shell and must have approval from releng to be added to the deployment group **The user should also be added to the Gerrit group [[gerrit:#/admin/groups/21,members|wmf-deployment]]. ====Creating new shell users==== Please see instructions in the puppet admin module's [https://github.com/wikimedia/puppet/blob/production/modules/admin/README.md README]. Some notable changes since February 2017: *Add the ''realname'' of the user (most Cloud VPS accounts don't have a real name set) *Add the ''email'' address of the users: **If the user is WMF staff use the email address of their Google account (usually the first letter of the first name and the surname, you can double-check the account name in the Gmail interface). Some users have aliases for their nickname e.g., don't use these, use the official Google account (this allows cross-checking data against corp LDAP) **If the user is a volunteer, a researcher or contractor without access to a wikimedia.org account, ask for a contact email address (to have a reliable contact e.g. in case of an account compromise) *If the user to be added is someone with a time-limited access (e.g. interns, researchers (who have time-limited MOUs) or short term contractor), add the estimated account end date as ''expiry_date'' (format is YYYY-MM-DD) and add a staff contact as ''expiry_contact'' ====Renaming shell users==== Sometimes we have to rename a shell user. This is typically when their shell name doesn't match their login name, and they have issues logging into items requiring LDAP credentials. Renaming a user will require a few things happen, in a very specific order. Since many users keep data in their home directories, backups can sometimes be made, but not always. (Private data that isn't allowed to be copied off the cluster should not be backed up to laptops.) The existing username has to be removed from the host, since the new username will use the old username's UID. *Patchset is prepared, but not merged. *Using cumin for these batch commands, all hosts that have the existing (to be replaced) username should have puppet halted. *Affected hosts should have the user (to be replaced) deleted. DO NOT DELETE THE USER'S HOME DIRECTORY. *Merge patchset with username change (UID remains the same). *Run puppet on affected hosts, and they will create the new user (using the same UID.) *Batch move the contents of the old user home into the new user home. ====IRC channel access==== /query chanserv help access access #channel list access #channel add *!*@wikimedia/cloak 14:07 -ChanServ(ChanServ@services.)- Flags +Aiortv were set on ... For people wanting to be a channel operator for #wikimedia-operations, first check they got nick protection enabled /msg nickserv info <nick> ... <nick> has enabled nick protection and then /msg chanserv flags #wikimedia-operations <nick> +Aiotv ====Check on a Phabricator user==== As part of an access request you might want to check first if a Phabricator user is actually who they say they are. There is a shell command on the the Phabricator server. see [[Phabricator#Check_on_a_Phabricator_user]] == Search console == Access to Google Search Console and Bing Webmaster Tools is '''no longer owned by SREs'''. [https://office.wikimedia.org/wiki/ITS IT Services] owns it, approving and deploying the access as needed. Normally, they will be able to self serve and no work from us will be needed. However, we still have a small role overseeing and assisting on those requests, upon their request: * We still keep admin passwords in [[pwstore]] in case the current administrator in unavailable or their account gets disabled * We manage the external service authentication through DNS keys (in case new services or domains have to be added. [https://gerrit.wikimedia.org/g/operations/dns/+/bcd9657e5970d1bb0cd7683b8d0d89ab1d62cc49 e.g.]). The following instructions are kept just in case: === Google Search Console === * There is no scripted check for expiry at this time. Add the user to the maint-announce calendar for their expiry until we have a better system. ==== Adding users to domains ==== * This is a tedious process. Once you login to the Google Search Console you will see a list of every single sub-domain for every single language and project in both HTTP and HTTPS. * Login from an incognito browser window or a profile where you're not already logged in with any other Google account to [https://www.google.com/webmasters/tools google search console] using the admin account in pwstore. This requires a verification code that will be sent via email. * Select the domain you wish to manage from the search/drop down in the top left of the page * Select settings from the menu, then User and Permissions * In almost all cases, the user should only be given [https://support.google.com/webmasters/answer/2453966 Restricted] to the Domain. * Click add user, and then enter the user's email address and click add user. Permission should be 'Restricted'. * User has now been added to that project/subdomain. Repeat as needed for other projects/subdomains. * For NON-WMF ADDITIONS: An entry should be added to the maint-announce calendar, set to email out to the root list and the person who approved the access to the search console for the entry to alert them of expiry. Reach out to the SRE Clinic on-duty to request this. Request SCherukuwada@ to remove the user from each domain. ==== Removing users from Domains ==== * Login from an incognito browser window or a profile where you're not already logged in with any other Google account to [https://www.google.com/webmasters/tools google search console]. * Select the domain you wish to manage from the search/drop down in the top left of the page * Click on Manage Domain, Add or Manage Users for the single domain you want to edit. This pulls up a sub-page. * Click the user in question in the list presented on page, this highlights the user. * Click the delete user button on the highlighted line. === Bing Webmaster Tools === * There is no scripted check for expiry at this time. Add user to the maint-announce calendar for their expiry until we have a better system. ==== Adding Users to Domains ==== * Login from an incognito browser window or a profile where you're not already logged in with any other Google account to [https://www.bing.com/webmasters Bing Webmaster Tools] using the admin account in pwstore. * Once you login to Webmaster Tools you will see a menu item called "User Management" on the left sidebar. * Bing has been configured with all the wikipedia.org domains added together. There is no way to grant access on a per-language-domain basis as of this writing. * Click on "User Management" then on the "Add a User" button and give them "Read Only" access. IMPORTANT NOTE FOR NON-WMF ADDITIONS: As with Google Search console, we need to ensure that the granted permission has an expiration date. An entry should be added to the maint-announce calendar, set to email out to the root list and the person who approved the access to the search console for the entry to alert them of expiry. Then whoever is on clinic duty for that week needs to login and remove the user from each of the domains. ==== Removing users from domains ==== * Login from an incognito browser window or a profile where you're not already logged in with any other Google account to [https://www.bing.com/webmasters Bing Webmaster Tools]. * Click on "User Management". * Click on the triple-dot menu alongside the user you wish to remove and then click on "Remove User". == Verifying WMF developer accounts == Both LDAP and shell access is tied to a user's [[Help:Create a Wikimedia developer account|developer account]], so a key task is verifying that a developer account actually belongs to the claimed person. You can log into ldap-maint1001.eqiad.wmnet and run the following ldapsearch variants: <pre> # Searching for the Wikimedia Developer account name: $ ldapsearch -x cn=foo # Searching for the shell/UID: $ ldapsearch -x uid=foo # Searching for the email address: $ ldapsearch -x mail=foo@bar.org </pre> WMF staff shows up with their @wikimedia.org email address. If the user has linked their Wikimedia Developer account to a SUL account, it will show up under the ''wikimediaGlobalAccountName'' attribute. All WMF staff members will have a SUL user name with ''(WMF)'' as a suffix. blcrlp47tq6pdywez3hzpxch5ryd847 Category:TLS 14 444722 2471835 1892250 2026-10-21T13:08:27Z Fuzheado 1608 add a parent cat [[Category:Security]] 2471835 wikitext text/x-wiki Pages related to TLS (formerly known as SSL) and HTTP over TLS (HTTPS). [[Category:Security]] sq89nmxwxjb8gq9odul03xg4p5tm3j6 Memcached 0 446419 2471959 2447750 2026-10-22T09:35:26Z Effie Mouzeli (WMF) 12880 pigeon update 2471959 wikitext text/x-wiki {{Navigation Wikimedia infrastructure|expand=mw}} This page is about the '''Memcached''' infrastructure (clusters, pools and servers) that backs [[MediaWiki at WMF|MediaWiki]] and [[Thumbor]] in production. For how MediaWiki itself uses this cluster (WANObjectCache, ParserCache, MicroStash), see [[Memcached for MediaWiki]]. For the proxy that MediaWiki talks to in order to reach these servers, see [[mw-mcrouter]]. This page is not about other Memcached clusters in production, such as, [[Help:Cloud Services introduction|Wikimedia Cloud Services]], and [[Swift]]. == Servers == There are three logical pools of memcached servers for MediaWiki: * '''Main''': 18 [[:en:Shard_(database_architecture)|shards]] per DC, running on the <code>mc10XX</code> hosts (in [[Eqiad cluster|Eqiad]]) and <code>mc20XX</code> hosts (in [[Codfw cluster|Codfw]]). * '''Gutter''': 3 shards per DC, hosted on <code>mc-gp100x</code> and <code>mc-gp200x</code> hosts. This is a fallback pool for the Main pool, and should not generally receive traffic. See [[mw-mcrouter#Routes|mcrouter routes]] for how failover to the Gutterpool works. * '''mc-wf''' (Wikifunctions): a separate Memcached cluster dedicated to the [[Wikifunctions]] service. Unlike the Main/Gutter pools above, mw-wikifunctions does not go through the shared [[mw-mcrouter]] daemonset, but rather talks to its own in-pod mcrouter container. Cross-DC traffic between the MediaWiki and Main pools (e.g. WANCache purges relayed by mcrouter's WAN route) is encrypted using TLS. == Configuration == The list of Memcached servers for the Main and Gutter pools is defined in [[gerrit:plugins/gitiles/operations/puppet/+/refs/heads/production/hieradata/common/profile/mediawiki/mcrouter_wancache.yaml|Puppet]], under <code>profile::mediawiki::mcrouter_wancache::shards</code>. This list is passed to [[mw-mcrouter]] after being parsed by some [[gerrit:plugins/gitiles/operations/puppet/+/refs/heads/production/modules/mediawiki/manifests/mcrouter/yaml_defs.pp|wonderful code]]. After a change to this list has been merged and propagated to the deployment server, [[mw-mcrouter]] needs to be [[Deployment pipeline/Components#Helmfile|redeployed]] to pick up the change. For how to replace a host in a pool, see [[mw-mcrouter#Replacing a host in a pool|mw-mcrouter]]. == Using memkeys and cachedump == See [[Performance/Runbooks/Analyze memcached]] for how to use <code>memkeys</code> or <code>cachedump</code> to inspect what a memcached instance is storing, for example to find hot keys or an unexpectedly large key. == Rebooting & Restarting == See [[SRE/Service_Operations/Documentation/Reboots#Datastores]] == Runbooks == * [[Memcached for MediaWiki/Memcached server failure|Memcached server failure]] * [[Performance/Runbooks/Analyze memcached]] (how to use memkeys or cachedump) == Dashboards == * [https://grafana.wikimedia.org/d/000000316/memcache Memcached Dashboard] * [https://grafana.wikimedia.org/d/000000316/memcache?orgId=1&var-datasource=eqiad%20prometheus%2Fops&var-cluster=memcached_gutter&var-instance=All Memcached Gutterpool status] * [https://grafana.wikimedia.org/d/ltSHWhHIk/mw-mcrouter mw-mcrouter] == Links == * [[gerrit:plugins/gitiles/operations/puppet/+/refs/heads/production/hieradata/common/profile/mediawiki/mcrouter_wancache.yaml|list of mediawiki memcached production servers]] == See also == * [[Memcached for MediaWiki]] * [[mw-mcrouter]] * [[Redis]] [[Category:Caching]] [[Category:MediaWiki production]] [[Category:SRE Service Operations]] q7ecodd0npwka4elrtwzl0nbbk0697r Docker-registry 0 447352 2471853 2464881 2026-10-21T15:55:02Z LToscano (WMF) 7191 /* Deleting images */ 2471853 wikitext text/x-wiki {{Kubernetes nav}} We run our own Docker registry at [https://docker-registry.wikimedia.org docker-registry.wikimedia.org]. Internally the domain <code>docker-registry.discovery.wmnet</code> is also used. The registry is used by our k8s cluster, CI, and local development. It is highly available (<code>docker_registry_ha</code> Puppet module) and backed by S3 (via the apus Ceph cluster). We run it '''active/passive''' since we don't fully trust the Ceph's bi-directional replication between eqiad and codfw. The docker-registry nodes consist of the '''docker registry''' itself as well as an '''nginx reverse-proxy''' in front to handle '''authentication''' as well as '''local caching'''. == Supported use cases == The Docker Registry supports all the Wikimedia production/internal use cases, and we allow Docker pulls from external clients as best effort. Please do not add our Docker Registry as additional source in your configs; any recurrent pull attempt for non existing images will be eventually blocked. == Browsing == Visit https://docker-registry.wikimedia.org/ to see a list of images and their tags. The listing is updated on a hourly timer and is done by the <code>registry-homepage-builder.py</code> script in Puppet. == Downloading images == Despite the name, the docker-registry is usable by any OCI container tool, including podman. Nearly all images may be publicly downloaded, examined, run, etc. The only exception is images under the <code>restricted/</code> namespace, which contain non-disclosed security patches and require specific credentials to fetch. Kubernetes nodes use [[Dragonfly]] to pull images. == Uploading images == For services we recommend using the [[Deployment pipeline]] which is [[Blubber]]. For other docker images, like infrastructure images, we manage them using docker-pkg, see: [[Kubernetes/Images#Image_building]] Hosts that want to upload images must be individually listed in Puppet hiera. == Access control == The upstream docker-registry software provides no access control, so it is implemented at the nginx level, which restricts GET/POST/etc. requests accordingly. As of 2021-03-18, the following accounts exist: * <code>ci-restricted</code>: Can pull and push any image (including "restricted/"). Used by releases servers that build the restricted MediaWiki production image. * <code>ci-build</code>: Can pull and push any non-restricted image. Used by contint servers via docker-pkg and the deployment pipeline. * <code>prod-build</code>: Can pull and push any non-restricted image. Used by build2001.codfw.wmnet via docker-pkg and build-base-images. * <code>kubernetes</code>: Can pull any image (including "restricted/"). Used by k8s nodes to pull images, including the restricted MediaWiki production image. **See [[Kubernetes/Clusters/New#Access to restricted docker images]] for more details. The passwords are all deployed using the private puppet repo. In case rotation is needed (e.g. compromise), grepping for <code><name>_user_password</code> should find all uses (switch hyphens to underscores). === jwt-authorizer === docker-registry also supports authorization using JSON Web Tokens. A dedicated daemon is running which handles jwt validation. See [[Docker-registry/jwt-authorizer]] for more information. == Storage backends == These are the S3 buckets that we use (Oct 2026): * An S3 bucket (restricted) for <code>/v2/restricted.*</code> images. * An S3 bucket (ml) for <code>/v2/wikimedia/machinelearning.*</code>, <code>/v2/repos/machine-learning/.*</code> images (and their vllm base images). * An S3 bucket (releng) for <code>/v2/releng.*</code>, <code>/v2/repos/releng.*</code> images. * An S3 bucket (main) for all the other images running on Kubernetes clusters. Every S3 bucked is managed by a Docker Distribution instance, and the Nginx proxy in front of them routes requests based on their prefix name. == Migration from Swift to S3 == More info are tracked in [[phab:T427175|https://phabricator.wikimedia.org/T427175.]] The migration is fully done but we keep this guide in case some images haven't been copied correctly. We use skopeo (from Debian's upstream) to copy over images from one Docker Distribution instance to the other one, preserving the sha256 signatures of the blobs etc.. This is very handy when migrating images from Swift to a new S3 bucket! If it happens that an image has not been copied over and the Nginx config for a given prefix is already pointing to the new S3 bucket/distribution combo, it is sufficient to use skopeo to quickly fill the gap. For example, let's say that you get a report of <code>docker-registry.wikimedia.org/releng/rake-ruby3.3:0.1.0</code> missing from the registry (docker pull errors etc..), you can do the following: * ssh to registry1004 (standby host, you can also use any of the other ones). * Start the Swift Registry Docker Distribution daemon via <code>sudo -u docker-registry /usr/bin/docker-registry serve /home/elukey/config-swift.yml</code> * Check if the image is present on the Swift backend <syntaxhighlight lang="bash"> # Note: From docker-registry.wikimedia.org/releng/rake-ruby3.3:0.1.0 # you need to replace "docker-registry.wikimedia.org" with "/v2" # Note2: localhost:5000 is the address of the Docker Distribution backend for Swift elukey@registry1004:~$ curl http://localhost:5000/v2/releng/rake-ruby3.3/tags/list {"name":"releng/rake-ruby3.3","tags":["0.1.0","latest"]} </syntaxhighlight> * If it is not present, the issue may not be related to the S3 migration. * If it is present, you need to figure out what is the S3 destination bucket. In this case, /v2/releng is a prefix matching the Releng's Docker distribution daemon. To find what is the right target, check the beginning of the tutorial. ** Find the port it is listening on, in this case 5006<syntaxhighlight lang="bash"> elukey@registry1004:~$ sudo grep addr /etc/docker/registry/config-releng.yml addr: ":5006" <==================== addr: ":5007" addr: rdb1015.eqiad.wmnet:6382 - addr: rdb1015.eqiad.wmnet:6382 </syntaxhighlight> * And finally, you can execute the following command to copy the image layers / manifests / etc.. over: <syntaxhighlight lang="text"> # Note: remove the /v2/ prefix since it is not related to the Docker image's name! skopeo copy --all --preserve-digests docker://localhost:5000/releng/rake-ruby3.3:0.1.0 docker://localhost:5006/releng/rake-ruby3.3:0.1.0 --dest-tls-verify=false --src-tls-verify=false </syntaxhighlight>That's it! The image should be available again for pulls. == Deleting images == To delete an image entirely, you may use the tool <code>docker-registryctl</code> on the current build host. It will do it's best to remove the tags/image from the registry, despite the [[phab:T242604|circumstances]]. '''Note:''' the domain used here is important. <code>discovery.wmnet</code> has to be used, so you will have to adjust it if you copy and paste from the browser UI.<syntaxhighlight lang="bash"> elukey@build2004:~$ sudo -i docker-registryctl delete-tags docker-registry.discovery.wmnet/wikimedia/machinelearning-liftwing-inference-services We're about to delete the following tags for image docker-registry.discovery.wmnet/wikimedia/machinelearning-liftwing-inference-services: 2021-07-28-175322-production stable Ok to proceed? (y/n)y docker-registry.discovery.wmnet/wikimedia/machinelearning-liftwing-inference-services:2021-07-28-175322-production[DONE] docker-registry.discovery.wmnet/wikimedia/machinelearning-liftwing-inference-services:stable[GONE] </syntaxhighlight> The underlying data isn't yet automatically garbage-collected from the S3 backend storage (https://phabricator.wikimedia.org/T437297), but the image(s) will no longer be available for download. Note that they will still show up on the docker-registry homepage (e.g. https://docker-registry.wikimedia.org/golang1.25/tags/) for a bit, this list is rebuilt only every hour. If you want to delete MediaWiki images under the /restricted namespace:<syntaxhighlight> elukey@deploy1003:~$ sudo -u docker-registryctl -c /etc/docker-pusher/config.json delete-tags docker-registry.discovery.wmnet/restricted/mediawiki-singleversion-cli:2026-0[34]* </syntaxhighlight>Please note that it may take a bit of time since the bigger the S3 bucket the more checks the Docker Registry's S3 client code needs to do to find the exact sha256 of the manifest to drop. Be patient :) == Maintenance == The docker-registry nodes consist of the '''docker registry''' itself as well as an '''nginx reverse-proxy''' in front to handle '''authentication''' as well as '''local caching'''. === Service management === The following units run on the registry nodes: {| class="wikitable" ! Service unit !! Description |- | <code>docker-registry-ha-jwt.service</code> || JSON Web Token authoriser |- | <code>docker-registry-main.service</code> || Catch all instance for Kubernetes workloads. |- | <code>docker-registry-ml.service</code> || Registry instance serving the ML/LiftWing namespace |- | <code>docker-registry-restricted.service</code> || Registry instance serving MediaWiki restricted images |- |<code>docker-registry-releng.service</code> |Registry instance serving releng-related images. |} ==== Restarting ==== Before restarting any service, confirm which node is currently active and prefer restarting the passive node where possible to avoid unnecessary disruption. cumin1003:$ sudo confctl --object-type discovery select 'dnsdisc=docker-registry' get <syntaxhighlight lang="bash"> sudo systemctl restart docker-registry-ha-jwt.service sudo systemctl restart docker-registry-swift.service sudo systemctl restart docker-registry-ml.service sudo systemctl restart docker-registry-restricted.service </syntaxhighlight> To check status: <syntaxhighlight lang="bash"> sudo systemctl status docker-registry-ha-jwt.service </syntaxhighlight> Note that nginx sits in front of all registry instances and handles authentication and local caching. <syntaxhighlight lang="bash"> sudo systemctl status nginx.service sudo systemctl restart nginx.service </syntaxhighlight> === Post-restart verification - httpbb === Run the httpbb tests against the restarted node to confirm it is serving correctly. Make sure the instance is '''not''' in read-only mode first (<code>profile::docker_registry::read_only_mode: false</code>): <syntaxhighlight lang="bash"> sudo httpbb /srv/deployment/httpbb-tests/docker-registry/test_docker-registry.yaml --hosts 'registry2004.codfw.wmnet' </syntaxhighlight> == See also == * [[/Runbook]] (draft) *[[SLO/Docker-registry|Service Level Objective (SLO)]] * [[Docker]] * [https://github.com/distribution/distribution Upstream Git repository] *[[User:JMeybohm/Docker-Registry-Stresstest]] [[Category:Containers]] [[Category:Docker]] 23ev63ecel3qvdtvlkp2i7jbuhrnbj4 2471854 2471853 2026-10-21T15:55:48Z LToscano (WMF) 7191 /* Deleting images */ 2471854 wikitext text/x-wiki {{Kubernetes nav}} We run our own Docker registry at [https://docker-registry.wikimedia.org docker-registry.wikimedia.org]. Internally the domain <code>docker-registry.discovery.wmnet</code> is also used. The registry is used by our k8s cluster, CI, and local development. It is highly available (<code>docker_registry_ha</code> Puppet module) and backed by S3 (via the apus Ceph cluster). We run it '''active/passive''' since we don't fully trust the Ceph's bi-directional replication between eqiad and codfw. The docker-registry nodes consist of the '''docker registry''' itself as well as an '''nginx reverse-proxy''' in front to handle '''authentication''' as well as '''local caching'''. == Supported use cases == The Docker Registry supports all the Wikimedia production/internal use cases, and we allow Docker pulls from external clients as best effort. Please do not add our Docker Registry as additional source in your configs; any recurrent pull attempt for non existing images will be eventually blocked. == Browsing == Visit https://docker-registry.wikimedia.org/ to see a list of images and their tags. The listing is updated on a hourly timer and is done by the <code>registry-homepage-builder.py</code> script in Puppet. == Downloading images == Despite the name, the docker-registry is usable by any OCI container tool, including podman. Nearly all images may be publicly downloaded, examined, run, etc. The only exception is images under the <code>restricted/</code> namespace, which contain non-disclosed security patches and require specific credentials to fetch. Kubernetes nodes use [[Dragonfly]] to pull images. == Uploading images == For services we recommend using the [[Deployment pipeline]] which is [[Blubber]]. For other docker images, like infrastructure images, we manage them using docker-pkg, see: [[Kubernetes/Images#Image_building]] Hosts that want to upload images must be individually listed in Puppet hiera. == Access control == The upstream docker-registry software provides no access control, so it is implemented at the nginx level, which restricts GET/POST/etc. requests accordingly. As of 2021-03-18, the following accounts exist: * <code>ci-restricted</code>: Can pull and push any image (including "restricted/"). Used by releases servers that build the restricted MediaWiki production image. * <code>ci-build</code>: Can pull and push any non-restricted image. Used by contint servers via docker-pkg and the deployment pipeline. * <code>prod-build</code>: Can pull and push any non-restricted image. Used by build2001.codfw.wmnet via docker-pkg and build-base-images. * <code>kubernetes</code>: Can pull any image (including "restricted/"). Used by k8s nodes to pull images, including the restricted MediaWiki production image. **See [[Kubernetes/Clusters/New#Access to restricted docker images]] for more details. The passwords are all deployed using the private puppet repo. In case rotation is needed (e.g. compromise), grepping for <code><name>_user_password</code> should find all uses (switch hyphens to underscores). === jwt-authorizer === docker-registry also supports authorization using JSON Web Tokens. A dedicated daemon is running which handles jwt validation. See [[Docker-registry/jwt-authorizer]] for more information. == Storage backends == These are the S3 buckets that we use (Oct 2026): * An S3 bucket (restricted) for <code>/v2/restricted.*</code> images. * An S3 bucket (ml) for <code>/v2/wikimedia/machinelearning.*</code>, <code>/v2/repos/machine-learning/.*</code> images (and their vllm base images). * An S3 bucket (releng) for <code>/v2/releng.*</code>, <code>/v2/repos/releng.*</code> images. * An S3 bucket (main) for all the other images running on Kubernetes clusters. Every S3 bucked is managed by a Docker Distribution instance, and the Nginx proxy in front of them routes requests based on their prefix name. == Migration from Swift to S3 == More info are tracked in [[phab:T427175|https://phabricator.wikimedia.org/T427175.]] The migration is fully done but we keep this guide in case some images haven't been copied correctly. We use skopeo (from Debian's upstream) to copy over images from one Docker Distribution instance to the other one, preserving the sha256 signatures of the blobs etc.. This is very handy when migrating images from Swift to a new S3 bucket! If it happens that an image has not been copied over and the Nginx config for a given prefix is already pointing to the new S3 bucket/distribution combo, it is sufficient to use skopeo to quickly fill the gap. For example, let's say that you get a report of <code>docker-registry.wikimedia.org/releng/rake-ruby3.3:0.1.0</code> missing from the registry (docker pull errors etc..), you can do the following: * ssh to registry1004 (standby host, you can also use any of the other ones). * Start the Swift Registry Docker Distribution daemon via <code>sudo -u docker-registry /usr/bin/docker-registry serve /home/elukey/config-swift.yml</code> * Check if the image is present on the Swift backend <syntaxhighlight lang="bash"> # Note: From docker-registry.wikimedia.org/releng/rake-ruby3.3:0.1.0 # you need to replace "docker-registry.wikimedia.org" with "/v2" # Note2: localhost:5000 is the address of the Docker Distribution backend for Swift elukey@registry1004:~$ curl http://localhost:5000/v2/releng/rake-ruby3.3/tags/list {"name":"releng/rake-ruby3.3","tags":["0.1.0","latest"]} </syntaxhighlight> * If it is not present, the issue may not be related to the S3 migration. * If it is present, you need to figure out what is the S3 destination bucket. In this case, /v2/releng is a prefix matching the Releng's Docker distribution daemon. To find what is the right target, check the beginning of the tutorial. ** Find the port it is listening on, in this case 5006<syntaxhighlight lang="bash"> elukey@registry1004:~$ sudo grep addr /etc/docker/registry/config-releng.yml addr: ":5006" <==================== addr: ":5007" addr: rdb1015.eqiad.wmnet:6382 - addr: rdb1015.eqiad.wmnet:6382 </syntaxhighlight> * And finally, you can execute the following command to copy the image layers / manifests / etc.. over: <syntaxhighlight lang="text"> # Note: remove the /v2/ prefix since it is not related to the Docker image's name! skopeo copy --all --preserve-digests docker://localhost:5000/releng/rake-ruby3.3:0.1.0 docker://localhost:5006/releng/rake-ruby3.3:0.1.0 --dest-tls-verify=false --src-tls-verify=false </syntaxhighlight>That's it! The image should be available again for pulls. == Deleting images == To delete an image entirely, you may use the tool <code>docker-registryctl</code> on the current build host. It will do it's best to remove the tags/image from the registry, despite the [[phab:T242604|circumstances]]. '''Note:''' the domain used here is important. <code>discovery.wmnet</code> has to be used, so you will have to adjust it if you copy and paste from the browser UI.<syntaxhighlight lang="bash"> elukey@build2004:~$ sudo -i docker-registryctl delete-tags docker-registry.discovery.wmnet/wikimedia/machinelearning-liftwing-inference-services We're about to delete the following tags for image docker-registry.discovery.wmnet/wikimedia/machinelearning-liftwing-inference-services: 2021-07-28-175322-production stable Ok to proceed? (y/n)y docker-registry.discovery.wmnet/wikimedia/machinelearning-liftwing-inference-services:2021-07-28-175322-production[DONE] docker-registry.discovery.wmnet/wikimedia/machinelearning-liftwing-inference-services:stable[GONE] </syntaxhighlight> The underlying data isn't yet automatically garbage-collected from the S3 backend storage (https://phabricator.wikimedia.org/T437297), but the image(s) will no longer be available for download. Note that they will still show up on the docker-registry homepage (e.g. https://docker-registry.wikimedia.org/golang1.25/tags/) for a bit, this list is rebuilt only every hour. If you want to delete MediaWiki images under the /restricted namespace:<syntaxhighlight lang="bash"> # Note the hostname change! The credentials are at the moment (October 2026) on deploy1003 elukey@deploy1003:~$ sudo -u docker-registryctl -c /etc/docker-pusher/config.json delete-tags docker-registry.discovery.wmnet/restricted/mediawiki-singleversion-cli:2026-0[34]* </syntaxhighlight>Please note that it may take a bit of time since the bigger the S3 bucket the more checks the Docker Registry's S3 client code needs to do to find the exact sha256 of the manifest to drop. Be patient :) == Maintenance == The docker-registry nodes consist of the '''docker registry''' itself as well as an '''nginx reverse-proxy''' in front to handle '''authentication''' as well as '''local caching'''. === Service management === The following units run on the registry nodes: {| class="wikitable" ! Service unit !! Description |- | <code>docker-registry-ha-jwt.service</code> || JSON Web Token authoriser |- | <code>docker-registry-main.service</code> || Catch all instance for Kubernetes workloads. |- | <code>docker-registry-ml.service</code> || Registry instance serving the ML/LiftWing namespace |- | <code>docker-registry-restricted.service</code> || Registry instance serving MediaWiki restricted images |- |<code>docker-registry-releng.service</code> |Registry instance serving releng-related images. |} ==== Restarting ==== Before restarting any service, confirm which node is currently active and prefer restarting the passive node where possible to avoid unnecessary disruption. cumin1003:$ sudo confctl --object-type discovery select 'dnsdisc=docker-registry' get <syntaxhighlight lang="bash"> sudo systemctl restart docker-registry-ha-jwt.service sudo systemctl restart docker-registry-swift.service sudo systemctl restart docker-registry-ml.service sudo systemctl restart docker-registry-restricted.service </syntaxhighlight> To check status: <syntaxhighlight lang="bash"> sudo systemctl status docker-registry-ha-jwt.service </syntaxhighlight> Note that nginx sits in front of all registry instances and handles authentication and local caching. <syntaxhighlight lang="bash"> sudo systemctl status nginx.service sudo systemctl restart nginx.service </syntaxhighlight> === Post-restart verification - httpbb === Run the httpbb tests against the restarted node to confirm it is serving correctly. Make sure the instance is '''not''' in read-only mode first (<code>profile::docker_registry::read_only_mode: false</code>): <syntaxhighlight lang="bash"> sudo httpbb /srv/deployment/httpbb-tests/docker-registry/test_docker-registry.yaml --hosts 'registry2004.codfw.wmnet' </syntaxhighlight> == See also == * [[/Runbook]] (draft) *[[SLO/Docker-registry|Service Level Objective (SLO)]] * [[Docker]] * [https://github.com/distribution/distribution Upstream Git repository] *[[User:JMeybohm/Docker-Registry-Stresstest]] [[Category:Containers]] [[Category:Docker]] a7pkgq3pmmuvysnsaud4vxizpl3kixb 2471953 2471854 2026-10-22T08:22:34Z LToscano (WMF) 7191 /* Deleting images */ 2471953 wikitext text/x-wiki {{Kubernetes nav}} We run our own Docker registry at [https://docker-registry.wikimedia.org docker-registry.wikimedia.org]. Internally the domain <code>docker-registry.discovery.wmnet</code> is also used. The registry is used by our k8s cluster, CI, and local development. It is highly available (<code>docker_registry_ha</code> Puppet module) and backed by S3 (via the apus Ceph cluster). We run it '''active/passive''' since we don't fully trust the Ceph's bi-directional replication between eqiad and codfw. The docker-registry nodes consist of the '''docker registry''' itself as well as an '''nginx reverse-proxy''' in front to handle '''authentication''' as well as '''local caching'''. == Supported use cases == The Docker Registry supports all the Wikimedia production/internal use cases, and we allow Docker pulls from external clients as best effort. Please do not add our Docker Registry as additional source in your configs; any recurrent pull attempt for non existing images will be eventually blocked. == Browsing == Visit https://docker-registry.wikimedia.org/ to see a list of images and their tags. The listing is updated on a hourly timer and is done by the <code>registry-homepage-builder.py</code> script in Puppet. == Downloading images == Despite the name, the docker-registry is usable by any OCI container tool, including podman. Nearly all images may be publicly downloaded, examined, run, etc. The only exception is images under the <code>restricted/</code> namespace, which contain non-disclosed security patches and require specific credentials to fetch. Kubernetes nodes use [[Dragonfly]] to pull images. == Uploading images == For services we recommend using the [[Deployment pipeline]] which is [[Blubber]]. For other docker images, like infrastructure images, we manage them using docker-pkg, see: [[Kubernetes/Images#Image_building]] Hosts that want to upload images must be individually listed in Puppet hiera. == Access control == The upstream docker-registry software provides no access control, so it is implemented at the nginx level, which restricts GET/POST/etc. requests accordingly. As of 2021-03-18, the following accounts exist: * <code>ci-restricted</code>: Can pull and push any image (including "restricted/"). Used by releases servers that build the restricted MediaWiki production image. * <code>ci-build</code>: Can pull and push any non-restricted image. Used by contint servers via docker-pkg and the deployment pipeline. * <code>prod-build</code>: Can pull and push any non-restricted image. Used by build2001.codfw.wmnet via docker-pkg and build-base-images. * <code>kubernetes</code>: Can pull any image (including "restricted/"). Used by k8s nodes to pull images, including the restricted MediaWiki production image. **See [[Kubernetes/Clusters/New#Access to restricted docker images]] for more details. The passwords are all deployed using the private puppet repo. In case rotation is needed (e.g. compromise), grepping for <code><name>_user_password</code> should find all uses (switch hyphens to underscores). === jwt-authorizer === docker-registry also supports authorization using JSON Web Tokens. A dedicated daemon is running which handles jwt validation. See [[Docker-registry/jwt-authorizer]] for more information. == Storage backends == These are the S3 buckets that we use (Oct 2026): * An S3 bucket (restricted) for <code>/v2/restricted.*</code> images. * An S3 bucket (ml) for <code>/v2/wikimedia/machinelearning.*</code>, <code>/v2/repos/machine-learning/.*</code> images (and their vllm base images). * An S3 bucket (releng) for <code>/v2/releng.*</code>, <code>/v2/repos/releng.*</code> images. * An S3 bucket (main) for all the other images running on Kubernetes clusters. Every S3 bucked is managed by a Docker Distribution instance, and the Nginx proxy in front of them routes requests based on their prefix name. == Migration from Swift to S3 == More info are tracked in [[phab:T427175|https://phabricator.wikimedia.org/T427175.]] The migration is fully done but we keep this guide in case some images haven't been copied correctly. We use skopeo (from Debian's upstream) to copy over images from one Docker Distribution instance to the other one, preserving the sha256 signatures of the blobs etc.. This is very handy when migrating images from Swift to a new S3 bucket! If it happens that an image has not been copied over and the Nginx config for a given prefix is already pointing to the new S3 bucket/distribution combo, it is sufficient to use skopeo to quickly fill the gap. For example, let's say that you get a report of <code>docker-registry.wikimedia.org/releng/rake-ruby3.3:0.1.0</code> missing from the registry (docker pull errors etc..), you can do the following: * ssh to registry1004 (standby host, you can also use any of the other ones). * Start the Swift Registry Docker Distribution daemon via <code>sudo -u docker-registry /usr/bin/docker-registry serve /home/elukey/config-swift.yml</code> * Check if the image is present on the Swift backend <syntaxhighlight lang="bash"> # Note: From docker-registry.wikimedia.org/releng/rake-ruby3.3:0.1.0 # you need to replace "docker-registry.wikimedia.org" with "/v2" # Note2: localhost:5000 is the address of the Docker Distribution backend for Swift elukey@registry1004:~$ curl http://localhost:5000/v2/releng/rake-ruby3.3/tags/list {"name":"releng/rake-ruby3.3","tags":["0.1.0","latest"]} </syntaxhighlight> * If it is not present, the issue may not be related to the S3 migration. * If it is present, you need to figure out what is the S3 destination bucket. In this case, /v2/releng is a prefix matching the Releng's Docker distribution daemon. To find what is the right target, check the beginning of the tutorial. ** Find the port it is listening on, in this case 5006<syntaxhighlight lang="bash"> elukey@registry1004:~$ sudo grep addr /etc/docker/registry/config-releng.yml addr: ":5006" <==================== addr: ":5007" addr: rdb1015.eqiad.wmnet:6382 - addr: rdb1015.eqiad.wmnet:6382 </syntaxhighlight> * And finally, you can execute the following command to copy the image layers / manifests / etc.. over: <syntaxhighlight lang="text"> # Note: remove the /v2/ prefix since it is not related to the Docker image's name! skopeo copy --all --preserve-digests docker://localhost:5000/releng/rake-ruby3.3:0.1.0 docker://localhost:5006/releng/rake-ruby3.3:0.1.0 --dest-tls-verify=false --src-tls-verify=false </syntaxhighlight>That's it! The image should be available again for pulls. == Deleting images == To delete an image entirely, you may use the tool <code>docker-registryctl</code> on the current build host. It will do it's best to remove the tags/image from the registry, despite the [[phab:T242604|circumstances]]. '''Note:''' the domain used here is important. <code>discovery.wmnet</code> has to be used, so you will have to adjust it if you copy and paste from the browser UI.<syntaxhighlight lang="bash"> elukey@build2004:~$ sudo -i docker-registryctl delete-tags docker-registry.discovery.wmnet/wikimedia/machinelearning-liftwing-inference-services We're about to delete the following tags for image docker-registry.discovery.wmnet/wikimedia/machinelearning-liftwing-inference-services: 2021-07-28-175322-production stable Ok to proceed? (y/n)y docker-registry.discovery.wmnet/wikimedia/machinelearning-liftwing-inference-services:2021-07-28-175322-production[DONE] docker-registry.discovery.wmnet/wikimedia/machinelearning-liftwing-inference-services:stable[GONE] </syntaxhighlight> The underlying data isn't yet automatically garbage-collected from the S3 backend storage (https://phabricator.wikimedia.org/T437297), but the image(s) will no longer be available for download. Note that they will still show up on the docker-registry homepage (e.g. https://docker-registry.wikimedia.org/golang1.25/tags/) for a bit, this list is rebuilt only every hour. If you want to delete MediaWiki images under the /restricted namespace:<syntaxhighlight lang="bash"> # Note the hostname change! The credentials are at the moment (October 2026) on deploy1003 elukey@deploy1003:~$ sudo docker-registryctl -c /etc/docker-pusher/config.json delete-tags docker-registry.discovery.wmnet/restricted/mediawiki-singleversion-cli:2026-0[34]* </syntaxhighlight>Please note that it may take a bit of time since the bigger the S3 bucket the more checks the Docker Registry's S3 client code needs to do to find the exact sha256 of the manifest to drop. Be patient :) == Maintenance == The docker-registry nodes consist of the '''docker registry''' itself as well as an '''nginx reverse-proxy''' in front to handle '''authentication''' as well as '''local caching'''. === Service management === The following units run on the registry nodes: {| class="wikitable" ! Service unit !! Description |- | <code>docker-registry-ha-jwt.service</code> || JSON Web Token authoriser |- | <code>docker-registry-main.service</code> || Catch all instance for Kubernetes workloads. |- | <code>docker-registry-ml.service</code> || Registry instance serving the ML/LiftWing namespace |- | <code>docker-registry-restricted.service</code> || Registry instance serving MediaWiki restricted images |- |<code>docker-registry-releng.service</code> |Registry instance serving releng-related images. |} ==== Restarting ==== Before restarting any service, confirm which node is currently active and prefer restarting the passive node where possible to avoid unnecessary disruption. cumin1003:$ sudo confctl --object-type discovery select 'dnsdisc=docker-registry' get <syntaxhighlight lang="bash"> sudo systemctl restart docker-registry-ha-jwt.service sudo systemctl restart docker-registry-swift.service sudo systemctl restart docker-registry-ml.service sudo systemctl restart docker-registry-restricted.service </syntaxhighlight> To check status: <syntaxhighlight lang="bash"> sudo systemctl status docker-registry-ha-jwt.service </syntaxhighlight> Note that nginx sits in front of all registry instances and handles authentication and local caching. <syntaxhighlight lang="bash"> sudo systemctl status nginx.service sudo systemctl restart nginx.service </syntaxhighlight> === Post-restart verification - httpbb === Run the httpbb tests against the restarted node to confirm it is serving correctly. Make sure the instance is '''not''' in read-only mode first (<code>profile::docker_registry::read_only_mode: false</code>): <syntaxhighlight lang="bash"> sudo httpbb /srv/deployment/httpbb-tests/docker-registry/test_docker-registry.yaml --hosts 'registry2004.codfw.wmnet' </syntaxhighlight> == See also == * [[/Runbook]] (draft) *[[SLO/Docker-registry|Service Level Objective (SLO)]] * [[Docker]] * [https://github.com/distribution/distribution Upstream Git repository] *[[User:JMeybohm/Docker-Registry-Stresstest]] [[Category:Containers]] [[Category:Docker]] kuae7zim5gmnmrg5rkw6oky3vr3v64z 2471954 2471953 2026-10-22T08:28:18Z LToscano (WMF) 7191 /* Deleting images */ 2471954 wikitext text/x-wiki {{Kubernetes nav}} We run our own Docker registry at [https://docker-registry.wikimedia.org docker-registry.wikimedia.org]. Internally the domain <code>docker-registry.discovery.wmnet</code> is also used. The registry is used by our k8s cluster, CI, and local development. It is highly available (<code>docker_registry_ha</code> Puppet module) and backed by S3 (via the apus Ceph cluster). We run it '''active/passive''' since we don't fully trust the Ceph's bi-directional replication between eqiad and codfw. The docker-registry nodes consist of the '''docker registry''' itself as well as an '''nginx reverse-proxy''' in front to handle '''authentication''' as well as '''local caching'''. == Supported use cases == The Docker Registry supports all the Wikimedia production/internal use cases, and we allow Docker pulls from external clients as best effort. Please do not add our Docker Registry as additional source in your configs; any recurrent pull attempt for non existing images will be eventually blocked. == Browsing == Visit https://docker-registry.wikimedia.org/ to see a list of images and their tags. The listing is updated on a hourly timer and is done by the <code>registry-homepage-builder.py</code> script in Puppet. == Downloading images == Despite the name, the docker-registry is usable by any OCI container tool, including podman. Nearly all images may be publicly downloaded, examined, run, etc. The only exception is images under the <code>restricted/</code> namespace, which contain non-disclosed security patches and require specific credentials to fetch. Kubernetes nodes use [[Dragonfly]] to pull images. == Uploading images == For services we recommend using the [[Deployment pipeline]] which is [[Blubber]]. For other docker images, like infrastructure images, we manage them using docker-pkg, see: [[Kubernetes/Images#Image_building]] Hosts that want to upload images must be individually listed in Puppet hiera. == Access control == The upstream docker-registry software provides no access control, so it is implemented at the nginx level, which restricts GET/POST/etc. requests accordingly. As of 2021-03-18, the following accounts exist: * <code>ci-restricted</code>: Can pull and push any image (including "restricted/"). Used by releases servers that build the restricted MediaWiki production image. * <code>ci-build</code>: Can pull and push any non-restricted image. Used by contint servers via docker-pkg and the deployment pipeline. * <code>prod-build</code>: Can pull and push any non-restricted image. Used by build2001.codfw.wmnet via docker-pkg and build-base-images. * <code>kubernetes</code>: Can pull any image (including "restricted/"). Used by k8s nodes to pull images, including the restricted MediaWiki production image. **See [[Kubernetes/Clusters/New#Access to restricted docker images]] for more details. The passwords are all deployed using the private puppet repo. In case rotation is needed (e.g. compromise), grepping for <code><name>_user_password</code> should find all uses (switch hyphens to underscores). === jwt-authorizer === docker-registry also supports authorization using JSON Web Tokens. A dedicated daemon is running which handles jwt validation. See [[Docker-registry/jwt-authorizer]] for more information. == Storage backends == These are the S3 buckets that we use (Oct 2026): * An S3 bucket (restricted) for <code>/v2/restricted.*</code> images. * An S3 bucket (ml) for <code>/v2/wikimedia/machinelearning.*</code>, <code>/v2/repos/machine-learning/.*</code> images (and their vllm base images). * An S3 bucket (releng) for <code>/v2/releng.*</code>, <code>/v2/repos/releng.*</code> images. * An S3 bucket (main) for all the other images running on Kubernetes clusters. Every S3 bucked is managed by a Docker Distribution instance, and the Nginx proxy in front of them routes requests based on their prefix name. == Migration from Swift to S3 == More info are tracked in [[phab:T427175|https://phabricator.wikimedia.org/T427175.]] The migration is fully done but we keep this guide in case some images haven't been copied correctly. We use skopeo (from Debian's upstream) to copy over images from one Docker Distribution instance to the other one, preserving the sha256 signatures of the blobs etc.. This is very handy when migrating images from Swift to a new S3 bucket! If it happens that an image has not been copied over and the Nginx config for a given prefix is already pointing to the new S3 bucket/distribution combo, it is sufficient to use skopeo to quickly fill the gap. For example, let's say that you get a report of <code>docker-registry.wikimedia.org/releng/rake-ruby3.3:0.1.0</code> missing from the registry (docker pull errors etc..), you can do the following: * ssh to registry1004 (standby host, you can also use any of the other ones). * Start the Swift Registry Docker Distribution daemon via <code>sudo -u docker-registry /usr/bin/docker-registry serve /home/elukey/config-swift.yml</code> * Check if the image is present on the Swift backend <syntaxhighlight lang="bash"> # Note: From docker-registry.wikimedia.org/releng/rake-ruby3.3:0.1.0 # you need to replace "docker-registry.wikimedia.org" with "/v2" # Note2: localhost:5000 is the address of the Docker Distribution backend for Swift elukey@registry1004:~$ curl http://localhost:5000/v2/releng/rake-ruby3.3/tags/list {"name":"releng/rake-ruby3.3","tags":["0.1.0","latest"]} </syntaxhighlight> * If it is not present, the issue may not be related to the S3 migration. * If it is present, you need to figure out what is the S3 destination bucket. In this case, /v2/releng is a prefix matching the Releng's Docker distribution daemon. To find what is the right target, check the beginning of the tutorial. ** Find the port it is listening on, in this case 5006<syntaxhighlight lang="bash"> elukey@registry1004:~$ sudo grep addr /etc/docker/registry/config-releng.yml addr: ":5006" <==================== addr: ":5007" addr: rdb1015.eqiad.wmnet:6382 - addr: rdb1015.eqiad.wmnet:6382 </syntaxhighlight> * And finally, you can execute the following command to copy the image layers / manifests / etc.. over: <syntaxhighlight lang="text"> # Note: remove the /v2/ prefix since it is not related to the Docker image's name! skopeo copy --all --preserve-digests docker://localhost:5000/releng/rake-ruby3.3:0.1.0 docker://localhost:5006/releng/rake-ruby3.3:0.1.0 --dest-tls-verify=false --src-tls-verify=false </syntaxhighlight>That's it! The image should be available again for pulls. == Deleting images == To delete an image entirely, you may use the tool <code>docker-registryctl</code> on the current build host. It will do it's best to remove the tags/image from the registry, despite the [[phab:T242604|circumstances]]. '''Note:''' the domain used here is important. <code>discovery.wmnet</code> has to be used, so you will have to adjust it if you copy and paste from the browser UI.<syntaxhighlight lang="bash"> elukey@build2004:~$ sudo -i docker-registryctl delete-tags docker-registry.discovery.wmnet/wikimedia/machinelearning-liftwing-inference-services We're about to delete the following tags for image docker-registry.discovery.wmnet/wikimedia/machinelearning-liftwing-inference-services: 2021-07-28-175322-production stable Ok to proceed? (y/n)y docker-registry.discovery.wmnet/wikimedia/machinelearning-liftwing-inference-services:2021-07-28-175322-production[DONE] docker-registry.discovery.wmnet/wikimedia/machinelearning-liftwing-inference-services:stable[GONE] </syntaxhighlight> The underlying data isn't yet automatically garbage-collected from the S3 backend storage (https://phabricator.wikimedia.org/T437297), but the image(s) will no longer be available for download. Note that they will still show up on the docker-registry homepage (e.g. https://docker-registry.wikimedia.org/golang1.25/tags/) for a bit, this list is rebuilt only every hour. If you want to delete MediaWiki images under the /restricted namespace:<syntaxhighlight lang="bash"> # Note the hostname change! The credentials are at the moment (October 2026) on deploy1003 # Delete all images with tag matching September 2026 elukey@deploy1003:~$ sudo docker-registryctl -c /etc/docker-pusher/config.json delete-tags docker-registry.discovery.wmnet/restricted/mediawiki-singleversion-cli:2026-09* # If you want to restrict images older than a certain date in the tag and from 2026 elukey@deploy1003:~$ sudo docker-registryctl -c /etc/docker-pusher/config.json delete-tags docker-registry.discovery.wmnet/restricted/mediawiki-singleversion-cli:2026* --older-than 2026-09-30 </syntaxhighlight>Please note that it may take a bit of time since the bigger the S3 bucket the more checks the Docker Registry's S3 client code needs to do to find the exact sha256 of the manifest to drop. Be patient :) == Maintenance == The docker-registry nodes consist of the '''docker registry''' itself as well as an '''nginx reverse-proxy''' in front to handle '''authentication''' as well as '''local caching'''. === Service management === The following units run on the registry nodes: {| class="wikitable" ! Service unit !! Description |- | <code>docker-registry-ha-jwt.service</code> || JSON Web Token authoriser |- | <code>docker-registry-main.service</code> || Catch all instance for Kubernetes workloads. |- | <code>docker-registry-ml.service</code> || Registry instance serving the ML/LiftWing namespace |- | <code>docker-registry-restricted.service</code> || Registry instance serving MediaWiki restricted images |- |<code>docker-registry-releng.service</code> |Registry instance serving releng-related images. |} ==== Restarting ==== Before restarting any service, confirm which node is currently active and prefer restarting the passive node where possible to avoid unnecessary disruption. cumin1003:$ sudo confctl --object-type discovery select 'dnsdisc=docker-registry' get <syntaxhighlight lang="bash"> sudo systemctl restart docker-registry-ha-jwt.service sudo systemctl restart docker-registry-swift.service sudo systemctl restart docker-registry-ml.service sudo systemctl restart docker-registry-restricted.service </syntaxhighlight> To check status: <syntaxhighlight lang="bash"> sudo systemctl status docker-registry-ha-jwt.service </syntaxhighlight> Note that nginx sits in front of all registry instances and handles authentication and local caching. <syntaxhighlight lang="bash"> sudo systemctl status nginx.service sudo systemctl restart nginx.service </syntaxhighlight> === Post-restart verification - httpbb === Run the httpbb tests against the restarted node to confirm it is serving correctly. Make sure the instance is '''not''' in read-only mode first (<code>profile::docker_registry::read_only_mode: false</code>): <syntaxhighlight lang="bash"> sudo httpbb /srv/deployment/httpbb-tests/docker-registry/test_docker-registry.yaml --hosts 'registry2004.codfw.wmnet' </syntaxhighlight> == See also == * [[/Runbook]] (draft) *[[SLO/Docker-registry|Service Level Objective (SLO)]] * [[Docker]] * [https://github.com/distribution/distribution Upstream Git repository] *[[User:JMeybohm/Docker-Registry-Stresstest]] [[Category:Containers]] [[Category:Docker]] lp0r3qiqzqn424dzwt6xfzoo5e4vaho PKI 0 447389 2471833 2471821 2026-10-21T13:04:05Z Fuzheado 1608 add explanation and fix some typos/links 2471833 wikitext text/x-wiki Wikimedia's PKI (public key infrastructure) is based on Cloudflare's [[github:cloudflare/cfssl|cfssl]], and in order to use it we maintain the following: * Puppet support to be able to provision and automatically renew a TLS certificate. * [[gerrit:admin/repos/operations/software/cfssl-issuer,general|cfssl-issuer]], an External Issuer for [[Kubernetes/cert-manager|cert-manager]] to be used with CFSSL <code>multirootca</code> and K8s (it is based off of the sample-external-issuer provided by cert-manager). * A [[gitlab:repos/sre/cfssl|fork]] of the cfssl repository to add [https://gitlab.wikimedia.org/repos/sre/cfssl/-/tree/main/debian/patches?ref_type=heads custom patches] that we filed to upstream but that were never merged. At the infrastructure level we run (Oct 2026): * One pki-root host in eqiad that hosts the cfssl root CA and the intermediate CAs keypairs, that are rotated periodically (when needed) by puppet. It is backed-up regularly via Bacula. It doesn't serve any request, nor it is connected to the pki[12]* nodes in some way. * Multiple pki[12]* nodes running the cfssl-multiroot daemon. They are a mixture of VMs and bare metal hosts behind a LVS service. The idea is to avoid using only VMs due to the fact that Ganeti depends on PKI for TLS certs. Those hosts serve all the TLS certs requests. * A MariaDB database supporting the cfssl-multiroot daemons. It holds all certificates emitted, so that cfssl won't regenerate them if not needed. The most recent PKI upgrade was tracked in [[phab:T416664|T416664]]. Security note: we rely on HMAC signing, provided/required by cfssl, as way to authenticate clients requesting a TLS certificate. Every group of clients (like every k8s cluster, puppet on bare metal, etc.) shares a secret password with cfssl, that allows to sign requests and authenticate them. == Useful links == {{Special:PrefixIndex/PKI/|hideredirects=1}} [[Category:SRE Infrastructure Foundations]] [[Category:PKI]] 9guvlvrk5i73g5v0ytszy6bzqrwiqrz Maps/v2 0 448500 2471830 2415150 2026-10-21T12:38:10Z Effie Mouzeli (WMF) 12880 2471830 wikitext text/x-wiki <!-- pigeon-page: Maps/v2 --> == Overview == The maps stack is responsible for rendering [https://maps.wikimedia.org/ maps.wikimedia.org] and any embedded maps in Wiki articles. == Components == On MediaWiki, the [[mw:Extension:Kartographer|Kartographer extension]] calls the maps.wikimedia.org endpoint with specific parameters, that are aimed to visualize a map with or without overlay shapes on top (city map displaying the neighborhoods for example). The maps stack is composed by: * [[:gerrit:admin/repos/mediawiki/services/kartotherian,general|Kartotherian]]: it is the frontend for maps.wikimedia.org and it offers an API to render a specific map in raster or vector formats. It retrieves the base map from Tegola (see below) and it applies geoshapes if requested/configured by the users. It fetches data from the Postgres gis database as well. It also calls the Wikidata Query Service (wdqs-internal) and the MediaWiki Action API, which means it depends on mw-api-int. * [[:gerrit:admin/repos/operations/software/tegola,general|Tegola]]: called by Kartotherian; it is responsible for fetching vector data from the Postgres gis database on maps* bare metal hosts and rendering the related map tiles in a specific format. It uses Thanos Swift as cache for the tiles. * Postgres: it is the datastore behind the stack, storing custom information about the above services and the vector data retrieved from [https://www.openstreetmap.org/ Open Street Map]. * [[:github:omniscale/imposm3|Imposm]]: It is the daemon running on Postgres master hosts (maps1011 and maps2011) that fetches data from Open Street Map upstream and updates the gis database. == Monitoring == * Kartotherian [https://grafana.wikimedia.org/d/d821ac19-02c5-49ac-bf18-58d2e27fdf19/kartotherian dashboard] * Tegola [https://grafana.wikimedia.org/d/AWSBX1rMk/tegola-vector-tiles-app-metrics dashboard] * Postgres [https://grafana.wikimedia.org/d/000000828/postgresql-database? dashboard] (you need to select the right host, maps1011 and maps2011 are the current master nodes, the rest are replicas). == Subpages == {{Special:PrefixIndex/{{PAGENAME}}/|hideredirects=1|stripprefix=1}} 7ok4vk8bn8ez2cvqstv6220iolzugx1 User:PPenloglou-WMF 2 452558 2471917 2270806 2026-10-21T23:56:10Z PPenloglou-WMF 34869 profile update 2471917 wikitext text/x-wiki {{User info | full name = Panagiotis Penloglou | image name = Panagiotis Penloglou.png | job title = Senior Developer Specialist, Fundraising Products | about me = My name is Panagiotis Penloglou but I also go by as Panos. I'm a BSc Computer Science graduate from the University of Leeds. 3+ years of experience in the software industry with a focus on web development. | about my work = I joined the Wikimedia Foundation in 2022 as a Campaign Associate, helping out the Online Fundraising team with donor emails. | contact me = Email: ppenloglou@wikimedia.org <br /> SSH Key = ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILk9fMuOdj1wrz7g5ZZtWxZuEPFzXi84oIy/Pr945VpW ppenloglou@wikimedia.org }} 3g38osfme3zg2k7g4emqwqwxk83mwr9 Tool:Ircservserv 116 455366 2471874 2208128 2026-10-21T18:35:19Z BryanDavis 1604 git changed a while ago 2471874 wikitext text/x-wiki {{Tool |name = ircservserv |title = ircservserv |description = Management of IRC channels |website = [[meta:IRC/Bots/ircservserv]] |keywords = irc, rust |author = [[User:Legoktm|Legoktm]] |username = |maintainer = [[User:Legoktm|Legoktm]], [[User:Majavah|Majavah]] |repository = [[gitlab:toolforge-repos/ircservserv]] |license = GPL-3.0+ |phabricator = ircservserv |issues = |sal = [[Nova_Resource:Tools.ircservserv/SAL|Tools.ircservserv/SAL]] }} {{Soft redirect|meta:IRC/Bots/ircservserv}} 20m9f0xfvthcreuc1u8ocv3h1llmlfz Template:WMCS top-level product page header 10 455967 2471851 2237027 2026-10-21T15:28:13Z Meno25 1446 update redirected link 2471851 wikitext text/x-wiki {{Mbox|image=[[File:Ambox PR.svg|40x40px|link=|alt=]]|text=Please read the [[Help:Cloud Services introduction|Wikimedia Cloud Services introduction]] and the [[Help:Getting started|Getting Started guide]].}}<noinclude> {{documentation|content=Header for [[Portal:Toolforge]], [[Portal:Cloud VPS]] and [[Portal:Data Services]].}}</noinclude> iuhrcu1n84fftg2i5owaatt3mfbqgso Mw-experimental 0 458856 2471962 2441328 2026-10-22T09:48:19Z Effie Mouzeli (WMF) 12880 fixed release file path 2471962 wikitext text/x-wiki {{lowercase}} {{Navigation Wikimedia infrastructure|expand=mw}} '''mw-experimental''' is a [[MediaWiki On Kubernetes]] deployment in [[WikiKube]], for ad-hoc testing via [[WikimediaDebug]]. == Design == Each data center runs one <code>mw-experimental</code> pod from a dedicated wikikube-worker node, reachable to you by SSH. These <code>mw-experimental</code> pods run the same <code>mediawiki-multiversion-debug</code> docker images as <code>mwdebug</code> pods, but with MediaWiki code mounted from the host's <code>/srv/mediawiki</code> directory, rather than the code found in the container. This allows you to edit the files for ad-hoc testing. This service replaces [[mwdebug]] (more info on {{phab|T276994}}) == Using the service == # SSH to the [[Deployment server]] and recreate the <code>mw-experimental</code> pod in Kubernetes for your chosen data center. This will apply the latest images, matching the rest of production [[MediaWiki On Kubernetes|mw-on-k8s]]. '''Scap skips''' restarting/recreating mw-experimental pods during deployments. While code under <code>/srv/mediawiki</code> is updated dynamically, the underlying docker image may be several days behind on infrastructure changes until you redeploy it (e.g. Puppet, Debian packages, Apache config, PHP settings):<syntaxhighlight lang="bash"> deploy:$ cd /srv/deployment-charts/helmfile.d/services/mw-experimental deploy:$ helmfile -e eqiad -i apply or deploy:$ helmfile -e codfw -i apply </syntaxhighlight> # SSH to a host '''[[Help:SSH Fingerprints/mw-experimental.eqiad.wmnet|mw-experimental.eqiad.wmnet]]''' or '''[[Help:SSH Fingerprints/mw-experimental.codfw.wmnet|mw-experimental.codfw.wmnet]]''' # There is timer updating <code>/srv/mediawiki</code> every hour. You can check when it last ran:<syntaxhighlight lang="bash"> systemctl status mw-experimental-mediawiki-image-update.timer </syntaxhighlight> # Despite this, if you want to update it again, you may run the timer on demand (takes ~3mins):<syntaxhighlight lang="bash">wikikube-worker-exp1001:~$ sudo systemctl restart mw-experimental-mediawiki-image-update.service</syntaxhighlight> # Make your changes in <code>/srv/mediawiki</code> as usual. Files are editable as any user in the <code>deployment</code> group; changes to PHP files should take effect immediately (no need to restart php-fpm or anything like that). # Go to [[WikimediaDebug]] and choose <code>k8s-mw-experimental-eqiad</code> or <code>k8s-mw-experimental-codfw</code> '''Notes:''' * We have a timer updating <code>/srv/mediawiki</code> every hour * To prevent code refreshing, you may run <syntaxhighlight lang="bash"> wikikube-worker-exp1001:~$ /usr/local/sbin/mw-experimental-mediawiki-image-update --lock wikikube-worker-exp1001:~$ /usr/local/sbin/mw-experimental-mediawiki-image-update --unlock </syntaxhighlight> * If you would like to discard your changes quickly and start over, you do not need to run helmfile again, unless some breaking changes have been deployed in the meantime. Restarting <code>mw-experimental-mediawiki-image-update.service</code> should be enough. * Image versions used on mw-experimental can be found either on the experimental hosts themselves or the deployment server under <code>/etc/helmfile-defaults/mediawiki/release/mw-experimental-pinkllama-eqiad.yaml</code> (or <code>-codfw.yaml</code>) == Dashboards == *Same url as before on [https://logstash.wikimedia.org/app/dashboards#/view/mwdebug1002 logstash] *[https://grafana-rw.wikimedia.org/d/ddc5a328-b2fa-4fa6-acdf-094d3be39b4e/mw-experimental mw-experimental on grafana] == Known limitations == === Shell inside the mediawiki pod === See [[phab:T405688|T405688: Support shell to mw-experimental pod]]. === Checking out a Gerrit change === Τhere is no straightforward way to check out a certain Gerrit change. Unofficial workaround: do some Git trickery to turn the directories into Git repositories. <syntaxhighlight lang="shell"> cd /srv/mediawiki/php-1.46.0-wmf.26/extensions/cldr/ sudo -u mwdeploy git init -b wmf/1.46.0-wmf.26 sudo -u mwdeploy git remote add gerrit https://gerrit.wikimedia.org/r/mediawiki/extensions/cldr.git sudo -u mwdeploy git fetch --depth=1 gerrit wmf/1.46.0-wmf.26 sudo -u mwdeploy git update-ref HEAD gerrit/wmf/1.46.0-wmf.26 sudo -u mwdeploy git reset </syntaxhighlight> (Substitute the right directories, branches and Gerrit URLs as needed.) Then you can fetch the Gerrit change from the <code>refs/changes</code> namespace, see [https://gerrit-review.googlesource.com/Documentation/concept-refs-for-namespace.html Gerrit documentation] or [[:mw:Gerrit/Advanced usage]], and check it out at <code>FETCH_HEAD</code>. If you break anything, revert your changes with <code>sudo systemctl restart mw-experimental-mediawiki-image-update.service</code>. == See also == * [[Debugging in production]] * [[mw-parsoid]] [[Category:MediaWiki production]] c92c2e5g0m61cg4evktf9zxueu0ynhe Data Platform/Data Lake/Edits/Editor counts per page 0 460388 2471889 2454142 2026-10-21T21:16:15Z AKhatun (WMF) 50461 /* Access */ Fix stala attribution API link. 2471889 wikitext text/x-wiki {{TOC|align=right}} The <code>wmf_contributors.editor_counts_per_page</code> dataset holds distinct '''visible''' editor counts for every <code>(wiki_id, page_id)</code> across all Wikimedia wikis — broken down into total, permanent (registered human), bot, logged-out (anonymous), and temporary-account editors. It is built from the [[Data Platform/Data Lake/Edits/Mediawiki_history_incremental_v1|Incremental MediaWiki History]] table by a daily pipeline, stored as an Iceberg table in the Data Lake, and served per page from a Cassandra-backed [[mw:Data Gateway|Data Gateway]] endpoint. * Ticket: [[phab:T426316|T426316]] * [https://docs.google.com/document/d/1tTRH3lGaHWFJIgdTx4W4dsV7b42ejF2gnpXG001Qmj0/edit?tab=t.if3fpl2cm1pp Design Document] * dbt selector: <code>+editor_counts_per_page</code> ([[gitLab:repos/data-engineering/dbt-jobs/-/tree/main/models/data-engineering|dbt-repo]]) * Airflow DAG: [[:gitLab:repos/data-engineering/airflow-dags/-/blob/main/main/dags/wmf_contributors/editor_counts_per_page_daily_dag.py|editor_counts_per_page_daily_dag.py]]. = User documentation = For each page on each wiki, the dataset stores the number of '''distinct editors''' who have made at least one publicly visible revision to that page, split by editor type: * '''Total''' — all distinct visible editors (humans and bots). * '''Permanent''' — distinct visible registered (permanent-account) human editors. * '''Bot''' — distinct visible editors classified as bots. * '''Logged-out''' — distinct visible anonymous (IP-based) human editors. * '''Temporary''' — distinct visible [[mw:Temporary accounts|temporary-account]] human editors. A "distinct editor" is counted once per page regardless of how many revisions they made. Editors are identified by a stable key (central user id when available, otherwise a local user id, otherwise an anonymous identity) so the same registered user is not double-counted across renames. == Schema == The Data Lake table (<code>wmf_contributors.editor_counts_per_page</code>) and the per-page API expose the same columns. One row per <code>(wiki_id, page_id)</code>. {| class="wikitable" |- ! column !! data type !! description |- | <code>wiki_id</code> || string || Wiki database code (e.g. <code>enwiki</code>, <code>cawiki</code>). Part of the primary key. |- | <code>page_id</code> || bigint || MediaWiki page identifier within the wiki. Part of the primary key. |- | <code>page_is_deleted</code> || boolean || <code>true</code> when the page is deleted in MediaWiki History. <code>false</code> when page is not deleted. <code>null</code> when no deletion information is available. |- | <code>editor_total_count</code> || int || Distinct visible editors on this page (humans and bots), excluding cross-wiki editors. |- | <code>editor_permanent_count</code> || int || Distinct visible permanent (registered) human editors, excluding cross-wiki editors. |- | <code>editor_bot_count</code> || int || Distinct visible bot editors, excluding cross-wiki editors. |- | <code>editor_logged_out_count</code> || int || Distinct visible anonymous (IP-based) human editors, excluding cross-wiki editors. |- | <code>editor_temporary_count</code> || int || Distinct visible temporary-account human editors, excluding cross-wiki editors. |- | <code>loaded_at</code> || timestamp || Load watermark — when this row was written by the pipeline (the pipeline run's <code>data_interval_end</code> on incremental runs, current UTC on a full refresh). '''Not''' the underlying MediaWiki History update time. |} == Access == * '''Attribution API''': The [[mw:Attribution_API|Attribution API]] is the preferred access method for MediaWiki clients, allowing lookups by <code>wiki_id</code> and <code>page_id</code>. * '''Data Lake (Iceberg):''' WMF staff can also use the <code>wmf_contributors.editor_counts_per_page</code> table in dbt models, Jupyter notebooks and Superset dashboards. Also queryable directly from [[Data Platform/Systems/Presto|Presto]] / [[Data Platform/Systems/Spark|Spark]] for ad-hoc analysis. See examples below. For other use cases, such as accessing this data from within a MediaWiki extension or exposing it through a different API, please contact the MediaWiki Interfaces and/or Data Engineering teams. == Examples == === Attribution API === See more usage in [[mw:Attribution_API]] documentation. This API is in development and will incorporate editor counts soon. Learn more in the [https://diff.wikimedia.org/2026/05/18/a-better-way-to-give-credit-introducing-the-wikimedia-attribution-framework-and-api/ diff post]. Example API call with curl: <syntaxhighlight lang="bash"> curl 'https://en.wikipedia.org/w/rest.php/attribution/v0-beta/pages/Earth/signals?expand=trust_and_relevance' | jq </syntaxhighlight> The output looks like the following as of beta v0. We are interested in the <code>trust_and_relevance.contributor_counts</code>. This will be updated to include the unique editor counts by permanent, bot, temp, and anonymous accounts. <syntaxhighlight lang="bash"> { "essential": { "link": "https://en.wikipedia.org/w/index.php?title=Earth&wprov=afsw1", "default_brand_marks": [ { "name": "Default logo", "url": "https://en.wikipedia.org/static/images/project-logos/enwiki-25.png", "type": "logo" }... ], "source_wiki": { "site_name": "English Wikipedia", "project_family": "wikipedia", "site_id": "enwiki", "site_language": "en", "page_language": "en" }, "title": "Earth", "license": { "title": "CC BY-SA 4.0", "url": "https://creativecommons.org/licenses/by-sa/4.0/deed.en" } }, "trust_and_relevance": { "last_updated": "2026-07-02T17:36:24Z", "contributor_counts": null, "page_views": 244510, "reference_count": 310, "trending": { "top": { "read": false, "edited": false, "read_and_edited": false }, "relative": { "read": false, "edited": false, "read_and_edited": false } } } } </syntaxhighlight> TBD: API response will be updated after Attribution API incorporates the editor counts. === dbt models === Sample dbt model that lists all pages with more than 100 unique editors. The editor counts table is accessed by <code>ref('editor_counts_per_page')</code>. <syntaxhighlight lang="sql"> {{ config(materialized='table') }} SELECT wiki_id, page_id, editor_total_count, editor_permanent_count, editor_bot_count, editor_logged_out_count, editor_temporary_count FROM {{ ref('editor_counts_per_page') }} WHERE wiki_id = 'enwiki' AND editor_total_count > 100 </syntaxhighlight> === SQL === We can use [[Data_Platform/Systems/Spark|PySpark/Spark]] or [[Data_Platform/Systems/Presto|Presto]] from the terminal in a stat machine; execute python or scala code in stat machines; run SQL directly in [[Data_Platform/Systems/Superset|Superset]]; or code in [[Data_Platform/Systems/Jupyter|Jupyter Notebooks]] to run SQL or equivalent code to access this dataset. ==== Counts for a single page ==== <syntaxhighlight lang="sql"> SELECT editor_total_count, editor_permanent_count, editor_bot_count, editor_logged_out_count, editor_temporary_count FROM wmf_contributors.editor_counts_per_page WHERE wiki_id = 'cawiki' AND page_id = 148945; </syntaxhighlight> ==== Top 20 pages on a wiki by distinct editors ==== <syntaxhighlight lang="sql"> SELECT page_id, editor_total_count FROM wmf_contributors.editor_counts_per_page WHERE wiki_id = 'enwiki' ORDER BY editor_total_count DESC LIMIT 20; </syntaxhighlight> == Details == * '''Visible revisions only.''' Counts include only editors with at least one publicly visible (non-suppressed, non-deleted) revision. A visibility change on an old revision can therefore change a page's counts. * '''Cross-wiki editors are excluded''' from all counts, until MediaWiki History exposes reliable user-status for them ([[phab:T428018]]). * '''<code>loaded_at</code> is a load timestamp, not a data-freshness timestamp.''' It marks when the pipeline wrote the row, not when the underlying edit happened or when MediaWiki History last changed. Data freshness can be determined from when the latest airflow job ran. * '''New-wiki completeness gap.''' A wiki created mid-month can miss events until the next monthly namespace snapshot. * '''~1 day producer latency.''' Data of a day is collected and processed at the start of the next day. So we get updated data of day <code>D</code> at the start of day <code>D+1</code>. * '''~2-3 days latency on first of month.''' The editor counts pipeline depends on incremental MWH, which in turn depends on the monthly MWH. The monthly MWH take 2-3 days to land. The 1st of the month of incremental MWH waits on this load before loading the data for the 1st of the month. Hence editor counts pipeline also waits ~2-3 days, after which the data from 1st of the month is loaded, followed by subsequent days. * '''Editor is bot.''' An editor is considered a bot if the editor belongs to a user group bot (bot by group) or has the term "bot" in the name (bot by name). * '''Bot as of event-time.''' We use <code>event_user_is_bot_by_historical</code> (bot status as of event time), as current bot status is not available in incremental MWH. This means if someone was deemed bot later on (or vice versa), we won't know that until that user makes a new change in that page. If we receive an update for that user, we update the bot field. We are able to take on the latest value of bot-ness (if available). More details here: [[phab:T426316#11979835]]. * <code>page_is_deleted</code> is not comprehensive and may contain NULL values. MWH could not identify the status of those pages, hence they are NULL. = Technical documentation = The dataset is produced by a chain of three dbt models and one Airflow DAG, then loaded into Cassandra for per-page serving. A Data Gateway API acts as an interface for the Cassandra table to be used for serving into applications. <pre> incremental MediaWiki History (wmf_mediawiki.mediawiki_history_incremental_v1) │ ▼ stg_mwh__revision_editor (view) one row per visible revision, with editor identity/type │ ▼ int_editors_per_page (Iceberg) one row per (wiki_id, page_id, editor_key) │ ▼ editor_counts_per_page (Iceberg) one row per (wiki_id, page_id) with the count columns │ ▼ (post-hook) Cassandra linked_artifacts.editor_counts_per_page ──► Data Gateway API </pre>The original design for this pipeline can be found in a [https://docs.google.com/document/d/1tTRH3lGaHWFJIgdTx4W4dsV7b42ejF2gnpXG001Qmj0/edit?tab=t.if3fpl2cm1pp publicly-viewable Google document], kept for historical purposes. == Source: incremental MediaWiki History == The chain reads the incremental MediaWiki History table <code>wmf_mediawiki.mediawiki_history_incremental_v1</code> rather than the monthly <code>wmf.mediawiki_history</code> snapshot. This gives '''daily freshness''' from a single table. Every touched row carries a <code>row_update_dt</code> watermark — re-stamped on inserts and on revert / visibility / page-deletion back-patches — so a single column captures every change the model cares about, including a visibility flip on an old revision. == dbt Models == ; <code>wmf_contributors.stg_mwh__revision_editor</code> (view) : Selects visible revisions from incremental MWH and derives each revision's editor identity (<code>editor_key</code>) and type flags (anonymous / temporary / permanent / bot / cross-wiki / visible). Incremental runs filter on a closed-right <code>row_update_dt</code> window <code>(data_interval_start, data_interval_end]</code>, with a 1st-of-month <code>−1s</code> reach-back to fold in the monthly reconcile. See [[phab:T428503#12003010]]. ; <code>wmf_contributors.int_editors_per_page</code> (Iceberg incremental table) : Aggregates staging to one row per <code>(wiki_id, page_id, editor_key)</code>. Lists all unique editors of a page with the latest-revision identity/type flags and a page-level <code>editor_is_visible</code> / <code>page_is_deleted</code>. Cross-wiki editors are retained here. ; <code>wmf_contributors.editor_counts_per_page</code> (Iceberg incremental table) : Computes the distinct editor counts over visible, non-cross-wiki editors, one row per <code>(wiki_id, page_id)</code>. Incremental runs recount only pages touched in the current <code>int_editors_per_page</code> load, then <code>MERGE</code> into Iceberg. A post-hook loads the run's rows to Cassandra. == Incremental design and read window == The watermark is the Airflow <code>logical_date</code> interval itself — there is no stored stateful watermark, so retries, <code>catchup</code>, and backfills are reproducible because the read set is a pure function of the interval. * '''Normal day:''' <code>row_update_dt ∈ (data_interval_start, data_interval_end]</code> → reads the run's own day (fresh). * '''1st of month:''' the lower bound reaches back one second (<code>>= data_interval_start − 1s</code>) to also capture the monthly reconcile, which is stamped at the last second of the prior month. * '''Touched-key re-aggregation:''' the model finds <code>(wiki_id, page_id, editor_key)</code> touched in the window, then re-aggregates '''all''' revisions for those keys (not an append), so a changed revision correctly re-derives the page's counts. == Orchestration == One Airflow DAG, [[:gitLab:repos/data-engineering/airflow-dags/-/blob/main/main/dags/wmf_contributors/editor_counts_per_page_daily_dag.py|editor_counts_per_page_daily_dag.py]]: * '''Schedule:''' <code>@daily</code>, <code>max_active_runs=1</code> (the incremental-merge model must run one at a time). * '''Dependency:''' an <code>ExternalTaskSensor</code> on the incremental MWH daily writer (dataset <code>iceberg_wmf_mediawiki_mediawiki_history_incremental_v1</code>) at the same logical date. The 1st-of-month run is transitively gated on the prior month's reconcile through that writer, so no separate monthly job and no manual full refresh are needed. * '''SLA:''' 4 days — the 1st-of-month run is full-refresh-sized and can wait ~3 days on the monthly reconcile; with <code>max_active_runs=1</code> the next runs queue behind it. The job lives in its own DAG (not the shared <code>dbt_daily</code>) so this wait does not block other teams. * '''Load step:''' on success the dbt post-hook writes the run's rows to Cassandra (<code>aqs.linked_artifacts.editor_counts_per_page</code>). The Cassandra data is accessible through a Data Gateway endpoint. See usage below. * A manual <code>--full-refresh</code> rebuilds the whole table and re-pushes all rows. == Usage == See more usage examples in [[Data_Platform/Data_Lake/Edits/Editor_counts_per_page#Examples]]. === Data Gateway === [[mw:Data Gateway|Data Gateway]] is a wrapper on the Cassandra table and allows single-page lookups by <code>(wiki_id, page_id)</code>, backed by [[Cassandra|Cassandra]]. See the [[mw:Data Gateway#Editor Counts|Data Gateway documentation]] for the endpoint contract. This is only to be used by internal APIs and not for direct access by external applications or APIs. <syntaxhighlight lang="shell-session"> $ curl https://data-gateway.discovery.wmnet:30443/public/linked_artifacts/editor_counts_per_page/cawiki/148945 | jq { "rows": [ { "wiki_id": "cawiki", "page_id": 148945, "editor_bot_count": 0, "editor_logged_out_count": 0, "editor_permanent_count": 2, "editor_temporary_count": 0, "editor_total_count": 2, "loaded_at": "2026-06-25 23:29:52.000Z", "page_is_deleted": false } ] } </syntaxhighlight> == Operational notes == * '''1st-of-month run is full-refresh-sized''' — it re-aggregates the entire re-inserted snapshot and re-pushes the whole table to Cassandra. * '''Computes all touched pages''' — <code>row_update_dt</code> is re-stamped on any field change with back-patches. All such pages get re-aggregated irrespective of what changed. == Changes and known problems == {| class="wikitable" |- ! Date from !! Task !! Details |- | 2026-06-25 | {{PhabT|T426316}} | Initial data set. |} [[Category:Data platform]] [[Category:Editors data]] [[Category:Prep Pantry Projects]] mvpzzv8oxep86m4niwrqm30igzlohkm 2471894 2471889 2026-10-21T21:36:24Z AKhatun (WMF) 50461 /* Examples */ Update attribution API response 2471894 wikitext text/x-wiki {{TOC|align=right}} The <code>wmf_contributors.editor_counts_per_page</code> dataset holds distinct '''visible''' editor counts for every <code>(wiki_id, page_id)</code> across all Wikimedia wikis — broken down into total, permanent (registered human), bot, logged-out (anonymous), and temporary-account editors. It is built from the [[Data Platform/Data Lake/Edits/Mediawiki_history_incremental_v1|Incremental MediaWiki History]] table by a daily pipeline, stored as an Iceberg table in the Data Lake, and served per page from a Cassandra-backed [[mw:Data Gateway|Data Gateway]] endpoint. * Ticket: [[phab:T426316|T426316]] * [https://docs.google.com/document/d/1tTRH3lGaHWFJIgdTx4W4dsV7b42ejF2gnpXG001Qmj0/edit?tab=t.if3fpl2cm1pp Design Document] * dbt selector: <code>+editor_counts_per_page</code> ([[gitLab:repos/data-engineering/dbt-jobs/-/tree/main/models/data-engineering|dbt-repo]]) * Airflow DAG: [[:gitLab:repos/data-engineering/airflow-dags/-/blob/main/main/dags/wmf_contributors/editor_counts_per_page_daily_dag.py|editor_counts_per_page_daily_dag.py]]. = User documentation = For each page on each wiki, the dataset stores the number of '''distinct editors''' who have made at least one publicly visible revision to that page, split by editor type: * '''Total''' — all distinct visible editors (humans and bots). * '''Permanent''' — distinct visible registered (permanent-account) human editors. * '''Bot''' — distinct visible editors classified as bots. * '''Logged-out''' — distinct visible anonymous (IP-based) human editors. * '''Temporary''' — distinct visible [[mw:Temporary accounts|temporary-account]] human editors. A "distinct editor" is counted once per page regardless of how many revisions they made. Editors are identified by a stable key (central user id when available, otherwise a local user id, otherwise an anonymous identity) so the same registered user is not double-counted across renames. == Schema == The Data Lake table (<code>wmf_contributors.editor_counts_per_page</code>) and the per-page API expose the same columns. One row per <code>(wiki_id, page_id)</code>. {| class="wikitable" |- ! column !! data type !! description |- | <code>wiki_id</code> || string || Wiki database code (e.g. <code>enwiki</code>, <code>cawiki</code>). Part of the primary key. |- | <code>page_id</code> || bigint || MediaWiki page identifier within the wiki. Part of the primary key. |- | <code>page_is_deleted</code> || boolean || <code>true</code> when the page is deleted in MediaWiki History. <code>false</code> when page is not deleted. <code>null</code> when no deletion information is available. |- | <code>editor_total_count</code> || int || Distinct visible editors on this page (humans and bots), excluding cross-wiki editors. |- | <code>editor_permanent_count</code> || int || Distinct visible permanent (registered) human editors, excluding cross-wiki editors. |- | <code>editor_bot_count</code> || int || Distinct visible bot editors, excluding cross-wiki editors. |- | <code>editor_logged_out_count</code> || int || Distinct visible anonymous (IP-based) human editors, excluding cross-wiki editors. |- | <code>editor_temporary_count</code> || int || Distinct visible temporary-account human editors, excluding cross-wiki editors. |- | <code>loaded_at</code> || timestamp || Load watermark — when this row was written by the pipeline (the pipeline run's <code>data_interval_end</code> on incremental runs, current UTC on a full refresh). '''Not''' the underlying MediaWiki History update time. |} == Access == * '''Attribution API''': The [[mw:Attribution_API|Attribution API]] is the preferred access method for MediaWiki clients, allowing lookups by <code>wiki_id</code> and <code>page_id</code>. * '''Data Lake (Iceberg):''' WMF staff can also use the <code>wmf_contributors.editor_counts_per_page</code> table in dbt models, Jupyter notebooks and Superset dashboards. Also queryable directly from [[Data Platform/Systems/Presto|Presto]] / [[Data Platform/Systems/Spark|Spark]] for ad-hoc analysis. See examples below. For other use cases, such as accessing this data from within a MediaWiki extension or exposing it through a different API, please contact the MediaWiki Interfaces and/or Data Engineering teams. == Examples == === Attribution API === See usage in [[mw:Attribution_API]] documentation. Learn more in the [https://diff.wikimedia.org/2026/05/18/a-better-way-to-give-credit-introducing-the-wikimedia-attribution-framework-and-api/ diff post]. Example API call with curl: <syntaxhighlight lang="bash"> curl 'https://en.wikipedia.org/w/rest.php/attribution/v0-beta/pages/Earth/signals?expand=trust_and_relevance' | jq </syntaxhighlight> We are interested in the <code>trust_and_relevance.contributor_counts</code>. <syntaxhighlight lang="bash"> { "essential": { "link": "https://en.wikipedia.org/w/index.php?title=Earth&wprov=afsw1", "default_brand_marks": [ { "name": "Default logo", "url": "https://en.wikipedia.org/static/images/project-logos/enwiki-25.png", "type": "logo" }... ], "source_wiki": { "site_name": "English Wikipedia", "project_family": "wikipedia", "site_id": "enwiki", "site_language": "en", "page_language": "en" }, "title": "Earth", "license": { "title": "CC BY-SA 4.0", "url": "https://creativecommons.org/licenses/by-sa/4.0/deed.en" } }, "trust_and_relevance": { "last_updated": "2026-10-19T09:27:36Z", "contributor_counts": { "total_unique": 5543, "logged_in_users": 3287, "unregistered_users": 2139, "known_bots": 114 }, "page_views": 250249, "reference_count": 316, "trending": { "top": { "read": false, "edited": false, "read_and_edited": false }, "relative": false } } } </syntaxhighlight> === dbt models === Sample dbt model that lists all pages with more than 100 unique editors. The editor counts table is accessed by <code>ref('editor_counts_per_page')</code>. <syntaxhighlight lang="sql"> {{ config(materialized='table') }} SELECT wiki_id, page_id, editor_total_count, editor_permanent_count, editor_bot_count, editor_logged_out_count, editor_temporary_count FROM {{ ref('editor_counts_per_page') }} WHERE wiki_id = 'enwiki' AND editor_total_count > 100 </syntaxhighlight> === SQL === We can use [[Data_Platform/Systems/Spark|PySpark/Spark]] or [[Data_Platform/Systems/Presto|Presto]] from the terminal in a stat machine; execute python or scala code in stat machines; run SQL directly in [[Data_Platform/Systems/Superset|Superset]]; or code in [[Data_Platform/Systems/Jupyter|Jupyter Notebooks]] to run SQL or equivalent code to access this dataset. ==== Counts for a single page ==== <syntaxhighlight lang="sql"> SELECT editor_total_count, editor_permanent_count, editor_bot_count, editor_logged_out_count, editor_temporary_count FROM wmf_contributors.editor_counts_per_page WHERE wiki_id = 'cawiki' AND page_id = 148945; </syntaxhighlight> ==== Top 20 pages on a wiki by distinct editors ==== <syntaxhighlight lang="sql"> SELECT page_id, editor_total_count FROM wmf_contributors.editor_counts_per_page WHERE wiki_id = 'enwiki' ORDER BY editor_total_count DESC LIMIT 20; </syntaxhighlight> == Details == * '''Visible revisions only.''' Counts include only editors with at least one publicly visible (non-suppressed, non-deleted) revision. A visibility change on an old revision can therefore change a page's counts. * '''Cross-wiki editors are excluded''' from all counts, until MediaWiki History exposes reliable user-status for them ([[phab:T428018]]). * '''<code>loaded_at</code> is a load timestamp, not a data-freshness timestamp.''' It marks when the pipeline wrote the row, not when the underlying edit happened or when MediaWiki History last changed. Data freshness can be determined from when the latest airflow job ran. * '''New-wiki completeness gap.''' A wiki created mid-month can miss events until the next monthly namespace snapshot. * '''~1 day producer latency.''' Data of a day is collected and processed at the start of the next day. So we get updated data of day <code>D</code> at the start of day <code>D+1</code>. * '''~2-3 days latency on first of month.''' The editor counts pipeline depends on incremental MWH, which in turn depends on the monthly MWH. The monthly MWH take 2-3 days to land. The 1st of the month of incremental MWH waits on this load before loading the data for the 1st of the month. Hence editor counts pipeline also waits ~2-3 days, after which the data from 1st of the month is loaded, followed by subsequent days. * '''Editor is bot.''' An editor is considered a bot if the editor belongs to a user group bot (bot by group) or has the term "bot" in the name (bot by name). * '''Bot as of event-time.''' We use <code>event_user_is_bot_by_historical</code> (bot status as of event time), as current bot status is not available in incremental MWH. This means if someone was deemed bot later on (or vice versa), we won't know that until that user makes a new change in that page. If we receive an update for that user, we update the bot field. We are able to take on the latest value of bot-ness (if available). More details here: [[phab:T426316#11979835]]. * <code>page_is_deleted</code> is not comprehensive and may contain NULL values. MWH could not identify the status of those pages, hence they are NULL. = Technical documentation = The dataset is produced by a chain of three dbt models and one Airflow DAG, then loaded into Cassandra for per-page serving. A Data Gateway API acts as an interface for the Cassandra table to be used for serving into applications. <pre> incremental MediaWiki History (wmf_mediawiki.mediawiki_history_incremental_v1) │ ▼ stg_mwh__revision_editor (view) one row per visible revision, with editor identity/type │ ▼ int_editors_per_page (Iceberg) one row per (wiki_id, page_id, editor_key) │ ▼ editor_counts_per_page (Iceberg) one row per (wiki_id, page_id) with the count columns │ ▼ (post-hook) Cassandra linked_artifacts.editor_counts_per_page ──► Data Gateway API </pre>The original design for this pipeline can be found in a [https://docs.google.com/document/d/1tTRH3lGaHWFJIgdTx4W4dsV7b42ejF2gnpXG001Qmj0/edit?tab=t.if3fpl2cm1pp publicly-viewable Google document], kept for historical purposes. == Source: incremental MediaWiki History == The chain reads the incremental MediaWiki History table <code>wmf_mediawiki.mediawiki_history_incremental_v1</code> rather than the monthly <code>wmf.mediawiki_history</code> snapshot. This gives '''daily freshness''' from a single table. Every touched row carries a <code>row_update_dt</code> watermark — re-stamped on inserts and on revert / visibility / page-deletion back-patches — so a single column captures every change the model cares about, including a visibility flip on an old revision. == dbt Models == ; <code>wmf_contributors.stg_mwh__revision_editor</code> (view) : Selects visible revisions from incremental MWH and derives each revision's editor identity (<code>editor_key</code>) and type flags (anonymous / temporary / permanent / bot / cross-wiki / visible). Incremental runs filter on a closed-right <code>row_update_dt</code> window <code>(data_interval_start, data_interval_end]</code>, with a 1st-of-month <code>−1s</code> reach-back to fold in the monthly reconcile. See [[phab:T428503#12003010]]. ; <code>wmf_contributors.int_editors_per_page</code> (Iceberg incremental table) : Aggregates staging to one row per <code>(wiki_id, page_id, editor_key)</code>. Lists all unique editors of a page with the latest-revision identity/type flags and a page-level <code>editor_is_visible</code> / <code>page_is_deleted</code>. Cross-wiki editors are retained here. ; <code>wmf_contributors.editor_counts_per_page</code> (Iceberg incremental table) : Computes the distinct editor counts over visible, non-cross-wiki editors, one row per <code>(wiki_id, page_id)</code>. Incremental runs recount only pages touched in the current <code>int_editors_per_page</code> load, then <code>MERGE</code> into Iceberg. A post-hook loads the run's rows to Cassandra. == Incremental design and read window == The watermark is the Airflow <code>logical_date</code> interval itself — there is no stored stateful watermark, so retries, <code>catchup</code>, and backfills are reproducible because the read set is a pure function of the interval. * '''Normal day:''' <code>row_update_dt ∈ (data_interval_start, data_interval_end]</code> → reads the run's own day (fresh). * '''1st of month:''' the lower bound reaches back one second (<code>>= data_interval_start − 1s</code>) to also capture the monthly reconcile, which is stamped at the last second of the prior month. * '''Touched-key re-aggregation:''' the model finds <code>(wiki_id, page_id, editor_key)</code> touched in the window, then re-aggregates '''all''' revisions for those keys (not an append), so a changed revision correctly re-derives the page's counts. == Orchestration == One Airflow DAG, [[:gitLab:repos/data-engineering/airflow-dags/-/blob/main/main/dags/wmf_contributors/editor_counts_per_page_daily_dag.py|editor_counts_per_page_daily_dag.py]]: * '''Schedule:''' <code>@daily</code>, <code>max_active_runs=1</code> (the incremental-merge model must run one at a time). * '''Dependency:''' an <code>ExternalTaskSensor</code> on the incremental MWH daily writer (dataset <code>iceberg_wmf_mediawiki_mediawiki_history_incremental_v1</code>) at the same logical date. The 1st-of-month run is transitively gated on the prior month's reconcile through that writer, so no separate monthly job and no manual full refresh are needed. * '''SLA:''' 4 days — the 1st-of-month run is full-refresh-sized and can wait ~3 days on the monthly reconcile; with <code>max_active_runs=1</code> the next runs queue behind it. The job lives in its own DAG (not the shared <code>dbt_daily</code>) so this wait does not block other teams. * '''Load step:''' on success the dbt post-hook writes the run's rows to Cassandra (<code>aqs.linked_artifacts.editor_counts_per_page</code>). The Cassandra data is accessible through a Data Gateway endpoint. See usage below. * A manual <code>--full-refresh</code> rebuilds the whole table and re-pushes all rows. == Usage == See more usage examples in [[Data_Platform/Data_Lake/Edits/Editor_counts_per_page#Examples]]. === Data Gateway === [[mw:Data Gateway|Data Gateway]] is a wrapper on the Cassandra table and allows single-page lookups by <code>(wiki_id, page_id)</code>, backed by [[Cassandra|Cassandra]]. See the [[mw:Data Gateway#Editor Counts|Data Gateway documentation]] for the endpoint contract. This is only to be used by internal APIs and not for direct access by external applications or APIs. <syntaxhighlight lang="shell-session"> $ curl https://data-gateway.discovery.wmnet:30443/public/linked_artifacts/editor_counts_per_page/cawiki/148945 | jq { "rows": [ { "wiki_id": "cawiki", "page_id": 148945, "editor_bot_count": 0, "editor_logged_out_count": 0, "editor_permanent_count": 2, "editor_temporary_count": 0, "editor_total_count": 2, "loaded_at": "2026-06-25 23:29:52.000Z", "page_is_deleted": false } ] } </syntaxhighlight> == Operational notes == * '''1st-of-month run is full-refresh-sized''' — it re-aggregates the entire re-inserted snapshot and re-pushes the whole table to Cassandra. * '''Computes all touched pages''' — <code>row_update_dt</code> is re-stamped on any field change with back-patches. All such pages get re-aggregated irrespective of what changed. == Changes and known problems == {| class="wikitable" |- ! Date from !! Task !! Details |- | 2026-06-25 | {{PhabT|T426316}} | Initial data set. |} [[Category:Data platform]] [[Category:Editors data]] [[Category:Prep Pantry Projects]] oc29nj3g2wi05caw4jyphub87hypfns Talk:Wikidata Query Service/Migration/Rewrite of Label Service 1 460409 2471923 2463773 2026-10-22T01:27:41Z Toolregistry4Memory 61127 /* AUTO LANGUAGE not a feature of QLever? */ new section 2471923 wikitext text/x-wiki == incorrect and inefficient replacement for label service == The replacement for the WDQS label service is incorrect and has serious computational problems for query variables that can be unbound. This is a well-known problem with a well-known solution. To see the problem consider the two following queries; https://qlever.dev/wikidata/1U6g3X with over 92 million solutions and https://qlever.dev/wikidata/8jVfEw with one solution. (QLever is decently fast on the first query, but it is possible to create unexpectedly slow queries with the incorrect replacement.) [[User:Peter F. Patel-Schneider|Peter F. Patel-Schneider]] ([[User talk:Peter F. Patel-Schneider|talk]]) 11:52, 3 July 2026 (UTC) :@[[User:Peter F. Patel-Schneider|Peter F. Patel-Schneider]] I have updated the wikibase:label text to [[Blazegraph Migration: Rewrite of Label and Utility Services and Functions#Label Service Results for an Unbound Variable|describe the effects of requesting a label for an unbound variable]]. [[User:AWesterinen-WMF|AWesterinen-WMF]] ([[User talk:AWesterinen-WMF|talk]]) 02:54, 9 July 2026 (UTC) == burying the lede == Given that the label service is by far the most used WDQS extension to SPARQL 1.1, I would have thought that it deserves its own page and that it should be mentioned first in the enclosing document. Instead it is the last section of a page that also includes a bunch of utility extensions. [[User:Peter F. Patel-Schneider|Peter F. Patel-Schneider]] ([[User talk:Peter F. Patel-Schneider|talk]]) 11:56, 3 July 2026 (UTC) :@[[User:Peter F. Patel-Schneider|Peter F. Patel-Schneider]] That is good feedback. I tried to write the page using an alphabetical approach, but an "importance" one is better. The page is now updated to put the wikibase:label discussion first. [[User:AWesterinen-WMF|AWesterinen-WMF]] ([[User talk:AWesterinen-WMF|talk]]) 01:36, 7 July 2026 (UTC) == non-replacement of label service ? == The platform newsletter [https://www.wikidata.org/w/index.php?title=Wikidata:Wikidata_Platform_team/Newsletter&oldid=2513400181] speaks about this page working up "processing logic for an upcoming tool designed to automatically convert Blazegraph queries into standard SPARQL for the QLever engine". Given that the label service is probably used by upwards of 98% of existing queries (or, at least, of those queries written by and for humans), it would be useful to know more about what is currently envisioned. * Am I right in thinking that a ''fully'' automatic translation service, even for query-links that are supposed to auto-run is unlikely -- or is this the intention, that an old link will automatically lead to an updated query? * I imagine that, at least for queries other than those going to the UI via auto-run links, the most likely option is a button similar to the diamond button on the UI, that would re-write the query, perhaps commenting out superseded lines with a double-hash '## ', preceded by a comment note that the lines had been changed; plus also a comment note where new lines had been added. * At the moment users writing new queries or re-editing old ones now just have to type <code>S-E-R control+space</code>, and auto-complete will add everything they need to handle labels descriptions and aliases, that they never then need to touch again. :Are they now going to be expected to add lines and lines of boilerplate code & then have to go through it and make the right boilerplate adjustments every time they change variable names of what they want output? :Is ''any'' kind of macro going to be offered to replace the current service? If no macro at all is offered, would the team expect that to go down as badly with the community as would be my expectation? (Note: English understatement present in the use of the word "badly"). -- [[User:Jheald|Jheald]] ([[User talk:Jheald|talk]]) 12:16, 6 July 2026 (UTC) :Some further thoughts: I think that partly underlying the above is my uncertainty as to how much query rewriting can be done behind the scenes, on-the-fly, hidden from the user; and how much can not be (or should not be). :On the one hand, it's worth remembering that many users who run (written by humans for humans) queries will neither read nor write SPARQL; if we are lucky at most they can be enticed to click a link then press the big blue button. For such users even an error message when they try to run the query saying "non-standard SPARQL needs to be rewritten; press the magic diamond button to proceed" may be quite a big jump. :Also, I should maybe remember that once query planners and optimisers have got involved, the sequence of what is actually executed may be quite different to what the user may have been thinking when they wrote the query. (With some optimisations being quite radical, eg QLever's rewrites of queries with tests of <code>geof:distance</code>). So quite substantial behind-the-scenes rewriting may be entirely viable. :On the other hand, what is executed should have at least some relation to what is in the edit window. Especially when error reports come back. But taking this further, perhaps it is only the initial parser-check that needs to be particularly closely coupled to what is on screen (eg for it to be able to move the cursor to the error). But perhaps so long as what is written can get past the parser (and perhaps so long as there is an ''option'' for the user to see the transformed query text), then perhaps there ''is'' leeway for quite a degree of behind-the-scenes transformation before passing it to the engine? :This is all circling around the fact that I don't know what I should be expecting to see in the query edit window after the transition to QLever. If I ought to expect to see lines and lines of SPARQL dealing with labels and descriptions, explicitly as part of the query, that would be bad (see note on "bad" above). :If there were a macro that would handle all of it for me, that I could access with just a few key-presses and auto-complete, and that wouldn't fill my query with clutter, that would be good. If there was a button to show me how the macro was being expanded into standard SPARQL that could run anywhere then fine, but I probably wouldn't press it very often. :Already, with WDQS as it is, whenever because I'm using SAMPLE() or GROUP_CONCAT() a label can't just be handled magically by the label service, and instead I need to add it in by hand using <code>rdfs:label</code> I resent it. I resent the extra time it is taking. I resent having to add all the words, and the filter, and having to get all the brackets in the right place. If I have to add another one to deal with a language fall-back, I resent that too. If I was going to have to do this every single time I wrote a query, times every language I wanted to test, times every variable I want in the output, times every time I change a variable name and have to rewrite it all ... well, you do the maths, and consider how my resentment would be multiplied. And that's for me as a native English-language speaker! Imagine if I was specifying a full set of language fall-backs routinely on every single query, with another line of this clutter for every single language and every single variable. Even I will often specify long line of language fall-backs, if I'm sanity-checking a lot of results, and I know that otherwise the alternative is opening the page, then often a wiki page, and then a trip to Google Translate. So yes, even I will sometimes use very long lists of language fall-backs -- and I get them all just with <code>S-E-R control+space</code>. :The other thing is the aesthetics. Clutter, even trivial clutter, makes queries longer to read and harder to focus on the important bits of. This is important, not just for our own queries, but because an important part of WDQS is seeing other people's queries, being able to rapidly grasp how they work, and then constantly adapt or re-adapt the query, or lift a motif to use in another context. SPARQL is good for this because so much can be specified in so few words of query text, with minimal clutter, making examples easier to learn from. :The label service is brilliant because it reduces all of the label and description handling to a single line, so that what is on screen is the actual meat of the query. :The user-efficiency of the label service is one of WDQS's biggest usability improvements over raw SPARQL. Losing it would not be good. Really not good. -- [[User:Jheald|Jheald]] ([[User talk:Jheald|talk]]) 15:31, 6 July 2026 (UTC) ::Thank you, @[[User:Jheald|Jheald]], for raising this. As discussed during the [[d:Event:Blazegraph Migration Office Hours - July 2026|Blazegraph Migration Office Hour yesterday]], the current plan is to provide a tool that allows users to compare the output of an original Blazegraph query with the rewritten query running on QLever. We also clarified that there are no plans for hidden server-side rewrites, as we want the transformation process to remain visible to users. ::The team recognizes the importance of the label service experience, especially for interactive query writing, and the difference between interactive and programmatic use cases. We will continue to gather feedback from users as we develop and iterate on the migration tooling. We will also discuss the relevant aspects with the Query UI maintainers (WMDE), since WDQS and Query UI are separate services.-[[User:Udehb-WMF|Udehb-WMF]] ([[User talk:Udehb-WMF|talk]]) 13:38, 8 July 2026 (UTC) :::{{re|Udehb-WMF}}. Hi Benedict, thanks for getting back to me on this. I hope you don't mind me coming back to it again, because it does seem to me that this issue is absolutely fundamental for community expectations. :::Looking into it all a bit more after the call yesterday, I found [[Wikidata Query Service/Migration/label and mwapi service replacement evaluation|this page]] created in March by [[User:STrug-WMF]], and the proof-of-concept [https://gitlab.wikimedia.org/repos/wikidata-platform/wdqs/wdqs-proxy wdqs-proxy] with phabricator tracking tickets [[:phab:T414453]] and [[:phab:T418595]] that it describes. :::This made me wonder, at the meeting yesterday (https://etherpad.wikimedia.org/p/Blazegraph_Migration_Office_Hours etherpad]) it was stated that the platform team will not put a query-rewriting proxy in front of the server. But it was also stressed that the platform team was distinct from the team (WMDE) that own the online query interface, Query-UI ? :::So this made me wonder, even if platform team will not put a query-rewriting proxy in front of the server, is it possible that the Query-UI team may put a query-rewriting proxy behind the Query-UI ? :::At the meeting yesterday it seemed that one team couldn't entirely speak for the other team's intentions. :::Such a query-rewriting proxy would allow things like :::* the label service, :::* named subqueries, and :::* functions like <code>isSomeValue()</code>,<br /> :::with all their immense significance for query readability and query re-writeability (and general pleasantness of using the system)<br /> :::to be continue to be used in :::* online examples, :::* interactive query writing / re-writing / re-re-writing sessions, and :::* queries sent to <code>https://query.wikidata.org/embed.html#</code> :::As [[User:STrug-WMF]] noted [[Wikidata_Query_Service/Migration/label_and_mwapi_service_replacement_evaluation#A_Generic_Solution|in March]] this achieves the desired uncoupling from any particular vendor, because "the solution is independent of any choice of backend [that] supports SPARQL 1.1". :::By running the query text through a parser locally (as done by the <code>wdqs-proxy</code> proof-of-concept demonstrator), before the standardisation re-write is applied, this means that parse errors returned will continue to track directly with the lines and character-positions of the user text in the query window. :::In the call [[User:GModena (WMF)]] suggested that it was important that "we don’t want to have any hidden functionality from the users", the transformation process needs to remain visible. However, as suggested in my initial stream-of-consciousness, that could be achieved in the UI quite easily by adding a button to show the translated raw SPARQL 1.1 version (then could then be run directly), similarly to how the "diamond" button in the Query UI currently can show the user a rewritten query. :::Run-time errors (as opposed to parse-time errors, if we can hope the local parser has caught those) that come back from QLever probably anyway refer only to the query plan (after optimisation), rather than the detailed query text, so may show little effect of the re-writing stage anyone. Where there are corner cases caused by the re-writing process, those can be publicised, thanks to Andrea's ongoing work -- and in any case the actual query text being run would be available at just the click of a button. :::The one thing I wondered about was whether the system would handle things that QLever can do, but Blazegraph couldn't -- for example some of the additional GeoSPARQL support. Would this be a problem to get the local parser to accept (based on Jena, written in Java?) vs the QLever parser (written in C++). But perhaps if the constraints on what QLever's parser expects are well-abstracted, as a grammar, then it is possible to take just this and slot it into the parser/re-writer attached to the Query UI ? :::So {{ping|Udehb-WMF}}, do you think you could find out if there's any possibility the ''Query UI'' team may be thinking of implementing something like this ? :::In the call, somebody said they thought WMDE was already starting to re-write online examples, to turn them (in my mind, to degenerate them) into raw SPARQL 1.1 and make them less readable. In response I think I said that I thought this would be a big step in the ''wrong'' direction, and I hoped very much it was not true -- which would be particularly true if it also turned out to be unnecessary. :::That kind of thing is why I think it is really important to get an idea of where the platform team and the Query UI team ''together'' hope this is going, and so for users just how big are the changes they should be expecting to have to make (or not), always accepting that what is hoped for and what turns out to be deliverable may not be the same thing. :::Is a query-rewriting proxy behind the Query-UI a live possibility ? -- [[User:Jheald|Jheald]] ([[User talk:Jheald|talk]]) 20:29, 8 July 2026 (UTC) ::::@[[User:Jheald|Jheald]] To clarify and address a small part of your comment above ... It is my work that is updating the samples. [[User:AWesterinen-WMF|AWesterinen-WMF]] ([[User talk:AWesterinen-WMF|talk]]) 03:00, 9 July 2026 (UTC) :::::That's good. From the call I had got the impression that someone had started re-writing the wiki page [[:d:Wikidata:SPARQL query service/queries/examples]] which contains the examples linked to by the Query UI, which IMO would be both premature and unfortunate. However there appear to have been no changes to the text of that page so far. :::::That's as distinct from your own work, making sure that queries ''can'' be performantly and automatically modified, which is essential. [[User:Jheald|Jheald]] ([[User talk:Jheald|talk]]) 23:04, 13 July 2026 (UTC) ::::::Hmm. It looks like WMDE ''do'' have it on their to-do list to update the query examples [[:phab:T421427]], and have done some testing as to how performant QLever-rewritten versions appear to be [[:phab:T430291]] (ie without Blazegraph query hints, and having to deal with QLever possibly optimising joins differently). So these tests might well after all have been what was being referred to in the call. ::::::So far the WMDE tests have just been stripping out addition of labels completely. The tests also appear to have looked only at whether the re-written queries still run, with no assessment as to impacts on readability and reusability. ::::::But I note the comment of [[User:Lucas Werkmeister (WMDE)]] (perhaps the single most prolific author and publisher of WDQS queries to date) [[:phab:T421427#11947779|on May 22]] that: :::::::{{tq|it is my firm belief that the new system has to support the label service. There are countless queries out there using the label service – you can’t break all of those at the same time, nor can you expect everyone to rewrite their queries to a form that is far more tedious to write, more verbose, and less readable than the label service.}} ::::::-- [[User:Jheald|Jheald]] ([[User talk:Jheald|talk]]) 00:14, 14 July 2026 (UTC) ::::Hi @[[User:Jheald|Jheald]], so sorry for the delayed response and once again thank you for the feedback. The Query UI team will have access to the new endpoints this quarter, and we are in regular contact with them with regards migration readiness. We will commit to bubble up your feedback, concerns and proposals in the upcoming sync. We can’t commit to plans or roadmaps for our partner teams, but we will follow up with the community once our planning progresses. -[[User:Udehb-WMF|Udehb-WMF]] ([[User talk:Udehb-WMF|talk]]) 09:37, 15 July 2026 (UTC) == named subqueries == To me named subqueries are the most important addition in WDQS to SPARQL after the label service. As noted in the text, named subqueries can often be important for performance by allowing sub-results to be reused. But for me, their most valuable contribution is something else the text notes: ''clarity''. As noted in the text, they avoid "Complexity, when a sub-query is copied multiple times and the query text “explodes”" Last month, at the [https://etherpad.wikimedia.org/p/Blazegraph_Migration_Office_Hours Migration Office Hours monthly call], I raised query [[:d:Property talk:P10271/map query]] <s><code>tinyurl.com/5tj5e2vk</code></s> which I re-use different variants of a lot, and which I hope to encourage others to use to improve data specifying the UK rail network (eg locating and adding missing junctions). I don't believe I could have written the query without named subqueries. It would have been spaghetti code. In a complex query, as the text says, they can help "cleanly define the query", separating the different stages of the flow of the query, making it easier to understand for both humans and the optimiser alike. Elsewhere, when writing about query hints, the text notes that on QLever almost the only way to get the engine to execute a query in a particular way will be "to use subqueries to force early evaluation of a portion of a query". In general inline subqueries make a query more verbose, harder to read, and more complex to understand. In contrast, named subqueries separate things out, and by making the query more modular makes it easier to understand. That makes the queries easier to write, and - critically - it also makes the queries easier for ''others'' to follow and dissect, understand and adapt. This spread of techniques and query fragments is a vital part of the wikidata knowledge and user ecosystem -- many (most?) queries of any difficulty are not scratch-written, but are adapted from existing queries, and then in turn yet further adapted and re-adapted, either by the same user, or by yet others building on elements of the work. Clarity and transparency is not just a "nice to have", it is a core enabler of helping the community do its work. Wikidata's part of helping "every single human being ... freely share in the sum of all knowledge" is not just about sharing data; it is also about sharing know-how and techniques and queries. Back in October 2021, on Phabricator [https://phabricator.wikimedia.org/T291903#7396030], QLever's Hannah Best wrote :{{tq|QLever already supports something like named subqueries... We don't yet support the "WITH" syntax, but that will be easy to add}}. Would it be ''so'' hard for the team to file a feature request to take her up on that offer, using the Blazegraph syntax? An argument may be made that WMF should not make such a request, as it would not be helping WDQS towards "standard SPARQL, reduc[ing] vendor lock-in, improv[ing] interoperability with other triplestores, and ensur[ing] our codebase remains robust" ([https://www.wikidata.org/w/index.php?title=Wikidata:Wikidata_Platform_team/Newsletter&oldid=2513400181]). I do not believe this carries much water, for several reasons: (1) While there may be some users for whom portability of queries between different engines is very important, I believe that Peter is correct [[:d:Wikidata_talk:SPARQL_query_service/WDQS_backend_update#SPARQL_1.1_and_GeoSPARQL_coverage|in his expectation]] that many users will write to platform, and make full use of whatever QLever-specific optimisations and non-standard extensions they find. Against that background, it's hard to see why QLever providing one more non-standard extension would be that bad. (2) The proposition to users seems to be for them to embrace the certainty of transition pain now, to avoid the possibility of transition pain at some possible time in the future -- and even then the action needed possibly in future would be no more than the action being required for certain now. On top of which users would have to endure obfusticated queries for an extra however long, which it might be possible to avoid. This is not a strong offer. If QLever have said they could let us retain named subqueries, that the feature would be "easy to add", is it not worth at least asking? -- [[User:Jheald|Jheald]] ([[User talk:Jheald|talk]]) 19:13, 6 July 2026 (UTC) :Again, thank you, @[[User:Jheald|Jheald]], for raising this aswell. This was also covered during the [[:d:Event:Blazegraph Migration Office Hours - July 2026|Blazegraph Migration Office Hour yesterday]], when the team confirmed that we will work with the QLever team to explore the practicalities of supporting named subqueries. :As part of this exploration, we will continue to consider scalability and stability as core tenets of our migration. Any QLever-specific features we decide to support will need to align with our broader approach for making capabilities available. At this stage, we cannot confirm the implementation approach, as we need to gather more information about the technical options and trade-offs involved.-[[User:Udehb-WMF|Udehb-WMF]] ([[User talk:Udehb-WMF|talk]]) 13:42, 8 July 2026 (UTC) ::@[[User:Jheald|Jheald]] I definitely have the query that you raised at the June Community meeting in my bucket for rewrite and review. I will keep you posted. [[User:AWesterinen-WMF|AWesterinen-WMF]] ([[User talk:AWesterinen-WMF|talk]]) 03:07, 9 July 2026 (UTC) :::{{re|AWesterinen-WMF}} Thank you very much. Note that when I tried the tinyurl link before the call last Tuesday, it seemed to have some hiccough. Today the tinyurl seems to be working again, but just in case there's again any problem with the tinyurl in future, I've now also put the text of the query up at [[:d:Property talk:P10271/map query]]. [[User:Jheald|Jheald]] ([[User talk:Jheald|talk]]) 23:10, 13 July 2026 (UTC) ::::@[[User:Jheald|Jheald]] Got it! [[User:AWesterinen-WMF|AWesterinen-WMF]] ([[User talk:AWesterinen-WMF|talk]]) 15:05, 14 July 2026 (UTC) == bd:slice and bd:sample == For both of these the hope seems to be that because QLever may be better indexed and more performant (or has cunning optimisations?), then these short-cuts to reduce server time and server load may not be needed. I hope that is the case, and it remains the case in a production environment with QLever handling a production load of diverse queries all competing for time and memory and memory access, and accessing different parts of the knowledge graph. Looking at the slice code (and it may still be necessary to step through a dataset, I imagine even on QLever, if the subsequent analysis is expensive), I don't understand why the <code><nowiki>FILTER(STR(?item) > "http://www.wikidata.org/entity/Q100310806")</nowiki></code> line, rather than just using <code>OFFSET</code> ? Second question: Is there anything that it is particularly quick to ORDER BY and jump to an OFFSET of on QLever, because of the indexes it has? Looking at the sample code, it is very neat for when one does just want a properly random sample, not the whole set. I wonder if the <code>ORDER BY RAND() LIMIT ... </code> idiom is common enough and distinctive enough that QLever may some day recognise it and quietly optimise for it (without materialising the whole set), as it does for <code>FILTER(geof:distance() <= ... </code>. Something for QLever's suggestion list, perhaps? Though perhaps too rare a case for it ever to get to the top of anyone's to-do list. The <code>MD5()</code> code, while perhaps also a classic idiom (?), presumably always has to all be materialised, given that MD5 is a specific deterministic function that unavoidably has to be evaluated over every item if a ranking has been requested. [[User:Jheald|Jheald]] ([[User talk:Jheald|talk]]) 20:18, 6 July 2026 (UTC) :Note also that there are even more files on Commons than people on Wikidata -- to be exact 144,190,985 files according to the Commons front page. I doubt even QLever can materialise the full set of that number of rows. cf [[:c:Commons:SPARQL query service/queries/examples|WCQS query examples]]. -- [[User:Jheald|Jheald]] ([[User talk:Jheald|talk]]) 23:03, 6 July 2026 (UTC) ::@[[User:Jheald|Jheald]] Thanks for the pointer. I have also moved the Common examples into my test bucket. See https://github.com/AndreaWesterinen/Wikidata-Queries/tree/main/extract_sample_queries for the complete set and their stats. [[User:AWesterinen-WMF|AWesterinen-WMF]] ([[User talk:AWesterinen-WMF|talk]]) 03:29, 9 July 2026 (UTC) :@[[User:Jheald|Jheald]] I will try to answer your questions in order: :- Why the FILTER(STR(?item) > "http://www.wikidata.org/entity/Q100310806") line, rather than just using OFFSET? :-- Answer: I believe that keyset pagination changes the question from "Give me rows 100001 through 101000" to "Give me the next 1000 rows where key > last_key_seen". That should be cheaper because the engine can potentially use an index-like access pattern: "FILTER(STR(?subject) > "last-value") ORDER BY STR(?subject) LIMIT 1000". So, instead of retrieving and then skipping an ever-growing number of prior rows, the engine continues from a known boundary. But, I need to test this. In the current document, I am trying to look at the problem from all angles. But, in the final analysis, I will go with what is most performant. :- Is ORDER BY RAND() combined with LIMIT common? :-- Answer: I have not seen it in general use. I would think that it is not efficient and has all the problems of LIMIT/OFFSET when the OFFSET is large. :- Is there anything that it is particularly quick to ORDER BY and jump to an OFFSET of on QLever? :-- Answer: I have put this question to the QLever team. I can update this page/discussion when I get a response. :- You asked about the MD5() code. I am not sure what your question is. Can you clarify this? [[User:AWesterinen-WMF|AWesterinen-WMF]] ([[User talk:AWesterinen-WMF|talk]]) 03:24, 9 July 2026 (UTC) ::{{re|AWesterinen-WMF}} Thanks for all the above. Very interesting re the FILTER(STR(?item) > ...) test; will be interesting to know whether that makes a difference. ::In respect of MD5, no question, just an observation that while an optimiser ''might'' spot ORDER BY RAND() LIMIT as an idiom it can optimise, no such short-cut optimisation would be possible even in theory for the MD5() code because it is asking for a specific function to be evaluated across the solution set -- so in that case the optimiser ''can't'' get away with just calculating a few of them. ::Finally, for info, some further sets that are so big that bd:slice and bd:sample may sometimes get used to allow just a subset to be analysed or processed: "all the items with an en-wiki sitelink", which is quite a large; also "all items with a Commons sitelink" or "all items with a [[:d:Property:P373]]" (currently 6.4 million); also queries analysing references (or trying to filter references to a particular target site). [[User:Jheald|Jheald]] ([[User talk:Jheald|talk]]) 23:28, 13 July 2026 (UTC) == status of label service queries == This morning https://query.wikidata.org/#SELECT%20%3Fitem%20%3Flabel%20%3Fdescription%20%3Falternate%20WHERE%20%7B%0A%20%20%20%3Fitem%20wdt%3AP31%20wd%3AQ515%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%0A%20%20%20%20%20%20%20bd%3AserviceParam%20wikibase%3Alanguage%20%22de%2Cen%22%20.%0A%20%20%20%20%20%20%20%3Fitem%20rdfs%3Alabel%20%3Flabel%20.%0A%20%20%20%20%20%20%20%3Fitem%20schema%3Adescription%20%3Fdescription%20.%0A%20%20%20%20%20%20%20%3Fitem%20skos%3AaltLabel%20%3Falternate%20.%20%7D%0A%7D is timing out. And so is https://query.wikidata.org/#SELECT%20%3Fitem%20%3FitemLabel%20%3FitemDescription%20%3FitemAltLabel%20WHERE%20%7B%0A%20%20%20%3Fitem%20wdt%3AP31%20wd%3AQ515%20.%0A%20%20%20SERVICE%20wikibase%3Alabel%20%7B%20%0A%20%20%20%20%20%20%20bd%3AserviceParam%20wikibase%3Alanguage%20%22%5BAUTO_LANGUAGE%5D%2Cde%2Cen%22.%20%7D%0A%7D%0A It would also be useful to point to the documentation for the label service. [[User:Peter F. Patel-Schneider|Peter F. Patel-Schneider]] ([[User talk:Peter F. Patel-Schneider|talk]]) 12:47, 4 August 2026 (UTC) :Hi @[[User:Peter F. Patel-Schneider|Peter F. Patel-Schneider]], Thanks for reporting this. The timeout you are seeing appears to be related to query performance rather than feedback on the rewrite documentation itself. We will need to investigate the specific queries to understand what is causing the issue. Please file a [[phab:project/board/8467/|Phabricator ticket]] with the affected queries and any additional context that may help with the investigation so we can track the issue as part of the rest of the team's work. [[User:BTracy-WMF|BTracy-WMF]] ([[User talk:BTracy-WMF|talk]]) 13:13, 6 August 2026 (UTC) ::See https://phabricator.wikimedia.org/T434202 [[User:Peter F. Patel-Schneider|Peter F. Patel-Schneider]] ([[User talk:Peter F. Patel-Schneider|talk]]) 14:09, 6 August 2026 (UTC) :::There has been no action on this ticket, and the queries are still timing out. [[User:Peter F. Patel-Schneider|Peter F. Patel-Schneider]] ([[User talk:Peter F. Patel-Schneider|talk]]) 12:51, 7 September 2026 (UTC) ::::@[[User:Peter F. Patel-Schneider|Peter F. Patel-Schneider]] We concluded our investigation on the problem you raised, sorry it took us so long to answer. The errors appear to be transient, and depend on the load on Blazegraph at the time those queries are submitted. FWIW, our test came out positive, and no problem was encountered. Therefore, we won't be troubleshooting these queries specifically. [[User:Sannita (WMF)|Sannita (WMF)]] ([[User talk:Sannita (WMF)|talk]]) 15:18, 5 October 2026 (UTC) :::::OK [[User:Peter F. Patel-Schneider|Peter F. Patel-Schneider]] ([[User talk:Peter F. Patel-Schneider|talk]]) 16:14, 5 October 2026 (UTC) == AUTO_LANGUAGE not a feature of QLever? == My apologies if this was answered elsewhere, but it says in the article that "<code>[AUTO_LANGUAGE]</code> only has meaning inside the [https://query.wikidata.org WDQS UI]" which I understand as "QLever can not interpret that variable". A simple test only involving <code>[AUTO_LANGUAGE]</code> as label (and with my browser set to English) on https://qlever.dev seems to confirm this. But if that's the case, shouldn't it be removed from [[Wikidata Query Service/Migration/Rewrite of Label Service#Returning to the first example|Returning to the first example]]? [[User:Toolregistry4Memory|Toolregistry4Memory]] ([[User talk:Toolregistry4Memory|talk]]) 01:27, 22 October 2026 (UTC) 3ow3hyi4ctv942i1njcrlymfnw1gbrz Revision Feature Counts 0 460627 2471900 2465072 2026-10-21T21:59:53Z AKhatun (WMF) 50461 Add user docs 2471900 wikitext text/x-wiki What are Revision features? The term '''features''' <ref>[[ phab:T351225#11682262]]</ref> refers to artifacts of a revision: a reference, a wikilink, an image, an infobox, and so on. '''Revision feature counts''' are counts of these features in a specific revision: the count of references, wikilinks, images, infoboxes, and so on. The counts come from the rendered HTML of the revision, not from the wikitext. The name says ''revision'' because a count always describes one revision. What is this application? The revision feature counts application does a few things: * Provides a lambda application through [[Linked Artifacts Cache|Linked Artifacts Cache (LAC)]] that users can call to get the counts of various features in a revision. * On every new edit, warms the LAC cache and creates a kafka event which is eventually saved in [[Data Platform/Data Lake|Data Lake]]. {| class="wikitable" |- ! Item !! Value |- | Owner || [[mw:Data_Platform_Engineering/Data_Engineering|Data Engineering]] (PoC: [[User:AKhatun_(WMF)|Aisha Khatun]], [[User:Ottomata|Andrew Otto]]) |- | Main task || {{PhabT|T432604}} |- | Service code || [[gitlab:repos/data-engineering/linked-artifact-lambdas|repos/data-engineering/linked-artifact-lambdas]] |- | Image || [https://docker-registry.wikimedia.org/repos/data-engineering/linked-artifact-lambdas/python/tags repos/data-engineering/linked-artifact-lambdas/python] |- | Deployment || [https://gerrit.wikimedia.org/r/plugins/gitiles/operations/deployment-charts/+/refs/heads/master/helmfile.d/services/lac-lambdas/revision-feature-counts helmfile.d/services/lac-lambdas/revision-feature-counts] |- | Dashboard || [https://grafana.wikimedia.org/d/revision-feature-counts/revision-feature-counts RevisionFeatureCounts] |- | Readiness review || [[SCROLL/RevisionFeatureCounts]] |- | Design Doc || [https://docs.google.com/document/d/1tTRH3lGaHWFJIgdTx4W4dsV7b42ejF2gnpXG001Qmj0/edit?tab=t.vjqnf2u0buh0#heading=h.kuytgzdajcm4 Prep Pantry: Intake for Attribution API Signals] |} = User documentation = == Schema == The response payload of the lambda contains information about the page, the revision, and the id and time of when the html of the page was rendered. The same revision rendered at different times may show slightly different counts due to changes in templates used in the page. <code>revision.rendering.feature.counts</code> contains the counts of each available feature. This example shows a few features. The full list of features is provided in [[#Article features]]. <syntaxhighlight lang="json"> { "wiki_id": "enwiki", "page": { "namespace_id": 0, "page_id": 1576250, "page_title": "Christie Cleek" }, "revision": { "rev_dt": "2026-08-09T03:40:11Z", "rev_id": 1368453569, "rev_sha1": "5vejfybry6yr7x0xfv02tn5s1ze3d4f", "rendering": { "render_id": "83c65a97-bc3e-11f1-9680-b5b59ebb64f0", "render_dt": "2026-09-29T19:02:50Z", "content": { "content_length": 43807, "content_type": "text/html; charset=utf-8; profile=\"https://www.mediawiki.org/wiki/Specs/HTML/2.8.0\"", "content_language": "en", "content_uri": "https://en.wikipedia.org/w/rest.php/v1/revision/1368453569/html" }, "features": { "software_info": { "name": "mwparserfromhtml", "version": "2.1.2" }, "counts": { "reference": 42, "wikilink": 310, "media_img": 7 } } } } } </syntaxhighlight> === Article features === <code>counts</code> holds one entry for each of the 21 features exposed by [https://pypi.org/project/mwparserfromhtml/ <code>mwparserfromhtml</code>], the library we use to extract and count the features. Every count is present, or the whole call fails. A count is never <code>null</code>. {| class="wikitable" |- ! Article feature name !! Description |- | <code>reference</code> || Referenced sources used within an article, generally listed in a section at the end of the article. |- | <code>citation</code> || Inline instance of a given reference, e.g. [1]. A reference may be associated with multiple citations. |- | <code>external_link</code> || Links to external websites. |- | <code>wikilink</code> || Links to other wiki pages on the Wikimedia projects ([[:en:Help:Link|more info]]). |- | <code>category</code> || Wiki page categories ([[:en:Help:Category|more info]]). |- | <code>section</code> || Content between subsequent headings. An article has a number of sections equal to the number of headings + 1, for the lead ([[:en:Help:Section|more info]]). |- | <code>heading</code> || <nowiki><h#></nowiki> tags. Every section has a heading except the lead section ([[:en:Wikipedia:Manual_of_Style/Layout#Headings_and_sections|more info]]). |- | <code>template</code> || Template transclusions, counted by the <code>about</code> id Parsoid gives each one. The same template used twice counts twice. |- | <code>text_format</code> || Text formatting, e.g. bold, blockquote, etc. |- | <code>comment</code> || Comments within rendered content (not shown to readers). |- | <code>list</code> || Bulleted, numbered and definition lists ([[:mw:Help:Lists|more info]]). |- | <code>math</code> || Rendered math formulae ([[:mw:Extension:Math|more info]]). |- | <code>infobox</code> || The summary table at the start of an article ([[:en:Help:Infobox|more info]]). |- | <code>wikitable</code> || Table with the wikitable class applied ([[:en:Help:Table|more info]]). |- | <code>navbox</code> || Boxes that contain links to related articles ([[:en:Wikipedia:Navigation_template|more info]]). |- | <code>messagebox</code> || Informational messages in the form of a table contained within articles ([[:en:Wikipedia:Manual_of_Style/Article_message_boxes|more info]]). |- | <code>inline_cleanup</code> || Clean-up tags like [citation needed] that appear within the text of the article, as opposed to at the top of sections ([[:en:Category:Inline_cleanup_templates|more info]]). |- | <code>notes</code> || Informational boxes like hatnotes, which help a reader find out whether they are on the correct page ([[:en:Wikipedia:Hatnote|more info]]). |- | <code>media_img</code> || <nowiki><img></nowiki> tags ([[:en:Wikipedia:Images|more info]]). |- | <code>media_audio</code> || <nowiki><audio></nowiki> tags ([[:en:Wikipedia:Audio|more info]]). |- | <code>media_video</code> || <nowiki><video></nowiki> tags ([[:en:Wikipedia:Videos|more info]]). |} == Access == * '''LAC''': The revision feature counts can be accessed through LAC endpoint: <code><nowiki>https://linked-artifacts.discovery.wmnet:30443/revisions/v1/revision_feature_counts/{wiki_id}/{page_id}/{revision_id}</nowiki></code>. LAC stores the response in cache. On cache-hit, the response is sent back immediately. On cache-miss, the lambda is invoked, features computed, and response returned. We can ask for the latest revision stored in LAC by only passing the <code>page_id</code>. <code><nowiki>https://linked-artifacts.discovery.wmnet:30443/revisions/v1/revision_feature_counts/{wiki_id}/{page_id}</nowiki></code>. This access method is available to internal clients only. Currently, [[mw:Attribution_API|Attribution_API]] exposes citation and reference counts externally. To expose other feature counts externally, please contact MediaWiki Interfaces and/or Data Engineering teams. <syntaxhighlight lang="bash"> # Example usage from deploy host # in staging $ curl https://linked-artifacts.k8s-staging.discovery.wmnet:30443/revisions/v1/revision_feature_counts/enwiki/11022716/729413703 | jq # in production $ curl https://linked-artifacts.discovery.wmnet:30443/revisions/v1/revision_feature_counts/enwiki/11022716/729413703 | jq </syntaxhighlight> * '''Stream''': Every new revision triggers the lambda and creates a kafka event in <code>stream_name</code>. The feature counts can be accessed through this stream. * '''Data Lake''': <code>table_name</code>, the table resulting from the event stream can be used for downstream batch computations. This can be used in dbt models, Juputer notebooks, Superset dashboards, or directly queried from [[Data Platform/Systems/Presto|Presto]] or [[Data Platform/Systems/Spark|Spark]] for ad-hoc analysis. == Caveats == * '''Old revisions''': The lambda fetches HTML from MW API and computes the feature counts on top of that. HTML fetches may be slow depending on whether the HTML was fetched from parser cache or rendered instantly. LAC cache hits prevent all this. For latest revisions, we trigger a JobQueue job that warms LAC. So usually latest revisions should always be in LAC cache and responses should be fast. However, if an old revision is queried, more often than not, it will not be in LAC cache. A lambda compute may be triggered and the response will take longer than usual. The caller has to wait for the response, else the response will not be computed and stored in LAC cache for later fetches. * '''LAC cache''': LAC cache stores the latest revisions of a page. If an older revision is queried, it will compute and store it too. But, if a newer revision is queried, it will discard all old revisions and store on ly the new revision. This has implications for clients who work with flagged revisions enabled wikis/pages and need stable revisions, which can be older than latest revisions. See example in {{PhabT|T435557}}. * '''HTML render''': The same revision can have different feature counts if the rendered HTML is different (e.g. due to changes in templates). <code>render_id</code> and <code>render_dt</code> can help distinguish this. = Technical documentation = == Design == === DomainEvent === === JobQueue === === Linked Artifact Cache (LAC) === === Lambda === === Events === === Backfill / Cache warming === == Usage == Internal usage method if applicable. See more in User Doc#Usage == Changes and known problems == {| class="wikitable" |- ! Date from !! Task !! Details |- | 2026-09-?? | {{PhabT|T432604}} | Initial data set. |} == Technical Owners == DE: specific names = Operational Notes = == MW Domain Events == == JobQueue == == LAC == == Lambda == * MW blast radius * Estimation of traffic: normal and backfill * Mertic and alerts links; dashbaords === SLOs === * Metrics and Dashboards [[Category:Data platform]] [[Category:Data products]] [[Category:Prep Pantry Projects]] = References = {{reflist}} h5pnpt80pqdm87jwrrfp1hu4o5i8ig9 2471929 2471900 2026-10-22T02:27:26Z AKhatun (WMF) 50461 Add doc details 2471929 wikitext text/x-wiki What are Revision features? The term '''features''' <ref>[[ phab:T351225#11682262]]</ref> refers to artifacts of a revision: a reference, a wikilink, an image, an infobox, and so on. '''Revision feature counts''' are counts of these features of a specific revision: the count of references, wikilinks, images, infoboxes, and so on. The counts come from the rendered HTML of the revision. What is this application? The revision feature counts application does a few things: * Provides a lambda application through [[Linked Artifacts Cache|Linked Artifacts Cache (LAC)]] that users can call to get the counts of various features in a revision. * On every new edit, warms the LAC cache and creates a kafka event which is eventually saved in [[Data Platform/Data Lake|Data Lake]]. {| class="wikitable" |- ! Item !! Value |- | Owner || [[mw:Data_Platform_Engineering/Data_Engineering|Data Engineering]] (PoC: [[User:AKhatun_(WMF)|Aisha Khatun]], [[User:Ottomata|Andrew Otto]]) |- | Main task || {{PhabT|T432604}} |- | Service code || [[gitlab:repos/data-engineering/linked-artifact-lambdas/-/tree/main/python/revision_feature_counts|repos/data-engineering/linked-artifact-lambdas/python/revision_feature_counts]] |- | Image || [https://docker-registry.wikimedia.org/repos/data-engineering/linked-artifact-lambdas/python/tags repos/data-engineering/linked-artifact-lambdas/python] |- | Deployment || [https://gerrit.wikimedia.org/r/plugins/gitiles/operations/deployment-charts/+/refs/heads/master/helmfile.d/services/lac-lambdas/revision-feature-counts helmfile.d/services/lac-lambdas/revision-feature-counts] |- | Dashboard || [https://grafana.wikimedia.org/d/revision-feature-counts/revision-feature-counts RevisionFeatureCounts] |- | Alerts || TBD after merge |- | Design Doc || [https://docs.google.com/document/d/1tTRH3lGaHWFJIgdTx4W4dsV7b42ejF2gnpXG001Qmj0/edit?tab=t.vjqnf2u0buh0#heading=h.kuytgzdajcm4 Prep Pantry: Intake for Attribution API Signals] |- | SCROLL review || [[SCROLL/RevisionFeatureCounts]] |} = User documentation = == Schema == The response payload of the lambda contains information about the page, the revision, and the id and time of when the html of the page was rendered. The same revision rendered at different times may show slightly different counts due to changes in templates used in the page. <code>revision.rendering.feature.counts</code> contains the counts of each available feature. This example shows a few features. The full list of features is provided in [[#Article features]]. <syntaxhighlight lang="json"> { "wiki_id": "enwiki", "page": { "namespace_id": 0, "page_id": 1576250, "page_title": "Christie Cleek" }, "revision": { "rev_dt": "2026-08-09T03:40:11Z", "rev_id": 1368453569, "rev_sha1": "5vejfybry6yr7x0xfv02tn5s1ze3d4f", "rendering": { "render_id": "83c65a97-bc3e-11f1-9680-b5b59ebb64f0", "render_dt": "2026-09-29T19:02:50Z", "content": { "content_length": 43807, "content_type": "text/html; charset=utf-8; profile=\"https://www.mediawiki.org/wiki/Specs/HTML/2.8.0\"", "content_language": "en", "content_uri": "https://en.wikipedia.org/w/rest.php/v1/revision/1368453569/html" }, "features": { "software_info": { "name": "mwparserfromhtml", "version": "2.1.2" }, "counts": { "reference": 42, "wikilink": 310, "media_img": 7 } } } } } </syntaxhighlight> === Article features === <code>counts</code> holds one entry for each of the 21 features exposed by [https://pypi.org/project/mwparserfromhtml/ <code>mwparserfromhtml</code>], the library we use to extract and count the features. Every count is present, or the whole call fails. A count is never <code>null</code>. {| class="wikitable" |- ! Article feature name !! Description |- | <code>reference</code> || Referenced sources used within an article, generally listed in a section at the end of the article. |- | <code>citation</code> || Inline instance of a given reference, e.g. [1]. A reference may be associated with multiple citations. |- | <code>external_link</code> || Links to external websites. |- | <code>wikilink</code> || Links to other wiki pages on the Wikimedia projects ([[:en:Help:Link|more info]]). |- | <code>category</code> || Wiki page categories ([[:en:Help:Category|more info]]). |- | <code>section</code> || Content between subsequent headings. An article has a number of sections equal to the number of headings + 1, for the lead ([[:en:Help:Section|more info]]). |- | <code>heading</code> || <nowiki><h#></nowiki> tags. Every section has a heading except the lead section ([[:en:Wikipedia:Manual_of_Style/Layout#Headings_and_sections|more info]]). |- | <code>template</code> || Template transclusions, counted by the <code>about</code> id Parsoid gives each one. The same template used twice counts twice. |- | <code>text_format</code> || Text formatting, e.g. bold, blockquote, etc. |- | <code>comment</code> || Comments within rendered content (not shown to readers). |- | <code>list</code> || Bulleted, numbered and definition lists ([[:mw:Help:Lists|more info]]). |- | <code>math</code> || Rendered math formulae ([[:mw:Extension:Math|more info]]). |- | <code>infobox</code> || The summary table at the start of an article ([[:en:Help:Infobox|more info]]). |- | <code>wikitable</code> || Table with the wikitable class applied ([[:en:Help:Table|more info]]). |- | <code>navbox</code> || Boxes that contain links to related articles ([[:en:Wikipedia:Navigation_template|more info]]). |- | <code>messagebox</code> || Informational messages in the form of a table contained within articles ([[:en:Wikipedia:Manual_of_Style/Article_message_boxes|more info]]). |- | <code>inline_cleanup</code> || Clean-up tags like [citation needed] that appear within the text of the article, as opposed to at the top of sections ([[:en:Category:Inline_cleanup_templates|more info]]). |- | <code>notes</code> || Informational boxes like hatnotes, which help a reader find out whether they are on the correct page ([[:en:Wikipedia:Hatnote|more info]]). |- | <code>media_img</code> || <nowiki><img></nowiki> tags ([[:en:Wikipedia:Images|more info]]). |- | <code>media_audio</code> || <nowiki><audio></nowiki> tags ([[:en:Wikipedia:Audio|more info]]). |- | <code>media_video</code> || <nowiki><video></nowiki> tags ([[:en:Wikipedia:Videos|more info]]). |} == Access == * '''LAC''': The revision feature counts can be accessed through LAC endpoint: <code><nowiki>https://linked-artifacts.discovery.wmnet:30443/revisions/v1/revision_feature_counts/{wiki_id}/{page_id}/{revision_id}</nowiki></code>. LAC stores the response in cache. On cache-hit, the response is sent back immediately. On cache-miss, the lambda is invoked, features computed, and response returned. We can ask for the latest revision stored in LAC by only passing the <code>page_id</code>. <code><nowiki>https://linked-artifacts.discovery.wmnet:30443/revisions/v1/revision_feature_counts/{wiki_id}/{page_id}</nowiki></code>. This access method is available to internal clients only. Currently, [[mw:Attribution_API|Attribution_API]] exposes citation and reference counts externally. To expose other feature counts externally, please contact MediaWiki Interfaces and/or Data Engineering teams. <syntaxhighlight lang="bash"> # Example usage from deploy host # in staging $ curl https://linked-artifacts.k8s-staging.discovery.wmnet:30443/revisions/v1/revision_feature_counts/enwiki/11022716/729413703 | jq # in production $ curl https://linked-artifacts.discovery.wmnet:30443/revisions/v1/revision_feature_counts/enwiki/11022716/729413703 | jq </syntaxhighlight> * '''Stream''': Every new revision triggers the lambda and creates a kafka event in <code>stream_name</code>. The feature counts can be accessed through this stream. * '''Data Lake''': <code>table_name</code>, the table resulting from the event stream can be used for downstream batch computations. This can be used in dbt models, Juputer notebooks, Superset dashboards, or directly queried from [[Data Platform/Systems/Presto|Presto]] or [[Data Platform/Systems/Spark|Spark]] for ad-hoc analysis. == Caveats == * '''Old revisions''': The lambda fetches HTML from MW API and computes the feature counts on top of that. HTML fetches may be slow depending on whether the HTML was fetched from parser cache or rendered instantly. LAC cache hits prevent all this. For latest revisions, we trigger a JobQueue job that warms LAC. So usually latest revisions should always be in LAC cache and responses should be fast. However, if an old revision is queried, more often than not, it will not be in LAC cache. A lambda compute may be triggered and the response will take longer than usual. The caller has to wait for the response, else the response will not be computed and stored in LAC cache for later fetches. * '''LAC cache''': LAC cache stores the latest revisions of a page. If an older revision is queried, it will compute and store it too. But, if a newer revision is queried, it will discard all old revisions and store on ly the new revision. This has implications for clients who work with flagged revisions enabled wikis/pages and need stable revisions, which can be older than latest revisions. See example in {{PhabT|T435557}}. * '''HTML render''': The same revision can have different feature counts if the rendered HTML is different (e.g. due to changes in templates). <code>render_id</code> and <code>render_dt</code> can help distinguish this. = Technical documentation = == Design == [[File:Revision feature counts architecture.png|772x772px]] The design consists of a few components that talk to each other and produce results in different places. === On new edits === # A user edits a page; MediaWiki emits <code>PageLatestRevisionChanged</code> DomainEvent. # <code>LinkedArtifactPrefetchJob</code> is triggered and job is created in [[MediaWiki JobQueue|JobQueue]] for revision feature counts. # JobQueue job calls LAC for the new revision. # For new revisions, this is usually a cache miss. So [[Linked Artifacts Cache|LAC]] calls revision_feature_counts lambda. # Lambda calls [[mw:API:REST API/Reference|MW API]] for the HTML of that revision. Then it computes and returns the feature counts. # LAC gets the feature counts and gives response back to the Job. # The feature counts response is received by JobQueue job and a <code>RevisionLinkedArtifactPrefetched</code> domain event is triggered. # A listener, <code>RevisionHtmlFeatureCountsChangeIngress</code>, listens for this DomainEvent. Once received, it sends a <code>mediawiki.revision_html_feature_counts_change.v1</code> event to Kafka. # The Kafka event goes through schema verification and lands the events (hourly) into DataLake table <code>event.mediawiki_revision_html_feature_counts_change_v1</code>. This table only saves the last 90 days of data. # A sanitization job removes any sensitive information (none in this case) and saves data indefinitely in <code>event_sanitized.mediawiki_revision_html_feature_counts_change_v1</code>. === On API calls === Internal APIs (e.g. Attribution API) can call LAC directly with the discovery endpoint. # Setting no cache control, LAC replies with feature counts if in cache, or computes it and then replies. # Calling with no-cache forces new computation in lambda # Calling with only-if-cached, LAC replies with feature counts only is already in cached. Use this method if latency is a big concern. Handle cache misses separately by running a async job with longer timeout. == Lambda == The [[gitlab:repos/data-engineering/linked-artifact-lambdas/-/tree/main/python/revision_feature_counts|revision_feature_counts]] is a small gRPC service. It implements the one method every LAC lambda implements, <code>lambda.LambdaService/GetRevisionArtifact</code>, which takes <code>{wiki_id, page_id, revision_id}</code> and returns the artifact bytes. For each call it: # looks up the wiki in a map read from the Sitematrix API, to get the domain # fetches the HTML of the revision from the MediaWiki REST API, through the service mesh # checks that the revision really belongs to the page the caller named # counts the 21 features with [[gitlab:repos/research/html-dumps|mwparserfromhtml]] # returns the artifact as compact JSON. ===Timeout=== The service stops as soon as the caller's deadline passes, because work after that is thrown away. It holds no state between calls apart from the wiki map. The timeout is therefore the minimum of Client, LAC, and lambda default. ===Wiki Map=== The service calls SiteMatrix once a day to fetch a fresh set of wiki_id to domain map. This ensures any new wiki added is recognized by our lambda. === Configuration === Every setting is an environment variable with the prefix <code>RFC_</code>, in <code>values.yaml</code>. <code>jsonargparse</code> reads the values as YAML, and a value of the wrong type stops the service at startup. === Retries === To fetch the HTML from MW API, the lambda does not retry on its own. The mesh listener <code>mw-api-int-async-ro</code> already carries <code>retry_on: 5xx, num_retries: 1</code> inside its own end-to-end limit. A retry in the lambda would be a retry on top of that one, and <code>RFC_HTML_TIMEOUT</code> applies to each attempt rather than to the call, so a retry here can hold a worker for longer than expected. The code still has retry mechanism, but it is set to <code>0</code>. We can set retry to a non-zero value but we need to either remove envoy retries (by choosing another mesh listener for mw-api), or manage timeout such that it applies across all retries (in lambda and envoy combined). === Concurrency=== == Backfill == A MediaWiki job warms the cache after each edit, so a reader normally gets a hit. Revisions from before the service existed need a backfill. TBD: {{PhabT|T436718}} == Usage == Internal usage method if applicable. See more in User Doc#Usage == Changes and known problems == {| class="wikitable" |- ! Date from !! Task !! Details |- | 2026-09-?? | {{PhabT|T432604}} | Initial data set. |} == Technical Owners == DE: specific names = Operational Notes = == MW Domain Events == == JobQueue == == LAC == == Lambda == * MW blast radius * Estimation of traffic: normal and backfill * Mertic and alerts links; dashbaords === SLOs === * Metrics and Dashboards = See Also = * [[Prep_Pantry/Architectures]]: this would be the entry point for anyone looking to implement similar architecture. * [https://docs.google.com/document/d/1tTRH3lGaHWFJIgdTx4W4dsV7b42ejF2gnpXG001Qmj0/edit?tab=t.vjqnf2u0buh0#heading=h.kuytgzdajcm4 Prep Pantry: Intake for Attribution API Signals]: Alternate designs and details. * [[User:Ottomata/Article_Feature_Counts_Data_Product]]: Other possible uses of feature counts discussed during product design. * https://wiki-topic.toolforge.org/html-parsing: Examples of feature counts computed by [[gitlab:repos/research/html-dumps|mwparserfromhtml]] in a UI. = References = {{reflist}} [[Category:Data platform]] [[Category:Data products]] [[Category:Prep Pantry Projects]] huy1tz1l2895xi7v42q56knoaroj0zi Help:Toolforge/My first Python tool 12 460669 2471942 2464385 2026-10-22T05:05:57Z SSapaty (WMF) 28955 /* How to create a basic Python Flask webservice */ Change Push-to-deploy to Components API 2471942 wikitext text/x-wiki = My first Python tool = == Overview == Python webservices are used by many existing tools on Toolforge. [[w:Python (programming language)|Python]] is a general-purpose programming language commonly used for web development, automation, data processing, and many other tasks. This tutorial is designed to get a sample Python application deployed to Toolforge using [[Help:Toolforge/Deploy your tool|Push-to-Deploy]] as quickly as possible. The application uses [[w:Flask (web framework)|Flask]] and runs on Toolforge using the Build Service. Then we'll use the database credentials provided by Toolforge to extract the list of available databases from the Wiki Replicas. The guide will teach you how to: * Create a new tool * Run a Python Flask webservice on [[w:Kubernetes|Kubernetes]] * Deploy the application using [[Help:Toolforge/Deploy your tool|Push-to-Deploy]] * Connect to the Wiki Replicas from Python * Run a query and extract information == Getting started == === Prerequisites === ==== Skills ==== * Basic knowledge of [[w:Python (programming language)|Python]] * Basic knowledge of [[w:Secure Shell|SSH]] * Basic knowledge of the [[w:Unix shell|Unix command line]] * Basic knowledge of [[w:Git|Git]] ==== Accounts ==== * [[Help:Toolforge/Quickstart|A Toolforge account]] == Step-by-step guide == === Step 1: Create a new tool account === # Follow the [[Help:Toolforge/Quickstart|Toolforge quickstart]] guide to create a Toolforge tool and SSH into Toolforge. #* For the examples in this tutorial, <code>sample-python-ptd-app</code> is used to indicate places where your unique tool name is used in another command. # Make sure to create a Git repository for the tool. You can get one like this: ## Log into the [https://toolsadmin.wikimedia.org/ Toolforge admin page]. ## Select your tool. ## On the left side panel, under <code>Git repositories</code>, click <code>create repository</code>. ## Copy the URL in the <code>Clone</code> section. ### There is a private URL that we will use to clone the repository locally, starting with <code>git</code>: <code>git@gitlab.wikimedia.org/toolforge-repos/sample-python-ptd-app.git</code> ### There is also a public URL that Toolforge will use to build the application, starting with <code>https</code>: <code>https://gitlab.wikimedia.org/toolforge-repos/sample-python-ptd-app.git</code> === Step 2: Create a basic Python Flask webservice === What is Flask? [[w:Flask (web framework)|Flask]] is a lightweight Python web framework that can be used to create web applications and APIs. ==== How to create a basic Python Flask webservice ==== '''Clone your tool Git repository''' You will have to clone the tool repository to be able to add code to it. On your local computer, with Git installed, run: {{Codesample|lang=shell-session|scheme=light|code= laptop:~$ git clone git@gitlab.wikimedia.org:toolforge-repos/sample-python-ptd-app.git laptop:~$ cd sample-python-ptd-app }} That will create a folder called <code>sample-python-ptd-app</code>. We are going to put the code in that folder. '''Add the Python dependencies''' {{Note|Use a file named <code>requirements.txt</code> to keep track of the Python dependencies required by the application.}} Create <code>requirements.txt</code>: {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ cat > requirements.txt << EOF Flask gunicorn PyMySQL EOF }} '''Create a "Hello World!" Python application''' Create a file named <code>app.py</code>: {{Codesample|lang=python|scheme=light|name=app.py|code= from flask import Flask app = Flask(__name__) @app.route("/") def index(): return "<p>Hello World!</p>" }} {{Note|Code on Toolforge must always be licensed under an [[w:Open-source license|Open Source Initiative (OSI) approved license]]. See [[Help:Toolforge/Right to fork policy|Right to fork policy]] for more information on this Toolforge policy.}} '''Create the Procfile''' The <code>Procfile</code> defines the command that the Build Service should use to start the web application. Create it with: {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ cat > Procfile << EOF web: gunicorn --bind 0.0.0.0:\$PORT app:app EOF }} The <code>web</code> entry defines the command used to start the Flask application. Gunicorn runs the application and listens on the port provided by Toolforge through the <code>PORT</code> environment variable. '''Create the Toolforge configuration file''' Create <code>toolforge.yaml</code>: {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ cat > toolforge.yaml << EOF # yaml-language-server: \$schema=https://gitlab.wikimedia.org/repos/cloud/toolforge/components-api/-/raw/main/openapi/tool-config-schema.json source_url: https://gitlab.wikimedia.org/toolforge-repos/sample-python-ptd-app/-/raw/main/toolforge.yaml?ref_type=heads components: webservice: build: repository: https://gitlab.wikimedia.org/toolforge-repos/sample-python-ptd-app ref: main run: command: web publish: / port: 8000 EOF }} If you don't want your webservice to be reachable from the internet, remove the <code>publish</code> setting. If you are deploying a process without a port, you can remove <code>port</code> too. See [[Help:Toolforge/Deploy your tool|Deploy your tool]] for more information. '''Commit your changes and push''' {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ git add . laptop:~/sample-python-ptd-app$ git commit -m "First commit" laptop:~/sample-python-ptd-app$ git push origin main }} '''Initialize the tool configuration''' Now SSH to <code>login.toolforge.org</code> and become your tool: {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ ssh login.toolforge.org user@tools-sgebastion-XX:~$ become sample-python-ptd-app }} Create the tool configuration using the public copy of <code>toolforge.yaml</code>: {{Codesample|lang=shell-session|scheme=light|code= tools.sample-python-ptd-app@tools-sgebastion-XX:~$ curl 'https://gitlab.wikimedia.org/toolforge-repos/sample-python-ptd-app/-/raw/main/toolforge.yaml?ref_type=heads' {{!}} toolforge components config create }} You should see a message indicating that the configuration was updated successfully. {{Note|Push-to-Deploy is currently a beta feature of Toolforge, so the command may also display a warning indicating that you are using a beta feature.}} '''Create the first deployment''' Create a deployment: {{Codesample|lang=shell-session|scheme=light|code= tools.sample-python-ptd-app@tools-sgebastion-XX:~$ toolforge components deployment create }} Components API will build the application from your Git repository and deploy the webservice. {{Note|The repository in <code>toolforge.yaml</code> must be publicly accessible so that Toolforge can clone and build it.}} '''Wait for the deployment to finish''' Check the deployment status: {{Codesample|lang=shell-session|scheme=light|code= tools.sample-python-ptd-app@tools-sgebastion-XX:~$ toolforge components deployment show }} Wait for the deployment status to be <code>ok(Succeeded)</code>. Once the deployment has finished, navigate to: {{Codesample|lang=shell-session|scheme=light|code= https://sample-python-ptd-app.toolforge.org }} You should see: <syntaxhighlight lang="text"> Hello World! </syntaxhighlight> It might take a couple of minutes for the application to become reachable. '''Automate deployment on push''' You can follow [[Help:Toolforge/Deploy your tool#Automatically deploy on git push|this guide]] to configure and automate deployment of your tool whenever you push or merge changes to the main branch. ==== Connecting to the replicas ==== Toolforge provides database credentials to your application through environment variables. We will use these credentials to connect to the special <code>meta_p</code> database and retrieve the names of the available Wiki Replica databases. First, update <code>requirements.txt</code> if <code>PyMySQL</code> is not already present: <syntaxhighlight lang="text"> Flask gunicorn PyMySQL </syntaxhighlight> Now update <code>app.py</code>: {{Collapse top|Sample flask code}} {{Codesample|lang=python|scheme=light|name=app.py|code= from flask import Flask import os import pymysql app = Flask(__name__) def get_db_connection(): return pymysql.connect( host="meta.web.db.svc.wikimedia.cloud", user=os.environ["TOOL_REPLICA_USER"], password=os.environ["TOOL_REPLICA_PASSWORD"], database="meta_p", cursorclass=pymysql.cursors.DictCursor, ) def get_db_names(): connection = get_db_connection() try: with connection.cursor() as cursor: cursor.execute("SELECT dbname FROM wiki;") return cursor.fetchall() finally: connection.close() @app.route("/") def index(): databases = get_db_names() rows = "".join( f"<tr><td>{row['dbname']}</td></tr>" for row in databases ) return f""" <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Database names</title> </head> <body> <p> Sample Python application accessing the <a href="https://wikitech.wikimedia.org/wiki/Help:Toolforge/Database"> Wiki Replicas </a> special <code>meta_p</code> database. </p> <table> <thead> <tr> <th>Database name</th> </tr> </thead> <tbody> {rows} </tbody> </table> </body> </html> """ }} {{Collapse bottom}} The application connects to <code>meta.web.db.svc.wikimedia.cloud</code> using the <code>TOOL_REPLICA_USER</code> and <code>TOOL_REPLICA_PASSWORD</code> environment variables provided by Toolforge. The query: {{Codesample|lang=sql|scheme=light|code= SELECT dbname FROM wiki; }} retrieves the database names from the special <code>meta_p</code> database. '''Commit, push, and redeploy''' Commit and push your changes: {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ git add . laptop:~/sample-python-ptd-app$ git commit -m "Query meta_p database" laptop:~/sample-python-ptd-app$ git push origin main }} Then create a new deployment: {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ ssh login.toolforge.org user@tools-sgebastion-XX:~$ become sample-python-ptd-app tools.sample-python-ptd-app@tools-sgebastion-XX:~$ toolforge components deployment create tools.sample-python-ptd-app@tools-sgebastion-XX:~$ toolforge components deployment show }} Wait for the deployment to finish and refresh the application in your browser. You should now see a list of Wiki Replica database names. == Configure Push-to-Deploy == Push-to-Deploy allows a CI runner to trigger a Components Service deployment after changes are pushed to your Git repository. Below are the steps for a basic configuration. Visit [[Help:Toolforge/Deploy your tool#Triggering a deployment from your CI runner|Triggering a deployment from your CI runner]] for more details. == Configure Push-to-Deploy == To enable Push-to-Deploy, configure your Git repository's CI system to trigger a Components deployment whenever changes are pushed to the repository. The following is a minimal example for Wikimedia GitLab. For additional options and details, see [[Help:Toolforge/Deploy your tool#Triggering a deployment from your CI runner|Triggering a deployment from your CI runner]]. === Create a deploy token === While logged in as your tool account, create a deploy token: {{Codesample|lang=shell-session|scheme=light|code= $ toolforge components deploy-token create }} The command displays a token. Treat this token as a secret. Do not commit it to your repository. === Add the deploy token to GitLab === In your GitLab repository, go to: <code>Settings → CI/CD → Variables</code> Create a variable named: {{Codesample|lang=text|scheme=light|code= TOOLS_DEPLOY_TOKEN }} Set its value to the deploy token created in the previous step. For security, make the variable hidden, protected, and masked where appropriate. === Add a GitLab CI configuration === Create a <code>.gitlab-ci.yml</code> file in the repository containing: {{Codesample|lang=yaml|scheme=light|name=.gitlab-ci.yml|code= include: - project: "repos/cloud/cicd/gitlab-ci" file: "toolforge-cd/deploy-to-toolforge.yaml" }} The included Toolforge CI configuration handles triggering the Components deployment. This minimal configuration assumes that the GitLab project name and Toolforge tool name are the same. If they are different, or if you need to customize the deployment process, see [[Help:Toolforge/Deploy your tool#Triggering a deployment from your CI runner|Triggering a deployment from your CI runner]]. Commit and push <code>.gitlab-ci.yml</code> to the repository. When changes are pushed to the repository, GitLab CI will use the deploy token to trigger a Components deployment. At this point, Push-to-Deploy is configured. === Test Push-to-Deploy === After configuring your CI runner, make a small change to <code>app.py</code>. For example, change the title from `Database names` to `All Database Names: {{Codesample|lang=yaml|scheme=light|name=app.py|code= <title>All Database Names</title> }} Commit and push the change: {{Codesample|lang=shell-session|scheme=light|code= $ git add app.py $ git commit -m "Expand database name" $ git push }} Do not manually create a deployment. The push should trigger your CI runner, which creates a Components Service deployment automatically. Check your repository's CI pipeline and verify that it completes successfully. You can then inspect the deployment from Toolforge: {{Codesample|lang=shell-session|scheme=light|code= $ toolforge components deployment list }} For the scheduled example, verify that the new schedule has been applied: {{Codesample|lang=shell-session|scheme=light|code= $ toolforge jobs list -o long }} If the deployment was triggered automatically and the new change was applied, Push-to-Deploy is working. ==== Notes ==== You can see the code used in this example in the <code>sample-python-ptd-app</code> repository. == Troubleshooting == See [[Help:Toolforge/Build Service#Troubleshooting|Toolforge Build Service troubleshooting]]. You can also inspect the status of your Push-to-Deploy deployments with the following: {{Codesample|lang=shell-session|scheme=light|code= toolforge components deployment list toolforge components deployment show toolforge jobs logs webservice #view logs }} == See also == * [[Help:Toolforge/Deploy your tool|Deploy your tool with Push-to-Deploy]] * [[Help:Toolforge/Build Service|Toolforge Build Service]] * [[Help:Toolforge/Database|Toolforge databases]] * [[Help:Toolforge/Quickstart|Toolforge quickstart]] * [[Help:Toolforge/My first PHP tool|My first PHP tool]] == Communication and support == Support and administration of the WMCS resources is provided by Wikimedia Foundation staff and Wikimedia movement volunteers. Please reach out with questions and join the conversation: '''Discuss and receive general support''' * Chat in real time in the [[Help:IRC|IRC channel]] <code>#wikimedia-cloud</code> or the bridged Telegram group. * Discuss via email after you have subscribed to the [[mail:cloud|cloud@]] mailing list. '''Stay aware of critical changes and plans''' * Subscribe to the [[mail:cloud-announce|cloud-announce@]] mailing list. Messages are also mirrored to the [[mail:cloud|cloud@]] list. '''Track work tasks and report bugs''' Use a subproject of the [[phab:tag/cloud-services/|Cloud-Services]] Phabricator project to track confirmed bug reports and feature requests about the Cloud Services infrastructure itself. {{:Help:Cloud Services communication}} [[Category:Toolforge]] [[Category:Tutorials|Python]] [[Category:How-to-guide|Python]] [[Category:Python]] qt6alwtgchkmptn84ejmlecajn0nwwy 2471943 2471942 2026-10-22T05:12:10Z SSapaty (WMF) 28955 Simplify "Configure Push-to-Deploy" section 2471943 wikitext text/x-wiki = My first Python tool = == Overview == Python webservices are used by many existing tools on Toolforge. [[w:Python (programming language)|Python]] is a general-purpose programming language commonly used for web development, automation, data processing, and many other tasks. This tutorial is designed to get a sample Python application deployed to Toolforge using [[Help:Toolforge/Deploy your tool|Push-to-Deploy]] as quickly as possible. The application uses [[w:Flask (web framework)|Flask]] and runs on Toolforge using the Build Service. Then we'll use the database credentials provided by Toolforge to extract the list of available databases from the Wiki Replicas. The guide will teach you how to: * Create a new tool * Run a Python Flask webservice on [[w:Kubernetes|Kubernetes]] * Deploy the application using [[Help:Toolforge/Deploy your tool|Push-to-Deploy]] * Connect to the Wiki Replicas from Python * Run a query and extract information == Getting started == === Prerequisites === ==== Skills ==== * Basic knowledge of [[w:Python (programming language)|Python]] * Basic knowledge of [[w:Secure Shell|SSH]] * Basic knowledge of the [[w:Unix shell|Unix command line]] * Basic knowledge of [[w:Git|Git]] ==== Accounts ==== * [[Help:Toolforge/Quickstart|A Toolforge account]] == Step-by-step guide == === Step 1: Create a new tool account === # Follow the [[Help:Toolforge/Quickstart|Toolforge quickstart]] guide to create a Toolforge tool and SSH into Toolforge. #* For the examples in this tutorial, <code>sample-python-ptd-app</code> is used to indicate places where your unique tool name is used in another command. # Make sure to create a Git repository for the tool. You can get one like this: ## Log into the [https://toolsadmin.wikimedia.org/ Toolforge admin page]. ## Select your tool. ## On the left side panel, under <code>Git repositories</code>, click <code>create repository</code>. ## Copy the URL in the <code>Clone</code> section. ### There is a private URL that we will use to clone the repository locally, starting with <code>git</code>: <code>git@gitlab.wikimedia.org/toolforge-repos/sample-python-ptd-app.git</code> ### There is also a public URL that Toolforge will use to build the application, starting with <code>https</code>: <code>https://gitlab.wikimedia.org/toolforge-repos/sample-python-ptd-app.git</code> === Step 2: Create a basic Python Flask webservice === What is Flask? [[w:Flask (web framework)|Flask]] is a lightweight Python web framework that can be used to create web applications and APIs. ==== How to create a basic Python Flask webservice ==== '''Clone your tool Git repository''' You will have to clone the tool repository to be able to add code to it. On your local computer, with Git installed, run: {{Codesample|lang=shell-session|scheme=light|code= laptop:~$ git clone git@gitlab.wikimedia.org:toolforge-repos/sample-python-ptd-app.git laptop:~$ cd sample-python-ptd-app }} That will create a folder called <code>sample-python-ptd-app</code>. We are going to put the code in that folder. '''Add the Python dependencies''' {{Note|Use a file named <code>requirements.txt</code> to keep track of the Python dependencies required by the application.}} Create <code>requirements.txt</code>: {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ cat > requirements.txt << EOF Flask gunicorn PyMySQL EOF }} '''Create a "Hello World!" Python application''' Create a file named <code>app.py</code>: {{Codesample|lang=python|scheme=light|name=app.py|code= from flask import Flask app = Flask(__name__) @app.route("/") def index(): return "<p>Hello World!</p>" }} {{Note|Code on Toolforge must always be licensed under an [[w:Open-source license|Open Source Initiative (OSI) approved license]]. See [[Help:Toolforge/Right to fork policy|Right to fork policy]] for more information on this Toolforge policy.}} '''Create the Procfile''' The <code>Procfile</code> defines the command that the Build Service should use to start the web application. Create it with: {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ cat > Procfile << EOF web: gunicorn --bind 0.0.0.0:\$PORT app:app EOF }} The <code>web</code> entry defines the command used to start the Flask application. Gunicorn runs the application and listens on the port provided by Toolforge through the <code>PORT</code> environment variable. '''Create the Toolforge configuration file''' Create <code>toolforge.yaml</code>: {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ cat > toolforge.yaml << EOF # yaml-language-server: \$schema=https://gitlab.wikimedia.org/repos/cloud/toolforge/components-api/-/raw/main/openapi/tool-config-schema.json source_url: https://gitlab.wikimedia.org/toolforge-repos/sample-python-ptd-app/-/raw/main/toolforge.yaml?ref_type=heads components: webservice: build: repository: https://gitlab.wikimedia.org/toolforge-repos/sample-python-ptd-app ref: main run: command: web publish: / port: 8000 EOF }} If you don't want your webservice to be reachable from the internet, remove the <code>publish</code> setting. If you are deploying a process without a port, you can remove <code>port</code> too. See [[Help:Toolforge/Deploy your tool|Deploy your tool]] for more information. '''Commit your changes and push''' {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ git add . laptop:~/sample-python-ptd-app$ git commit -m "First commit" laptop:~/sample-python-ptd-app$ git push origin main }} '''Initialize the tool configuration''' Now SSH to <code>login.toolforge.org</code> and become your tool: {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ ssh login.toolforge.org user@tools-sgebastion-XX:~$ become sample-python-ptd-app }} Create the tool configuration using the public copy of <code>toolforge.yaml</code>: {{Codesample|lang=shell-session|scheme=light|code= tools.sample-python-ptd-app@tools-sgebastion-XX:~$ curl 'https://gitlab.wikimedia.org/toolforge-repos/sample-python-ptd-app/-/raw/main/toolforge.yaml?ref_type=heads' {{!}} toolforge components config create }} You should see a message indicating that the configuration was updated successfully. {{Note|Push-to-Deploy is currently a beta feature of Toolforge, so the command may also display a warning indicating that you are using a beta feature.}} '''Create the first deployment''' Create a deployment: {{Codesample|lang=shell-session|scheme=light|code= tools.sample-python-ptd-app@tools-sgebastion-XX:~$ toolforge components deployment create }} Components API will build the application from your Git repository and deploy the webservice. {{Note|The repository in <code>toolforge.yaml</code> must be publicly accessible so that Toolforge can clone and build it.}} '''Wait for the deployment to finish''' Check the deployment status: {{Codesample|lang=shell-session|scheme=light|code= tools.sample-python-ptd-app@tools-sgebastion-XX:~$ toolforge components deployment show }} Wait for the deployment status to be <code>ok(Succeeded)</code>. Once the deployment has finished, navigate to: {{Codesample|lang=shell-session|scheme=light|code= https://sample-python-ptd-app.toolforge.org }} You should see: <syntaxhighlight lang="text"> Hello World! </syntaxhighlight> It might take a couple of minutes for the application to become reachable. '''Automate deployment on push''' You can follow [[Help:Toolforge/Deploy your tool#Automatically deploy on git push|this guide]] to configure and automate deployment of your tool whenever you push or merge changes to the main branch. ==== Connecting to the replicas ==== Toolforge provides database credentials to your application through environment variables. We will use these credentials to connect to the special <code>meta_p</code> database and retrieve the names of the available Wiki Replica databases. First, update <code>requirements.txt</code> if <code>PyMySQL</code> is not already present: <syntaxhighlight lang="text"> Flask gunicorn PyMySQL </syntaxhighlight> Now update <code>app.py</code>: {{Collapse top|Sample flask code}} {{Codesample|lang=python|scheme=light|name=app.py|code= from flask import Flask import os import pymysql app = Flask(__name__) def get_db_connection(): return pymysql.connect( host="meta.web.db.svc.wikimedia.cloud", user=os.environ["TOOL_REPLICA_USER"], password=os.environ["TOOL_REPLICA_PASSWORD"], database="meta_p", cursorclass=pymysql.cursors.DictCursor, ) def get_db_names(): connection = get_db_connection() try: with connection.cursor() as cursor: cursor.execute("SELECT dbname FROM wiki;") return cursor.fetchall() finally: connection.close() @app.route("/") def index(): databases = get_db_names() rows = "".join( f"<tr><td>{row['dbname']}</td></tr>" for row in databases ) return f""" <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Database names</title> </head> <body> <p> Sample Python application accessing the <a href="https://wikitech.wikimedia.org/wiki/Help:Toolforge/Database"> Wiki Replicas </a> special <code>meta_p</code> database. </p> <table> <thead> <tr> <th>Database name</th> </tr> </thead> <tbody> {rows} </tbody> </table> </body> </html> """ }} {{Collapse bottom}} The application connects to <code>meta.web.db.svc.wikimedia.cloud</code> using the <code>TOOL_REPLICA_USER</code> and <code>TOOL_REPLICA_PASSWORD</code> environment variables provided by Toolforge. The query: {{Codesample|lang=sql|scheme=light|code= SELECT dbname FROM wiki; }} retrieves the database names from the special <code>meta_p</code> database. '''Commit, push, and redeploy''' Commit and push your changes: {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ git add . laptop:~/sample-python-ptd-app$ git commit -m "Query meta_p database" laptop:~/sample-python-ptd-app$ git push origin main }} Then create a new deployment: {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ ssh login.toolforge.org user@tools-sgebastion-XX:~$ become sample-python-ptd-app tools.sample-python-ptd-app@tools-sgebastion-XX:~$ toolforge components deployment create tools.sample-python-ptd-app@tools-sgebastion-XX:~$ toolforge components deployment show }} Wait for the deployment to finish and refresh the application in your browser. You should now see a list of Wiki Replica database names. == Configure Push-to-Deploy == To enable Push-to-Deploy, configure your Git repository's CI system to trigger a Components deployment whenever changes are pushed to the repository. The following is a minimal example for Wikimedia GitLab. For additional options and details, see [[Help:Toolforge/Deploy your tool#Triggering a deployment from your CI runner|Triggering a deployment from your CI runner]]. === Create a deploy token === While logged in as your tool account, create a deploy token: {{Codesample|lang=shell-session|scheme=light|code= $ toolforge components deploy-token create }} The command displays a token. Treat this token as a secret. Do not commit it to your repository. === Add the deploy token to GitLab === In your GitLab repository, go to: <code>Settings → CI/CD → Variables</code> Create a variable named: {{Codesample|lang=text|scheme=light|code= TOOLS_DEPLOY_TOKEN }} Set its value to the deploy token created in the previous step. For security, make the variable hidden, protected, and masked where appropriate. === Add a GitLab CI configuration === Create a <code>.gitlab-ci.yml</code> file in the repository containing: {{Codesample|lang=yaml|scheme=light|name=.gitlab-ci.yml|code= include: - project: "repos/cloud/cicd/gitlab-ci" file: "toolforge-cd/deploy-to-toolforge.yaml" }} The included Toolforge CI configuration handles triggering the Components deployment. This minimal configuration assumes that the GitLab project name and Toolforge tool name are the same. If they are different, or if you need to customize the deployment process, see [[Help:Toolforge/Deploy your tool#Triggering a deployment from your CI runner|Triggering a deployment from your CI runner]]. Commit and push <code>.gitlab-ci.yml</code> to the repository. When changes are pushed to the repository, GitLab CI will use the deploy token to trigger a Components deployment. At this point, Push-to-Deploy is configured. === Test Push-to-Deploy === After configuring your CI runner, make a small change to <code>app.py</code>. For example, change the title from `Database names` to `All Database Names: {{Codesample|lang=yaml|scheme=light|name=app.py|code= <title>All Database Names</title> }} Commit and push the change: {{Codesample|lang=shell-session|scheme=light|code= $ git add app.py $ git commit -m "Expand database name" $ git push }} Do not manually create a deployment. The push should trigger your CI runner, which creates a Components Service deployment automatically. Check your repository's CI pipeline and verify that it completes successfully. You can then inspect the deployment from Toolforge: {{Codesample|lang=shell-session|scheme=light|code= $ toolforge components deployment list }} For the scheduled example, verify that the new schedule has been applied: {{Codesample|lang=shell-session|scheme=light|code= $ toolforge jobs list -o long }} If the deployment was triggered automatically and the new change was applied, Push-to-Deploy is working. ==== Notes ==== You can see the code used in this example in the <code>sample-python-ptd-app</code> repository. == Troubleshooting == See [[Help:Toolforge/Build Service#Troubleshooting|Toolforge Build Service troubleshooting]]. You can also inspect the status of your Push-to-Deploy deployments with the following: {{Codesample|lang=shell-session|scheme=light|code= toolforge components deployment list toolforge components deployment show toolforge jobs logs webservice #view logs }} == See also == * [[Help:Toolforge/Deploy your tool|Deploy your tool with Push-to-Deploy]] * [[Help:Toolforge/Build Service|Toolforge Build Service]] * [[Help:Toolforge/Database|Toolforge databases]] * [[Help:Toolforge/Quickstart|Toolforge quickstart]] * [[Help:Toolforge/My first PHP tool|My first PHP tool]] == Communication and support == Support and administration of the WMCS resources is provided by Wikimedia Foundation staff and Wikimedia movement volunteers. Please reach out with questions and join the conversation: '''Discuss and receive general support''' * Chat in real time in the [[Help:IRC|IRC channel]] <code>#wikimedia-cloud</code> or the bridged Telegram group. * Discuss via email after you have subscribed to the [[mail:cloud|cloud@]] mailing list. '''Stay aware of critical changes and plans''' * Subscribe to the [[mail:cloud-announce|cloud-announce@]] mailing list. Messages are also mirrored to the [[mail:cloud|cloud@]] list. '''Track work tasks and report bugs''' Use a subproject of the [[phab:tag/cloud-services/|Cloud-Services]] Phabricator project to track confirmed bug reports and feature requests about the Cloud Services infrastructure itself. {{:Help:Cloud Services communication}} [[Category:Toolforge]] [[Category:Tutorials|Python]] [[Category:How-to-guide|Python]] [[Category:Python]] 7zpdnlhfvoy9t2p28bkuqlyiirnfqs5 2471944 2471943 2026-10-22T05:15:29Z SSapaty (WMF) 28955 /* Test Push-to-Deploy */ Remove old 'scheduled' example from push-to-deploy verification 2471944 wikitext text/x-wiki = My first Python tool = == Overview == Python webservices are used by many existing tools on Toolforge. [[w:Python (programming language)|Python]] is a general-purpose programming language commonly used for web development, automation, data processing, and many other tasks. This tutorial is designed to get a sample Python application deployed to Toolforge using [[Help:Toolforge/Deploy your tool|Push-to-Deploy]] as quickly as possible. The application uses [[w:Flask (web framework)|Flask]] and runs on Toolforge using the Build Service. Then we'll use the database credentials provided by Toolforge to extract the list of available databases from the Wiki Replicas. The guide will teach you how to: * Create a new tool * Run a Python Flask webservice on [[w:Kubernetes|Kubernetes]] * Deploy the application using [[Help:Toolforge/Deploy your tool|Push-to-Deploy]] * Connect to the Wiki Replicas from Python * Run a query and extract information == Getting started == === Prerequisites === ==== Skills ==== * Basic knowledge of [[w:Python (programming language)|Python]] * Basic knowledge of [[w:Secure Shell|SSH]] * Basic knowledge of the [[w:Unix shell|Unix command line]] * Basic knowledge of [[w:Git|Git]] ==== Accounts ==== * [[Help:Toolforge/Quickstart|A Toolforge account]] == Step-by-step guide == === Step 1: Create a new tool account === # Follow the [[Help:Toolforge/Quickstart|Toolforge quickstart]] guide to create a Toolforge tool and SSH into Toolforge. #* For the examples in this tutorial, <code>sample-python-ptd-app</code> is used to indicate places where your unique tool name is used in another command. # Make sure to create a Git repository for the tool. You can get one like this: ## Log into the [https://toolsadmin.wikimedia.org/ Toolforge admin page]. ## Select your tool. ## On the left side panel, under <code>Git repositories</code>, click <code>create repository</code>. ## Copy the URL in the <code>Clone</code> section. ### There is a private URL that we will use to clone the repository locally, starting with <code>git</code>: <code>git@gitlab.wikimedia.org/toolforge-repos/sample-python-ptd-app.git</code> ### There is also a public URL that Toolforge will use to build the application, starting with <code>https</code>: <code>https://gitlab.wikimedia.org/toolforge-repos/sample-python-ptd-app.git</code> === Step 2: Create a basic Python Flask webservice === What is Flask? [[w:Flask (web framework)|Flask]] is a lightweight Python web framework that can be used to create web applications and APIs. ==== How to create a basic Python Flask webservice ==== '''Clone your tool Git repository''' You will have to clone the tool repository to be able to add code to it. On your local computer, with Git installed, run: {{Codesample|lang=shell-session|scheme=light|code= laptop:~$ git clone git@gitlab.wikimedia.org:toolforge-repos/sample-python-ptd-app.git laptop:~$ cd sample-python-ptd-app }} That will create a folder called <code>sample-python-ptd-app</code>. We are going to put the code in that folder. '''Add the Python dependencies''' {{Note|Use a file named <code>requirements.txt</code> to keep track of the Python dependencies required by the application.}} Create <code>requirements.txt</code>: {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ cat > requirements.txt << EOF Flask gunicorn PyMySQL EOF }} '''Create a "Hello World!" Python application''' Create a file named <code>app.py</code>: {{Codesample|lang=python|scheme=light|name=app.py|code= from flask import Flask app = Flask(__name__) @app.route("/") def index(): return "<p>Hello World!</p>" }} {{Note|Code on Toolforge must always be licensed under an [[w:Open-source license|Open Source Initiative (OSI) approved license]]. See [[Help:Toolforge/Right to fork policy|Right to fork policy]] for more information on this Toolforge policy.}} '''Create the Procfile''' The <code>Procfile</code> defines the command that the Build Service should use to start the web application. Create it with: {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ cat > Procfile << EOF web: gunicorn --bind 0.0.0.0:\$PORT app:app EOF }} The <code>web</code> entry defines the command used to start the Flask application. Gunicorn runs the application and listens on the port provided by Toolforge through the <code>PORT</code> environment variable. '''Create the Toolforge configuration file''' Create <code>toolforge.yaml</code>: {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ cat > toolforge.yaml << EOF # yaml-language-server: \$schema=https://gitlab.wikimedia.org/repos/cloud/toolforge/components-api/-/raw/main/openapi/tool-config-schema.json source_url: https://gitlab.wikimedia.org/toolforge-repos/sample-python-ptd-app/-/raw/main/toolforge.yaml?ref_type=heads components: webservice: build: repository: https://gitlab.wikimedia.org/toolforge-repos/sample-python-ptd-app ref: main run: command: web publish: / port: 8000 EOF }} If you don't want your webservice to be reachable from the internet, remove the <code>publish</code> setting. If you are deploying a process without a port, you can remove <code>port</code> too. See [[Help:Toolforge/Deploy your tool|Deploy your tool]] for more information. '''Commit your changes and push''' {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ git add . laptop:~/sample-python-ptd-app$ git commit -m "First commit" laptop:~/sample-python-ptd-app$ git push origin main }} '''Initialize the tool configuration''' Now SSH to <code>login.toolforge.org</code> and become your tool: {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ ssh login.toolforge.org user@tools-sgebastion-XX:~$ become sample-python-ptd-app }} Create the tool configuration using the public copy of <code>toolforge.yaml</code>: {{Codesample|lang=shell-session|scheme=light|code= tools.sample-python-ptd-app@tools-sgebastion-XX:~$ curl 'https://gitlab.wikimedia.org/toolforge-repos/sample-python-ptd-app/-/raw/main/toolforge.yaml?ref_type=heads' {{!}} toolforge components config create }} You should see a message indicating that the configuration was updated successfully. {{Note|Push-to-Deploy is currently a beta feature of Toolforge, so the command may also display a warning indicating that you are using a beta feature.}} '''Create the first deployment''' Create a deployment: {{Codesample|lang=shell-session|scheme=light|code= tools.sample-python-ptd-app@tools-sgebastion-XX:~$ toolforge components deployment create }} Components API will build the application from your Git repository and deploy the webservice. {{Note|The repository in <code>toolforge.yaml</code> must be publicly accessible so that Toolforge can clone and build it.}} '''Wait for the deployment to finish''' Check the deployment status: {{Codesample|lang=shell-session|scheme=light|code= tools.sample-python-ptd-app@tools-sgebastion-XX:~$ toolforge components deployment show }} Wait for the deployment status to be <code>ok(Succeeded)</code>. Once the deployment has finished, navigate to: {{Codesample|lang=shell-session|scheme=light|code= https://sample-python-ptd-app.toolforge.org }} You should see: <syntaxhighlight lang="text"> Hello World! </syntaxhighlight> It might take a couple of minutes for the application to become reachable. '''Automate deployment on push''' You can follow [[Help:Toolforge/Deploy your tool#Automatically deploy on git push|this guide]] to configure and automate deployment of your tool whenever you push or merge changes to the main branch. ==== Connecting to the replicas ==== Toolforge provides database credentials to your application through environment variables. We will use these credentials to connect to the special <code>meta_p</code> database and retrieve the names of the available Wiki Replica databases. First, update <code>requirements.txt</code> if <code>PyMySQL</code> is not already present: <syntaxhighlight lang="text"> Flask gunicorn PyMySQL </syntaxhighlight> Now update <code>app.py</code>: {{Collapse top|Sample flask code}} {{Codesample|lang=python|scheme=light|name=app.py|code= from flask import Flask import os import pymysql app = Flask(__name__) def get_db_connection(): return pymysql.connect( host="meta.web.db.svc.wikimedia.cloud", user=os.environ["TOOL_REPLICA_USER"], password=os.environ["TOOL_REPLICA_PASSWORD"], database="meta_p", cursorclass=pymysql.cursors.DictCursor, ) def get_db_names(): connection = get_db_connection() try: with connection.cursor() as cursor: cursor.execute("SELECT dbname FROM wiki;") return cursor.fetchall() finally: connection.close() @app.route("/") def index(): databases = get_db_names() rows = "".join( f"<tr><td>{row['dbname']}</td></tr>" for row in databases ) return f""" <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Database names</title> </head> <body> <p> Sample Python application accessing the <a href="https://wikitech.wikimedia.org/wiki/Help:Toolforge/Database"> Wiki Replicas </a> special <code>meta_p</code> database. </p> <table> <thead> <tr> <th>Database name</th> </tr> </thead> <tbody> {rows} </tbody> </table> </body> </html> """ }} {{Collapse bottom}} The application connects to <code>meta.web.db.svc.wikimedia.cloud</code> using the <code>TOOL_REPLICA_USER</code> and <code>TOOL_REPLICA_PASSWORD</code> environment variables provided by Toolforge. The query: {{Codesample|lang=sql|scheme=light|code= SELECT dbname FROM wiki; }} retrieves the database names from the special <code>meta_p</code> database. '''Commit, push, and redeploy''' Commit and push your changes: {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ git add . laptop:~/sample-python-ptd-app$ git commit -m "Query meta_p database" laptop:~/sample-python-ptd-app$ git push origin main }} Then create a new deployment: {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ ssh login.toolforge.org user@tools-sgebastion-XX:~$ become sample-python-ptd-app tools.sample-python-ptd-app@tools-sgebastion-XX:~$ toolforge components deployment create tools.sample-python-ptd-app@tools-sgebastion-XX:~$ toolforge components deployment show }} Wait for the deployment to finish and refresh the application in your browser. You should now see a list of Wiki Replica database names. == Configure Push-to-Deploy == To enable Push-to-Deploy, configure your Git repository's CI system to trigger a Components deployment whenever changes are pushed to the repository. The following is a minimal example for Wikimedia GitLab. For additional options and details, see [[Help:Toolforge/Deploy your tool#Triggering a deployment from your CI runner|Triggering a deployment from your CI runner]]. === Create a deploy token === While logged in as your tool account, create a deploy token: {{Codesample|lang=shell-session|scheme=light|code= $ toolforge components deploy-token create }} The command displays a token. Treat this token as a secret. Do not commit it to your repository. === Add the deploy token to GitLab === In your GitLab repository, go to: <code>Settings → CI/CD → Variables</code> Create a variable named: {{Codesample|lang=text|scheme=light|code= TOOLS_DEPLOY_TOKEN }} Set its value to the deploy token created in the previous step. For security, make the variable hidden, protected, and masked where appropriate. === Add a GitLab CI configuration === Create a <code>.gitlab-ci.yml</code> file in the repository containing: {{Codesample|lang=yaml|scheme=light|name=.gitlab-ci.yml|code= include: - project: "repos/cloud/cicd/gitlab-ci" file: "toolforge-cd/deploy-to-toolforge.yaml" }} The included Toolforge CI configuration handles triggering the Components deployment. This minimal configuration assumes that the GitLab project name and Toolforge tool name are the same. If they are different, or if you need to customize the deployment process, see [[Help:Toolforge/Deploy your tool#Triggering a deployment from your CI runner|Triggering a deployment from your CI runner]]. Commit and push <code>.gitlab-ci.yml</code> to the repository. When changes are pushed to the repository, GitLab CI will use the deploy token to trigger a Components deployment. At this point, Push-to-Deploy is configured. === Test Push-to-Deploy === After configuring your CI runner, make a small change to <code>app.py</code>. For example, change the title from `Database names` to `All Database Names: {{Codesample|lang=yaml|scheme=light|name=app.py|code= <title>All Database Names</title> }} Commit and push the change: {{Codesample|lang=shell-session|scheme=light|code= $ git add app.py $ git commit -m "Expand database name" $ git push }} Do not manually create a deployment. The push should trigger your CI runner, which creates a Components Service deployment automatically. Check your repository's CI pipeline and verify that it completes successfully. You can then inspect the deployment from Toolforge: {{Codesample|lang=shell-session|scheme=light|code= $ toolforge components deployment list }} If the deployment was triggered automatically and the new change was applied, Push-to-Deploy is working. ==== Notes ==== You can see the code used in this example in the <code>sample-python-ptd-app</code> repository. == Troubleshooting == See [[Help:Toolforge/Build Service#Troubleshooting|Toolforge Build Service troubleshooting]]. You can also inspect the status of your Push-to-Deploy deployments with the following: {{Codesample|lang=shell-session|scheme=light|code= toolforge components deployment list toolforge components deployment show toolforge jobs logs webservice #view logs }} == See also == * [[Help:Toolforge/Deploy your tool|Deploy your tool with Push-to-Deploy]] * [[Help:Toolforge/Build Service|Toolforge Build Service]] * [[Help:Toolforge/Database|Toolforge databases]] * [[Help:Toolforge/Quickstart|Toolforge quickstart]] * [[Help:Toolforge/My first PHP tool|My first PHP tool]] == Communication and support == Support and administration of the WMCS resources is provided by Wikimedia Foundation staff and Wikimedia movement volunteers. Please reach out with questions and join the conversation: '''Discuss and receive general support''' * Chat in real time in the [[Help:IRC|IRC channel]] <code>#wikimedia-cloud</code> or the bridged Telegram group. * Discuss via email after you have subscribed to the [[mail:cloud|cloud@]] mailing list. '''Stay aware of critical changes and plans''' * Subscribe to the [[mail:cloud-announce|cloud-announce@]] mailing list. Messages are also mirrored to the [[mail:cloud|cloud@]] list. '''Track work tasks and report bugs''' Use a subproject of the [[phab:tag/cloud-services/|Cloud-Services]] Phabricator project to track confirmed bug reports and feature requests about the Cloud Services infrastructure itself. {{:Help:Cloud Services communication}} [[Category:Toolforge]] [[Category:Tutorials|Python]] [[Category:How-to-guide|Python]] [[Category:Python]] cj77pc13ul87fkeu8vb0413iaar5ydo 2471945 2471944 2026-10-22T05:22:44Z SSapaty (WMF) 28955 /* How to create a basic Python Flask webservice */ Add explanation for source_url 2471945 wikitext text/x-wiki = My first Python tool = == Overview == Python webservices are used by many existing tools on Toolforge. [[w:Python (programming language)|Python]] is a general-purpose programming language commonly used for web development, automation, data processing, and many other tasks. This tutorial is designed to get a sample Python application deployed to Toolforge using [[Help:Toolforge/Deploy your tool|Push-to-Deploy]] as quickly as possible. The application uses [[w:Flask (web framework)|Flask]] and runs on Toolforge using the Build Service. Then we'll use the database credentials provided by Toolforge to extract the list of available databases from the Wiki Replicas. The guide will teach you how to: * Create a new tool * Run a Python Flask webservice on [[w:Kubernetes|Kubernetes]] * Deploy the application using [[Help:Toolforge/Deploy your tool|Push-to-Deploy]] * Connect to the Wiki Replicas from Python * Run a query and extract information == Getting started == === Prerequisites === ==== Skills ==== * Basic knowledge of [[w:Python (programming language)|Python]] * Basic knowledge of [[w:Secure Shell|SSH]] * Basic knowledge of the [[w:Unix shell|Unix command line]] * Basic knowledge of [[w:Git|Git]] ==== Accounts ==== * [[Help:Toolforge/Quickstart|A Toolforge account]] == Step-by-step guide == === Step 1: Create a new tool account === # Follow the [[Help:Toolforge/Quickstart|Toolforge quickstart]] guide to create a Toolforge tool and SSH into Toolforge. #* For the examples in this tutorial, <code>sample-python-ptd-app</code> is used to indicate places where your unique tool name is used in another command. # Make sure to create a Git repository for the tool. You can get one like this: ## Log into the [https://toolsadmin.wikimedia.org/ Toolforge admin page]. ## Select your tool. ## On the left side panel, under <code>Git repositories</code>, click <code>create repository</code>. ## Copy the URL in the <code>Clone</code> section. ### There is a private URL that we will use to clone the repository locally, starting with <code>git</code>: <code>git@gitlab.wikimedia.org/toolforge-repos/sample-python-ptd-app.git</code> ### There is also a public URL that Toolforge will use to build the application, starting with <code>https</code>: <code>https://gitlab.wikimedia.org/toolforge-repos/sample-python-ptd-app.git</code> === Step 2: Create a basic Python Flask webservice === What is Flask? [[w:Flask (web framework)|Flask]] is a lightweight Python web framework that can be used to create web applications and APIs. ==== How to create a basic Python Flask webservice ==== '''Clone your tool Git repository''' You will have to clone the tool repository to be able to add code to it. On your local computer, with Git installed, run: {{Codesample|lang=shell-session|scheme=light|code= laptop:~$ git clone git@gitlab.wikimedia.org:toolforge-repos/sample-python-ptd-app.git laptop:~$ cd sample-python-ptd-app }} That will create a folder called <code>sample-python-ptd-app</code>. We are going to put the code in that folder. '''Add the Python dependencies''' {{Note|Use a file named <code>requirements.txt</code> to keep track of the Python dependencies required by the application.}} Create <code>requirements.txt</code>: {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ cat > requirements.txt << EOF Flask gunicorn PyMySQL EOF }} '''Create a "Hello World!" Python application''' Create a file named <code>app.py</code>: {{Codesample|lang=python|scheme=light|name=app.py|code= from flask import Flask app = Flask(__name__) @app.route("/") def index(): return "<p>Hello World!</p>" }} {{Note|Code on Toolforge must always be licensed under an [[w:Open-source license|Open Source Initiative (OSI) approved license]]. See [[Help:Toolforge/Right to fork policy|Right to fork policy]] for more information on this Toolforge policy.}} '''Create the Procfile''' The <code>Procfile</code> defines the command that the Build Service should use to start the web application. Create it with: {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ cat > Procfile << EOF web: gunicorn --bind 0.0.0.0:\$PORT app:app EOF }} The <code>web</code> entry defines the command used to start the Flask application. Gunicorn runs the application and listens on the port provided by Toolforge through the <code>PORT</code> environment variable. '''Create the Toolforge configuration file''' Create <code>toolforge.yaml</code>: The <code>source_url</code> specifies the source from which the tool configuration should be fetched. {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ cat > toolforge.yaml << EOF # yaml-language-server: \$schema=https://gitlab.wikimedia.org/repos/cloud/toolforge/components-api/-/raw/main/openapi/tool-config-schema.json source_url: https://gitlab.wikimedia.org/toolforge-repos/sample-python-ptd-app/-/raw/main/toolforge.yaml?ref_type=heads components: webservice: build: repository: https://gitlab.wikimedia.org/toolforge-repos/sample-python-ptd-app ref: main run: command: web publish: / port: 8000 EOF }} If you don't want your webservice to be reachable from the internet, remove the <code>publish</code> setting. If you are deploying a process without a port, you can remove <code>port</code> too. See [[Help:Toolforge/Deploy your tool|Deploy your tool]] for more information. '''Commit your changes and push''' {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ git add . laptop:~/sample-python-ptd-app$ git commit -m "First commit" laptop:~/sample-python-ptd-app$ git push origin main }} '''Initialize the tool configuration''' Now SSH to <code>login.toolforge.org</code> and become your tool: {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ ssh login.toolforge.org user@tools-sgebastion-XX:~$ become sample-python-ptd-app }} Create the tool configuration using the public copy of <code>toolforge.yaml</code>: {{Codesample|lang=shell-session|scheme=light|code= tools.sample-python-ptd-app@tools-sgebastion-XX:~$ curl 'https://gitlab.wikimedia.org/toolforge-repos/sample-python-ptd-app/-/raw/main/toolforge.yaml?ref_type=heads' {{!}} toolforge components config create }} You should see a message indicating that the configuration was updated successfully. {{Note|Push-to-Deploy is currently a beta feature of Toolforge, so the command may also display a warning indicating that you are using a beta feature.}} '''Create the first deployment''' Create a deployment: {{Codesample|lang=shell-session|scheme=light|code= tools.sample-python-ptd-app@tools-sgebastion-XX:~$ toolforge components deployment create }} Components API will build the application from your Git repository and deploy the webservice. {{Note|The repository in <code>toolforge.yaml</code> must be publicly accessible so that Toolforge can clone and build it.}} '''Wait for the deployment to finish''' Check the deployment status: {{Codesample|lang=shell-session|scheme=light|code= tools.sample-python-ptd-app@tools-sgebastion-XX:~$ toolforge components deployment show }} Wait for the deployment status to be <code>ok(Succeeded)</code>. Once the deployment has finished, navigate to: {{Codesample|lang=shell-session|scheme=light|code= https://sample-python-ptd-app.toolforge.org }} You should see: <syntaxhighlight lang="text"> Hello World! </syntaxhighlight> It might take a couple of minutes for the application to become reachable. '''Automate deployment on push''' You can follow [[Help:Toolforge/Deploy your tool#Automatically deploy on git push|this guide]] to configure and automate deployment of your tool whenever you push or merge changes to the main branch. ==== Connecting to the replicas ==== Toolforge provides database credentials to your application through environment variables. We will use these credentials to connect to the special <code>meta_p</code> database and retrieve the names of the available Wiki Replica databases. First, update <code>requirements.txt</code> if <code>PyMySQL</code> is not already present: <syntaxhighlight lang="text"> Flask gunicorn PyMySQL </syntaxhighlight> Now update <code>app.py</code>: {{Collapse top|Sample flask code}} {{Codesample|lang=python|scheme=light|name=app.py|code= from flask import Flask import os import pymysql app = Flask(__name__) def get_db_connection(): return pymysql.connect( host="meta.web.db.svc.wikimedia.cloud", user=os.environ["TOOL_REPLICA_USER"], password=os.environ["TOOL_REPLICA_PASSWORD"], database="meta_p", cursorclass=pymysql.cursors.DictCursor, ) def get_db_names(): connection = get_db_connection() try: with connection.cursor() as cursor: cursor.execute("SELECT dbname FROM wiki;") return cursor.fetchall() finally: connection.close() @app.route("/") def index(): databases = get_db_names() rows = "".join( f"<tr><td>{row['dbname']}</td></tr>" for row in databases ) return f""" <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Database names</title> </head> <body> <p> Sample Python application accessing the <a href="https://wikitech.wikimedia.org/wiki/Help:Toolforge/Database"> Wiki Replicas </a> special <code>meta_p</code> database. </p> <table> <thead> <tr> <th>Database name</th> </tr> </thead> <tbody> {rows} </tbody> </table> </body> </html> """ }} {{Collapse bottom}} The application connects to <code>meta.web.db.svc.wikimedia.cloud</code> using the <code>TOOL_REPLICA_USER</code> and <code>TOOL_REPLICA_PASSWORD</code> environment variables provided by Toolforge. The query: {{Codesample|lang=sql|scheme=light|code= SELECT dbname FROM wiki; }} retrieves the database names from the special <code>meta_p</code> database. '''Commit, push, and redeploy''' Commit and push your changes: {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ git add . laptop:~/sample-python-ptd-app$ git commit -m "Query meta_p database" laptop:~/sample-python-ptd-app$ git push origin main }} Then create a new deployment: {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ ssh login.toolforge.org user@tools-sgebastion-XX:~$ become sample-python-ptd-app tools.sample-python-ptd-app@tools-sgebastion-XX:~$ toolforge components deployment create tools.sample-python-ptd-app@tools-sgebastion-XX:~$ toolforge components deployment show }} Wait for the deployment to finish and refresh the application in your browser. You should now see a list of Wiki Replica database names. == Configure Push-to-Deploy == To enable Push-to-Deploy, configure your Git repository's CI system to trigger a Components deployment whenever changes are pushed to the repository. The following is a minimal example for Wikimedia GitLab. For additional options and details, see [[Help:Toolforge/Deploy your tool#Triggering a deployment from your CI runner|Triggering a deployment from your CI runner]]. === Create a deploy token === While logged in as your tool account, create a deploy token: {{Codesample|lang=shell-session|scheme=light|code= $ toolforge components deploy-token create }} The command displays a token. Treat this token as a secret. Do not commit it to your repository. === Add the deploy token to GitLab === In your GitLab repository, go to: <code>Settings → CI/CD → Variables</code> Create a variable named: {{Codesample|lang=text|scheme=light|code= TOOLS_DEPLOY_TOKEN }} Set its value to the deploy token created in the previous step. For security, make the variable hidden, protected, and masked where appropriate. === Add a GitLab CI configuration === Create a <code>.gitlab-ci.yml</code> file in the repository containing: {{Codesample|lang=yaml|scheme=light|name=.gitlab-ci.yml|code= include: - project: "repos/cloud/cicd/gitlab-ci" file: "toolforge-cd/deploy-to-toolforge.yaml" }} The included Toolforge CI configuration handles triggering the Components deployment. This minimal configuration assumes that the GitLab project name and Toolforge tool name are the same. If they are different, or if you need to customize the deployment process, see [[Help:Toolforge/Deploy your tool#Triggering a deployment from your CI runner|Triggering a deployment from your CI runner]]. Commit and push <code>.gitlab-ci.yml</code> to the repository. When changes are pushed to the repository, GitLab CI will use the deploy token to trigger a Components deployment. At this point, Push-to-Deploy is configured. === Test Push-to-Deploy === After configuring your CI runner, make a small change to <code>app.py</code>. For example, change the title from `Database names` to `All Database Names: {{Codesample|lang=yaml|scheme=light|name=app.py|code= <title>All Database Names</title> }} Commit and push the change: {{Codesample|lang=shell-session|scheme=light|code= $ git add app.py $ git commit -m "Expand database name" $ git push }} Do not manually create a deployment. The push should trigger your CI runner, which creates a Components Service deployment automatically. Check your repository's CI pipeline and verify that it completes successfully. You can then inspect the deployment from Toolforge: {{Codesample|lang=shell-session|scheme=light|code= $ toolforge components deployment list }} If the deployment was triggered automatically and the new change was applied, Push-to-Deploy is working. ==== Notes ==== You can see the code used in this example in the <code>sample-python-ptd-app</code> repository. == Troubleshooting == See [[Help:Toolforge/Build Service#Troubleshooting|Toolforge Build Service troubleshooting]]. You can also inspect the status of your Push-to-Deploy deployments with the following: {{Codesample|lang=shell-session|scheme=light|code= toolforge components deployment list toolforge components deployment show toolforge jobs logs webservice #view logs }} == See also == * [[Help:Toolforge/Deploy your tool|Deploy your tool with Push-to-Deploy]] * [[Help:Toolforge/Build Service|Toolforge Build Service]] * [[Help:Toolforge/Database|Toolforge databases]] * [[Help:Toolforge/Quickstart|Toolforge quickstart]] * [[Help:Toolforge/My first PHP tool|My first PHP tool]] == Communication and support == Support and administration of the WMCS resources is provided by Wikimedia Foundation staff and Wikimedia movement volunteers. Please reach out with questions and join the conversation: '''Discuss and receive general support''' * Chat in real time in the [[Help:IRC|IRC channel]] <code>#wikimedia-cloud</code> or the bridged Telegram group. * Discuss via email after you have subscribed to the [[mail:cloud|cloud@]] mailing list. '''Stay aware of critical changes and plans''' * Subscribe to the [[mail:cloud-announce|cloud-announce@]] mailing list. Messages are also mirrored to the [[mail:cloud|cloud@]] list. '''Track work tasks and report bugs''' Use a subproject of the [[phab:tag/cloud-services/|Cloud-Services]] Phabricator project to track confirmed bug reports and feature requests about the Cloud Services infrastructure itself. {{:Help:Cloud Services communication}} [[Category:Toolforge]] [[Category:Tutorials|Python]] [[Category:How-to-guide|Python]] [[Category:Python]] ee1hc5k2ul8rogjz4konvhfxjb3zzjj 2471946 2471945 2026-10-22T05:23:25Z SSapaty (WMF) 28955 /* How to create a basic Python Flask webservice */ 2471946 wikitext text/x-wiki = My first Python tool = == Overview == Python webservices are used by many existing tools on Toolforge. [[w:Python (programming language)|Python]] is a general-purpose programming language commonly used for web development, automation, data processing, and many other tasks. This tutorial is designed to get a sample Python application deployed to Toolforge using [[Help:Toolforge/Deploy your tool|Push-to-Deploy]] as quickly as possible. The application uses [[w:Flask (web framework)|Flask]] and runs on Toolforge using the Build Service. Then we'll use the database credentials provided by Toolforge to extract the list of available databases from the Wiki Replicas. The guide will teach you how to: * Create a new tool * Run a Python Flask webservice on [[w:Kubernetes|Kubernetes]] * Deploy the application using [[Help:Toolforge/Deploy your tool|Push-to-Deploy]] * Connect to the Wiki Replicas from Python * Run a query and extract information == Getting started == === Prerequisites === ==== Skills ==== * Basic knowledge of [[w:Python (programming language)|Python]] * Basic knowledge of [[w:Secure Shell|SSH]] * Basic knowledge of the [[w:Unix shell|Unix command line]] * Basic knowledge of [[w:Git|Git]] ==== Accounts ==== * [[Help:Toolforge/Quickstart|A Toolforge account]] == Step-by-step guide == === Step 1: Create a new tool account === # Follow the [[Help:Toolforge/Quickstart|Toolforge quickstart]] guide to create a Toolforge tool and SSH into Toolforge. #* For the examples in this tutorial, <code>sample-python-ptd-app</code> is used to indicate places where your unique tool name is used in another command. # Make sure to create a Git repository for the tool. You can get one like this: ## Log into the [https://toolsadmin.wikimedia.org/ Toolforge admin page]. ## Select your tool. ## On the left side panel, under <code>Git repositories</code>, click <code>create repository</code>. ## Copy the URL in the <code>Clone</code> section. ### There is a private URL that we will use to clone the repository locally, starting with <code>git</code>: <code>git@gitlab.wikimedia.org/toolforge-repos/sample-python-ptd-app.git</code> ### There is also a public URL that Toolforge will use to build the application, starting with <code>https</code>: <code>https://gitlab.wikimedia.org/toolforge-repos/sample-python-ptd-app.git</code> === Step 2: Create a basic Python Flask webservice === What is Flask? [[w:Flask (web framework)|Flask]] is a lightweight Python web framework that can be used to create web applications and APIs. ==== How to create a basic Python Flask webservice ==== '''Clone your tool Git repository''' You will have to clone the tool repository to be able to add code to it. On your local computer, with Git installed, run: {{Codesample|lang=shell-session|scheme=light|code= laptop:~$ git clone git@gitlab.wikimedia.org:toolforge-repos/sample-python-ptd-app.git laptop:~$ cd sample-python-ptd-app }} That will create a folder called <code>sample-python-ptd-app</code>. We are going to put the code in that folder. '''Add the Python dependencies''' {{Note|Use a file named <code>requirements.txt</code> to keep track of the Python dependencies required by the application.}} Create <code>requirements.txt</code>: {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ cat > requirements.txt << EOF Flask gunicorn PyMySQL EOF }} '''Create a "Hello World!" Python application''' Create a file named <code>app.py</code>: {{Codesample|lang=python|scheme=light|name=app.py|code= from flask import Flask app = Flask(__name__) @app.route("/") def index(): return "<p>Hello World!</p>" }} {{Note|Code on Toolforge must always be licensed under an [[w:Open-source license|Open Source Initiative (OSI) approved license]]. See [[Help:Toolforge/Right to fork policy|Right to fork policy]] for more information on this Toolforge policy.}} '''Create the Procfile''' The <code>Procfile</code> defines the command that the Build Service should use to start the web application. Create it with: {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ cat > Procfile << EOF web: gunicorn --bind 0.0.0.0:\$PORT app:app EOF }} The <code>web</code> entry defines the command used to start the Flask application. Gunicorn runs the application and listens on the port provided by Toolforge through the <code>PORT</code> environment variable. '''Create the Toolforge configuration file''' Create <code>toolforge.yaml</code>: The <code>source_url</code> specifies the source from which the tool configuration should be fetched. {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ cat > toolforge.yaml << EOF # yaml-language-server: \$schema=https://gitlab.wikimedia.org/repos/cloud/toolforge/components-api/-/raw/main/openapi/tool-config-schema.json source_url: https://gitlab.wikimedia.org/toolforge-repos/sample-python-ptd-app/-/raw/main/toolforge.yaml?ref_type=heads components: webservice: build: repository: https://gitlab.wikimedia.org/toolforge-repos/sample-python-ptd-app ref: main run: command: web publish: / port: 8000 EOF }} If you don't want your webservice to be reachable from the internet, remove the <code>publish</code> setting. If you are deploying a process without a port, you can remove <code>port</code> too. See [[Help:Toolforge/Deploy your tool|Deploy your tool]] for more information. '''Commit your changes and push''' {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ git add . laptop:~/sample-python-ptd-app$ git commit -m "First commit" laptop:~/sample-python-ptd-app$ git push origin main }} '''Initialize the tool configuration''' Now SSH to <code>login.toolforge.org</code> and become your tool: {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ ssh login.toolforge.org user@tools-sgebastion-XX:~$ become sample-python-ptd-app }} Create the tool configuration using the public copy of <code>toolforge.yaml</code>: {{Codesample|lang=shell-session|scheme=light|code= tools.sample-python-ptd-app@tools-sgebastion-XX:~$ curl 'https://gitlab.wikimedia.org/toolforge-repos/sample-python-ptd-app/-/raw/main/toolforge.yaml?ref_type=heads' {{!}} toolforge components config create }} You should see a message indicating that the configuration was updated successfully. {{Note|Push-to-Deploy is currently a beta feature of Toolforge, so the command may also display a warning indicating that you are using a beta feature.}} '''Create the first deployment''' Create a deployment: {{Codesample|lang=shell-session|scheme=light|code= tools.sample-python-ptd-app@tools-sgebastion-XX:~$ toolforge components deployment create }} Components API will build the application from your Git repository and deploy the webservice. {{Note|The repository in <code>toolforge.yaml</code> must be publicly accessible so that Toolforge can clone and build it.}} '''Wait for the deployment to finish''' Check the deployment status: {{Codesample|lang=shell-session|scheme=light|code= tools.sample-python-ptd-app@tools-sgebastion-XX:~$ toolforge components deployment show }} Wait for the deployment status to be <code>ok(Succeeded)</code>. Once the deployment has finished, navigate to: {{Codesample|lang=shell-session|scheme=light|code= https://sample-python-ptd-app.toolforge.org }} You should see: <syntaxhighlight lang="text"> Hello World! </syntaxhighlight> It might take a couple of minutes for the application to become reachable. '''Automate deployment on push''' You can follow [[Help:Toolforge/Deploy your tool#Automatically deploy on git push|this guide]] to configure and automate deployment of your tool whenever you push or merge changes to the main branch. ==== Connecting to the replicas ==== Toolforge provides database credentials to your application through environment variables. We will use these credentials to connect to the special <code>meta_p</code> database and retrieve the names of the available Wiki Replica databases. First, update <code>requirements.txt</code> if <code>PyMySQL</code> is not already present: <syntaxhighlight lang="text"> Flask gunicorn PyMySQL </syntaxhighlight> Now update <code>app.py</code>: {{Collapse top|Sample flask code}} {{Codesample|lang=python|scheme=light|name=app.py|code= from flask import Flask import os import pymysql app = Flask(__name__) def get_db_connection(): return pymysql.connect( host="meta.web.db.svc.wikimedia.cloud", user=os.environ["TOOL_REPLICA_USER"], password=os.environ["TOOL_REPLICA_PASSWORD"], database="meta_p", cursorclass=pymysql.cursors.DictCursor, ) def get_db_names(): connection = get_db_connection() try: with connection.cursor() as cursor: cursor.execute("SELECT dbname FROM wiki;") return cursor.fetchall() finally: connection.close() @app.route("/") def index(): databases = get_db_names() rows = "".join( f"<tr><td>{row['dbname']}</td></tr>" for row in databases ) return f""" <!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Database names</title> </head> <body> <p> Sample Python application accessing the <a href="https://wikitech.wikimedia.org/wiki/Help:Toolforge/Database"> Wiki Replicas </a> special <code>meta_p</code> database. </p> <table> <thead> <tr> <th>Database name</th> </tr> </thead> <tbody> {rows} </tbody> </table> </body> </html> """ }} {{Collapse bottom}} The application connects to <code>meta.web.db.svc.wikimedia.cloud</code> using the <code>TOOL_REPLICA_USER</code> and <code>TOOL_REPLICA_PASSWORD</code> environment variables provided by Toolforge. The query: {{Codesample|lang=sql|scheme=light|code= SELECT dbname FROM wiki; }} retrieves the database names from the special <code>meta_p</code> database. '''Commit, push, and redeploy''' Commit and push your changes: {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ git add . laptop:~/sample-python-ptd-app$ git commit -m "Query meta_p database" laptop:~/sample-python-ptd-app$ git push origin main }} Then create a new deployment: {{Codesample|lang=shell-session|scheme=light|code= laptop:~/sample-python-ptd-app$ ssh login.toolforge.org user@tools-sgebastion-XX:~$ become sample-python-ptd-app tools.sample-python-ptd-app@tools-sgebastion-XX:~$ toolforge components deployment create tools.sample-python-ptd-app@tools-sgebastion-XX:~$ toolforge components deployment show }} Wait for the deployment to finish and refresh the application in your browser. You should now see a list of Wiki Replica database names. == Configure Push-to-Deploy == To enable Push-to-Deploy, configure your Git repository's CI system to trigger a Components deployment whenever changes are pushed to the repository. The following is a minimal example for Wikimedia GitLab. For additional options and details, see [[Help:Toolforge/Deploy your tool#Triggering a deployment from your CI runner|Triggering a deployment from your CI runner]]. === Create a deploy token === While logged in as your tool account, create a deploy token: {{Codesample|lang=shell-session|scheme=light|code= $ toolforge components deploy-token create }} The command displays a token. Treat this token as a secret. Do not commit it to your repository. === Add the deploy token to GitLab === In your GitLab repository, go to: <code>Settings → CI/CD → Variables</code> Create a variable named: {{Codesample|lang=text|scheme=light|code= TOOLS_DEPLOY_TOKEN }} Set its value to the deploy token created in the previous step. For security, make the variable hidden, protected, and masked where appropriate. === Add a GitLab CI configuration === Create a <code>.gitlab-ci.yml</code> file in the repository containing: {{Codesample|lang=yaml|scheme=light|name=.gitlab-ci.yml|code= include: - project: "repos/cloud/cicd/gitlab-ci" file: "toolforge-cd/deploy-to-toolforge.yaml" }} The included Toolforge CI configuration handles triggering the Components deployment. This minimal configuration assumes that the GitLab project name and Toolforge tool name are the same. If they are different, or if you need to customize the deployment process, see [[Help:Toolforge/Deploy your tool#Triggering a deployment from your CI runner|Triggering a deployment from your CI runner]]. Commit and push <code>.gitlab-ci.yml</code> to the repository. When changes are pushed to the repository, GitLab CI will use the deploy token to trigger a Components deployment. At this point, Push-to-Deploy is configured. === Test Push-to-Deploy === After configuring your CI runner, make a small change to <code>app.py</code>. For example, change the title from `Database names` to `All Database Names: {{Codesample|lang=yaml|scheme=light|name=app.py|code= <title>All Database Names</title> }} Commit and push the change: {{Codesample|lang=shell-session|scheme=light|code= $ git add app.py $ git commit -m "Expand database name" $ git push }} Do not manually create a deployment. The push should trigger your CI runner, which creates a Components Service deployment automatically. Check your repository's CI pipeline and verify that it completes successfully. You can then inspect the deployment from Toolforge: {{Codesample|lang=shell-session|scheme=light|code= $ toolforge components deployment list }} If the deployment was triggered automatically and the new change was applied, Push-to-Deploy is working. ==== Notes ==== You can see the code used in this example in the <code>sample-python-ptd-app</code> repository. == Troubleshooting == See [[Help:Toolforge/Build Service#Troubleshooting|Toolforge Build Service troubleshooting]]. You can also inspect the status of your Push-to-Deploy deployments with the following: {{Codesample|lang=shell-session|scheme=light|code= toolforge components deployment list toolforge components deployment show toolforge jobs logs webservice #view logs }} == See also == * [[Help:Toolforge/Deploy your tool|Deploy your tool with Push-to-Deploy]] * [[Help:Toolforge/Build Service|Toolforge Build Service]] * [[Help:Toolforge/Database|Toolforge databases]] * [[Help:Toolforge/Quickstart|Toolforge quickstart]] * [[Help:Toolforge/My first PHP tool|My first PHP tool]] == Communication and support == Support and administration of the WMCS resources is provided by Wikimedia Foundation staff and Wikimedia movement volunteers. Please reach out with questions and join the conversation: '''Discuss and receive general support''' * Chat in real time in the [[Help:IRC|IRC channel]] <code>#wikimedia-cloud</code> or the bridged Telegram group. * Discuss via email after you have subscribed to the [[mail:cloud|cloud@]] mailing list. '''Stay aware of critical changes and plans''' * Subscribe to the [[mail:cloud-announce|cloud-announce@]] mailing list. Messages are also mirrored to the [[mail:cloud|cloud@]] list. '''Track work tasks and report bugs''' Use a subproject of the [[phab:tag/cloud-services/|Cloud-Services]] Phabricator project to track confirmed bug reports and feature requests about the Cloud Services infrastructure itself. {{:Help:Cloud Services communication}} [[Category:Toolforge]] [[Category:Tutorials|Python]] [[Category:How-to-guide|Python]] [[Category:Python]] 5bxfegsa8ji6m9jyato588m3sjj9krd SLO/LiftWing LLM 0 460789 2471841 2471828 2026-10-21T14:26:00Z GKyziridis-WMF 39160 Service and Teams section updated 2471841 wikitext text/x-wiki {{Draft}} ''This SLO is a draft. Targets are based on the load tests on the 96GB GPU partitions ({{phab|T440307}}).'' == Organizational == === Service === '''LiftWing LLM''' provides inference services for large language models hosted on [[Machine Learning/LiftWing|Lift Wing]] deployed in the llm namespace of the ml-serve Kubernetes cluster. Models are served using [https://docs.vllm.ai vLLM] through KServeLLMInferenceService and exposed publicly via the REST Gateway at <code>api.wikimedia.org</code>. Services covered by this SLO: * <code>llm-qwen3-14b</code> * <code>llm-qwen38-27b</code> See [[Machine Learning/LiftWing/Large Language Models]] for platform documentation. === Teams === * The Machine Learning (ML) team is responsible for the deployment, configuration, and maintenance of the LLM inference services. * Clients include public API users (via the REST Gateway), Hummingbird Chat (previously LiftWing Studio), and internal services. * The SRE team maintains the underlying ml-serve Kubernetes infrastructure, while the API Platform team is responsible for the REST Gateway. == Architectural == === Environmental dependencies === The service runs in the ml-serve-eqiad Kubernetes cluster on AMD MI300X GPUs. All the models run on 96GB partitions (ml-serve1013/1014). * [[Kubernetes/Clusters#ml-serve]]: This is a ''hard dependency'' as these Kubernetes nodes are the backbone of [[Machine Learning/LiftWing|LiftWing]], the platform where this service is deployed on. * Thanos [[Swift]] for the storage of model binaries: This is a soft dependency. We use swift as the [[Machine Learning/LiftWing#Model Storage|model-storage]] in LiftWing with an s3 compatible API to fetch a model to the pod during the initialization of a model service, so if Swift is not available the current services will not be affected but we may end up having issues with new releases in the case where a new version of the model needs to be deployed. === Service dependencies === '''Hard dependencies:''' * ml-serve Kubernetes clusters (Knative, Istio, KServe) * GPU nodes with available partitions '''Soft dependencies:''' * Thanos Swift — model weights * WMF Docker Registry — container images '''External traffic:''' * REST Gateway (<code>api.wikimedia.org</code>). If unavailable, internal clients can still reach the services via the internal endpoint (<code>inference.svc.eqiad.wmnet</code>). == Client-facing == === Who are the service’s clients? === Public API users through <code>api.wikimedia.org</code> (LiftWingLLM rate limit), LiftWing Studio and internal services. === Request classes === All requests use the OpenAI-compatible endpoints exposed by vLLM (<code>/v1/chat/completions</code>, <code>/v1/completions</code>). Requests are treated as a single class. Streaming and non-streaming requests are both counted for availability. Latency SLIs are token-based (see below), so output length does not affect them. == Service Level Indicators (SLIs) == A fixed end-to-end latency threshold doesn't work for generative models, because response time grows with the number of generated tokens. Latency is therefore split into two length-independent indicators: * '''Availability SLI:''' the percentage of all requests that receive a non-error (non-5xx) response. This is measured server-side at the Istio ingress gateway (<code>istio_requests_total</code>). * '''Queue time SLI:''' the percentage of requests that wait '''1 s''' or less in the vLLM queue before processing starts (<code>vllm:request_queue_time_seconds</code>). This measures if we have enough capacity. * '''Time per output token (TPOT) SLI:''' the percentage of successful requests whose mean time per output token is within '''100 ms''' (<code>vllm:request_time_per_output_token_seconds</code>). This measures generation (streaming) speed. TTFT is not used as an SLI because it depends on the prompt length, which is controlled by the client. == Operational == === Monitoring === LiftWing LLMs are monitored through several dashboards and alerts. '''Dashboards''' * Sloth SLO dashboards in Grafana (once the manifests are merged) * [https://grafana.wikimedia.org/d/dpzzsnh/ml-infra ML infra dashboard] with the vLLM metrics (requests running/waiting, queue time, TTFT, TPOT) '''Alerts''' * [[Machine Learning/LiftWing/Alerts#LiftWingServiceErrorRate|LiftWing Service Error Rate]]: fires when the rate of 5xx responses of a service goes above the threshold. * KubernetesDeploymentUnavailableReplicas: fires when a pod can't be scheduled or is not ready (e.g. no free GPU partition). === Troubleshooting === The ML team will be solely responsible for troubleshooting this service and no additional support from SREs is needed. Since most ML team engineers work similar hours, incidents occurring outside working hours may affect response times. ML inference services are manually deployed rather than automatically deployed. New LLM configs are usually tested first on a copy of the isvc in the experimental namespace, which means most deployment issues are caught before reaching production. Typical incidents involve pod crashes, pods stuck in Pending (no free GPU partition), GPU memory problems, or 5xx errors. When an isvc incident occurs, we examine relevant dashboards and logs to identify the root cause and determine whether it's a GPU/node issue, a networking issue or a model/inference service issue. See [[Machine Learning/LiftWing/Large Language Models]] for more details. The time needed for troubleshooting varies from hours to days, primarily based on our familiarity with the issue. However, we typically decide on our response (such as a quick fix, restarting the service or moving it to another partition) within a few hours to immediately mitigate the issue and minimize error budget burn. === Deployment === LiftWing LLMs are deployed on Kubernetes with helmfile (<code>helmfile.d/ml-services/llm</code> in <code>operations/deployment-charts</code>). Changes to the inference services involve two steps: 1) CI builds a new production image, and 2) the deployment chart is updated with the new image and synced to update the isvc. For service-level configuration changes (vLLM settings like <code>MAX_NUM_SEQS</code>, resource allocation, etc.), only a helmfile change and sync are needed to update the isvc. The time needed for deployment includes code review, patch merging, helmfile updates, and syncing, typically takes less than 1 hour. A new pod needs a few minutes to load the model. == Service level objectives == === Realistic targets === We ran vllm-bench against a copy of each model in the experimental namespace (1 replica, 96GB partition, 1024 input / 128 output tokens). Results are in {{phab|T440307}}. {| class="wikitable" ! Model !! MAX_NUM_SEQS / MAX_NUM_BATCHED_TOKENS !! Concurrent requests per replica !! TPOT p90 !! Queue time ≤ 1 s !! req/s |- | llm-qwen3-14b || 32 / 8192 || 32 || 32 ms || 100% || 7.3 |- | llm-qwen38-27b || 16 / 8192 || 16 || 67 ms || 100% || 2.2 |} Above these limits the extra requests wait in the queue, so the queue time target holds only while the load stays within capacity. For qwen38-27b, <code>MAX_NUM_SEQS=32</code> did not meet the TPOT target, so we lowered it to 16 (not in production yet). * Availability: 95% * TPOT: 90% of requests within 100 ms * Queue time: 90% of requests within 1 s === Ideal targets === * Availability: 99% * TPOT: 99% of requests within 100 ms * Queue time: 99% of requests within 1 s === Reconciliation === * '''Service Availability (95%)''' matches the other Lift Wing SLOs. Client errors should return 4xx instead of 5xx first ({{phab|T439967}}). * '''TPOT (90% within 100 ms)''' and '''Queue time (90% within 1 s)''' per model, based on the tests above. d9yc2luyqnp3c97nfztqrrw4xlw0c8u 2471958 2471841 2026-10-22T09:26:53Z GKyziridis-WMF 39160 Remove Knative from hard dependencies 2471958 wikitext text/x-wiki {{Draft}} ''This SLO is a draft. Targets are based on the load tests on the 96GB GPU partitions ({{phab|T440307}}).'' == Organizational == === Service === '''LiftWing LLM''' provides inference services for large language models hosted on [[Machine Learning/LiftWing|Lift Wing]] deployed in the llm namespace of the ml-serve Kubernetes cluster. Models are served using [https://docs.vllm.ai vLLM] through KServeLLMInferenceService and exposed publicly via the REST Gateway at <code>api.wikimedia.org</code>. Services covered by this SLO: * <code>llm-qwen3-14b</code> * <code>llm-qwen38-27b</code> See [[Machine Learning/LiftWing/Large Language Models]] for platform documentation. === Teams === * The Machine Learning (ML) team is responsible for the deployment, configuration, and maintenance of the LLM inference services. * Clients include public API users (via the REST Gateway), Hummingbird Chat (previously LiftWing Studio), and internal services. * The SRE team maintains the underlying ml-serve Kubernetes infrastructure, while the API Platform team is responsible for the REST Gateway. == Architectural == === Environmental dependencies === The service runs in the ml-serve-eqiad Kubernetes cluster on AMD MI300X GPUs. All the models run on 96GB partitions (ml-serve1013/1014). * [[Kubernetes/Clusters#ml-serve]]: This is a ''hard dependency'' as these Kubernetes nodes are the backbone of [[Machine Learning/LiftWing|LiftWing]], the platform where this service is deployed on. * Thanos [[Swift]] for the storage of model binaries: This is a soft dependency. We use swift as the [[Machine Learning/LiftWing#Model Storage|model-storage]] in LiftWing with an s3 compatible API to fetch a model to the pod during the initialization of a model service, so if Swift is not available the current services will not be affected but we may end up having issues with new releases in the case where a new version of the model needs to be deployed. === Service dependencies === '''Hard dependencies:''' * ml-serve Kubernetes clusters (KServe, Istio ingress gateway) * GPU nodes with available partitions '''Soft dependencies:''' * Thanos Swift — model weights * WMF Docker Registry — container images '''External traffic:''' * REST Gateway (<code>api.wikimedia.org</code>). If unavailable, internal clients can still reach the services via the internal endpoint (<code>inference.svc.eqiad.wmnet</code>). == Client-facing == === Who are the service’s clients? === Public API users through <code>api.wikimedia.org</code> (LiftWingLLM rate limit), LiftWing Studio and internal services. === Request classes === All requests use the OpenAI-compatible endpoints exposed by vLLM (<code>/v1/chat/completions</code>, <code>/v1/completions</code>). Requests are treated as a single class. Streaming and non-streaming requests are both counted for availability. Latency SLIs are token-based (see below), so output length does not affect them. == Service Level Indicators (SLIs) == A fixed end-to-end latency threshold doesn't work for generative models, because response time grows with the number of generated tokens. Latency is therefore split into two length-independent indicators: * '''Availability SLI:''' the percentage of all requests that receive a non-error (non-5xx) response. This is measured server-side at the Istio ingress gateway (<code>istio_requests_total</code>). * '''Queue time SLI:''' the percentage of requests that wait '''1 s''' or less in the vLLM queue before processing starts (<code>vllm:request_queue_time_seconds</code>). This measures if we have enough capacity. * '''Time per output token (TPOT) SLI:''' the percentage of successful requests whose mean time per output token is within '''100 ms''' (<code>vllm:request_time_per_output_token_seconds</code>). This measures generation (streaming) speed. TTFT is not used as an SLI because it depends on the prompt length, which is controlled by the client. == Operational == === Monitoring === LiftWing LLMs are monitored through several dashboards and alerts. '''Dashboards''' * Sloth SLO dashboards in Grafana (once the manifests are merged) * [https://grafana.wikimedia.org/d/dpzzsnh/ml-infra ML infra dashboard] with the vLLM metrics (requests running/waiting, queue time, TTFT, TPOT) '''Alerts''' * [[Machine Learning/LiftWing/Alerts#LiftWingServiceErrorRate|LiftWing Service Error Rate]]: fires when the rate of 5xx responses of a service goes above the threshold. * KubernetesDeploymentUnavailableReplicas: fires when a pod can't be scheduled or is not ready (e.g. no free GPU partition). === Troubleshooting === The ML team will be solely responsible for troubleshooting this service and no additional support from SREs is needed. Since most ML team engineers work similar hours, incidents occurring outside working hours may affect response times. ML inference services are manually deployed rather than automatically deployed. New LLM configs are usually tested first on a copy of the isvc in the experimental namespace, which means most deployment issues are caught before reaching production. Typical incidents involve pod crashes, pods stuck in Pending (no free GPU partition), GPU memory problems, or 5xx errors. When an isvc incident occurs, we examine relevant dashboards and logs to identify the root cause and determine whether it's a GPU/node issue, a networking issue or a model/inference service issue. See [[Machine Learning/LiftWing/Large Language Models]] for more details. The time needed for troubleshooting varies from hours to days, primarily based on our familiarity with the issue. However, we typically decide on our response (such as a quick fix, restarting the service or moving it to another partition) within a few hours to immediately mitigate the issue and minimize error budget burn. === Deployment === LiftWing LLMs are deployed on Kubernetes with helmfile (<code>helmfile.d/ml-services/llm</code> in <code>operations/deployment-charts</code>). Changes to the inference services involve two steps: 1) CI builds a new production image, and 2) the deployment chart is updated with the new image and synced to update the isvc. For service-level configuration changes (vLLM settings like <code>MAX_NUM_SEQS</code>, resource allocation, etc.), only a helmfile change and sync are needed to update the isvc. The time needed for deployment includes code review, patch merging, helmfile updates, and syncing, typically takes less than 1 hour. A new pod needs a few minutes to load the model. == Service level objectives == === Realistic targets === We ran vllm-bench against a copy of each model in the experimental namespace (1 replica, 96GB partition, 1024 input / 128 output tokens). Results are in {{phab|T440307}}. {| class="wikitable" ! Model !! MAX_NUM_SEQS / MAX_NUM_BATCHED_TOKENS !! Concurrent requests per replica !! TPOT p90 !! Queue time ≤ 1 s !! req/s |- | llm-qwen3-14b || 32 / 8192 || 32 || 32 ms || 100% || 7.3 |- | llm-qwen38-27b || 16 / 8192 || 16 || 67 ms || 100% || 2.2 |} Above these limits the extra requests wait in the queue, so the queue time target holds only while the load stays within capacity. For qwen38-27b, <code>MAX_NUM_SEQS=32</code> did not meet the TPOT target, so we lowered it to 16 (not in production yet). * Availability: 95% * TPOT: 90% of requests within 100 ms * Queue time: 90% of requests within 1 s === Ideal targets === * Availability: 99% * TPOT: 99% of requests within 100 ms * Queue time: 99% of requests within 1 s === Reconciliation === * '''Service Availability (95%)''' matches the other Lift Wing SLOs. Client errors should return 4xx instead of 5xx first ({{phab|T439967}}). * '''TPOT (90% within 100 ms)''' and '''Queue time (90% within 1 s)''' per model, based on the tests above. 1xnry2v5hmv5v9fcqzary4vb2i9u11h 2471960 2471958 2026-10-22T09:35:48Z GKyziridis-WMF 39160 Fix troobleshooting 2471960 wikitext text/x-wiki {{Draft}} ''This SLO is a draft. Targets are based on the load tests on the 96GB GPU partitions ({{phab|T440307}}).'' == Organizational == === Service === '''LiftWing LLM''' provides inference services for large language models hosted on [[Machine Learning/LiftWing|Lift Wing]] deployed in the llm namespace of the ml-serve Kubernetes cluster. Models are served using [https://docs.vllm.ai vLLM] through KServeLLMInferenceService and exposed publicly via the REST Gateway at <code>api.wikimedia.org</code>. Services covered by this SLO: * <code>llm-qwen3-14b</code> * <code>llm-qwen38-27b</code> See [[Machine Learning/LiftWing/Large Language Models]] for platform documentation. === Teams === * The Machine Learning (ML) team is responsible for the deployment, configuration, and maintenance of the LLM inference services. * Clients include public API users (via the REST Gateway), Hummingbird Chat (previously LiftWing Studio), and internal services. * The SRE team maintains the underlying ml-serve Kubernetes infrastructure, while the API Platform team is responsible for the REST Gateway. == Architectural == === Environmental dependencies === The service runs in the ml-serve-eqiad Kubernetes cluster on AMD MI300X GPUs. All the models run on 96GB partitions (ml-serve1013/1014). * [[Kubernetes/Clusters#ml-serve]]: This is a ''hard dependency'' as these Kubernetes nodes are the backbone of [[Machine Learning/LiftWing|LiftWing]], the platform where this service is deployed on. * Thanos [[Swift]] for the storage of model binaries: This is a soft dependency. We use swift as the [[Machine Learning/LiftWing#Model Storage|model-storage]] in LiftWing with an s3 compatible API to fetch a model to the pod during the initialization of a model service, so if Swift is not available the current services will not be affected but we may end up having issues with new releases in the case where a new version of the model needs to be deployed. === Service dependencies === '''Hard dependencies:''' * ml-serve Kubernetes clusters (KServe, Istio ingress gateway) * GPU nodes with available partitions '''Soft dependencies:''' * Thanos Swift — model weights * WMF Docker Registry — container images '''External traffic:''' * REST Gateway (<code>api.wikimedia.org</code>). If unavailable, internal clients can still reach the services via the internal endpoint (<code>inference.svc.eqiad.wmnet</code>). == Client-facing == === Who are the service’s clients? === Public API users through <code>api.wikimedia.org</code> (LiftWingLLM rate limit), LiftWing Studio and internal services. === Request classes === All requests use the OpenAI-compatible endpoints exposed by vLLM (<code>/v1/chat/completions</code>, <code>/v1/completions</code>). Requests are treated as a single class. Streaming and non-streaming requests are both counted for availability. Latency SLIs are token-based (see below), so output length does not affect them. == Service Level Indicators (SLIs) == A fixed end-to-end latency threshold doesn't work for generative models, because response time grows with the number of generated tokens. Latency is therefore split into two length-independent indicators: * '''Availability SLI:''' the percentage of all requests that receive a non-error (non-5xx) response. This is measured server-side at the Istio ingress gateway (<code>istio_requests_total</code>). * '''Queue time SLI:''' the percentage of requests that wait '''1 s''' or less in the vLLM queue before processing starts (<code>vllm:request_queue_time_seconds</code>). This measures if we have enough capacity. * '''Time per output token (TPOT) SLI:''' the percentage of successful requests whose mean time per output token is within '''100 ms''' (<code>vllm:request_time_per_output_token_seconds</code>). This measures generation (streaming) speed. TTFT is not used as an SLI because it depends on the prompt length, which is controlled by the client. == Operational == === Monitoring === LiftWing LLMs are monitored through several dashboards and alerts. '''Dashboards''' * Sloth SLO dashboards in Grafana (once the manifests are merged) * [https://grafana.wikimedia.org/d/dpzzsnh/ml-infra ML infra dashboard] with the vLLM metrics (requests running/waiting, queue time, TTFT, TPOT) '''Alerts''' * [[Machine Learning/LiftWing/Alerts#LiftWingServiceErrorRate|LiftWing Service Error Rate]]: fires when the rate of 5xx responses of a service goes above the threshold. * KubernetesDeploymentUnavailableReplicas: fires when a pod can't be scheduled or is not ready (e.g. no free GPU partition). === Troubleshooting === The ML team will be solely responsible for troubleshooting this service. Since most ML team engineers work similar hours, incidents occurring outside working hours may affect response times. ML inference services are manually deployed rather than automatically deployed. New LLM configs are usually tested first on a copy of the isvc in the experimental namespace, which means most deployment issues are caught before reaching production. Typical incidents involve pod crashes, pods stuck in Pending (no free GPU partition), GPU memory problems, or 5xx errors. When an isvc incident occurs, we examine relevant dashboards and logs to identify the root cause and determine whether it's a GPU/node issue, a networking issue or a model/inference service issue. See [[Machine Learning/LiftWing/Large Language Models]] for more details. The time needed for troubleshooting varies from hours to days, primarily based on our familiarity with the issue. However, we typically decide on our response (such as a quick fix, restarting the service or moving it to another partition) within a few hours to immediately mitigate the issue and minimize error budget burn. === Deployment === LiftWing LLM inference services are deployed using Helmfile. Configuration changes (e.g. vLLM settings or resource allocation) only require updating and syncing the deployment chart. Updating the vLLM version requires building a new vLLM image in production-images and updating the image version in the chart. == Service level objectives == === Realistic targets === We ran vllm-bench against a copy of each model in the experimental namespace (1 replica, 96GB partition, 1024 input / 128 output tokens). Results are in {{phab|T440307}}. {| class="wikitable" ! Model !! MAX_NUM_SEQS / MAX_NUM_BATCHED_TOKENS !! Concurrent requests per replica !! TPOT p90 !! Queue time ≤ 1 s !! req/s |- | llm-qwen3-14b || 32 / 8192 || 32 || 32 ms || 100% || 7.3 |- | llm-qwen38-27b || 16 / 8192 || 16 || 67 ms || 100% || 2.2 |} Above these limits the extra requests wait in the queue, so the queue time target holds only while the load stays within capacity. For qwen38-27b, <code>MAX_NUM_SEQS=32</code> did not meet the TPOT target, so we lowered it to 16 (not in production yet). * Availability: 95% * TPOT: 90% of requests within 100 ms * Queue time: 90% of requests within 1 s === Ideal targets === * Availability: 99% * TPOT: 99% of requests within 100 ms * Queue time: 99% of requests within 1 s === Reconciliation === * '''Service Availability (95%)''' matches the other Lift Wing SLOs. Client errors should return 4xx instead of 5xx first ({{phab|T439967}}). * '''TPOT (90% within 100 ms)''' and '''Queue time (90% within 1 s)''' per model, based on the tests above. jvlfosyg25vqtip7op0i5je6ckk06x2 2471961 2471960 2026-10-22T09:47:02Z GKyziridis-WMF 39160 Incorporate all comments from reviewer from Deployment to reconciliation. 2471961 wikitext text/x-wiki {{Draft}} ''This SLO is a draft. Targets are based on the load tests on the 96GB GPU partitions ({{phab|T440307}}).'' == Organizational == === Service === '''LiftWing LLM''' provides inference services for large language models hosted on [[Machine Learning/LiftWing|Lift Wing]] deployed in the llm namespace of the ml-serve Kubernetes cluster. Models are served using [https://docs.vllm.ai vLLM] through KServe LLM Inference-Service and exposed publicly via the REST Gateway at <code>api.wikimedia.org</code>. Services covered by this SLO: * <code>llm-qwen3-14b</code> * <code>llm-qwen38-27b</code> See [[Machine Learning/LiftWing/Large Language Models]] for platform documentation. === Teams === * The Machine Learning (ML) team is responsible for the deployment, configuration, and maintenance of the LLM inference services. * Clients include public API users (via the REST Gateway), Hummingbird Chat (previously LiftWing Studio), and internal services. * The SRE team maintains the underlying ml-serve Kubernetes infrastructure, while the API Platform team is responsible for the REST Gateway. == Architectural == === Environmental dependencies === The service runs in the ml-serve-eqiad Kubernetes cluster on AMD MI300X GPUs. All the models run on 96GB partitions (ml-serve1013/1014). * [[Kubernetes/Clusters#ml-serve]]: This is a ''hard dependency'' as these Kubernetes nodes are the backbone of [[Machine Learning/LiftWing|LiftWing]], the platform where this service is deployed on. * Thanos [[Swift]] for the storage of model binaries: This is a soft dependency. We use swift as the [[Machine Learning/LiftWing#Model Storage|model-storage]] in LiftWing with an s3 compatible API to fetch a model to the pod during the initialization of a model service, so if Swift is not available the current services will not be affected but we may end up having issues with new releases in the case where a new version of the model needs to be deployed. === Service dependencies === '''Hard dependencies:''' * ml-serve Kubernetes clusters (KServe, Istio ingress gateway) * GPU nodes with available partitions '''Soft dependencies:''' * Thanos Swift — model weights * WMF Docker Registry — container images '''External traffic:''' * REST Gateway (<code>api.wikimedia.org</code>). If unavailable, internal clients can still reach the services via the internal endpoint (<code>inference.svc.eqiad.wmnet</code>). == Client-facing == === Who are the service’s clients? === Public API users through <code>api.wikimedia.org</code> (LiftWingLLM rate limit), LiftWing Studio and internal services. === Request classes === All requests use the OpenAI-compatible endpoints exposed by vLLM (<code>/v1/chat/completions</code>, <code>/v1/completions</code>). Requests are treated as a single class. Streaming and non-streaming requests are both counted for availability. == Service Level Indicators (SLIs) == A fixed end-to-end latency threshold is challenging for generative models, as response time depends on the number of generated tokens. We use two latency SLIs: '''queue time''' to measure request waiting time and '''TPOT''' to measure token generation speed. * '''Availability SLI:''' the percentage of all requests that receive a non-error (non-5xx) response. This is measured server-side at the Istio ingress gateway (<code>istio_requests_total</code>). * '''Queue time SLI:''' the percentage of requests that wait '''1 s''' or less in the vLLM queue before processing starts (<code>vllm:request_queue_time_seconds</code>). This measures if we have enough capacity. * '''Time per output token (TPOT) SLI:''' the percentage of successful requests whose mean time per output token is within '''100 ms''' (<code>vllm:request_time_per_output_token_seconds</code>). This measures generation (streaming) speed. '''Queue time''' is used instead of '''TTFT''' as the initial latency SLI because it more directly reflects serving capacity and overload. TTFT also includes prefill time, which depends heavily on client-controlled prompt length. We will continue monitoring TTFT as a user-facing latency metric. == Operational == === Monitoring === LiftWing LLMs are monitored through several dashboards and alerts. '''Dashboards''' * Sloth SLO dashboards in Grafana (once the manifests are merged) * [https://grafana.wikimedia.org/d/dpzzsnh/ml-infra ML infra dashboard] with the vLLM metrics (requests running/waiting, queue time, TTFT, TPOT) '''Alerts''' * [[Machine Learning/LiftWing/Alerts#LiftWingServiceErrorRate|LiftWing Service Error Rate]]: fires when the rate of 5xx responses of a service goes above the threshold. * KubernetesDeploymentUnavailableReplicas: fires when a pod can't be scheduled or is not ready (e.g. no free GPU partition). === Troubleshooting === The ML team will be solely responsible for troubleshooting this service. Since most ML team engineers work similar hours, incidents occurring outside working hours may affect response times. ML inference services are manually deployed rather than automatically deployed. New LLM configs are usually tested first on a copy of the isvc in the experimental namespace, which means most deployment issues are caught before reaching production. Typical incidents involve pod crashes, pods stuck in Pending (no free GPU partition), GPU memory problems, or 5xx errors. When an isvc incident occurs, we examine relevant dashboards and logs to identify the root cause and determine whether it's a GPU/node issue, a networking issue or a model/inference service issue. See [[Machine Learning/LiftWing/Large Language Models]] for more details. The time needed for troubleshooting varies from hours to days, primarily based on our familiarity with the issue. However, we typically decide on our response (such as a quick fix, restarting the service or moving it to another partition) within a few hours to immediately mitigate the issue and minimize error budget burn. === Deployment === LiftWing LLM inference services are deployed using Helmfile. Configuration changes (e.g. vLLM settings or resource allocation) only require updating and syncing the deployment chart. Updating the vLLM version requires building a new vLLM image in production-images and updating the image version in the chart. == Service level objectives == === Realistic targets === We ran vllm-bench against a copy of each model in the experimental namespace (1 replica, 96GB partition, 1024 input / 128 output tokens). Results are in {{phab|T440307}}. {| class="wikitable" ! Model !! MAX_NUM_SEQS / MAX_NUM_BATCHED_TOKENS !! Concurrent requests per replica !! TPOT p90 !! Queue time ≤ 1 s !! req/s |- | llm-qwen3-14b || 32 / 8192 || 32 || 32 ms || 100% || 7.3 |- | llm-qwen38-27b || 16 / 8192 || 16 || 67 ms || 100% || 2.2 |} Above these limits the extra requests wait in the queue, so the queue time target holds only while the load stays within capacity. For qwen38-27b, <code>MAX_NUM_SEQS=32</code> did not meet the TPOT target, so we lowered it to 16 (not in production yet). * Availability: 95% * TPOT: 90% of requests within 100 ms * Queue time: 90% of requests within 1 s === Ideal targets === These are initial estimates of the service quality we'd ideally like to provide to clients, subject to further discussion and validation. * Availability: 99% * TPOT: 99% of requests within 100 ms * Queue time: 99% of requests within 1 s === Reconciliation === Given our current serving capacity and limited production traffic data, we propose starting with the realistic targets and revisiting them as we gather more operational experience. Proposed initial SLOs: * '''Availability:''' ≥ 95% of requests receive non-5xx responses. Client errors should return 4xx instead of 5xx first ({{phab|T439967}}). * '''TPOT:''' ≥ 90% of successful requests have mean TPOT ≤100ms. * '''Queue time:''' ≥ 90% of requests spend ≤1s in the queue. 7bajf79xn8k28az5bsczr19o6o5tfnr 2471963 2471961 2026-10-22T09:52:29Z GKyziridis-WMF 39160 Remove the phab-task from reconciliation 2471963 wikitext text/x-wiki {{Draft}} ''This SLO is a draft. Targets are based on the load tests on the 96GB GPU partitions ({{phab|T440307}}).'' == Organizational == === Service === '''LiftWing LLM''' provides inference services for large language models hosted on [[Machine Learning/LiftWing|Lift Wing]] deployed in the llm namespace of the ml-serve Kubernetes cluster. Models are served using [https://docs.vllm.ai vLLM] through KServe LLM Inference-Service and exposed publicly via the REST Gateway at <code>api.wikimedia.org</code>. Services covered by this SLO: * <code>llm-qwen3-14b</code> * <code>llm-qwen38-27b</code> See [[Machine Learning/LiftWing/Large Language Models]] for platform documentation. === Teams === * The Machine Learning (ML) team is responsible for the deployment, configuration, and maintenance of the LLM inference services. * Clients include public API users (via the REST Gateway), Hummingbird Chat (previously LiftWing Studio), and internal services. * The SRE team maintains the underlying ml-serve Kubernetes infrastructure, while the API Platform team is responsible for the REST Gateway. == Architectural == === Environmental dependencies === The service runs in the ml-serve-eqiad Kubernetes cluster on AMD MI300X GPUs. All the models run on 96GB partitions (ml-serve1013/1014). * [[Kubernetes/Clusters#ml-serve]]: This is a ''hard dependency'' as these Kubernetes nodes are the backbone of [[Machine Learning/LiftWing|LiftWing]], the platform where this service is deployed on. * Thanos [[Swift]] for the storage of model binaries: This is a soft dependency. We use swift as the [[Machine Learning/LiftWing#Model Storage|model-storage]] in LiftWing with an s3 compatible API to fetch a model to the pod during the initialization of a model service, so if Swift is not available the current services will not be affected but we may end up having issues with new releases in the case where a new version of the model needs to be deployed. === Service dependencies === '''Hard dependencies:''' * ml-serve Kubernetes clusters (KServe, Istio ingress gateway) * GPU nodes with available partitions '''Soft dependencies:''' * Thanos Swift — model weights * WMF Docker Registry — container images '''External traffic:''' * REST Gateway (<code>api.wikimedia.org</code>). If unavailable, internal clients can still reach the services via the internal endpoint (<code>inference.svc.eqiad.wmnet</code>). == Client-facing == === Who are the service’s clients? === Public API users through <code>api.wikimedia.org</code> (LiftWingLLM rate limit), LiftWing Studio and internal services. === Request classes === All requests use the OpenAI-compatible endpoints exposed by vLLM (<code>/v1/chat/completions</code>, <code>/v1/completions</code>). Requests are treated as a single class. Streaming and non-streaming requests are both counted for availability. == Service Level Indicators (SLIs) == A fixed end-to-end latency threshold is challenging for generative models, as response time depends on the number of generated tokens. We use two latency SLIs: '''queue time''' to measure request waiting time and '''TPOT''' to measure token generation speed. * '''Availability SLI:''' the percentage of all requests that receive a non-error (non-5xx) response. This is measured server-side at the Istio ingress gateway (<code>istio_requests_total</code>). * '''Queue time SLI:''' the percentage of requests that wait '''1 s''' or less in the vLLM queue before processing starts (<code>vllm:request_queue_time_seconds</code>). This measures if we have enough capacity. * '''Time per output token (TPOT) SLI:''' the percentage of successful requests whose mean time per output token is within '''100 ms''' (<code>vllm:request_time_per_output_token_seconds</code>). This measures generation (streaming) speed. '''Queue time''' is used instead of '''TTFT''' as the initial latency SLI because it more directly reflects serving capacity and overload. TTFT also includes prefill time, which depends heavily on client-controlled prompt length. We will continue monitoring TTFT as a user-facing latency metric. == Operational == === Monitoring === LiftWing LLMs are monitored through several dashboards and alerts. '''Dashboards''' * Sloth SLO dashboards in Grafana (once the manifests are merged) * [https://grafana.wikimedia.org/d/dpzzsnh/ml-infra ML infra dashboard] with the vLLM metrics (requests running/waiting, queue time, TTFT, TPOT) '''Alerts''' * [[Machine Learning/LiftWing/Alerts#LiftWingServiceErrorRate|LiftWing Service Error Rate]]: fires when the rate of 5xx responses of a service goes above the threshold. * KubernetesDeploymentUnavailableReplicas: fires when a pod can't be scheduled or is not ready (e.g. no free GPU partition). === Troubleshooting === The ML team will be solely responsible for troubleshooting this service. Since most ML team engineers work similar hours, incidents occurring outside working hours may affect response times. ML inference services are manually deployed rather than automatically deployed. New LLM configs are usually tested first on a copy of the isvc in the experimental namespace, which means most deployment issues are caught before reaching production. Typical incidents involve pod crashes, pods stuck in Pending (no free GPU partition), GPU memory problems, or 5xx errors. When an isvc incident occurs, we examine relevant dashboards and logs to identify the root cause and determine whether it's a GPU/node issue, a networking issue or a model/inference service issue. See [[Machine Learning/LiftWing/Large Language Models]] for more details. The time needed for troubleshooting varies from hours to days, primarily based on our familiarity with the issue. However, we typically decide on our response (such as a quick fix, restarting the service or moving it to another partition) within a few hours to immediately mitigate the issue and minimize error budget burn. === Deployment === LiftWing LLM inference services are deployed using Helmfile. Configuration changes (e.g. vLLM settings or resource allocation) only require updating and syncing the deployment chart. Updating the vLLM version requires building a new vLLM image in production-images and updating the image version in the chart. == Service level objectives == === Realistic targets === We ran vllm-bench against a copy of each model in the experimental namespace (1 replica, 96GB partition, 1024 input / 128 output tokens). Results are in {{phab|T440307}}. {| class="wikitable" ! Model !! MAX_NUM_SEQS / MAX_NUM_BATCHED_TOKENS !! Concurrent requests per replica !! TPOT p90 !! Queue time ≤ 1 s !! req/s |- | llm-qwen3-14b || 32 / 8192 || 32 || 32 ms || 100% || 7.3 |- | llm-qwen38-27b || 16 / 8192 || 16 || 67 ms || 100% || 2.2 |} Above these limits the extra requests wait in the queue, so the queue time target holds only while the load stays within capacity. For qwen38-27b, <code>MAX_NUM_SEQS=32</code> did not meet the TPOT target, so we lowered it to 16 (not in production yet). * Availability: 95% * TPOT: 90% of requests within 100 ms * Queue time: 90% of requests within 1 s === Ideal targets === These are initial estimates of the service quality we'd ideally like to provide to clients, subject to further discussion and validation. * Availability: 99% * TPOT: 99% of requests within 100 ms * Queue time: 99% of requests within 1 s === Reconciliation === Given our current serving capacity and limited production traffic data, we propose starting with the realistic targets and revisiting them as we gather more operational experience. Proposed initial SLOs: * '''Availability:''' ≥ 95% of requests receive non-5xx responses. Client errors should return 4xx instead of 5xx first. * '''TPOT:''' ≥ 90% of successful requests have mean TPOT ≤100ms. * '''Queue time:''' ≥ 90% of requests spend ≤1s in the queue. ka94ua8uiome8lubnszsrjct4feit6q 2471966 2471963 2026-10-22T09:56:53Z GKyziridis-WMF 39160 2471966 wikitext text/x-wiki {{Draft}} ''This SLO is a draft. Targets are based on the load tests on the 96GB GPU partitions ({{phab|T440307}}).'' == Organizational == === Service === '''LiftWing LLM''' provides inference services for large language models hosted on [[Machine Learning/LiftWing|Lift Wing]] deployed in the llm namespace of the ml-serve Kubernetes cluster. Models are served using [https://docs.vllm.ai vLLM] through KServe LLM Inference-Service and exposed publicly via the REST Gateway at <code>api.wikimedia.org</code>. Services covered by this SLO: * <code>llm-qwen3-14b</code> * <code>llm-qwen38-27b</code> See [[Machine Learning/LiftWing/Large Language Models]] for platform documentation. === Teams === * The Machine Learning (ML) team is responsible for the deployment, configuration, and maintenance of the LLM inference services. * Clients include public API users (via the REST Gateway), Hummingbird Chat (previously LiftWing Studio), and internal services. * The SRE team maintains the underlying ml-serve Kubernetes infrastructure, while the API Platform team is responsible for the REST Gateway. == Architectural == === Environmental dependencies === The service runs in the ml-serve-eqiad Kubernetes cluster on AMD MI300X GPUs. All the models run on 96GB partitions (ml-serve1013/1014). * [[Kubernetes/Clusters#ml-serve]]: This is a ''hard dependency'' as these Kubernetes nodes are the backbone of [[Machine Learning/LiftWing|LiftWing]], the platform where this service is deployed on. * Thanos [[Swift]] for the storage of model binaries: This is a soft dependency. We use swift as the [[Machine Learning/LiftWing#Model Storage|model-storage]] in LiftWing with an s3 compatible API to fetch a model to the pod during the initialization of a model service, so if Swift is not available the current services will not be affected but we may end up having issues with new releases in the case where a new version of the model needs to be deployed. === Service dependencies === '''Hard dependencies:''' * ml-serve Kubernetes clusters (KServe, Istio ingress gateway) * GPU nodes with available partitions '''Soft dependencies:''' * Thanos Swift — model weights * WMF Docker Registry — container images '''External traffic:''' * REST Gateway (<code>api.wikimedia.org</code>). If unavailable, internal clients can still reach the services via the internal endpoint (<code>inference.svc.eqiad.wmnet</code>). == Client-facing == === Who are the service’s clients? === Public API users through <code>api.wikimedia.org</code> (LiftWingLLM rate limit), LiftWing Studio and internal services. === Request classes === All requests use the OpenAI-compatible endpoints exposed by vLLM (<code>/v1/chat/completions</code>, <code>/v1/completions</code>). Requests are treated as a single class. Streaming and non-streaming requests are both counted for availability. == Service Level Indicators (SLIs) == A fixed end-to-end latency threshold is challenging for generative models, as response time depends on the number of generated tokens. We use two latency SLIs: '''queue time''' to measure request waiting time and '''TPOT''' to measure token generation speed. * '''Availability SLI:''' the percentage of all requests that receive a non-error (non-5xx) response. This is measured server-side at the Istio ingress gateway (<code>istio_requests_total</code>). * '''Queue time SLI:''' the percentage of requests that wait '''1 s''' or less in the vLLM queue before processing starts (<code>vllm:request_queue_time_seconds</code>). This measures if we have enough capacity. * '''Time per output token (TPOT) SLI:''' the percentage of successful requests whose mean time per output token is within '''100 ms''' (<code>vllm:request_time_per_output_token_seconds</code>). This measures generation (streaming) speed. '''Queue time''' is used instead of '''TTFT''' as the initial latency SLI because it more directly reflects serving capacity and overload. TTFT also includes prefill time, which depends heavily on client-controlled prompt length. We will continue monitoring TTFT as a user-facing latency metric. == Operational == === Monitoring === LiftWing LLMs are monitored through several dashboards and alerts. '''Dashboards''' * Sloth SLO dashboards in Grafana (once the manifests are merged) * [https://grafana.wikimedia.org/d/dpzzsnh/ml-infra ML infra dashboard] with the vLLM metrics (requests running/waiting, queue time, TTFT, TPOT) '''Alerts''' * [[Machine Learning/LiftWing/Alerts#LiftWingServiceErrorRate|LiftWing Service Error Rate]]: fires when the rate of 5xx responses of a service goes above the threshold. * KubernetesDeploymentUnavailableReplicas: fires when a pod can't be scheduled or is not ready (e.g. no free GPU partition). === Troubleshooting === The ML team will be solely responsible for troubleshooting this service. Since most ML team engineers work similar hours, incidents occurring outside working hours may affect response times. ML inference services are manually deployed rather than automatically deployed. New LLM configs are usually tested first on a copy of the isvc in the experimental namespace, which means most deployment issues are caught before reaching production. Typical incidents involve pod crashes, pods stuck in Pending (no free GPU partition), GPU memory problems, or 5xx errors. When an isvc incident occurs, we examine relevant dashboards and logs to identify the root cause and determine whether it's a GPU/node issue, a networking issue or a model/inference service issue. See [[Machine Learning/LiftWing/Large Language Models]] for more details. The time needed for troubleshooting varies from hours to days, primarily based on our familiarity with the issue. However, we typically decide on our response (such as a quick fix, restarting the service or moving it to another partition) within a few hours to immediately mitigate the issue and minimize error budget burn. === Deployment === LiftWing LLM inference services are deployed using Helmfile. Configuration changes (e.g. vLLM settings or resource allocation) only require updating and syncing the deployment chart. Updating the vLLM version requires building a new vLLM image in production-images and updating the image version in the chart. == Service level objectives == === Realistic targets === We ran vllm-bench against a copy of each model in the experimental namespace (1 replica, 96GB partition, 1024 input / 128 output tokens). Results are in {{phab|T440307}}. {| class="wikitable" ! Model !! MAX_NUM_SEQS / MAX_NUM_BATCHED_TOKENS !! Concurrent requests per replica !! TPOT p90 !! Queue time ≤ 1 s !! req/s |- | llm-qwen3-14b || 32 / 8192 || 32 || 32 ms || 100% || 7.3 |- | llm-qwen38-27b || 16 / 8192 || 16 || 67 ms || 100% || 2.2 |} Above these limits the extra requests wait in the queue, so the queue time target holds only while the load stays within capacity. For qwen38-27b, <code>MAX_NUM_SEQS=32</code> did not meet the TPOT target, so we lowered it to 16 (not in production yet). * Availability: 95% * TPOT: 90% of requests within 100 ms * Queue time: 90% of requests within 1 s === Ideal targets === These are initial estimates of the service quality we'd ideally like to provide to clients, subject to further discussion and validation. * Availability: 99% * TPOT: 99% of requests within 100 ms * Queue time: 99% of requests within 1 s === Reconciliation === Given our current serving capacity and limited production traffic data, we propose starting with the realistic targets and revisiting them as we gather more operational experience. Proposed initial SLOs: * '''Availability:''' ≥ 95% of requests receive non-5xx responses. * '''TPOT:''' ≥ 90% of successful requests have mean TPOT ≤100ms. * '''Queue time:''' ≥ 90% of requests spend ≤1s in the queue. hrt48x43fvrjb9h5k4dyos163baljvo SLO/JinaEmbeddings Model 0 460814 2471964 2467701 2026-10-22T09:54:42Z OKarakaya-WMF 40765 slo link 2471964 wikitext text/x-wiki Status: '''[[SLO/Runbook#Drafting|draft]]''' == Organizational == === Service === * JinaEmbeddings is a microservice hosted in [[Machine Learning/LiftWing|Lift Wing]] running in the ML-Serve Kubernetes clusters. Like most Machine Learning models in Lift Wing, it is hosted as an [[Machine Learning/LiftWing/Inference Services|Inference Service]] (isvc), named <code>jina-embeddings</code> in the <code>llm</code> namespace. * The service serves the [https://huggingface.co/jinaai/jina-embeddings-v5-text-nano-retrieval jina-embeddings-v5-text-nano-retrieval] model. It is a small (239M parameters) multilingual text embedding model based on EuroBERT. Given one or more pieces of text, it returns one 768-dimensional embedding vector per text. Texts with similar meaning get vectors that are close to each other, which makes it possible to search by meaning rather than by exact words. * The service is available through the internal endpoint <code><nowiki>https://inference.svc.eqiad.wmnet:30443/v1/models/jina-embeddings:predict</nowiki></code> with the <code>Host: jina-embeddings.llm.wikimedia.org</code> header. The service is internal only; it is not exposed through the [[API Gateway]]. * Example request: <syntaxhighlight lang="bash"> curl "https://inference.svc.eqiad.wmnet:30443/v1/models/jina-embeddings:predict" \ -X POST \ -d '{"input": ["hello world"]}' \ -H "Host: jina-embeddings.llm.wikimedia.org" \ -H "Content-Type: application/json" </syntaxhighlight> * vLLM has no native support for this model architecture, so the service runs with the Hugging Face transformers / sentence-transformers backend (SDPA attention, bf16), not vLLM. This is a scoped exception to the vLLM consolidation ([[phab:T418976|T418976]]); the reasons are in [[phab:T432717|T432717]]. * It replaced the earlier <code>qwen3-embedding</code> service as the embedding model for semantic search ([[phab:T432717|T432717]], [[phab:T436527|T436527]]). === Teams === * The Machine Learning (ML) team is solely responsible for the development, deployment, and maintenance of the JinaEmbeddings Inference Service. * The Search Platform team is the primary client of the service. They use it for semantic search on Wikipedia (see [[phab:T436527|T436527]]). == Architectural == === Environmental dependencies === * [[Kubernetes/Clusters#ml-serve|ml-serve-eqiad]]: this is a ''hard dependency''. These Kubernetes nodes are the backbone of [[Machine Learning/LiftWing|Lift Wing]], the platform where this service is deployed. ** The service runs '''only in eqiad''', because the Lift Wing GPUs are only in ml-serve-eqiad (see [[Machine Learning/LiftWing/Large Language Models]]). ** The service needs a GPU. It runs on one 24GB AMD MI300X GPU partition, pinned to the GPU node ml-serve1015 (see [[Machine Learning/AMD GPU]]). We are able to scale to more GPUs. * Thanos [[Swift]] for the storage of model binaries: this is a ''soft dependency''. Lift Wing uses Swift as [[Machine Learning/LiftWing#Model Storage|model storage]], with an S3-compatible API, to fetch the model into the pod when the service starts (<code>s3://wmf-ml-models/jina-embeddings/</code>). * WMF Docker Registry ([[SLO/Docker-registry|SLO]]) to store and fetch the Docker images of the services on the cluster. This is also a ''soft dependency'': running services operate normally if the registry is not available, and restarts can use images cached on the node. So Swift and the WMF Docker Registry are only needed when the service (re)starts. === Service dependencies === * The service has no runtime dependencies on other services. It does not call any other service to answer a request. == Client-facing == === Clients === The main client is '''semantic search''', run by the Search Platform team: * The OpenSearch semantic-search clusters (in eqiad and codfw) call the service through an ml-commons remote connector (<code>liftwing_jina</code>). At search time, OpenSearch sends the user's query text to the service, gets its embedding vector, and uses it in search. * The service is therefore on the request path of user searches: if it is slow or down, semantic search results are slow or fail. The service can also be used by other internal developers who need text embeddings. === Request Classes === There is one request class: <code>POST /v1/models/jina-embeddings:predict</code> with a JSON body <code>{"input": [<list of strings>]}</code>. Semantic search sends a single short query text per request. == Service Level Indicators (SLIs) == * '''Latency SLI, acceptable fraction:''' The percentage of all successful requests (2xx) that complete within 250 milliseconds, measured at the server side (Istio ingress gateway). * '''Service availability SLI:''' The percentage of all requests receiving a non-error response (non 5xx), measured at the server side (Istio ingress gateway). == Operational == === Monitoring === JinaEmbeddings is monitored through several dashboards and alerts. '''Dashboards''' * Inference Services (kserve container resources, preprocess latency, predict latency): [https://grafana.wikimedia.org/goto/s5mm2g?orgId=default dashboard] * Istio-sidecar (top 20 service calls, traffic, response codes, latency/bytes): [https://grafana.wikimedia.org/goto/sbrv8f?orgId=default dashboard] Pick jina-embeddings as the backend. * ML infrastructure (GPU use and memory per node, including ml-serve1015): [https://grafana.wikimedia.org/d/dpzzsnh/ml-infra?orgId=1&dtab=Resource-Usage&var-cluster=000000006&from=now-24h&to=now&timezone=utc dashboard] * Sloth SLO: [https://grafana.wikimedia.org/goto/ss6tck?orgId=default dashboard] '''Alerts''' * [[Machine Learning/LiftWing/Alerts#Inference Services High Memory Usage - InfServiceHighMemoryUsage alert|Inference Services High Memory Usage]] – Triggers when memory use of the kserve-container exceeds 90% of the container limit for more than 5 minutes. * [[Machine Learning/LiftWing/Alerts#LiftWingServiceErrorRate|LiftWing Service Error Rate]] – Triggers when the percentage of error status codes (5xx and 0) from an Istio service exceeds the defined threshold. * Sloth SLO burn-rate alerts (<code>SLOBudgetBurn</code>) for both SLOs, see [[#Service Level Objectives|below]]. === Troubleshooting === The ML team is solely responsible for troubleshooting this service, and no additional support from SREs is needed. Incidents are triaged by the ML team member on ops rotation during EU working hours. Incidents that occur outside working hours (nights, weekends) will be handled on the next working day, which can mean several hours of downtime. ML inference services are deployed manually, not automatically. Most deployment issues are caught on the staging isvc (<code>jina-embeddings-staging</code>) before they reach production. Typical incidents are service crashes, unresponsive pods, GPU memory problems or 5xx errors. When an incident occurs, we look at the dashboards and logs to find the root cause, and decide whether it is a networking issue, a GPU/node issue or a model server issue. The time needed for troubleshooting varies from hours to days, depending on how familiar the issue is. We typically decide on a response (a quick fix, a restart, a rollback) within a few hours to mitigate the issue and limit error budget burn. === Deployment === JinaEmbeddings is deployed on Kubernetes with helmfile (<code>helmfile.d/ml-services/llm</code> in [[gitiles:operations/deployment-charts|deployment-charts]]). Changes to the [[gitiles:machinelearning/liftwing/inference-services|inference services]] code involve two steps: 1) CI builds a new production image, and 2) the deployment chart is updated with the new image and synced to update the isvc. For service-level configuration changes (environment variables, resources, etc.), only a helmfile change and sync are needed. A deployment, including code review, patch merge, helmfile update and sync, typically takes less than 1 hour. Since there is a single replica, a deployment causes a short interruption while the new pod starts and loads the model. == Service Level Objectives == === Realistic targets === '''Latency:''' We load-tested the service in [[phab:T439245|T439245]] (2026-10-12) with locust from stat1010. The test isvc had the same image, configuration and resources as production (4 CPU, 16Gi, one GPU partition) and ran on ml-serve1015 (24GB MI300X partitions), the same node as production. Inputs were short, query-like texts (~78 characters on average), without the query prefix. Each run lasted 5 minutes. {| class="wikitable" |+ 1 replica ! Req/s !! p50 (ms) !! p95 (ms) !! p99 (ms) !! p99.9 (ms) !! Failures |- | 30 || 12 || 18 || 22 || 230 || 0 |- | 74 || 13 || 25 || 33 || 240 || 0 |- | 120 || 30 || 50 || 82 || 290 || 0 |- | 123 || 110 || 130 || 150 || 390 || 2 (502) |} {| class="wikitable" |+ 2 replicas ! Req/s !! p50 (ms) !! p95 (ms) !! p99 (ms) !! p99.9 (ms) !! Failures |- | 30 || 13 || 17 || 22 || 230 || 0 |- | 76 || 13 || 21 || 27 || 230 || 0 |- | 145 || 14 || 28 || 42 || 250 || 0 |- | 233 || 32 || 60 || 77 || 280 || 1 (502) |} Plots of latency percentiles against throughput for both setups: [[phab:T439245#12422056|T439245#12422056]]. Key results: * One replica saturates at about '''120 req/s'''. Above that, throughput stops growing and latency rises quickly (p50 goes from 30 ms to 110 ms). * Two replicas handle at least '''233 req/s''' (about 1.9× one replica) with p99 under 80 ms, and had not saturated at the highest load tested. * Up to saturation, p95 and p99 stay far below 250 ms. * p99.9 is about 230–290 ms at every load level, also at 30 req/s. This is a small, constant tail (about 1 request in 1,000), not an effect of load. It does not affect a 95% target. * The results on the 24GB partition match the earlier production test on a larger partition during the initial deployment ([[phab:T432717|T432717]]: p95 50 ms at 120 req/s). The smaller partition does not make the service slower. * On a 24GB partition the service needs <code>TORCH_BLAS_PREFER_HIPBLASLT=0</code>. Without it, requests took ~5 s ([[phab:T432717|T432717]]). Based on this, a realistic target for the latency SLI is '''95% of successful requests within 250 ms'''. At up to 120 req/s on one replica, p95 is 50 ms or less, so 250 ms leaves a large margin for load peaks. '''Availability:''' A realistic target for service availability is '''95%''', the same as for [[SLO/ToneCheck_Model|ToneCheck]] and other Lift Wing services. The service is only troubleshot during EU working hours, so an outage can last for hours. 95% allows up to 5% downtime over a 90-day window: about 108 hours, or roughly 36 hours per month. === Ideal targets === Since semantic search is on the request path of user searches, the ideal targets would be higher: * Availability: 99.9%, which would mean most problems are fixed in under 2 hours. This would need around-the-clock support and more than one replica, ideally in both datacenters. * Latency: 99% of successful requests within 250 ms. === Reconciliation === * '''Latency SLO, acceptable fraction:''' 95% of all successful requests (2xx) complete within 250 milliseconds, measured at the server side. * '''Service Availability SLO:''' 95% of all requests receive a non-error response (non 5xx). iomvkuub9idvzims50o423fjhrro6yw SLO/CoPE-B Model 0 460832 2471965 2471822 2026-10-22T09:56:08Z OKarakaya-WMF 40765 add model 2471965 wikitext text/x-wiki Status: '''[[SLO/Runbook#Drafting|draft]]''' == Organizational == === Service === * CoPE-B is a [[Machine Learning/LiftWing|Lift Wing]] [[Machine Learning/LiftWing/Inference Services|Inference Service]] named <code>cope-b-a4b</code> in the <code>llm</code> namespace ([[phab:T427497|T427497]]). * The service serves the [https://huggingface.co/zentropi-ai/cope-b-a4b cope-b-a4b] model. * Given a piece of content and a policy, it returns whether the content violates the policy. * It runs on [https://docs.vllm.ai/ vLLM] in bf16, with a maximum context length of 16,384 tokens. * Internal endpoint: <code><nowiki>https://inference.svc.eqiad.wmnet:30443/v1/models/cope-b-a4b:predict</nowiki></code> with the <code>Host: cope-b-a4b.llm.wikimedia.org</code> header. * Example request (placeholder policy, not a real PSI policy): <syntaxhighlight lang="bash"> curl "https://inference.svc.eqiad.wmnet:30443/v1/models/cope-b-a4b:predict" \ -X POST \ -d '{"content": "Buy cheap watches at example.com!!!", "policy": "Content violates this policy if it promotes a commercial product or service."}' \ -H "Host: cope-b-a4b.llm.wikimedia.org" \ -H "Content-Type: application/json" </syntaxhighlight> * Response: <code>{"violation": 0|1, "p_violation": float, "p_safe": float}</code>. * The policies are owned by the Product Safety and Integrity (PSI) team and are not public. === Teams === * The Machine Learning (ML) team is solely responsible for the development, deployment, and maintenance of the CoPE-B Inference Service. * The Product Safety and Integrity (PSI) team is the primary client of the service. == Architectural == === Environmental dependencies === * [[Kubernetes/Clusters#ml-serve|ml-serve-eqiad]]: this is a ''hard dependency''. These Kubernetes nodes are the backbone of [[Machine Learning/LiftWing|Lift Wing]], the platform where this service is deployed. ** The service runs '''only in eqiad''', because the Lift Wing GPUs are only in ml-serve-eqiad (see [[Machine Learning/LiftWing/Large Language Models]]). ** The service needs a GPU. It runs on one 96GB AMD MI300X GPU partition, pinned to the GPU nodes ml-serve1013 and ml-serve1014 ([[phab:T439555|T439555]], see [[Machine Learning/AMD GPU]]). It runs as a single replica. We are able to scale to more GPUs. * Thanos [[Swift]] for the storage of model binaries: this is a ''soft dependency''. Lift Wing uses Swift as [[Machine Learning/LiftWing#Model Storage|model storage]], with an S3-compatible API, to fetch the model into the pod when the service starts (<code>s3://wmf-ml-models/llm/cope-b-a4b/</code>). * WMF Docker Registry ([[SLO/Docker-registry|SLO]]) to store and fetch the Docker images of the services on the cluster. This is also a ''soft dependency'': running services operate normally if the registry is not available, and restarts can use images cached on the node. So Swift and the WMF Docker Registry are only needed when the service (re)starts. === Service dependencies === * The service has no runtime dependencies on other services. It does not call any other service to answer a request. == Client-facing == === Clients === The main client is the PSI team's policy-violation detection. The service can also be used by other internal developers who need policy-violation detection. === Request Classes === There is one request class: <code>POST /v1/models/cope-b-a4b:predict</code> with the content and the policy in the JSON body. == Service Level Indicators (SLIs) == * '''Latency SLI, acceptable fraction:''' The percentage of all successful requests (2xx) that complete within 2500 milliseconds, measured at the server side (Istio ingress gateway). * '''Service availability SLI:''' The percentage of all requests receiving a non-error response (non 5xx), measured at the server side (Istio ingress gateway). == Operational == === Monitoring === CoPE-B is monitored through several dashboards and alerts. '''Dashboards''' * Inference Services (kserve container resources, preprocess latency, predict latency): [https://grafana.wikimedia.org/goto/s2wgsn?orgId=default dashboard] * Istio-sidecar (top 20 service calls, traffic, response codes, latency/bytes): [https://grafana.wikimedia.org/goto/szsrnt?orgId=default dashboard] Pick cope-b as the backend. * ML infrastructure (GPU use and memory per node, including ml-serve1013 and ml-serve1014): [https://grafana.wikimedia.org/d/dpzzsnh/ml-infra?orgId=1&dtab=Resource-Usage&var-cluster=000000006&from=now-24h&to=now&timezone=utc dashboard] '''Alerts''' * [[Machine Learning/LiftWing/Alerts#Inference Services High Memory Usage - InfServiceHighMemoryUsage alert|Inference Services High Memory Usage]] – Triggers when memory use of the kserve-container exceeds 90% of the container limit for more than 5 minutes. * [[Machine Learning/LiftWing/Alerts#LiftWingServiceErrorRate|LiftWing Service Error Rate]] – Triggers when the percentage of error status codes (5xx and 0) from an Istio service exceeds the defined threshold. * Sloth SLO burn-rate alerts (<code>SLOBudgetBurn</code>) for both SLOs, see [[#Service Level Objectives|below]]. === Troubleshooting === The ML team is solely responsible for troubleshooting this service, and no additional support from SREs is needed. Incidents are triaged by the ML team member on ops rotation during EU working hours. Incidents that occur outside working hours (nights, weekends) will be handled on the next working day, which can mean several hours of downtime. ML inference services are deployed manually, not automatically. Most deployment issues are caught in staging before they reach production. Typical incidents are service crashes, unresponsive pods, GPU memory problems, vLLM engine errors or 5xx errors. When an incident occurs, we look at the dashboards and logs to find the root cause, and decide whether it is a networking issue, a GPU/node issue or a model server issue. The time needed for troubleshooting varies from hours to days, depending on how familiar the issue is. We typically decide on a response (a quick fix, a restart, a rollback) within a few hours to mitigate the issue and limit error budget burn. === Deployment === CoPE-B is deployed on Kubernetes with helmfile (<code>helmfile.d/ml-services/llm</code> in [[gitiles:operations/deployment-charts|deployment-charts]]). Changes to the [[gitiles:machinelearning/liftwing/inference-services|inference services]] code involve two steps: 1) CI builds a new production image, and 2) the deployment chart is updated with the new image and synced to update the isvc. For service-level configuration changes (environment variables, resources, etc.), only a helmfile change and sync are needed. A deployment, including code review, patch merge, helmfile update and sync, typically takes less than 1 hour. Since there is a single replica, a deployment causes a short interruption while the new pod starts and loads the model. == Service Level Objectives == === Realistic targets === '''Latency:''' We load-tested the service in [[phab:T440311|T440311]] (2026-10-16 and 2026-10-19) with locust from stat1010, using the [[gerrit:1357220|locust test for cope-b-a4b]]. The test isvc had the same image, configuration and resources as production, and ran on the 96GB MI300X partitions. Inputs had the same mean prompt length as production (about 2,500 tokens). Each run lasted 5 minutes. Latency columns are in milliseconds. The "Within 2 s" column counts requests that completed within 2000 ms. This is stricter than the 2500 ms SLO threshold. {| class="wikitable" |+ 1 replica (production setup) ! Users !! Req/s !! Avg !! p50 !! p95 !! p99 !! Max !! Within 2 s !! Failures |- | 2 || 6.80 || 293 || 300 || 320 || 430 || 522 || 100% || 0 |- | 5 || 6.78 || 735 || 740 || 780 || 800 || 976 || 100% || 0 |- | 10 || 6.79 || 1466 || 1500 || 1500 || 1700 || 1983 || 100% || 0 |} {| class="wikitable" |+ 2 replicas ! Users !! Req/s !! Avg !! p50 !! p95 !! p99 !! Max !! Within 2 s !! Failures |- | 2 || 10.07 || 198 || 160 || 300 || 340 || 3096 || 99.87% || 0 |- | 5 || 12.75 || 391 || 400 || 710 || 750 || 1111 || 100% || 0 |- | 10 || 13.72 || 727 || 720 || 1200 || 1400 || 2954 || 99.90% || 0 |} Based on this, a realistic target for the latency SLI is '''90% of successful requests within 2500 ms'''. This matches [[SLO/ToneCheck_Model|ToneCheck]] and leaves a large margin for load peaks. '''Availability:''' A realistic target for service availability is '''95%''', the same as for [[SLO/ToneCheck_Model|ToneCheck]], [[SLO/JinaEmbeddings_Model|JinaEmbeddings]] and other Lift Wing services. The service is only troubleshot during EU working hours, so an outage can last for hours. 95% allows up to 5% downtime over a 90-day window: about 108 hours, or roughly 36 hours per month. === Ideal targets === * Availability: 99.9%, which would mean most problems are fixed in under 2 hours. This would need around-the-clock support and more than one replica. * Latency: 99% of successful requests within 2500 ms. The load tests show this is reachable at current traffic. === Reconciliation === The targets below were agreed with the PSI team ([[phab:T440311#12430574|T440311#12430574]]). * '''Latency SLO, acceptable fraction:''' 90% of all successful requests (2xx) complete within 2500 milliseconds, measured at the server side. * '''Service Availability SLO:''' 95% of all requests receive a non-error response (non 5xx). bdo7gjphr4x3u4zvetdty45l1ic29m8 Incidents/2026-10-21 PHP security update 0 460839 2471860 2471806 2026-10-21T17:06:26Z Saper 135 where the real action is 2471860 wikitext text/x-wiki {{See also|Incidents/2026-10-21_PHP_security_update/Community}} {{irdoc|status=draft}} == Summary == {{Incident scorecard | task = | paged-num = | responders-num = | coordinators = | start = | end = }} … <!-- Reminder: No private information on this page! --><mark>Summary of what happened, in one or two paragraphs. Avoid assuming deep knowledge of the systems here, and try to differentiate between proximate causes and root causes.</mark> {{TOC|align=right}} ==Timeline== <mark>Write a step by step outline of what happened to cause the incident, and how it was remedied. Include the lead-up to the incident, and any epilogue.</mark> <mark>Consider including a graphs of the error rate or other surrogate.</mark> <mark>Link to a specific offset in SAL using the SAL tool at https://sal.toolforge.org/ ([https://sal.toolforge.org/production?q=synchronized&d=2012-01-01 example])</mark> ''All times in UTC.'' *00:00 (TODO) '''OUTAGE BEGINS''' *00:04 (Something something) *00:06 (Voila) '''OUTAGE ENDS''' *00:15 (post-outage cleanup finished) <!-- Reminder: No private information on this page! --> <mark>TODO: Clearly indicate when the user-visible outage began and ended.</mark> ==Detection== <mark>Write how the issue was first detected. Was automated monitoring first to detect it? Or a human reporting an error?</mark> <mark>Copy the relevant alerts that fired in this section.</mark> <mark>Did the appropriate alert(s) fire? Was the alert volume manageable? Did they point to the problem with as much accuracy as possible?</mark> <mark>TODO: If human only, an actionable should probably be to "add alerting".</mark> ==Conclusions == <mark>OPTIONAL: General conclusions (bullet points or narrative)</mark> ===What went well?=== * … <mark>OPTIONAL: (Use bullet points) for example: automated monitoring detected the incident, outage was root-caused quickly, etc</mark> ===What went poorly?=== * … <mark>OPTIONAL: (Use bullet points) for example: documentation on the affected service was unhelpful, communication difficulties, etc</mark> ===Where did we get lucky?=== * … <mark>OPTIONAL: (Use bullet points) for example: user's error report was exceptionally detailed, incident occurred when the most people were online to assist, etc</mark> ==Links to relevant documentation== * … <mark>Add links to information that someone responding to this alert should have (runbook, plus supporting docs). If that documentation does not exist, add an action item to create it.</mark> ==Actionables== * … <mark>Create a list of action items that will help prevent this from happening again as much as possible. Link to or create a Phabricator task for every step.</mark> <mark>Add the [[phab:project/view/4758/|#Sustainability (Incident Followup)]] and the [[phab:project/profile/4626/|#SRE-OnFire]] Phabricator tag to these tasks.</mark> ==Scorecard== {| class="wikitable" |+[[Incident Scorecard|Incident Engagement ScoreCard]] ! !Question !Answer (yes/no) !Notes |- ! rowspan="5" |People |Were the people responding to this incident sufficiently different than the previous five incidents? | | |- |Were the people who responded prepared enough to respond effectively | | |- |Were fewer than five people paged? | | |- |Were pages routed to the correct sub-team(s)? | | |- |Were pages routed to online (business hours) engineers?  ''Answer “no” if engineers were paged after business hours.'' | | |- ! rowspan="5" |Process |Was the "Incident status" section atop the Google Doc kept up-to-date during the incident? | | |- | Was a public wikimediastatus.net entry created? | | |- |Is there a phabricator task for the incident? | | |- |Are the documented action items assigned? | | |- |Is this incident sufficiently different from earlier incidents so as not to be a repeat occurrence? | | |- ! rowspan="5" |Tooling |To the best of your knowledge was the open task queue free of any tasks that would have prevented this incident? ''Answer “no” if there are open tasks that would prevent this incident or make mitigation easier if implemented.'' | | |- | Were the people responding able to communicate effectively during the incident with the existing tooling? | | |- |Did existing monitoring notify the initial responders? | | |- |Were the engineering tools that were to be used during the incident, available and in service? | | |- |Were the steps taken to mitigate guided by an existing runbook? | | |- ! colspan="2" align="right" |Total score (count of all “yes” answers above) | | |} 63r1sxos1vmqkbgoq1l5drqk8x7ksw4 Incidents/2026-10-21 PHP security update/Community 0 460840 2471831 2471826 2026-10-21T12:47:05Z Novem Linguae 23682 doc.wikimedia.org 2471831 wikitext text/x-wiki We are undertaking critical maintenance work due to an [https://www.php.net/archive/2026.php#2026-10-20-1 updated PHP release]. Events are developing rapidly. This page will be updated as appropriate. If you are operating MediaWiki or other PHP deployments, consider what you can tolerate taking offline until the patch is released. We are taking certain services down as a precautionary measure. Either way, we recommend you immediately patch your PHP deployments with the security update once available. Currently, the following services are offline: * Phabricator * Gerrit CI runners * All of [[Portal:Cloud VPS|Cloud VPS]] and [[Help:Toolforge|Toolforge]]. These services host a large number of PHP applications, and may remain offline for a more extended period of time. This includes all *.wmcloud.org, *.wmflabs.org, and *.toolforge.org sites. * translatewiki.net * all [https://www.mediawiki.org/wiki/Wikibase/Wikibase.cloud/de wikibase cloud] instances.  This includes all *.wikibase.cloud as well as any instances with a custom domain. * [https://doc.wikimedia.org doc.wikimedia.org] Thank you for your understanding. oj1cdryffesx60c80v3fxw9vj3m5vs0 2471832 2471831 2026-10-21T12:53:41Z BPiovesan-WMF 56466 updating list of offline services 2471832 wikitext text/x-wiki We are undertaking critical maintenance work due to an [https://www.php.net/archive/2026.php#2026-10-20-1 updated PHP release]. Events are developing rapidly. This page will be updated as appropriate. If you are operating MediaWiki or other PHP deployments, consider what you can tolerate taking offline until the patch is released. We are taking certain services down as a precautionary measure. Either way, we recommend you immediately patch your PHP deployments with the security update once available. Currently, the following services are offline: * Phabricator * Gerrit CI runners * All of [[Portal:Cloud VPS|Cloud VPS]] and [[Help:Toolforge|Toolforge]]. These services host a large number of PHP applications, and may remain offline for a more extended period of time. This includes all *.wmcloud.org, *.wmflabs.org, and *.toolforge.org sites. * translatewiki.net * all [https://www.mediawiki.org/wiki/Wikibase/Wikibase.cloud/de wikibase cloud] instances.  This includes all *.wikibase.cloud as well as any instances with a custom domain. * [[wmdoc:|doc.wikimedia.org]] Thank you for your understanding. 7h2p696xlrvnhcza04pdfq7d18e3yns 2471836 2471832 2026-10-21T13:45:08Z RSilvola-WMF 49112 Updating the recommendation for operators to update 2471836 wikitext text/x-wiki We are undertaking critical maintenance work due to an [https://www.php.net/archive/2026.php?2026-10-21-5 updated PHP release]. Events are developing rapidly. This page will be updated as appropriate. If you are operating MediaWiki or other PHP deployments, we recommend you update immediately. We have taken certain services down as a precautionary measure while we apply the patches. Currently, the following services are offline: * Phabricator * Gerrit CI runners * All of [[Portal:Cloud VPS|Cloud VPS]] and [[Help:Toolforge|Toolforge]]. These services host a large number of PHP applications, and may remain offline for a more extended period of time. This includes all *.wmcloud.org, *.wmflabs.org, and *.toolforge.org sites. * translatewiki.net * all [https://www.mediawiki.org/wiki/Wikibase/Wikibase.cloud/de wikibase cloud] instances.  This includes all *.wikibase.cloud as well as any instances with a custom domain. * [[wmdoc:|doc.wikimedia.org]] Thank you for your understanding. 4sw4tvpfjthutfzp3lkov0qx7i1b2b3 2471837 2471836 2026-10-21T14:07:30Z BPiovesan-WMF 56466 Adding services that are back online 2471837 wikitext text/x-wiki We are undertaking critical maintenance work due to an [https://www.php.net/archive/2026.php?2026-10-21-5 updated PHP release]. Events are developing rapidly. This page will be updated as appropriate. If you are operating MediaWiki or other PHP deployments, we recommend you update immediately. We have taken certain services down as a precautionary measure while we apply the patches. Currently, the following services are offline: * Gerrit CI runners * All of [[Portal:Cloud VPS|Cloud VPS]] and [[Help:Toolforge|Toolforge]]. These services host a large number of PHP applications, and may remain offline for a more extended period of time. This includes all *.wmcloud.org, *.wmflabs.org, and *.toolforge.org sites. * translatewiki.net * all [https://www.mediawiki.org/wiki/Wikibase/Wikibase.cloud/de wikibase cloud] instances.  This includes all *.wikibase.cloud as well as any instances with a custom domain. * [[wmdoc:|doc.wikimedia.org]] The following services have been restored: * Phabricator Thank you for your understanding. m4zoiugwgq47158kkzimlnzfyybxer6 2471845 2471837 2026-10-21T14:50:50Z BPiovesan-WMF 56466 Reworked page to include general updates and guidance 2471845 wikitext text/x-wiki We are undertaking critical maintenance work due to an [https://www.php.net/archive/2026.php?x#2026-10-21-5 updated PHP release]. Events are developing rapidly. This page will be updated as appropriate. '''Availability of Wikimedia services''' We have taken certain services down as a precautionary measure while we apply the patches. Currently, the following services are offline: * Gerrit CI runners * All of [[Portal:Cloud VPS|Cloud VPS]] and [[Help:Toolforge|Toolforge]]. These services host a large number of PHP applications, and may remain offline for a more extended period of time. This includes all *.wmcloud.org, *.wmflabs.org, and *.toolforge.org sites. * translatewiki.net * all [[mw:Wikibase/Wikibase.cloud/de|wikibase cloud instances]].  This includes all *.wikibase.cloud as well as any instances with a custom domain. * [[wmdoc:|doc.wikimedia.org]] The following services have been restored: * Phabricator '''Updates and guidance''' * If you are operating MediaWiki or other PHP deployments, we recommend you update immediately. [https://www.php.net/archive/2026.php?x#2026-10-21-5 See this advisory from the PHP Foundation]. * Diff post: [[diffblog:2026/10/21/impact-of-php-vulnerabilities-on-wikimedia-tools-and-services/|Impact of PHP vulnerabilities on Wikimedia tools and services]] Thank you for your understanding. i2adrc32obzbeqrtql8jw3sd2v29ygr 2471846 2471845 2026-10-21T14:51:12Z BPiovesan-WMF 56466 formatting edit 2471846 wikitext text/x-wiki We are undertaking critical maintenance work due to an [https://www.php.net/archive/2026.php?x#2026-10-21-5 updated PHP release]. Events are developing rapidly. This page will be updated as appropriate. '''Availability of Wikimedia services''' We have taken certain services down as a precautionary measure while we apply the patches. ''Currently, the following services are offline'': * Gerrit CI runners * All of [[Portal:Cloud VPS|Cloud VPS]] and [[Help:Toolforge|Toolforge]]. These services host a large number of PHP applications, and may remain offline for a more extended period of time. This includes all *.wmcloud.org, *.wmflabs.org, and *.toolforge.org sites. * translatewiki.net * all [[mw:Wikibase/Wikibase.cloud/de|wikibase cloud instances]].  This includes all *.wikibase.cloud as well as any instances with a custom domain. * [[wmdoc:|doc.wikimedia.org]] ''The following services have been restored'': * Phabricator '''Updates and guidance''' * If you are operating MediaWiki or other PHP deployments, we recommend you update immediately. [https://www.php.net/archive/2026.php?x#2026-10-21-5 See this advisory from the PHP Foundation]. * Diff post: [[diffblog:2026/10/21/impact-of-php-vulnerabilities-on-wikimedia-tools-and-services/|Impact of PHP vulnerabilities on Wikimedia tools and services]] Thank you for your understanding. 6a5i9n9cgrxjz21f9pja6t6sv7mqtvi 2471847 2471846 2026-10-21T14:52:08Z BPiovesan-WMF 56466 updated link 2471847 wikitext text/x-wiki We are undertaking critical maintenance work due to an [https://www.php.net/archive/2026.php?x#2026-10-21-5 updated PHP release]. Events are developing rapidly. This page will be updated as appropriate. '''Availability of Wikimedia services''' We have taken certain services down as a precautionary measure while we apply the patches. ''Currently, the following services are offline'': * Gerrit CI runners * All of [[Portal:Cloud VPS|Cloud VPS]] and [[Help:Toolforge|Toolforge]]. These services host a large number of PHP applications, and may remain offline for a more extended period of time. This includes all *.wmcloud.org, *.wmflabs.org, and *.toolforge.org sites. * translatewiki.net * all [[mw:Wikibase/Wikibase.cloud/de|wikibase cloud]] instances.  This includes all *.wikibase.cloud as well as any instances with a custom domain. * [[wmdoc:|doc.wikimedia.org]] ''The following services have been restored'': * Phabricator '''Updates and guidance''' * If you are operating MediaWiki or other PHP deployments, we recommend you update immediately. [https://www.php.net/archive/2026.php?x#2026-10-21-5 See this advisory from the PHP Foundation]. * Diff post: [[diffblog:2026/10/21/impact-of-php-vulnerabilities-on-wikimedia-tools-and-services/|Impact of PHP vulnerabilities on Wikimedia tools and services]] Thank you for your understanding. dtwr6qljyn04ud7j5m2tz1ldk9960kv 2471849 2471847 2026-10-21T15:25:42Z BPiovesan-WMF 56466 update to services online (translatewiki) 2471849 wikitext text/x-wiki We are undertaking critical maintenance work due to an [https://www.php.net/archive/2026.php?x#2026-10-21-5 updated PHP release]. Events are developing rapidly. This page will be updated as appropriate. '''Availability of Wikimedia services''' We have taken certain services down as a precautionary measure while we apply the patches. ''Currently, the following services are offline'': * Gerrit CI runners * All of [[Portal:Cloud VPS|Cloud VPS]] and [[Help:Toolforge|Toolforge]]. These services host a large number of PHP applications, and may remain offline for a more extended period of time. This includes all *.wmcloud.org, *.wmflabs.org, and *.toolforge.org sites. * translatewiki.net * all [[mw:Wikibase/Wikibase.cloud/de|wikibase cloud]] instances.  This includes all *.wikibase.cloud as well as any instances with a custom domain. * [[wmdoc:|doc.wikimedia.org]] ''The following services have been restored'': * Phabricator * [https://translatewiki.net/ translatewiki.net] '''Updates and guidance''' * If you are operating MediaWiki or other PHP deployments, we recommend you update immediately. [https://www.php.net/archive/2026.php?x#2026-10-21-5 See this advisory from the PHP Foundation]. * Diff post: [[diffblog:2026/10/21/impact-of-php-vulnerabilities-on-wikimedia-tools-and-services/|Impact of PHP vulnerabilities on Wikimedia tools and services]] Thank you for your understanding. nw3rkiblvhh5woqnw0z4pzmmiqf6kai 2471850 2471849 2026-10-21T15:26:12Z BPiovesan-WMF 56466 removed translatewiki.net from down services 2471850 wikitext text/x-wiki We are undertaking critical maintenance work due to an [https://www.php.net/archive/2026.php?x#2026-10-21-5 updated PHP release]. Events are developing rapidly. This page will be updated as appropriate. '''Availability of Wikimedia services''' We have taken certain services down as a precautionary measure while we apply the patches. ''Currently, the following services are offline'': * Gerrit CI runners * All of [[Portal:Cloud VPS|Cloud VPS]] and [[Help:Toolforge|Toolforge]]. These services host a large number of PHP applications, and may remain offline for a more extended period of time. This includes all *.wmcloud.org, *.wmflabs.org, and *.toolforge.org sites. * all [[mw:Wikibase/Wikibase.cloud/de|wikibase cloud]] instances.  This includes all *.wikibase.cloud as well as any instances with a custom domain. * [[wmdoc:|doc.wikimedia.org]] ''The following services have been restored'': * Phabricator * [https://translatewiki.net/ translatewiki.net] '''Updates and guidance''' * If you are operating MediaWiki or other PHP deployments, we recommend you update immediately. [https://www.php.net/archive/2026.php?x#2026-10-21-5 See this advisory from the PHP Foundation]. * Diff post: [[diffblog:2026/10/21/impact-of-php-vulnerabilities-on-wikimedia-tools-and-services/|Impact of PHP vulnerabilities on Wikimedia tools and services]] Thank you for your understanding. g77wrp8sez9xhvurfw7cnmynxb02kbw 2471852 2471850 2026-10-21T15:42:05Z Neil Shah-Quinn (WMF) 36601 Added GitLab to list of offline services 2471852 wikitext text/x-wiki We are undertaking critical maintenance work due to an [https://www.php.net/archive/2026.php?x#2026-10-21-5 updated PHP release]. Events are developing rapidly. This page will be updated as appropriate. '''Availability of Wikimedia services''' We have taken certain services down as a precautionary measure while we apply the patches. ''Currently, the following services are offline'': * Gerrit CI runners * All of [[Portal:Cloud VPS|Cloud VPS]] and [[Help:Toolforge|Toolforge]]. These services host a large number of PHP applications, and may remain offline for a more extended period of time. This includes all *.wmcloud.org, *.wmflabs.org, and *.toolforge.org sites. * all [[mw:Wikibase/Wikibase.cloud/de|wikibase cloud]] instances.  This includes all *.wikibase.cloud as well as any instances with a custom domain. * [[wmdoc:|doc.wikimedia.org]] * [[GitLab]] ''The following services have been restored'': * Phabricator * [https://translatewiki.net/ translatewiki.net] '''Updates and guidance''' * If you are operating MediaWiki or other PHP deployments, we recommend you update immediately. [https://www.php.net/archive/2026.php?x#2026-10-21-5 See this advisory from the PHP Foundation]. * Diff post: [[diffblog:2026/10/21/impact-of-php-vulnerabilities-on-wikimedia-tools-and-services/|Impact of PHP vulnerabilities on Wikimedia tools and services]] Thank you for your understanding. 98jyfkz2ytos3o7j7pmdiyel816cxnk 2471855 2471852 2026-10-21T16:01:56Z Juwan 44608 2471855 wikitext text/x-wiki We are undertaking critical maintenance work due to an [https://www.php.net/archive/2026.php?x#2026-10-21-5 updated PHP release]. Events are developing rapidly. This page will be updated as appropriate. ==Availability of Wikimedia services== We have taken certain services down as a precautionary measure while we apply the patches. ''Currently, the following services are offline'': * Gerrit CI runners * All of [[Portal:Cloud VPS|Cloud VPS]] and [[Help:Toolforge|Toolforge]] ** These services host a large number of PHP applications, and may remain offline for a more extended period of time. This includes all *.wmcloud.org, *.wmflabs.org, and *.toolforge.org sites. * All [[mw:Wikibase/Wikibase.cloud/de|Wikibase cloud]] instances ** This includes all *.wikibase.cloud as well as any instances with a custom domain. * [[wmdoc:|doc.wikimedia.org]] * [[GitLab]] The following services have been restored: * Phabricator * [[mw:translatewiki.net|translatewiki.net]] ==Updates and guidance== * If you are operating MediaWiki or other PHP deployments, we recommend you update immediately. [https://www.php.net/archive/2026.php?x#2026-10-21-5 See this advisory from the PHP Foundation]. * Diff post: [[diffblog:2026/10/21/impact-of-php-vulnerabilities-on-wikimedia-tools-and-services/|Impact of PHP vulnerabilities on Wikimedia tools and services]] Thank you for your understanding. q3d8sm0n8xmdv6z4zaxwc8fskve2wrn 2471856 2471855 2026-10-21T16:17:33Z BPiovesan-WMF 56466 update: GitLab online 2471856 wikitext text/x-wiki We are undertaking critical maintenance work due to an [https://www.php.net/archive/2026.php?x#2026-10-21-5 updated PHP release]. Events are developing rapidly. This page will be updated as appropriate. ==Availability of Wikimedia services== We have taken certain services down as a precautionary measure while we apply the patches. ''Currently, the following services are offline'': * Gerrit CI runners * All of [[Portal:Cloud VPS|Cloud VPS]] and [[Help:Toolforge|Toolforge]] ** These services host a large number of PHP applications, and may remain offline for a more extended period of time. This includes all *.wmcloud.org, *.wmflabs.org, and *.toolforge.org sites. * All [[mw:Wikibase/Wikibase.cloud/de|Wikibase cloud]] instances ** This includes all *.wikibase.cloud as well as any instances with a custom domain. * [[wmdoc:|doc.wikimedia.org]] The following services have been restored: * Phabricator * [[mw:translatewiki.net|translatewiki.net]] * [[GitLab]] ==Updates and guidance== * If you are operating MediaWiki or other PHP deployments, we recommend you update immediately. [https://www.php.net/archive/2026.php?x#2026-10-21-5 See this advisory from the PHP Foundation]. * Diff post: [[diffblog:2026/10/21/impact-of-php-vulnerabilities-on-wikimedia-tools-and-services/|Impact of PHP vulnerabilities on Wikimedia tools and services]] Thank you for your understanding. hk0v4votrvcedimuckdjekvwbgcvzf3 2471857 2471856 2026-10-21T16:25:29Z Kuldeepburjbhalaike 37135 /* Availability of Wikimedia services */ Phab Wikilink 2471857 wikitext text/x-wiki We are undertaking critical maintenance work due to an [https://www.php.net/archive/2026.php?x#2026-10-21-5 updated PHP release]. Events are developing rapidly. This page will be updated as appropriate. ==Availability of Wikimedia services== We have taken certain services down as a precautionary measure while we apply the patches. ''Currently, the following services are offline'': * Gerrit CI runners * All of [[Portal:Cloud VPS|Cloud VPS]] and [[Help:Toolforge|Toolforge]] ** These services host a large number of PHP applications, and may remain offline for a more extended period of time. This includes all *.wmcloud.org, *.wmflabs.org, and *.toolforge.org sites. * All [[mw:Wikibase/Wikibase.cloud/de|Wikibase cloud]] instances ** This includes all *.wikibase.cloud as well as any instances with a custom domain. * [[wmdoc:|doc.wikimedia.org]] The following services have been restored: * [[mw:Phabricator|Phabricator]] * [[mw:translatewiki.net|translatewiki.net]] * [[GitLab]] ==Updates and guidance== * If you are operating MediaWiki or other PHP deployments, we recommend you update immediately. [https://www.php.net/archive/2026.php?x#2026-10-21-5 See this advisory from the PHP Foundation]. * Diff post: [[diffblog:2026/10/21/impact-of-php-vulnerabilities-on-wikimedia-tools-and-services/|Impact of PHP vulnerabilities on Wikimedia tools and services]] Thank you for your understanding. sjs9rnutvngho5wd26ghe9xk9s3irze 2471858 2471857 2026-10-21T16:38:54Z ArielGlenn 11 /* Availability of Wikimedia services */ doc.wm.o is back up 2471858 wikitext text/x-wiki We are undertaking critical maintenance work due to an [https://www.php.net/archive/2026.php?x#2026-10-21-5 updated PHP release]. Events are developing rapidly. This page will be updated as appropriate. ==Availability of Wikimedia services== We have taken certain services down as a precautionary measure while we apply the patches. ''Currently, the following services are offline'': * Gerrit CI runners * All of [[Portal:Cloud VPS|Cloud VPS]] and [[Help:Toolforge|Toolforge]] ** These services host a large number of PHP applications, and may remain offline for a more extended period of time. This includes all *.wmcloud.org, *.wmflabs.org, and *.toolforge.org sites. * All [[mw:Wikibase/Wikibase.cloud/de|Wikibase cloud]] instances ** This includes all *.wikibase.cloud as well as any instances with a custom domain. The following services have been restored: * [[mw:Phabricator|Phabricator]] * [[mw:translatewiki.net|translatewiki.net]] * [[GitLab]] * [[wmdoc:|doc.wikimedia.org]] ==Updates and guidance== * If you are operating MediaWiki or other PHP deployments, we recommend you update immediately. [https://www.php.net/archive/2026.php?x#2026-10-21-5 See this advisory from the PHP Foundation]. * Diff post: [[diffblog:2026/10/21/impact-of-php-vulnerabilities-on-wikimedia-tools-and-services/|Impact of PHP vulnerabilities on Wikimedia tools and services]] Thank you for your understanding. 4ogqjqykzdst1zruub3g7lzmgthl9oo 2471886 2471858 2026-10-21T20:46:48Z BPiovesan-WMF 56466 Added a Diff post to updates 2471886 wikitext text/x-wiki We are undertaking critical maintenance work due to an [https://www.php.net/archive/2026.php?x#2026-10-21-5 updated PHP release]. Events are developing rapidly. This page will be updated as appropriate. ==Availability of Wikimedia services== We have taken certain services down as a precautionary measure while we apply the patches. ''Currently, the following services are offline'': * Gerrit CI runners * All of [[Portal:Cloud VPS|Cloud VPS]] and [[Help:Toolforge|Toolforge]] ** These services host a large number of PHP applications, and may remain offline for a more extended period of time. This includes all *.wmcloud.org, *.wmflabs.org, and *.toolforge.org sites. * All [[mw:Wikibase/Wikibase.cloud/de|Wikibase cloud]] instances ** This includes all *.wikibase.cloud as well as any instances with a custom domain. The following services have been restored: * [[mw:Phabricator|Phabricator]] * [[mw:translatewiki.net|translatewiki.net]] * [[GitLab]] * [[wmdoc:|doc.wikimedia.org]] ==Updates and guidance== * If you are operating MediaWiki or other PHP deployments, we recommend you update immediately. [https://www.php.net/archive/2026.php?x#2026-10-21-5 See this advisory from the PHP Foundation]. * Diff post: [[diffblog:2026/10/21/impact-of-php-vulnerabilities-on-wikimedia-tools-and-services/|Impact of PHP vulnerabilities on Wikimedia tools and services]] * Diff post: [[diffblog:2026/10/21/impact-of-php-vulnerabilities-on-wikimedia-cloud-services/|Impact of PHP vulnerabilities on Wikimedia Cloud Services]] Thank you for your understanding. cxhfpxf81fvm7vwgtes0ynb3umo5roh 2471901 2471886 2026-10-21T22:00:43Z ArielGlenn 11 /* Availability of Wikimedia services */ 2471901 wikitext text/x-wiki We are undertaking critical maintenance work due to an [https://www.php.net/archive/2026.php?x#2026-10-21-5 updated PHP release]. Events are developing rapidly. This page will be updated as appropriate. ==Availability of Wikimedia services== We have taken certain services down as a precautionary measure while we apply the patches. ''Currently, the following services are offline'': * All of [[Portal:Cloud VPS|Cloud VPS]] and [[Help:Toolforge|Toolforge]] ** These services host a large number of PHP applications, and may remain offline for a more extended period of time. This includes all *.wmcloud.org, *.wmflabs.org, and *.toolforge.org sites. ** The Zuul status page remains down for the same reason. * All [[mw:Wikibase/Wikibase.cloud/de|Wikibase cloud]] instances ** This includes all *.wikibase.cloud as well as any instances with a custom domain. The following services have been restored: * [[mw:Phabricator|Phabricator]] * [[mw:translatewiki.net|translatewiki.net]] * [[GitLab]] * [[wmdoc:|doc.wikimedia.org]] * Gerrit CI runners ==Updates and guidance== * If you are operating MediaWiki or other PHP deployments, we recommend you update immediately. [https://www.php.net/archive/2026.php?x#2026-10-21-5 See this advisory from the PHP Foundation]. * Diff post: [[diffblog:2026/10/21/impact-of-php-vulnerabilities-on-wikimedia-tools-and-services/|Impact of PHP vulnerabilities on Wikimedia tools and services]] * Diff post: [[diffblog:2026/10/21/impact-of-php-vulnerabilities-on-wikimedia-cloud-services/|Impact of PHP vulnerabilities on Wikimedia Cloud Services]] Thank you for your understanding. 6d5zmy9wp6imj7wa9bzdgvl6m08g5xq 2471902 2471901 2026-10-21T22:05:10Z Hashar 32 /* Availability of Wikimedia services */ 2471902 wikitext text/x-wiki We are undertaking critical maintenance work due to an [https://www.php.net/archive/2026.php?x#2026-10-21-5 updated PHP release]. Events are developing rapidly. This page will be updated as appropriate. ==Availability of Wikimedia services== We have taken certain services down as a precautionary measure while we apply the patches. ''Currently, the following services are offline'': * All of [[Portal:Cloud VPS|Cloud VPS]] and [[Help:Toolforge|Toolforge]] ** These services host a large number of PHP applications, and may remain offline for a more extended period of time. This includes all *.wmcloud.org, *.wmflabs.org, and *.toolforge.org sites. ** The Zuul status page ( https://integration.wikimedia.org/zuul/ ) remains down for the same reason. * All [[mw:Wikibase/Wikibase.cloud/de|Wikibase cloud]] instances ** This includes all *.wikibase.cloud as well as any instances with a custom domain. The following services have been '''partially''' restored: * [[mw:Continuous_integration]] Gerrit CI runners ** Puppet Catalogue Compiler has not been restored yet. The following services have been '''fully''' restored: * [[mw:Phabricator|Phabricator]] * [[mw:translatewiki.net|translatewiki.net]] * [[GitLab]] * [[wmdoc:|doc.wikimedia.org]] ==Updates and guidance== * If you are operating MediaWiki or other PHP deployments, we recommend you update immediately. [https://www.php.net/archive/2026.php?x#2026-10-21-5 See this advisory from the PHP Foundation]. * Diff post: [[diffblog:2026/10/21/impact-of-php-vulnerabilities-on-wikimedia-tools-and-services/|Impact of PHP vulnerabilities on Wikimedia tools and services]] * Diff post: [[diffblog:2026/10/21/impact-of-php-vulnerabilities-on-wikimedia-cloud-services/|Impact of PHP vulnerabilities on Wikimedia Cloud Services]] Thank you for your understanding. oh49w0mtxkx4f17xk2x9w710p6yezlt 2471903 2471902 2026-10-21T22:06:25Z BPiovesan-WMF 56466 formatting update 2471903 wikitext text/x-wiki We are undertaking critical maintenance work due to an [https://www.php.net/archive/2026.php?x#2026-10-21-5 updated PHP release]. Events are developing rapidly. This page will be updated as appropriate. ==Availability of Wikimedia services== We have taken certain services down as a precautionary measure while we apply the patches. ''The following services are offline'': * All of [[Portal:Cloud VPS|Cloud VPS]] and [[Help:Toolforge|Toolforge]] ** These services host a large number of PHP applications, and may remain offline for a more extended period of time. This includes all *.wmcloud.org, *.wmflabs.org, and *.toolforge.org sites. ** The Zuul status page ( https://integration.wikimedia.org/zuul/ ) remains down for the same reason. * All [[mw:Wikibase/Wikibase.cloud/de|Wikibase cloud]] instances ** This includes all *.wikibase.cloud as well as any instances with a custom domain. ''The following services have been '''partially''' restored:'' * [[mw:Continuous_integration]] Gerrit CI runners ** Puppet Catalogue Compiler has not been restored yet. ''The following services have been '''fully''' restored:'' * [[mw:Phabricator|Phabricator]] * [[mw:translatewiki.net|translatewiki.net]] * [[GitLab]] * [[wmdoc:|doc.wikimedia.org]] ==Updates and guidance== * If you are operating MediaWiki or other PHP deployments, we recommend you update immediately. [https://www.php.net/archive/2026.php?x#2026-10-21-5 See this advisory from the PHP Foundation]. * Diff post: [[diffblog:2026/10/21/impact-of-php-vulnerabilities-on-wikimedia-tools-and-services/|Impact of PHP vulnerabilities on Wikimedia tools and services]] * Diff post: [[diffblog:2026/10/21/impact-of-php-vulnerabilities-on-wikimedia-cloud-services/|Impact of PHP vulnerabilities on Wikimedia Cloud Services]] Thank you for your understanding. c49cekrsnc51d34kl4g4dh7n6zp9ll2 2471904 2471903 2026-10-21T22:08:36Z ArielGlenn 11 /* Availability of Wikimedia services */ make the ci runners link nicer 2471904 wikitext text/x-wiki We are undertaking critical maintenance work due to an [https://www.php.net/archive/2026.php?x#2026-10-21-5 updated PHP release]. Events are developing rapidly. This page will be updated as appropriate. ==Availability of Wikimedia services== We have taken certain services down as a precautionary measure while we apply the patches. ''The following services are offline'': * All of [[Portal:Cloud VPS|Cloud VPS]] and [[Help:Toolforge|Toolforge]] ** These services host a large number of PHP applications, and may remain offline for a more extended period of time. This includes all *.wmcloud.org, *.wmflabs.org, and *.toolforge.org sites. ** The Zuul status page ( https://integration.wikimedia.org/zuul/ ) remains down for the same reason. * All [[mw:Wikibase/Wikibase.cloud/de|Wikibase cloud]] instances ** This includes all *.wikibase.cloud as well as any instances with a custom domain. ''The following services have been '''partially''' restored:'' * [[mw:Continuous_integration|Gerrit CI runners]] ** Puppet Catalogue Compiler has not been restored yet. ''The following services have been '''fully''' restored:'' * [[mw:Phabricator|Phabricator]] * [[mw:translatewiki.net|translatewiki.net]] * [[GitLab]] * [[wmdoc:|doc.wikimedia.org]] ==Updates and guidance== * If you are operating MediaWiki or other PHP deployments, we recommend you update immediately. [https://www.php.net/archive/2026.php?x#2026-10-21-5 See this advisory from the PHP Foundation]. * Diff post: [[diffblog:2026/10/21/impact-of-php-vulnerabilities-on-wikimedia-tools-and-services/|Impact of PHP vulnerabilities on Wikimedia tools and services]] * Diff post: [[diffblog:2026/10/21/impact-of-php-vulnerabilities-on-wikimedia-cloud-services/|Impact of PHP vulnerabilities on Wikimedia Cloud Services]] Thank you for your understanding. 6j1nxf3vb6rlt8160zsdnxph0djjxdd 2471912 2471904 2026-10-21T23:31:32Z TCipriani (WMF) 4895 Update re:GitLab runners 2471912 wikitext text/x-wiki We are undertaking critical maintenance work due to an [https://www.php.net/archive/2026.php?x#2026-10-21-5 updated PHP release]. Events are developing rapidly. This page will be updated as appropriate. ==Availability of Wikimedia services== We have taken certain services down as a precautionary measure while we apply the patches. ''The following services are offline'': * All of [[Portal:Cloud VPS|Cloud VPS]] and [[Help:Toolforge|Toolforge]] ** These services host a large number of PHP applications, and may remain offline for a more extended period of time. This includes all *.wmcloud.org, *.wmflabs.org, and *.toolforge.org sites. ** The Zuul status page ( https://integration.wikimedia.org/zuul/ ) remains down for the same reason. * All [[mw:Wikibase/Wikibase.cloud/de|Wikibase cloud]] instances ** This includes all *.wikibase.cloud as well as any instances with a custom domain. ''The following services have been '''partially''' restored:'' * [[mw:Continuous_integration|Gerrit CI runners]] ** Puppet Catalogue Compiler has not been restored yet. * [[GitLab]] ** Image builds for the production registry (Trusted runners) remain offline. ''The following services have been '''fully''' restored:'' * [[mw:Phabricator|Phabricator]] * [[mw:translatewiki.net|translatewiki.net]] * [[wmdoc:|doc.wikimedia.org]] ==Updates and guidance== * If you are operating MediaWiki or other PHP deployments, we recommend you update immediately. [https://www.php.net/archive/2026.php?x#2026-10-21-5 See this advisory from the PHP Foundation]. * Diff post: [[diffblog:2026/10/21/impact-of-php-vulnerabilities-on-wikimedia-tools-and-services/|Impact of PHP vulnerabilities on Wikimedia tools and services]] * Diff post: [[diffblog:2026/10/21/impact-of-php-vulnerabilities-on-wikimedia-cloud-services/|Impact of PHP vulnerabilities on Wikimedia Cloud Services]] Thank you for your understanding. 3773qe9rcn0g82oz6cj2c01cbwkpqo5 2471924 2471912 2026-10-22T01:32:03Z Revi C. 1919 Yes, I had to dig through history if this is really current. Adding last edit timestamp so I can have a better guess how old this page's data is. (Ideally please state which services were restored when?) 2471924 wikitext text/x-wiki We are undertaking critical maintenance work due to an [https://www.php.net/archive/2026.php?x#2026-10-21-5 updated PHP release]. Events are developing rapidly. This page will be updated as appropriate. * This page was last edited at {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}T{{#invoke:string|sub|{{REVISIONTIMESTAMP}}|9|10}}:{{#invoke:string|sub|{{REVISIONTIMESTAMP}}|11|12}}:{{#invoke:string|sub|{{REVISIONTIMESTAMP}}|13|14}} (UTC). ==Availability of Wikimedia services== We have taken certain services down as a precautionary measure while we apply the patches. ''The following services are offline'': * All of [[Portal:Cloud VPS|Cloud VPS]] and [[Help:Toolforge|Toolforge]] ** These services host a large number of PHP applications, and may remain offline for a more extended period of time. This includes all *.wmcloud.org, *.wmflabs.org, and *.toolforge.org sites. ** The Zuul status page ( https://integration.wikimedia.org/zuul/ ) remains down for the same reason. * All [[mw:Wikibase/Wikibase.cloud/de|Wikibase cloud]] instances ** This includes all *.wikibase.cloud as well as any instances with a custom domain. ''The following services have been '''partially''' restored:'' * [[mw:Continuous_integration|Gerrit CI runners]] ** Puppet Catalogue Compiler has not been restored yet. * [[GitLab]] ** Image builds for the production registry (Trusted runners) remain offline. ''The following services have been '''fully''' restored:'' * [[mw:Phabricator|Phabricator]] * [[mw:translatewiki.net|translatewiki.net]] * [[wmdoc:|doc.wikimedia.org]] ==Updates and guidance== * If you are operating MediaWiki or other PHP deployments, we recommend you update immediately. [https://www.php.net/archive/2026.php?x#2026-10-21-5 See this advisory from the PHP Foundation]. * Diff post: [[diffblog:2026/10/21/impact-of-php-vulnerabilities-on-wikimedia-tools-and-services/|Impact of PHP vulnerabilities on Wikimedia tools and services]] * Diff post: [[diffblog:2026/10/21/impact-of-php-vulnerabilities-on-wikimedia-cloud-services/|Impact of PHP vulnerabilities on Wikimedia Cloud Services]] Thank you for your understanding. ie2bnsm8txwov98uk5xqczx8gxxijp4 2471952 2471924 2026-10-22T08:22:30Z Martyn Ranyard (WMDE) 51376 Update status of wikibase cloud 2471952 wikitext text/x-wiki We are undertaking critical maintenance work due to an [https://www.php.net/archive/2026.php?x#2026-10-21-5 updated PHP release]. Events are developing rapidly. This page will be updated as appropriate. * This page was last edited at {{REVISIONYEAR}}-{{REVISIONMONTH}}-{{REVISIONDAY2}}T{{#invoke:string|sub|{{REVISIONTIMESTAMP}}|9|10}}:{{#invoke:string|sub|{{REVISIONTIMESTAMP}}|11|12}}:{{#invoke:string|sub|{{REVISIONTIMESTAMP}}|13|14}} (UTC). ==Availability of Wikimedia services== We have taken certain services down as a precautionary measure while we apply the patches. ''The following services are offline'': * All of [[Portal:Cloud VPS|Cloud VPS]] and [[Help:Toolforge|Toolforge]] ** These services host a large number of PHP applications, and may remain offline for a more extended period of time. This includes all *.wmcloud.org, *.wmflabs.org, and *.toolforge.org sites. ** The Zuul status page ( https://integration.wikimedia.org/zuul/ ) remains down for the same reason. ''The following services have been '''partially''' restored:'' * [[mw:Continuous_integration|Gerrit CI runners]] ** Puppet Catalogue Compiler has not been restored yet. * [[GitLab]] ** Image builds for the production registry (Trusted runners) remain offline. * [https://wikibase.cloud Wikibase cloud] instances ** PHP-based tools are not yet available, namely cradle, widar and quickstatements ''The following services have been '''fully''' restored:'' * [[mw:Phabricator|Phabricator]] * [[mw:translatewiki.net|translatewiki.net]] * [[wmdoc:|doc.wikimedia.org]] ==Updates and guidance== * If you are operating MediaWiki or other PHP deployments, we recommend you update immediately. [https://www.php.net/archive/2026.php?x#2026-10-21-5 See this advisory from the PHP Foundation]. * Diff post: [[diffblog:2026/10/21/impact-of-php-vulnerabilities-on-wikimedia-tools-and-services/|Impact of PHP vulnerabilities on Wikimedia tools and services]] * Diff post: [[diffblog:2026/10/21/impact-of-php-vulnerabilities-on-wikimedia-cloud-services/|Impact of PHP vulnerabilities on Wikimedia Cloud Services]] Thank you for your understanding. gi2ejrghx1it2cwe11ouaou9zimhva0 Category:PKI 14 460841 2471834 2026-10-21T13:06:20Z Fuzheado 1608 add as part of TLS 2471834 wikitext text/x-wiki [[Category:TLS]] oeke0punkinxpxi5lb5tfa4wu44aa0v Talk:Incidents/2026-10-21 PHP security update/Community 1 460842 2471838 2026-10-21T14:24:33Z Saper 135 /* Exceptions */ new section 2471838 wikitext text/x-wiki == Exceptions == ==Toolforge== * ztools * feather * pid-bangladesh-uploadbot2 ==Cloud VPS== * maps saper 14:24, 21 October 2026 (UTC) s1rqataumfatvgan1i5rk1eyvnpqmxy 2471839 2471838 2026-10-21T14:25:12Z Saper 135 /* Toolforge */ 2471839 wikitext text/x-wiki == Exceptions == ===Toolforge=== * ztools * feather * pid-bangladesh-uploadbot2 ==Cloud VPS== * maps saper 14:24, 21 October 2026 (UTC) nxrv945k054pk65ozlj31npy3xxubue 2471840 2471839 2026-10-21T14:25:23Z Saper 135 /* Cloud VPS */ 2471840 wikitext text/x-wiki == Exceptions == ===Toolforge=== * ztools * feather * pid-bangladesh-uploadbot2 ===Cloud VPS=== * maps saper 14:24, 21 October 2026 (UTC) fz62j4i669ewuvulsf4aqxqjx3etzag 2471842 2471840 2026-10-21T14:39:31Z Lucas Werkmeister (WMDE) 10037 /* Exceptions */ nominate wikibugs 2471842 wikitext text/x-wiki == Exceptions == ===Toolforge=== * [[:mw:wikibugs|wikibugs]] – important IRC bot * ztools * feather * pid-bangladesh-uploadbot2 ===Cloud VPS=== * maps saper 14:24, 21 October 2026 (UTC) qlsaiurhjqkc669juwlftyspaawhamd 2471843 2471842 2026-10-21T14:42:18Z ZI Jony 13427 /* Cloud VPS */ +thelounge 2471843 wikitext text/x-wiki == Exceptions == ===Toolforge=== * [[:mw:wikibugs|wikibugs]] – important IRC bot * ztools * feather * pid-bangladesh-uploadbot2 ===Cloud VPS=== * maps * thelounge saper 14:24, 21 October 2026 (UTC) lubjsfdaj31jxmaa8pz8kchzc5ep3lv 2471844 2471843 2026-10-21T14:43:45Z ZI Jony 13427 /* Cloud VPS */ 2471844 wikitext text/x-wiki == Exceptions == ===Toolforge=== * [[:mw:wikibugs|wikibugs]] – important IRC bot * ztools * feather * pid-bangladesh-uploadbot2 ===Cloud VPS=== * maps * [[m:IRC/WikiLounge|thelounge]] saper 14:24, 21 October 2026 (UTC) pjhb80r6xhzi0tdn1osx7jprp3uqoz2 2471861 2471844 2026-10-21T17:36:45Z Pharos 2789 /* Toolforge */ add wikinewsie, which we're currently trying to work with external partners on, and which has no php 2471861 wikitext text/x-wiki == Exceptions == ===Toolforge=== * [[:mw:wikibugs|wikibugs]] – important IRC bot * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]] ===Cloud VPS=== * maps * [[m:IRC/WikiLounge|thelounge]] saper 14:24, 21 October 2026 (UTC) 2k4owwk7386uyog3zv6jcgltbsb5fp6 2471862 2471861 2026-10-21T17:48:05Z Lucas Werkmeister 8093 /* Toolforge */ add stashbot, bridgebot, jouncebot per [[User:BryanDavis]] in #wikimedia-cloud-admins 2471862 wikitext text/x-wiki == Exceptions == ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bot * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]] ===Cloud VPS=== * maps * [[m:IRC/WikiLounge|thelounge]] saper 14:24, 21 October 2026 (UTC) c4jd0o022g7mbmcobcthvoa2l1s16d4 2471863 2471862 2026-10-21T17:48:40Z Lucas Werkmeister 8093 /* Toolforge */ oops, plural 2471863 wikitext text/x-wiki == Exceptions == ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]] ===Cloud VPS=== * maps * [[m:IRC/WikiLounge|thelounge]] saper 14:24, 21 October 2026 (UTC) s9nv686drk7ka78bsydsmxzhdtun98h 2471864 2471863 2026-10-21T17:51:30Z Lucas Werkmeister 8093 /* Cloud VPS */ move saper signature to the project it belongs to (cf. [[Special:Diff/2471838]]) 2471864 wikitext text/x-wiki == Exceptions == ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]] ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] g5sfmrvsa59ilqvfamiynn6sx0r4ksf 2471865 2471864 2026-10-21T17:52:11Z Lucas Werkmeister 8093 /* Cloud VPS */ add cyberbot 2471865 wikitext text/x-wiki == Exceptions == ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]] ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z 4c7gtyxwvu1ni2ryjlnpo9rm4jj2flb 2471866 2471865 2026-10-21T17:59:27Z RCoccioli (WMF) 7416 Add suggestion for the info to add 2471866 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]] ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z bbza3mm4ld87j1a5som14s57wjre21l 2471867 2471866 2026-10-21T18:00:31Z Cyberpower678 1127 /* Cloud VPS */ + 2471867 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]] ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) jf0qc6rulvk10y2n3dbltsv9e1b3p0w 2471868 2471867 2026-10-21T18:05:48Z MacFan4000 7857 2471868 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]] ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) 2knsapimhnuz49k0whfo9n4qao3pjs6 2471869 2471868 2026-10-21T18:10:39Z Lucas Werkmeister 8093 /* Toolforge */ note that the IRC bots don’t use PHP 2471869 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]] ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) 3y2b6a35r7zodfkgmtgyovtmfyob6kt 2471870 2471869 2026-10-21T18:11:06Z AntiCompositeNumber 14764 /* Toolforge */ + wikiauthbot-ng 2471870 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]] * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) do89xfcft2egwylxnir9urzhx9w2aca 2471871 2471870 2026-10-21T18:18:18Z Chlod 18186 /* Exceptions */ 2471871 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]] * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) 8fpcs45f6cvecb3wgr9tfd4zoa3y17i 2471872 2471871 2026-10-21T18:21:21Z Legoktm 621 /* Toolforge */ +1 2471872 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]] * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) 1ux0hk61huj0ok4o3sitnwqo2qydhw4 2471873 2471872 2026-10-21T18:24:07Z Legoktm 621 /* Toolforge */ + 2471873 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]] * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) js37zpbnvhl7n84rht1kz0ta4d6iyak 2471876 2471873 2026-10-21T18:44:02Z Anomie 268 /* Toolforge */ + anomiebot 2471876 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]] * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) 289z5eit4dag3bd6r1nwt1j90kcl2ou 2471877 2471876 2026-10-21T18:52:44Z BryanDavis 1604 /* Toolforge */ +bd808 tools and tools used a lot by bd808 that are non-php 2471877 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]] * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) 56c9uwwl4a0jb2dz54bccrm9rslc61o 2471878 2471877 2026-10-21T18:56:03Z AntiCompositeNumber 14764 fix edit conflict by [[User:Chlod]] 2471878 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]] * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) gyj6p8lxx75d13qb8dxfcewuap9cvl3 2471879 2471878 2026-10-21T19:07:37Z AntiCompositeNumber 14764 /* Toolforge */ +2 2471879 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]] * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) cvkeu9gvu93byqymu3od9zil2qjpy60 2471880 2471879 2026-10-21T19:09:32Z NguoiDungKhongDinhDanh 26425 /* Toolforge */ + spamcheck, multiuserinfo, allblocksever 2471880 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]] * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): List all links added by a user, and list all edits adding a domain. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) 9gv022z4vt6fpn10ny7jno0f088k3k1 2471881 2471880 2026-10-21T19:11:54Z Shubinator 977 /* Toolforge */ DYKUpdateBot just Python 2471881 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]] * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): List all links added by a user, and list all edits adding a domain. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) eezycxzq0fw5hycqyf4680q2zdt6i8o 2471882 2471881 2026-10-21T19:49:37Z Tenshi Hinanawi 39970 + 2471882 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]] * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): List all links added by a user, and list all edits adding a domain. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) f2m1kl64vbfjvefx77apcmkth6hthan 2471883 2471882 2026-10-21T19:54:16Z Giftpflanze 542 /* Cloud VPS */ in the hope that this doesn't get ignored like the irc one, where do you reach the team anyway? sadly, nothing was specified 2471883 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]] * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): List all links added by a user, and list all edits adding a domain. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) a5xv07xt18pv9olf7yjrdgkzphst8hr 2471884 2471883 2026-10-21T19:57:21Z NguoiDungKhongDinhDanh 26425 /* Toolforge */ ~ 2471884 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]] * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) fa436wf9khbztf8qxbphsn1cif4hj5s 2471885 2471884 2026-10-21T20:18:08Z ArthurPSmith 6523 /* Toolforge */ 2471885 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]] * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) qgq1dgfsogbc0lupaj2mkpas36y5irj 2471887 2471885 2026-10-21T20:55:19Z FlammablePizza 56871 add my tools 2471887 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]] * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) m6htnt9m1uhu1tf86q11vqlhrhwlnwt 2471888 2471887 2026-10-21T21:08:10Z NicheSports 54509 /* Toolforge */ add nichesportsbot 2471888 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]] * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) p72ebotrubtsfu79nnrpqmbwfge93zk 2471890 2471888 2026-10-21T21:21:32Z Audiodude 3254 /* Cloud VPS */ 2471890 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]] * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) oo7jxbqhleq621qlo1nw4yzm2hivyvz 2471891 2471890 2026-10-21T21:22:20Z Pharos 2789 /* Toolforge */ Clarify Wikinewsie has no php 2471891 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) 7i2fppppw20zmee3q1jv260htt3xfxm 2471892 2471891 2026-10-21T21:26:18Z Mahir256 13837 /* Toolforge */ 2471892 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) pob1hpq24gvuwc0n76yoa5cmrj8g0dy 2471893 2471892 2026-10-21T21:27:22Z Mahir256 13837 2471893 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) tfldm3t0mhsz9tjimhxkp7u7kv9v31f 2471895 2471893 2026-10-21T21:39:33Z Krinkle 44 /* Cloud VPS */ +cvn 2471895 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) ga6a0o67bskkgbtt0cox9nfs5vithln 2471896 2471895 2026-10-21T21:43:24Z Krinkle 44 /* Toolforge */ 2471896 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) 4o9r0lklmktyo32s73aowrm7tyeopk1 2471897 2471896 2026-10-21T21:50:44Z Ahecht 5894 add 2471897 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and "afdstats2" (python). These tools use the <code>python3.13</code> pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and <code>globalusagecountmirror</code> (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * <code>ahechtbot</code> (python and nodejs). No webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) 0c9nyh9ups6f33uzsb2fytoyx7cxgic 2471898 2471897 2026-10-21T21:51:35Z Ahecht 5894 /* Toolforge */ c/e 2471898 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and <code>afdstats2</code> (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and <code>globalusagecountmirror</code> (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * <code>ahechtbot</code> (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) 5qzpwx20oeer892gpmqta5obcptxoyq 2471899 2471898 2026-10-21T21:52:23Z Ahecht 5894 /* Toolforge */ link 2471899 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * <code>ahechtbot</code> (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) osxzooerjbomdfxae6yfb5h8idf9tof 2471905 2471899 2026-10-21T22:11:33Z Nicereddy 59679 /* Exceptions */ Add my two tools 2471905 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * <code>ahechtbot</code> (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) cea0m6ufgmh6gb47eb4oozxql3sgrfx 2471906 2471905 2026-10-21T22:18:19Z R'n'B 297 /* Toolforge */ added Russbot 2471906 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * <code>ahechtbot</code> (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) 861sci2oz3qgg1l0s2ogiragxk84j6i 2471907 2471906 2026-10-21T23:00:38Z Krinkle 44 2471907 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * <code>ahechtbot</code> (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) 9qtlenpyjyxam1zmc5njrnzmnu3719t 2471908 2471907 2026-10-21T23:08:34Z Ahecht 5894 /* Toolforge (no PHP) */ add 2471908 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|ahechtbot]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) f3h2papl2dxi519bk6nei5jlrkip8wd 2471910 2471908 2026-10-21T23:10:19Z Ahecht 5894 /* Toolforge (no PHP) */ add 2471910 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) 5s4cp515a956qxa1rayk2tbeoqrvyxh 2471911 2471910 2026-10-21T23:11:31Z Ahecht 5894 Move 2471911 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) 6a3r59emvmgcmqvazmpb274scyb1f6w 2471913 2471911 2026-10-21T23:31:54Z Don-vip 14260 /* Toolforge (no PHP) */ spacemedia 2471913 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP upsage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) pe07bomm0a4s1xekhxd9skk97bnl1bd 2471914 2471913 2026-10-21T23:33:02Z Don-vip 14260 /* Toolforge (no PHP) */ video2commons 2471914 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) n3sge4ci0pszy73jsrcp1xg7ohdxcwz 2471915 2471914 2026-10-21T23:34:34Z Don-vip 14260 /* Cloud VPS */ spacemedia + video2commons 2471915 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) 08whi47tggn72c1omadort964xrdgl9 2471916 2471915 2026-10-21T23:54:54Z PPenloglou-WMF 34869 /* Toolforge (no PHP) */ fr-toolkit 2471916 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) e4n67md0fk9kvo8mipza7898yt57mns 2471918 2471916 2026-10-22T00:04:14Z Bb010g 49723 /* Toolforge (no PHP) */ add [[toolforge:hub]] 2471918 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) 8b23iu7jwc00tc8suncgdhjkfgypkva 2471919 2471918 2026-10-22T00:15:33Z Sohom Datta 15330 + for stuff that I remember 2471919 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) feosgrigdc08isdqh9r77t6ggey7vxy 2471920 2471919 2026-10-22T00:17:41Z Nanona15dobato 37684 +[[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] 2471920 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) e4ar8l18bwmccoivua2gybexbh4eyr4 2471921 2471920 2026-10-22T00:58:11Z Sage (Wiki Ed) 39641 /* Cloud VPS */ outreachdahboard 2471921 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) aqvxha09byt16lnwtiq9tpsga16fib0 2471922 2471921 2026-10-22T01:17:38Z Superzerocool 1046 /* Toolforge (no PHP) */ +1 2471922 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) 28ewq9szooeljfz5fqywi9lp7722q94 2471925 2471922 2026-10-22T01:37:31Z Revi C. 1919 /* Toolforge (no PHP) */ +3 2471925 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) * [[:toolforge:revibot]], revibot-i, revibot-ii; all pywikibot. Has php codes in other directory but never accessible from outsider and is just leftover from past testing. &mdash; [[User:Revi C.|<span style="color:green">레비</span>]][[User talk:Revi C.|<span style="color:green"><small>Revi</small></span>]] 01:37, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) 2ib3lalisu6mnqzql4kcg593vcd7653 2471926 2471925 2026-10-22T01:56:51Z Hakimi97 37633 /* Toolforge (no PHP) */ Add jawi tool 2471926 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) * [[:toolforge:revibot]], revibot-i, revibot-ii; all pywikibot. Has php codes in other directory but never accessible from outsider and is just leftover from past testing. &mdash; [[User:Revi C.|<span style="color:green">레비</span>]][[User talk:Revi C.|<span style="color:green"><small>Revi</small></span>]] 01:37, 22 October 2026 (UTC) * [[:toolforge:jawi]], only uses JS, CSS, and HTML for Malay script (ms-Latn to ms-Arab & IPA) conversion [[User:Hakimi97|Hakimi97]] ([[User talk:Hakimi97|talk]]) 01:56, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) ik61g5huh97trmn1wo08wd1985kgjw6 2471927 2471926 2026-10-22T02:13:26Z Le Loy 41823 /* Toolforge (no PHP) */ +2 2471927 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) * [[:toolforge:revibot]], revibot-i, revibot-ii; all pywikibot. Has php codes in other directory but never accessible from outsider and is just leftover from past testing. &mdash; [[User:Revi C.|<span style="color:green">레비</span>]][[User talk:Revi C.|<span style="color:green"><small>Revi</small></span>]] 01:37, 22 October 2026 (UTC) * [[:toolforge:jawi]], only uses JS, CSS, and HTML for Malay script (ms-Latn to ms-Arab & IPA) conversion [[User:Hakimi97|Hakimi97]] ([[User talk:Hakimi97|talk]]) 01:56, 22 October 2026 (UTC) * [https://fountain.toolforge.org/ Fountain], no PHP at all. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * chie-bot, no PHP. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) 4ctdtpp8vsfrqt5iatv8dgizki2mww5 2471928 2471927 2026-10-22T02:22:41Z Bodhisattwa 11878 /* Toolforge (no PHP) */ 2471928 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) * [[:toolforge:revibot]], revibot-i, revibot-ii; all pywikibot. Has php codes in other directory but never accessible from outsider and is just leftover from past testing. &mdash; [[User:Revi C.|<span style="color:green">레비</span>]][[User talk:Revi C.|<span style="color:green"><small>Revi</small></span>]] 01:37, 22 October 2026 (UTC) * [[:toolforge:jawi]], only uses JS, CSS, and HTML for Malay script (ms-Latn to ms-Arab & IPA) conversion [[User:Hakimi97|Hakimi97]] ([[User talk:Hakimi97|talk]]) 01:56, 22 October 2026 (UTC) * [https://fountain.toolforge.org/ Fountain], no PHP at all. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * chie-bot, no PHP. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * [[toolforge:wsindex]], built with Python and Django. -- [[User:Bodhisattwa|Bodhisattwa]] ([[User talk:Bodhisattwa|talk]]) 02:21, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) bfg9cwtqugtkr92jx95bhi8c9phqc13 2471930 2471928 2026-10-22T02:35:40Z Legoktm 621 /* Toolforge (no PHP) */ +krinklebot 2471930 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) * [[:toolforge:revibot]], revibot-i, revibot-ii; all pywikibot. Has php codes in other directory but never accessible from outsider and is just leftover from past testing. &mdash; [[User:Revi C.|<span style="color:green">레비</span>]][[User talk:Revi C.|<span style="color:green"><small>Revi</small></span>]] 01:37, 22 October 2026 (UTC) * [[:toolforge:jawi]], only uses JS, CSS, and HTML for Malay script (ms-Latn to ms-Arab & IPA) conversion [[User:Hakimi97|Hakimi97]] ([[User talk:Hakimi97|talk]]) 01:56, 22 October 2026 (UTC) * [https://fountain.toolforge.org/ Fountain], no PHP at all. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * chie-bot, no PHP. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * [[toolforge:wsindex]], built with Python and Django. -- [[User:Bodhisattwa|Bodhisattwa]] ([[User talk:Bodhisattwa|talk]]) 02:21, 22 October 2026 (UTC) * krinklebot, Python &mdash; cross-wiki file protection on Commons. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 02:35, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) 1fzpcemmgk9zml0vdt0voofdbsoz0e9 2471931 2471930 2026-10-22T04:15:00Z Physikerwelt 244 /* Cloud VPS */ 2471931 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) * [[:toolforge:revibot]], revibot-i, revibot-ii; all pywikibot. Has php codes in other directory but never accessible from outsider and is just leftover from past testing. &mdash; [[User:Revi C.|<span style="color:green">레비</span>]][[User talk:Revi C.|<span style="color:green"><small>Revi</small></span>]] 01:37, 22 October 2026 (UTC) * [[:toolforge:jawi]], only uses JS, CSS, and HTML for Malay script (ms-Latn to ms-Arab & IPA) conversion [[User:Hakimi97|Hakimi97]] ([[User talk:Hakimi97|talk]]) 01:56, 22 October 2026 (UTC) * [https://fountain.toolforge.org/ Fountain], no PHP at all. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * chie-bot, no PHP. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * [[toolforge:wsindex]], built with Python and Django. -- [[User:Bodhisattwa|Bodhisattwa]] ([[User talk:Bodhisattwa|talk]]) 02:21, 22 October 2026 (UTC) * krinklebot, Python &mdash; cross-wiki file protection on Commons. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 02:35, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) * math runs PHP. It would be helpful to get ssh but no public HTTP access. Alternatively switch off all instances so I can block HTTP in the firewall before starting the VMs again. --[[User:Physikerwelt|physikerwelt]] ([[User talk:Physikerwelt|talk]]) 04:15, 22 October 2026 (UTC) a3mlafz7b9mqjyq0jqiowdipgrzvkiy 2471932 2471931 2026-10-22T04:28:06Z GPSLeo 38467 /* Toolforge (no PHP) */ 2471932 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) * [[:toolforge:revibot]], revibot-i, revibot-ii; all pywikibot. Has php codes in other directory but never accessible from outsider and is just leftover from past testing. &mdash; [[User:Revi C.|<span style="color:green">레비</span>]][[User talk:Revi C.|<span style="color:green"><small>Revi</small></span>]] 01:37, 22 October 2026 (UTC) * [[:toolforge:jawi]], only uses JS, CSS, and HTML for Malay script (ms-Latn to ms-Arab & IPA) conversion [[User:Hakimi97|Hakimi97]] ([[User talk:Hakimi97|talk]]) 01:56, 22 October 2026 (UTC) * [https://fountain.toolforge.org/ Fountain], no PHP at all. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * chie-bot, no PHP. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * [[toolforge:wsindex]], built with Python and Django. -- [[User:Bodhisattwa|Bodhisattwa]] ([[User talk:Bodhisattwa|talk]]) 02:21, 22 October 2026 (UTC) * krinklebot, Python &mdash; cross-wiki file protection on Commons. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 02:35, 22 October 2026 (UTC) * [[:toolforge:uploadmap]], only html files --[[User:GPSLeo|GPSLeo]] ([[User talk:GPSLeo|talk]]) 04:28, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) * math runs PHP. It would be helpful to get ssh but no public HTTP access. Alternatively switch off all instances so I can block HTTP in the firewall before starting the VMs again. --[[User:Physikerwelt|physikerwelt]] ([[User talk:Physikerwelt|talk]]) 04:15, 22 October 2026 (UTC) av9jk3ut9nev3w6ebh5klnat2obwf39 2471933 2471932 2026-10-22T04:32:10Z GreenC 3809 /* Exceptions */ 2471933 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) * [[:toolforge:revibot]], revibot-i, revibot-ii; all pywikibot. Has php codes in other directory but never accessible from outsider and is just leftover from past testing. &mdash; [[User:Revi C.|<span style="color:green">레비</span>]][[User talk:Revi C.|<span style="color:green"><small>Revi</small></span>]] 01:37, 22 October 2026 (UTC) * [[:toolforge:jawi]], only uses JS, CSS, and HTML for Malay script (ms-Latn to ms-Arab & IPA) conversion [[User:Hakimi97|Hakimi97]] ([[User talk:Hakimi97|talk]]) 01:56, 22 October 2026 (UTC) * [https://fountain.toolforge.org/ Fountain], no PHP at all. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * chie-bot, no PHP. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * [[toolforge:wsindex]], built with Python and Django. -- [[User:Bodhisattwa|Bodhisattwa]] ([[User talk:Bodhisattwa|talk]]) 02:21, 22 October 2026 (UTC) * krinklebot, Python &mdash; cross-wiki file protection on Commons. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 02:35, 22 October 2026 (UTC) * [[:toolforge:uploadmap]], only html files --[[User:GPSLeo|GPSLeo]] ([[User talk:GPSLeo|talk]]) 04:28, 22 October 2026 (UTC) * [[:toolforge:bup]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:bupc]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:tss]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) * math runs PHP. It would be helpful to get ssh but no public HTTP access. Alternatively switch off all instances so I can block HTTP in the firewall before starting the VMs again. --[[User:Physikerwelt|physikerwelt]] ([[User talk:Physikerwelt|talk]]) 04:15, 22 October 2026 (UTC) 1g6fqn2mh3ybon6edqi7a40yzxc066v 2471934 2471933 2026-10-22T04:36:37Z MusikAnimal 4367 /* Cloud VPS */ some Python projects my team maintains 2471934 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) * [[:toolforge:revibot]], revibot-i, revibot-ii; all pywikibot. Has php codes in other directory but never accessible from outsider and is just leftover from past testing. &mdash; [[User:Revi C.|<span style="color:green">레비</span>]][[User talk:Revi C.|<span style="color:green"><small>Revi</small></span>]] 01:37, 22 October 2026 (UTC) * [[:toolforge:jawi]], only uses JS, CSS, and HTML for Malay script (ms-Latn to ms-Arab & IPA) conversion [[User:Hakimi97|Hakimi97]] ([[User talk:Hakimi97|talk]]) 01:56, 22 October 2026 (UTC) * [https://fountain.toolforge.org/ Fountain], no PHP at all. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * chie-bot, no PHP. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * [[toolforge:wsindex]], built with Python and Django. -- [[User:Bodhisattwa|Bodhisattwa]] ([[User talk:Bodhisattwa|talk]]) 02:21, 22 October 2026 (UTC) * krinklebot, Python &mdash; cross-wiki file protection on Commons. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 02:35, 22 October 2026 (UTC) * [[:toolforge:uploadmap]], only html files --[[User:GPSLeo|GPSLeo]] ([[User talk:GPSLeo|talk]]) 04:28, 22 October 2026 (UTC) * [[:toolforge:bup]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:bupc]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:tss]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) * math runs PHP. It would be helpful to get ssh but no public HTTP access. Alternatively switch off all instances so I can block HTTP in the firewall before starting the VMs again. --[[User:Physikerwelt|physikerwelt]] ([[User talk:Physikerwelt|talk]]) 04:15, 22 October 2026 (UTC) * <code>wikiwho</code> is only Python, and the longer it stays down, the longer it will take to pick up on everything it missed (all edits across 74 language editions of Wikipedia). Getting that back up and running would be great. In addition, on behalf of the [[mw:Moderator Tools|Moderator Tools]] team, I'm requesting these Python projects be considered for restoration as well: <code>twl</code> and <code>wikilink</code> (The Wikipedia Library), and <code>hashtags</code>. Thank you! <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 04:36, 22 October 2026 (UTC) alo0xorrrbqfmecnkgahjcvvi3qvdmx 2471935 2471934 2026-10-22T04:38:25Z Effeietsanders 9986 /* Cloud VPS */ 2471935 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) * [[:toolforge:revibot]], revibot-i, revibot-ii; all pywikibot. Has php codes in other directory but never accessible from outsider and is just leftover from past testing. &mdash; [[User:Revi C.|<span style="color:green">레비</span>]][[User talk:Revi C.|<span style="color:green"><small>Revi</small></span>]] 01:37, 22 October 2026 (UTC) * [[:toolforge:jawi]], only uses JS, CSS, and HTML for Malay script (ms-Latn to ms-Arab & IPA) conversion [[User:Hakimi97|Hakimi97]] ([[User talk:Hakimi97|talk]]) 01:56, 22 October 2026 (UTC) * [https://fountain.toolforge.org/ Fountain], no PHP at all. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * chie-bot, no PHP. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * [[toolforge:wsindex]], built with Python and Django. -- [[User:Bodhisattwa|Bodhisattwa]] ([[User talk:Bodhisattwa|talk]]) 02:21, 22 October 2026 (UTC) * krinklebot, Python &mdash; cross-wiki file protection on Commons. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 02:35, 22 October 2026 (UTC) * [[:toolforge:uploadmap]], only html files --[[User:GPSLeo|GPSLeo]] ([[User talk:GPSLeo|talk]]) 04:28, 22 October 2026 (UTC) * [[:toolforge:bup]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:bupc]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:tss]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) * math runs PHP. It would be helpful to get ssh but no public HTTP access. Alternatively switch off all instances so I can block HTTP in the firewall before starting the VMs again. --[[User:Physikerwelt|physikerwelt]] ([[User talk:Physikerwelt|talk]]) 04:15, 22 October 2026 (UTC) * <code>wikiwho</code> is only Python, and the longer it stays down, the longer it will take to pick up on everything it missed (all edits across 74 language editions of Wikipedia). Getting that back up and running would be great. In addition, on behalf of the [[mw:Moderator Tools|Moderator Tools]] team, I'm requesting these Python projects be considered for restoration as well: <code>twl</code> and <code>wikilink</code> (The Wikipedia Library), and <code>hashtags</code>. Thank you! <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 04:36, 22 October 2026 (UTC) * wiki-polis-backend: no Php. It serves as an internal backend for the Toolforge tool wiki-polis (Python/Flask, also no Php) [[User:Effeietsanders|Effeietsanders]] ([[User talk:Effeietsanders|talk]]) 04:38, 22 October 2026 (UTC) 8z867yxcfbsj65htlp2ef59az2a8e6d 2471936 2471935 2026-10-22T04:41:56Z GreenC 3809 /* Toolforge (PHP) */ 2471936 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) * [[:toolforge:revibot]], revibot-i, revibot-ii; all pywikibot. Has php codes in other directory but never accessible from outsider and is just leftover from past testing. &mdash; [[User:Revi C.|<span style="color:green">레비</span>]][[User talk:Revi C.|<span style="color:green"><small>Revi</small></span>]] 01:37, 22 October 2026 (UTC) * [[:toolforge:jawi]], only uses JS, CSS, and HTML for Malay script (ms-Latn to ms-Arab & IPA) conversion [[User:Hakimi97|Hakimi97]] ([[User talk:Hakimi97|talk]]) 01:56, 22 October 2026 (UTC) * [https://fountain.toolforge.org/ Fountain], no PHP at all. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * chie-bot, no PHP. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * [[toolforge:wsindex]], built with Python and Django. -- [[User:Bodhisattwa|Bodhisattwa]] ([[User talk:Bodhisattwa|talk]]) 02:21, 22 October 2026 (UTC) * krinklebot, Python &mdash; cross-wiki file protection on Commons. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 02:35, 22 October 2026 (UTC) * [[:toolforge:uploadmap]], only html files --[[User:GPSLeo|GPSLeo]] ([[User talk:GPSLeo|talk]]) 04:28, 22 October 2026 (UTC) * [[:toolforge:bup]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:bupc]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:tss]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:gcapi]] '''DO NOT ENABLE''', tool is abandoned. Delete the single PhP file if you want. I will delete the tool when toolforge is available again. -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:41, 22 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) * math runs PHP. It would be helpful to get ssh but no public HTTP access. Alternatively switch off all instances so I can block HTTP in the firewall before starting the VMs again. --[[User:Physikerwelt|physikerwelt]] ([[User talk:Physikerwelt|talk]]) 04:15, 22 October 2026 (UTC) * <code>wikiwho</code> is only Python, and the longer it stays down, the longer it will take to pick up on everything it missed (all edits across 74 language editions of Wikipedia). Getting that back up and running would be great. In addition, on behalf of the [[mw:Moderator Tools|Moderator Tools]] team, I'm requesting these Python projects be considered for restoration as well: <code>twl</code> and <code>wikilink</code> (The Wikipedia Library), and <code>hashtags</code>. Thank you! <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 04:36, 22 October 2026 (UTC) * wiki-polis-backend: no Php. It serves as an internal backend for the Toolforge tool wiki-polis (Python/Flask, also no Php) [[User:Effeietsanders|Effeietsanders]] ([[User talk:Effeietsanders|talk]]) 04:38, 22 October 2026 (UTC) jrjyijyfaxglhlb1adthfhydotrqqbe 2471937 2471936 2026-10-22T04:47:27Z Chlod 18186 /* Cloud VPS */ re 2471937 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) * [[:toolforge:revibot]], revibot-i, revibot-ii; all pywikibot. Has php codes in other directory but never accessible from outsider and is just leftover from past testing. &mdash; [[User:Revi C.|<span style="color:green">레비</span>]][[User talk:Revi C.|<span style="color:green"><small>Revi</small></span>]] 01:37, 22 October 2026 (UTC) * [[:toolforge:jawi]], only uses JS, CSS, and HTML for Malay script (ms-Latn to ms-Arab & IPA) conversion [[User:Hakimi97|Hakimi97]] ([[User talk:Hakimi97|talk]]) 01:56, 22 October 2026 (UTC) * [https://fountain.toolforge.org/ Fountain], no PHP at all. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * chie-bot, no PHP. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * [[toolforge:wsindex]], built with Python and Django. -- [[User:Bodhisattwa|Bodhisattwa]] ([[User talk:Bodhisattwa|talk]]) 02:21, 22 October 2026 (UTC) * krinklebot, Python &mdash; cross-wiki file protection on Commons. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 02:35, 22 October 2026 (UTC) * [[:toolforge:uploadmap]], only html files --[[User:GPSLeo|GPSLeo]] ([[User talk:GPSLeo|talk]]) 04:28, 22 October 2026 (UTC) * [[:toolforge:bup]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:bupc]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:tss]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:gcapi]] '''DO NOT ENABLE''', tool is abandoned. Delete the single PhP file if you want. I will delete the tool when toolforge is available again. -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:41, 22 October 2026 (UTC) ===Cloud VPS=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) * math runs PHP. It would be helpful to get ssh but no public HTTP access. Alternatively switch off all instances so I can block HTTP in the firewall before starting the VMs again. --[[User:Physikerwelt|physikerwelt]] ([[User talk:Physikerwelt|talk]]) 04:15, 22 October 2026 (UTC) * <code>wikiwho</code> is only Python, and the longer it stays down, the longer it will take to pick up on everything it missed (all edits across 74 language editions of Wikipedia). Getting that back up and running would be great. In addition, on behalf of the [[mw:Moderator Tools|Moderator Tools]] team, I'm requesting these Python projects be considered for restoration as well: <code>twl</code> and <code>wikilink</code> (The Wikipedia Library), and <code>hashtags</code>. Thank you! <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 04:36, 22 October 2026 (UTC) * wiki-polis-backend: no Php. It serves as an internal backend for the Toolforge tool wiki-polis (Python/Flask, also no Php) [[User:Effeietsanders|Effeietsanders]] ([[User talk:Effeietsanders|talk]]) 04:38, 22 October 2026 (UTC) * <code>eseap</code> has one machine which uses PHP, <code>eseap-appserver-01</code>. Ready to update as soon as it's unblocked. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 04:47, 22 October 2026 (UTC) mrifh20fqpoe0z1u7x8rxxfe1a51wez 2471938 2471937 2026-10-22T05:02:06Z Chlod 18186 /* Cloud VPS */ also breaking apart Cloud VPS into PHP/no-PHP categories 2471938 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) * [[:toolforge:revibot]], revibot-i, revibot-ii; all pywikibot. Has php codes in other directory but never accessible from outsider and is just leftover from past testing. &mdash; [[User:Revi C.|<span style="color:green">레비</span>]][[User talk:Revi C.|<span style="color:green"><small>Revi</small></span>]] 01:37, 22 October 2026 (UTC) * [[:toolforge:jawi]], only uses JS, CSS, and HTML for Malay script (ms-Latn to ms-Arab & IPA) conversion [[User:Hakimi97|Hakimi97]] ([[User talk:Hakimi97|talk]]) 01:56, 22 October 2026 (UTC) * [https://fountain.toolforge.org/ Fountain], no PHP at all. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * chie-bot, no PHP. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * [[toolforge:wsindex]], built with Python and Django. -- [[User:Bodhisattwa|Bodhisattwa]] ([[User talk:Bodhisattwa|talk]]) 02:21, 22 October 2026 (UTC) * krinklebot, Python &mdash; cross-wiki file protection on Commons. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 02:35, 22 October 2026 (UTC) * [[:toolforge:uploadmap]], only html files --[[User:GPSLeo|GPSLeo]] ([[User talk:GPSLeo|talk]]) 04:28, 22 October 2026 (UTC) * [[:toolforge:bup]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:bupc]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:tss]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:gcapi]] '''DO NOT ENABLE''', tool is abandoned. Delete the single PhP file if you want. I will delete the tool when toolforge is available again. -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:41, 22 October 2026 (UTC) ===Cloud VPS (no PHP)=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) * <code>wikiwho</code> is only Python, and the longer it stays down, the longer it will take to pick up on everything it missed (all edits across 74 language editions of Wikipedia). Getting that back up and running would be great. In addition, on behalf of the [[mw:Moderator Tools|Moderator Tools]] team, I'm requesting these Python projects be considered for restoration as well: <code>twl</code> and <code>wikilink</code> (The Wikipedia Library), and <code>hashtags</code>. Thank you! <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 04:36, 22 October 2026 (UTC) * wiki-polis-backend: no Php. It serves as an internal backend for the Toolforge tool wiki-polis (Python/Flask, also no Php) [[User:Effeietsanders|Effeietsanders]] ([[User talk:Effeietsanders|talk]]) 04:38, 22 October 2026 (UTC) ===Cloud VPS (PHP)=== * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * math runs PHP. It would be helpful to get ssh but no public HTTP access. Alternatively switch off all instances so I can block HTTP in the firewall before starting the VMs again. --[[User:Physikerwelt|physikerwelt]] ([[User talk:Physikerwelt|talk]]) 04:15, 22 October 2026 (UTC) * <code>eseap</code> has one machine which uses PHP, <code>eseap-appserver-01</code>. Ready to update as soon as it's unblocked. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 04:47, 22 October 2026 (UTC) gqtmbo0tnue7wueuhghs54h95zvrhf3 2471939 2471938 2026-10-22T05:02:51Z Chlod 18186 resort 2471939 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) * [[:toolforge:revibot]], revibot-i, revibot-ii; all pywikibot. Has php codes in other directory but never accessible from outsider and is just leftover from past testing. &mdash; [[User:Revi C.|<span style="color:green">레비</span>]][[User talk:Revi C.|<span style="color:green"><small>Revi</small></span>]] 01:37, 22 October 2026 (UTC) * [[:toolforge:jawi]], only uses JS, CSS, and HTML for Malay script (ms-Latn to ms-Arab & IPA) conversion [[User:Hakimi97|Hakimi97]] ([[User talk:Hakimi97|talk]]) 01:56, 22 October 2026 (UTC) * [https://fountain.toolforge.org/ Fountain], no PHP at all. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * chie-bot, no PHP. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * [[toolforge:wsindex]], built with Python and Django. -- [[User:Bodhisattwa|Bodhisattwa]] ([[User talk:Bodhisattwa|talk]]) 02:21, 22 October 2026 (UTC) * krinklebot, Python &mdash; cross-wiki file protection on Commons. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 02:35, 22 October 2026 (UTC) * [[:toolforge:uploadmap]], only html files --[[User:GPSLeo|GPSLeo]] ([[User talk:GPSLeo|talk]]) 04:28, 22 October 2026 (UTC) * [[:toolforge:bup]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:bupc]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:tss]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:gcapi]] '''DO NOT ENABLE''', tool is abandoned. Delete the single PhP file if you want. I will delete the tool when toolforge is available again. -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:41, 22 October 2026 (UTC) ===Cloud VPS (no PHP)=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) * <code>wikiwho</code> is only Python, and the longer it stays down, the longer it will take to pick up on everything it missed (all edits across 74 language editions of Wikipedia). Getting that back up and running would be great. In addition, on behalf of the [[mw:Moderator Tools|Moderator Tools]] team, I'm requesting these Python projects be considered for restoration as well: <code>twl</code> and <code>wikilink</code> (The Wikipedia Library), and <code>hashtags</code>. Thank you! <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 04:36, 22 October 2026 (UTC) * wiki-polis-backend: no Php. It serves as an internal backend for the Toolforge tool wiki-polis (Python/Flask, also no Php) [[User:Effeietsanders|Effeietsanders]] ([[User talk:Effeietsanders|talk]]) 04:38, 22 October 2026 (UTC) ===Cloud VPS (PHP)=== * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * math runs PHP. It would be helpful to get ssh but no public HTTP access. Alternatively switch off all instances so I can block HTTP in the firewall before starting the VMs again. --[[User:Physikerwelt|physikerwelt]] ([[User talk:Physikerwelt|talk]]) 04:15, 22 October 2026 (UTC) * <code>eseap</code> has one machine which uses PHP, <code>eseap-appserver-01</code>. Ready to update as soon as it's unblocked. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 04:47, 22 October 2026 (UTC) 7q1mce3mwax94oa2b7zjs6k0b15z7jv 2471940 2471939 2026-10-22T05:03:37Z MusikAnimal 4367 /* Cloud VPS */ my PHP tools 2471940 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) * [[:toolforge:revibot]], revibot-i, revibot-ii; all pywikibot. Has php codes in other directory but never accessible from outsider and is just leftover from past testing. &mdash; [[User:Revi C.|<span style="color:green">레비</span>]][[User talk:Revi C.|<span style="color:green"><small>Revi</small></span>]] 01:37, 22 October 2026 (UTC) * [[:toolforge:jawi]], only uses JS, CSS, and HTML for Malay script (ms-Latn to ms-Arab & IPA) conversion [[User:Hakimi97|Hakimi97]] ([[User talk:Hakimi97|talk]]) 01:56, 22 October 2026 (UTC) * [https://fountain.toolforge.org/ Fountain], no PHP at all. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * chie-bot, no PHP. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * [[toolforge:wsindex]], built with Python and Django. -- [[User:Bodhisattwa|Bodhisattwa]] ([[User talk:Bodhisattwa|talk]]) 02:21, 22 October 2026 (UTC) * krinklebot, Python &mdash; cross-wiki file protection on Commons. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 02:35, 22 October 2026 (UTC) * [[:toolforge:uploadmap]], only html files --[[User:GPSLeo|GPSLeo]] ([[User talk:GPSLeo|talk]]) 04:28, 22 October 2026 (UTC) * [[:toolforge:bup]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:bupc]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:tss]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:gcapi]] '''DO NOT ENABLE''', tool is abandoned. Delete the single PhP file if you want. I will delete the tool when toolforge is available again. -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:41, 22 October 2026 (UTC) ===Cloud VPS (no PHP)=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) * <code>wikiwho</code> is only Python, and the longer it stays down, the longer it will take to pick up on everything it missed (all edits across 74 language editions of Wikipedia). Getting that back up and running would be great. In addition, on behalf of the [[mw:Moderator Tools|Moderator Tools]] team, I'm requesting these Python projects be considered for restoration as well: <code>twl</code> and <code>wikilink</code> (The Wikipedia Library), and <code>hashtags</code>. Thank you! <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 04:36, 22 October 2026 (UTC) * wiki-polis-backend: no Php. It serves as an internal backend for the Toolforge tool wiki-polis (Python/Flask, also no Php) [[User:Effeietsanders|Effeietsanders]] ([[User talk:Effeietsanders|talk]]) 04:38, 22 October 2026 (UTC) ===Cloud VPS (PHP)=== * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * math runs PHP. It would be helpful to get ssh but no public HTTP access. Alternatively switch off all instances so I can block HTTP in the firewall before starting the VMs again. --[[User:Physikerwelt|physikerwelt]] ([[User talk:Physikerwelt|talk]]) 04:15, 22 October 2026 (UTC) * <code>eseap</code> has one machine which uses PHP, <code>eseap-appserver-01</code>. Ready to update as soon as it's unblocked. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 04:47, 22 October 2026 (UTC) * <code>xtools</code>, <code>commtech</code> (and soon to moved to <code>pageviews</code>), and <code>copypatrol</code> are all PHP, but myself and/or Moderator Tools are able to patch them as soon as we are able to SSH in again. <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 05:03, 22 October 2026 (UTC) ocip346itn4kclwdv9b8gxwqzanrhm3 2471941 2471940 2026-10-22T05:03:47Z Chlod 18186 + google-api-proy 2471941 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) * [[:toolforge:revibot]], revibot-i, revibot-ii; all pywikibot. Has php codes in other directory but never accessible from outsider and is just leftover from past testing. &mdash; [[User:Revi C.|<span style="color:green">레비</span>]][[User talk:Revi C.|<span style="color:green"><small>Revi</small></span>]] 01:37, 22 October 2026 (UTC) * [[:toolforge:jawi]], only uses JS, CSS, and HTML for Malay script (ms-Latn to ms-Arab & IPA) conversion [[User:Hakimi97|Hakimi97]] ([[User talk:Hakimi97|talk]]) 01:56, 22 October 2026 (UTC) * [https://fountain.toolforge.org/ Fountain], no PHP at all. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * chie-bot, no PHP. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * [[toolforge:wsindex]], built with Python and Django. -- [[User:Bodhisattwa|Bodhisattwa]] ([[User talk:Bodhisattwa|talk]]) 02:21, 22 October 2026 (UTC) * krinklebot, Python &mdash; cross-wiki file protection on Commons. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 02:35, 22 October 2026 (UTC) * [[:toolforge:uploadmap]], only html files --[[User:GPSLeo|GPSLeo]] ([[User talk:GPSLeo|talk]]) 04:28, 22 October 2026 (UTC) * [[:toolforge:bup]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:bupc]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:tss]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:gcapi]] '''DO NOT ENABLE''', tool is abandoned. Delete the single PhP file if you want. I will delete the tool when toolforge is available again. -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:41, 22 October 2026 (UTC) ===Cloud VPS (no PHP)=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) * <code>wikiwho</code> is only Python, and the longer it stays down, the longer it will take to pick up on everything it missed (all edits across 74 language editions of Wikipedia). Getting that back up and running would be great. In addition, on behalf of the [[mw:Moderator Tools|Moderator Tools]] team, I'm requesting these Python projects be considered for restoration as well: <code>twl</code> and <code>wikilink</code> (The Wikipedia Library), and <code>hashtags</code>. Thank you! <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 04:36, 22 October 2026 (UTC) * wiki-polis-backend: no Php. It serves as an internal backend for the Toolforge tool wiki-polis (Python/Flask, also no Php) [[User:Effeietsanders|Effeietsanders]] ([[User talk:Effeietsanders|talk]]) 04:38, 22 October 2026 (UTC) * [[Nova Resource:Google-api-proxy|google-api-proxy]] uses no PHP per @[[User:MusikAnimal|MusikAnimal]], and is a dependency of [[toolforge:copyvios]]. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 05:03, 22 October 2026 (UTC) ===Cloud VPS (PHP)=== * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * math runs PHP. It would be helpful to get ssh but no public HTTP access. Alternatively switch off all instances so I can block HTTP in the firewall before starting the VMs again. --[[User:Physikerwelt|physikerwelt]] ([[User talk:Physikerwelt|talk]]) 04:15, 22 October 2026 (UTC) * <code>eseap</code> has one machine which uses PHP, <code>eseap-appserver-01</code>. Ready to update as soon as it's unblocked. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 04:47, 22 October 2026 (UTC) * <code>xtools</code>, <code>commtech</code> (and soon to moved to <code>pageviews</code>), and <code>copypatrol</code> are all PHP, but myself and/or Moderator Tools are able to patch them as soon as we are able to SSH in again. <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 05:03, 22 October 2026 (UTC) iexer3im8otjmeqa32uv68fl6kwzl70 2471947 2471941 2026-10-22T06:43:21Z Count Count 11194 /* Toolforge (no PHP) */ add 2471947 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) * [[:toolforge:revibot]], revibot-i, revibot-ii; all pywikibot. Has php codes in other directory but never accessible from outsider and is just leftover from past testing. &mdash; [[User:Revi C.|<span style="color:green">레비</span>]][[User talk:Revi C.|<span style="color:green"><small>Revi</small></span>]] 01:37, 22 October 2026 (UTC) * [[:toolforge:jawi]], only uses JS, CSS, and HTML for Malay script (ms-Latn to ms-Arab & IPA) conversion [[User:Hakimi97|Hakimi97]] ([[User talk:Hakimi97|talk]]) 01:56, 22 October 2026 (UTC) * [https://fountain.toolforge.org/ Fountain], no PHP at all. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * chie-bot, no PHP. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * [[toolforge:wsindex]], built with Python and Django. -- [[User:Bodhisattwa|Bodhisattwa]] ([[User talk:Bodhisattwa|talk]]) 02:21, 22 October 2026 (UTC) * krinklebot, Python &mdash; cross-wiki file protection on Commons. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 02:35, 22 October 2026 (UTC) * [[:toolforge:uploadmap]], only html files --[[User:GPSLeo|GPSLeo]] ([[User talk:GPSLeo|talk]]) 04:28, 22 October 2026 (UTC) * [[:toolforge:bup]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:bupc]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:tss]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:namehistory]], [[:toolforge:checkusertools]], [[:toolforge:rangetree]], [[:toolforge:wiki-mail-verify]], [[:toolforge:flaggedrevspromotioncheck]], [[:toolforge:dewiki-votecheck]], [[:toolforge:spamcheck]]: web services, no PHP. xlinks, dewiki-voterightsnotifier, dewikisignbot, dewiki-rangeblock: bots, no PHP. [[:toolforge:globallinksearch]], globalspeedies: only registered, no code yet and will not be PHP. --[[User:Count Count|Count Count]] ([[User talk:Count Count|talk]]) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:gcapi]] '''DO NOT ENABLE''', tool is abandoned. Delete the single PhP file if you want. I will delete the tool when toolforge is available again. -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:41, 22 October 2026 (UTC) ===Cloud VPS (no PHP)=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) * <code>wikiwho</code> is only Python, and the longer it stays down, the longer it will take to pick up on everything it missed (all edits across 74 language editions of Wikipedia). Getting that back up and running would be great. In addition, on behalf of the [[mw:Moderator Tools|Moderator Tools]] team, I'm requesting these Python projects be considered for restoration as well: <code>twl</code> and <code>wikilink</code> (The Wikipedia Library), and <code>hashtags</code>. Thank you! <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 04:36, 22 October 2026 (UTC) * wiki-polis-backend: no Php. It serves as an internal backend for the Toolforge tool wiki-polis (Python/Flask, also no Php) [[User:Effeietsanders|Effeietsanders]] ([[User talk:Effeietsanders|talk]]) 04:38, 22 October 2026 (UTC) * [[Nova Resource:Google-api-proxy|google-api-proxy]] uses no PHP per @[[User:MusikAnimal|MusikAnimal]], and is a dependency of [[toolforge:copyvios]]. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 05:03, 22 October 2026 (UTC) ===Cloud VPS (PHP)=== * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * math runs PHP. It would be helpful to get ssh but no public HTTP access. Alternatively switch off all instances so I can block HTTP in the firewall before starting the VMs again. --[[User:Physikerwelt|physikerwelt]] ([[User talk:Physikerwelt|talk]]) 04:15, 22 October 2026 (UTC) * <code>eseap</code> has one machine which uses PHP, <code>eseap-appserver-01</code>. Ready to update as soon as it's unblocked. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 04:47, 22 October 2026 (UTC) * <code>xtools</code>, <code>commtech</code> (and soon to moved to <code>pageviews</code>), and <code>copypatrol</code> are all PHP, but myself and/or Moderator Tools are able to patch them as soon as we are able to SSH in again. <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 05:03, 22 October 2026 (UTC) n0kr2p6i79fxmw2a6y9ve6fy5uw7gmp 2471948 2471947 2026-10-22T06:44:40Z Count Count 11194 /* Toolforge (PHP) */ +1 2471948 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) * [[:toolforge:revibot]], revibot-i, revibot-ii; all pywikibot. Has php codes in other directory but never accessible from outsider and is just leftover from past testing. &mdash; [[User:Revi C.|<span style="color:green">레비</span>]][[User talk:Revi C.|<span style="color:green"><small>Revi</small></span>]] 01:37, 22 October 2026 (UTC) * [[:toolforge:jawi]], only uses JS, CSS, and HTML for Malay script (ms-Latn to ms-Arab & IPA) conversion [[User:Hakimi97|Hakimi97]] ([[User talk:Hakimi97|talk]]) 01:56, 22 October 2026 (UTC) * [https://fountain.toolforge.org/ Fountain], no PHP at all. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * chie-bot, no PHP. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * [[toolforge:wsindex]], built with Python and Django. -- [[User:Bodhisattwa|Bodhisattwa]] ([[User talk:Bodhisattwa|talk]]) 02:21, 22 October 2026 (UTC) * krinklebot, Python &mdash; cross-wiki file protection on Commons. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 02:35, 22 October 2026 (UTC) * [[:toolforge:uploadmap]], only html files --[[User:GPSLeo|GPSLeo]] ([[User talk:GPSLeo|talk]]) 04:28, 22 October 2026 (UTC) * [[:toolforge:bup]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:bupc]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:tss]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:namehistory]], [[:toolforge:checkusertools]], [[:toolforge:rangetree]], [[:toolforge:wiki-mail-verify]], [[:toolforge:flaggedrevspromotioncheck]], [[:toolforge:dewiki-votecheck]], [[:toolforge:spamcheck]]: web services, no PHP. xlinks, dewiki-voterightsnotifier, dewikisignbot, dewiki-rangeblock: bots, no PHP. [[:toolforge:globallinksearch]], globalspeedies: only registered, no code yet and will not be PHP. --[[User:Count Count|Count Count]] ([[User talk:Count Count|talk]]) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:stimmberechtigung]]: PHP tool for voting rights check on German Wikipedia. I will be available for update. --[[User:Count Count|Count Count]] ([[User talk:Count Count|talk]]) 06:44, 22 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:gcapi]] '''DO NOT ENABLE''', tool is abandoned. Delete the single PhP file if you want. I will delete the tool when toolforge is available again. -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:41, 22 October 2026 (UTC) ===Cloud VPS (no PHP)=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) * <code>wikiwho</code> is only Python, and the longer it stays down, the longer it will take to pick up on everything it missed (all edits across 74 language editions of Wikipedia). Getting that back up and running would be great. In addition, on behalf of the [[mw:Moderator Tools|Moderator Tools]] team, I'm requesting these Python projects be considered for restoration as well: <code>twl</code> and <code>wikilink</code> (The Wikipedia Library), and <code>hashtags</code>. Thank you! <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 04:36, 22 October 2026 (UTC) * wiki-polis-backend: no Php. It serves as an internal backend for the Toolforge tool wiki-polis (Python/Flask, also no Php) [[User:Effeietsanders|Effeietsanders]] ([[User talk:Effeietsanders|talk]]) 04:38, 22 October 2026 (UTC) * [[Nova Resource:Google-api-proxy|google-api-proxy]] uses no PHP per @[[User:MusikAnimal|MusikAnimal]], and is a dependency of [[toolforge:copyvios]]. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 05:03, 22 October 2026 (UTC) ===Cloud VPS (PHP)=== * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * math runs PHP. It would be helpful to get ssh but no public HTTP access. Alternatively switch off all instances so I can block HTTP in the firewall before starting the VMs again. --[[User:Physikerwelt|physikerwelt]] ([[User talk:Physikerwelt|talk]]) 04:15, 22 October 2026 (UTC) * <code>eseap</code> has one machine which uses PHP, <code>eseap-appserver-01</code>. Ready to update as soon as it's unblocked. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 04:47, 22 October 2026 (UTC) * <code>xtools</code>, <code>commtech</code> (and soon to moved to <code>pageviews</code>), and <code>copypatrol</code> are all PHP, but myself and/or Moderator Tools are able to patch them as soon as we are able to SSH in again. <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 05:03, 22 October 2026 (UTC) hrm5fdr5icw94kgl8rytcduu9hmb9k5 2471949 2471948 2026-10-22T07:27:04Z Redmin 23906 /* Toolforge (no PHP) */ Reply 2471949 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) *:I would like to add that due to wikidata-externalid-url not being available, some links to other dictionaries (often used as references) on Bengali Wiktionary are currently broken. [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 07:27, 22 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) * [[:toolforge:revibot]], revibot-i, revibot-ii; all pywikibot. Has php codes in other directory but never accessible from outsider and is just leftover from past testing. &mdash; [[User:Revi C.|<span style="color:green">레비</span>]][[User talk:Revi C.|<span style="color:green"><small>Revi</small></span>]] 01:37, 22 October 2026 (UTC) * [[:toolforge:jawi]], only uses JS, CSS, and HTML for Malay script (ms-Latn to ms-Arab & IPA) conversion [[User:Hakimi97|Hakimi97]] ([[User talk:Hakimi97|talk]]) 01:56, 22 October 2026 (UTC) * [https://fountain.toolforge.org/ Fountain], no PHP at all. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * chie-bot, no PHP. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * [[toolforge:wsindex]], built with Python and Django. -- [[User:Bodhisattwa|Bodhisattwa]] ([[User talk:Bodhisattwa|talk]]) 02:21, 22 October 2026 (UTC) * krinklebot, Python &mdash; cross-wiki file protection on Commons. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 02:35, 22 October 2026 (UTC) * [[:toolforge:uploadmap]], only html files --[[User:GPSLeo|GPSLeo]] ([[User talk:GPSLeo|talk]]) 04:28, 22 October 2026 (UTC) * [[:toolforge:bup]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:bupc]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:tss]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:namehistory]], [[:toolforge:checkusertools]], [[:toolforge:rangetree]], [[:toolforge:wiki-mail-verify]], [[:toolforge:flaggedrevspromotioncheck]], [[:toolforge:dewiki-votecheck]], [[:toolforge:spamcheck]]: web services, no PHP. xlinks, dewiki-voterightsnotifier, dewikisignbot, dewiki-rangeblock: bots, no PHP. [[:toolforge:globallinksearch]], globalspeedies: only registered, no code yet and will not be PHP. --[[User:Count Count|Count Count]] ([[User talk:Count Count|talk]]) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:stimmberechtigung]]: PHP tool for voting rights check on German Wikipedia. I will be available for update. --[[User:Count Count|Count Count]] ([[User talk:Count Count|talk]]) 06:44, 22 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:gcapi]] '''DO NOT ENABLE''', tool is abandoned. Delete the single PhP file if you want. I will delete the tool when toolforge is available again. -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:41, 22 October 2026 (UTC) ===Cloud VPS (no PHP)=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) * <code>wikiwho</code> is only Python, and the longer it stays down, the longer it will take to pick up on everything it missed (all edits across 74 language editions of Wikipedia). Getting that back up and running would be great. In addition, on behalf of the [[mw:Moderator Tools|Moderator Tools]] team, I'm requesting these Python projects be considered for restoration as well: <code>twl</code> and <code>wikilink</code> (The Wikipedia Library), and <code>hashtags</code>. Thank you! <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 04:36, 22 October 2026 (UTC) * wiki-polis-backend: no Php. It serves as an internal backend for the Toolforge tool wiki-polis (Python/Flask, also no Php) [[User:Effeietsanders|Effeietsanders]] ([[User talk:Effeietsanders|talk]]) 04:38, 22 October 2026 (UTC) * [[Nova Resource:Google-api-proxy|google-api-proxy]] uses no PHP per @[[User:MusikAnimal|MusikAnimal]], and is a dependency of [[toolforge:copyvios]]. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 05:03, 22 October 2026 (UTC) ===Cloud VPS (PHP)=== * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * math runs PHP. It would be helpful to get ssh but no public HTTP access. Alternatively switch off all instances so I can block HTTP in the firewall before starting the VMs again. --[[User:Physikerwelt|physikerwelt]] ([[User talk:Physikerwelt|talk]]) 04:15, 22 October 2026 (UTC) * <code>eseap</code> has one machine which uses PHP, <code>eseap-appserver-01</code>. Ready to update as soon as it's unblocked. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 04:47, 22 October 2026 (UTC) * <code>xtools</code>, <code>commtech</code> (and soon to moved to <code>pageviews</code>), and <code>copypatrol</code> are all PHP, but myself and/or Moderator Tools are able to patch them as soon as we are able to SSH in again. <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 05:03, 22 October 2026 (UTC) gpt312ipu4x8s511z8xukr4hzx2w868 2471950 2471949 2026-10-22T08:18:32Z Nux 3077 /* Toolforge (PHP) */ dna, authors, wiwosm 2471950 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) *:I would like to add that due to wikidata-externalid-url not being available, some links to other dictionaries (often used as references) on Bengali Wiktionary are currently broken. [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 07:27, 22 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) * [[:toolforge:revibot]], revibot-i, revibot-ii; all pywikibot. Has php codes in other directory but never accessible from outsider and is just leftover from past testing. &mdash; [[User:Revi C.|<span style="color:green">레비</span>]][[User talk:Revi C.|<span style="color:green"><small>Revi</small></span>]] 01:37, 22 October 2026 (UTC) * [[:toolforge:jawi]], only uses JS, CSS, and HTML for Malay script (ms-Latn to ms-Arab & IPA) conversion [[User:Hakimi97|Hakimi97]] ([[User talk:Hakimi97|talk]]) 01:56, 22 October 2026 (UTC) * [https://fountain.toolforge.org/ Fountain], no PHP at all. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * chie-bot, no PHP. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * [[toolforge:wsindex]], built with Python and Django. -- [[User:Bodhisattwa|Bodhisattwa]] ([[User talk:Bodhisattwa|talk]]) 02:21, 22 October 2026 (UTC) * krinklebot, Python &mdash; cross-wiki file protection on Commons. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 02:35, 22 October 2026 (UTC) * [[:toolforge:uploadmap]], only html files --[[User:GPSLeo|GPSLeo]] ([[User talk:GPSLeo|talk]]) 04:28, 22 October 2026 (UTC) * [[:toolforge:bup]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:bupc]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:tss]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:namehistory]], [[:toolforge:checkusertools]], [[:toolforge:rangetree]], [[:toolforge:wiki-mail-verify]], [[:toolforge:flaggedrevspromotioncheck]], [[:toolforge:dewiki-votecheck]], [[:toolforge:spamcheck]]: web services, no PHP. xlinks, dewiki-voterightsnotifier, dewikisignbot, dewiki-rangeblock: bots, no PHP. [[:toolforge:globallinksearch]], globalspeedies: only registered, no code yet and will not be PHP. --[[User:Count Count|Count Count]] ([[User talk:Count Count|talk]]) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:stimmberechtigung]]: PHP tool for voting rights check on German Wikipedia. I will be available for update. --[[User:Count Count|Count Count]] ([[User talk:Count Count|talk]]) 06:44, 22 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:gcapi]] '''DO NOT ENABLE''', tool is abandoned. Delete the single PhP file if you want. I will delete the tool when toolforge is available again. -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:41, 22 October 2026 (UTC) * [[:toolforge:dna]] should be able to run on php8; I can up the image setting if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) * [[:toolforge:authors]] should be able to run on php8; I can up the image setting if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) * [[:toolforge:wiwosm]] not sure; I can try to up the image setting and work on resolving bugs if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) ===Cloud VPS (no PHP)=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) * <code>wikiwho</code> is only Python, and the longer it stays down, the longer it will take to pick up on everything it missed (all edits across 74 language editions of Wikipedia). Getting that back up and running would be great. In addition, on behalf of the [[mw:Moderator Tools|Moderator Tools]] team, I'm requesting these Python projects be considered for restoration as well: <code>twl</code> and <code>wikilink</code> (The Wikipedia Library), and <code>hashtags</code>. Thank you! <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 04:36, 22 October 2026 (UTC) * wiki-polis-backend: no Php. It serves as an internal backend for the Toolforge tool wiki-polis (Python/Flask, also no Php) [[User:Effeietsanders|Effeietsanders]] ([[User talk:Effeietsanders|talk]]) 04:38, 22 October 2026 (UTC) * [[Nova Resource:Google-api-proxy|google-api-proxy]] uses no PHP per @[[User:MusikAnimal|MusikAnimal]], and is a dependency of [[toolforge:copyvios]]. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 05:03, 22 October 2026 (UTC) ===Cloud VPS (PHP)=== * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * math runs PHP. It would be helpful to get ssh but no public HTTP access. Alternatively switch off all instances so I can block HTTP in the firewall before starting the VMs again. --[[User:Physikerwelt|physikerwelt]] ([[User talk:Physikerwelt|talk]]) 04:15, 22 October 2026 (UTC) * <code>eseap</code> has one machine which uses PHP, <code>eseap-appserver-01</code>. Ready to update as soon as it's unblocked. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 04:47, 22 October 2026 (UTC) * <code>xtools</code>, <code>commtech</code> (and soon to moved to <code>pageviews</code>), and <code>copypatrol</code> are all PHP, but myself and/or Moderator Tools are able to patch them as soon as we are able to SSH in again. <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 05:03, 22 October 2026 (UTC) dmie7jz0hs5ahskxnnve0q1sxhaynow 2471951 2471950 2026-10-22T08:20:51Z Nux 3077 /* Toolforge (no PHP) */ zabytki JS 2471951 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) *:I would like to add that due to wikidata-externalid-url not being available, some links to other dictionaries (often used as references) on Bengali Wiktionary are currently broken. [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 07:27, 22 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) * [[:toolforge:revibot]], revibot-i, revibot-ii; all pywikibot. Has php codes in other directory but never accessible from outsider and is just leftover from past testing. &mdash; [[User:Revi C.|<span style="color:green">레비</span>]][[User talk:Revi C.|<span style="color:green"><small>Revi</small></span>]] 01:37, 22 October 2026 (UTC) * [[:toolforge:jawi]], only uses JS, CSS, and HTML for Malay script (ms-Latn to ms-Arab & IPA) conversion [[User:Hakimi97|Hakimi97]] ([[User talk:Hakimi97|talk]]) 01:56, 22 October 2026 (UTC) * [https://fountain.toolforge.org/ Fountain], no PHP at all. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * chie-bot, no PHP. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * [[toolforge:wsindex]], built with Python and Django. -- [[User:Bodhisattwa|Bodhisattwa]] ([[User talk:Bodhisattwa|talk]]) 02:21, 22 October 2026 (UTC) * krinklebot, Python &mdash; cross-wiki file protection on Commons. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 02:35, 22 October 2026 (UTC) * [[:toolforge:uploadmap]], only html files --[[User:GPSLeo|GPSLeo]] ([[User talk:GPSLeo|talk]]) 04:28, 22 October 2026 (UTC) * [[:toolforge:bup]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:bupc]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:tss]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:namehistory]], [[:toolforge:checkusertools]], [[:toolforge:rangetree]], [[:toolforge:wiki-mail-verify]], [[:toolforge:flaggedrevspromotioncheck]], [[:toolforge:dewiki-votecheck]], [[:toolforge:spamcheck]]: web services, no PHP. xlinks, dewiki-voterightsnotifier, dewikisignbot, dewiki-rangeblock: bots, no PHP. [[:toolforge:globallinksearch]], globalspeedies: only registered, no code yet and will not be PHP. --[[User:Count Count|Count Count]] ([[User talk:Count Count|talk]]) * [[:toolforge:zabytki]] – JS only; no server-side dynamic stuff. [[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:20, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:stimmberechtigung]]: PHP tool for voting rights check on German Wikipedia. I will be available for update. --[[User:Count Count|Count Count]] ([[User talk:Count Count|talk]]) 06:44, 22 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:gcapi]] '''DO NOT ENABLE''', tool is abandoned. Delete the single PhP file if you want. I will delete the tool when toolforge is available again. -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:41, 22 October 2026 (UTC) * [[:toolforge:dna]] should be able to run on php8; I can up the image setting if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) * [[:toolforge:authors]] should be able to run on php8; I can up the image setting if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) * [[:toolforge:wiwosm]] not sure; I can try to up the image setting and work on resolving bugs if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) ===Cloud VPS (no PHP)=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) * <code>wikiwho</code> is only Python, and the longer it stays down, the longer it will take to pick up on everything it missed (all edits across 74 language editions of Wikipedia). Getting that back up and running would be great. In addition, on behalf of the [[mw:Moderator Tools|Moderator Tools]] team, I'm requesting these Python projects be considered for restoration as well: <code>twl</code> and <code>wikilink</code> (The Wikipedia Library), and <code>hashtags</code>. Thank you! <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 04:36, 22 October 2026 (UTC) * wiki-polis-backend: no Php. It serves as an internal backend for the Toolforge tool wiki-polis (Python/Flask, also no Php) [[User:Effeietsanders|Effeietsanders]] ([[User talk:Effeietsanders|talk]]) 04:38, 22 October 2026 (UTC) * [[Nova Resource:Google-api-proxy|google-api-proxy]] uses no PHP per @[[User:MusikAnimal|MusikAnimal]], and is a dependency of [[toolforge:copyvios]]. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 05:03, 22 October 2026 (UTC) ===Cloud VPS (PHP)=== * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * math runs PHP. It would be helpful to get ssh but no public HTTP access. Alternatively switch off all instances so I can block HTTP in the firewall before starting the VMs again. --[[User:Physikerwelt|physikerwelt]] ([[User talk:Physikerwelt|talk]]) 04:15, 22 October 2026 (UTC) * <code>eseap</code> has one machine which uses PHP, <code>eseap-appserver-01</code>. Ready to update as soon as it's unblocked. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 04:47, 22 October 2026 (UTC) * <code>xtools</code>, <code>commtech</code> (and soon to moved to <code>pageviews</code>), and <code>copypatrol</code> are all PHP, but myself and/or Moderator Tools are able to patch them as soon as we are able to SSH in again. <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 05:03, 22 October 2026 (UTC) 0fnujg1qg3d40w94lbjed0iwf91w93m 2471955 2471951 2026-10-22T08:33:45Z Nux 3077 /* Why not just enable Toolforge without PHP images */ new section 2471955 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) *:I would like to add that due to wikidata-externalid-url not being available, some links to other dictionaries (often used as references) on Bengali Wiktionary are currently broken. [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 07:27, 22 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) * [[:toolforge:revibot]], revibot-i, revibot-ii; all pywikibot. Has php codes in other directory but never accessible from outsider and is just leftover from past testing. &mdash; [[User:Revi C.|<span style="color:green">레비</span>]][[User talk:Revi C.|<span style="color:green"><small>Revi</small></span>]] 01:37, 22 October 2026 (UTC) * [[:toolforge:jawi]], only uses JS, CSS, and HTML for Malay script (ms-Latn to ms-Arab & IPA) conversion [[User:Hakimi97|Hakimi97]] ([[User talk:Hakimi97|talk]]) 01:56, 22 October 2026 (UTC) * [https://fountain.toolforge.org/ Fountain], no PHP at all. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * chie-bot, no PHP. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * [[toolforge:wsindex]], built with Python and Django. -- [[User:Bodhisattwa|Bodhisattwa]] ([[User talk:Bodhisattwa|talk]]) 02:21, 22 October 2026 (UTC) * krinklebot, Python &mdash; cross-wiki file protection on Commons. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 02:35, 22 October 2026 (UTC) * [[:toolforge:uploadmap]], only html files --[[User:GPSLeo|GPSLeo]] ([[User talk:GPSLeo|talk]]) 04:28, 22 October 2026 (UTC) * [[:toolforge:bup]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:bupc]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:tss]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:namehistory]], [[:toolforge:checkusertools]], [[:toolforge:rangetree]], [[:toolforge:wiki-mail-verify]], [[:toolforge:flaggedrevspromotioncheck]], [[:toolforge:dewiki-votecheck]], [[:toolforge:spamcheck]]: web services, no PHP. xlinks, dewiki-voterightsnotifier, dewikisignbot, dewiki-rangeblock: bots, no PHP. [[:toolforge:globallinksearch]], globalspeedies: only registered, no code yet and will not be PHP. --[[User:Count Count|Count Count]] ([[User talk:Count Count|talk]]) * [[:toolforge:zabytki]] – JS only; no server-side dynamic stuff. [[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:20, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:stimmberechtigung]]: PHP tool for voting rights check on German Wikipedia. I will be available for update. --[[User:Count Count|Count Count]] ([[User talk:Count Count|talk]]) 06:44, 22 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:gcapi]] '''DO NOT ENABLE''', tool is abandoned. Delete the single PhP file if you want. I will delete the tool when toolforge is available again. -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:41, 22 October 2026 (UTC) * [[:toolforge:dna]] should be able to run on php8; I can up the image setting if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) * [[:toolforge:authors]] should be able to run on php8; I can up the image setting if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) * [[:toolforge:wiwosm]] not sure; I can try to up the image setting and work on resolving bugs if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) ===Cloud VPS (no PHP)=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) * <code>wikiwho</code> is only Python, and the longer it stays down, the longer it will take to pick up on everything it missed (all edits across 74 language editions of Wikipedia). Getting that back up and running would be great. In addition, on behalf of the [[mw:Moderator Tools|Moderator Tools]] team, I'm requesting these Python projects be considered for restoration as well: <code>twl</code> and <code>wikilink</code> (The Wikipedia Library), and <code>hashtags</code>. Thank you! <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 04:36, 22 October 2026 (UTC) * wiki-polis-backend: no Php. It serves as an internal backend for the Toolforge tool wiki-polis (Python/Flask, also no Php) [[User:Effeietsanders|Effeietsanders]] ([[User talk:Effeietsanders|talk]]) 04:38, 22 October 2026 (UTC) * [[Nova Resource:Google-api-proxy|google-api-proxy]] uses no PHP per @[[User:MusikAnimal|MusikAnimal]], and is a dependency of [[toolforge:copyvios]]. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 05:03, 22 October 2026 (UTC) ===Cloud VPS (PHP)=== * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * math runs PHP. It would be helpful to get ssh but no public HTTP access. Alternatively switch off all instances so I can block HTTP in the firewall before starting the VMs again. --[[User:Physikerwelt|physikerwelt]] ([[User talk:Physikerwelt|talk]]) 04:15, 22 October 2026 (UTC) * <code>eseap</code> has one machine which uses PHP, <code>eseap-appserver-01</code>. Ready to update as soon as it's unblocked. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 04:47, 22 October 2026 (UTC) * <code>xtools</code>, <code>commtech</code> (and soon to moved to <code>pageviews</code>), and <code>copypatrol</code> are all PHP, but myself and/or Moderator Tools are able to patch them as soon as we are able to SSH in again. <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 05:03, 22 October 2026 (UTC) == Why not just enable Toolforge without PHP images == From what I recall, TF works with the images enabled in the web configuration. You could try disabling, removing, or renaming those images, then running TF again. Afterward, you can work on restoring the PHP services by upgrading images. I believe the information about what image is available in the configuration files, so admins may be able to find it using [[w:Grep|grep]]. There should be no need for people manually writing which service doesn't use PHP (unless they enable PHP, but not actually using it). Personally I don't even remember what my setup is. Would be easier if some TF admin would post a list. [[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:33, 22 October 2026 (UTC) 2edozhbctgpcongt2ydlzpati6wffn4 2471956 2471955 2026-10-22T08:49:22Z TheDJ 95 /* Toolforge (PHP) */ objectium 2471956 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) *:I would like to add that due to wikidata-externalid-url not being available, some links to other dictionaries (often used as references) on Bengali Wiktionary are currently broken. [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 07:27, 22 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) * [[:toolforge:revibot]], revibot-i, revibot-ii; all pywikibot. Has php codes in other directory but never accessible from outsider and is just leftover from past testing. &mdash; [[User:Revi C.|<span style="color:green">레비</span>]][[User talk:Revi C.|<span style="color:green"><small>Revi</small></span>]] 01:37, 22 October 2026 (UTC) * [[:toolforge:jawi]], only uses JS, CSS, and HTML for Malay script (ms-Latn to ms-Arab & IPA) conversion [[User:Hakimi97|Hakimi97]] ([[User talk:Hakimi97|talk]]) 01:56, 22 October 2026 (UTC) * [https://fountain.toolforge.org/ Fountain], no PHP at all. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * chie-bot, no PHP. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * [[toolforge:wsindex]], built with Python and Django. -- [[User:Bodhisattwa|Bodhisattwa]] ([[User talk:Bodhisattwa|talk]]) 02:21, 22 October 2026 (UTC) * krinklebot, Python &mdash; cross-wiki file protection on Commons. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 02:35, 22 October 2026 (UTC) * [[:toolforge:uploadmap]], only html files --[[User:GPSLeo|GPSLeo]] ([[User talk:GPSLeo|talk]]) 04:28, 22 October 2026 (UTC) * [[:toolforge:bup]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:bupc]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:tss]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:namehistory]], [[:toolforge:checkusertools]], [[:toolforge:rangetree]], [[:toolforge:wiki-mail-verify]], [[:toolforge:flaggedrevspromotioncheck]], [[:toolforge:dewiki-votecheck]], [[:toolforge:spamcheck]]: web services, no PHP. xlinks, dewiki-voterightsnotifier, dewikisignbot, dewiki-rangeblock: bots, no PHP. [[:toolforge:globallinksearch]], globalspeedies: only registered, no code yet and will not be PHP. --[[User:Count Count|Count Count]] ([[User talk:Count Count|talk]]) * [[:toolforge:zabytki]] – JS only; no server-side dynamic stuff. [[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:20, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:stimmberechtigung]]: PHP tool for voting rights check on German Wikipedia. I will be available for update. --[[User:Count Count|Count Count]] ([[User talk:Count Count|talk]]) 06:44, 22 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:gcapi]] '''DO NOT ENABLE''', tool is abandoned. Delete the single PhP file if you want. I will delete the tool when toolforge is available again. -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:41, 22 October 2026 (UTC) * [[:toolforge:dna]] should be able to run on php8; I can up the image setting if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) * [[:toolforge:authors]] should be able to run on php8; I can up the image setting if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) * [[:toolforge:wiwosm]] not sure; I can try to up the image setting and work on resolving bugs if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) * [[:toolforge:objectium]] PHP, build packs. Low prio [[User:TheDJ|TheDJ]] ([[User talk:TheDJ|talk]]) 08:49, 22 October 2026 (UTC) ===Cloud VPS (no PHP)=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) * <code>wikiwho</code> is only Python, and the longer it stays down, the longer it will take to pick up on everything it missed (all edits across 74 language editions of Wikipedia). Getting that back up and running would be great. In addition, on behalf of the [[mw:Moderator Tools|Moderator Tools]] team, I'm requesting these Python projects be considered for restoration as well: <code>twl</code> and <code>wikilink</code> (The Wikipedia Library), and <code>hashtags</code>. Thank you! <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 04:36, 22 October 2026 (UTC) * wiki-polis-backend: no Php. It serves as an internal backend for the Toolforge tool wiki-polis (Python/Flask, also no Php) [[User:Effeietsanders|Effeietsanders]] ([[User talk:Effeietsanders|talk]]) 04:38, 22 October 2026 (UTC) * [[Nova Resource:Google-api-proxy|google-api-proxy]] uses no PHP per @[[User:MusikAnimal|MusikAnimal]], and is a dependency of [[toolforge:copyvios]]. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 05:03, 22 October 2026 (UTC) ===Cloud VPS (PHP)=== * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * math runs PHP. It would be helpful to get ssh but no public HTTP access. Alternatively switch off all instances so I can block HTTP in the firewall before starting the VMs again. --[[User:Physikerwelt|physikerwelt]] ([[User talk:Physikerwelt|talk]]) 04:15, 22 October 2026 (UTC) * <code>eseap</code> has one machine which uses PHP, <code>eseap-appserver-01</code>. Ready to update as soon as it's unblocked. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 04:47, 22 October 2026 (UTC) * <code>xtools</code>, <code>commtech</code> (and soon to moved to <code>pageviews</code>), and <code>copypatrol</code> are all PHP, but myself and/or Moderator Tools are able to patch them as soon as we are able to SSH in again. <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 05:03, 22 October 2026 (UTC) == Why not just enable Toolforge without PHP images == From what I recall, TF works with the images enabled in the web configuration. You could try disabling, removing, or renaming those images, then running TF again. Afterward, you can work on restoring the PHP services by upgrading images. I believe the information about what image is available in the configuration files, so admins may be able to find it using [[w:Grep|grep]]. There should be no need for people manually writing which service doesn't use PHP (unless they enable PHP, but not actually using it). Personally I don't even remember what my setup is. Would be easier if some TF admin would post a list. [[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:33, 22 October 2026 (UTC) 1r25ug5qt5bw7s2sfnrryq6pzt6hazp 2471957 2471956 2026-10-22T08:50:44Z TheDJ 95 /* Toolforge (no PHP) */ zonestamp 2471957 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) *:I would like to add that due to wikidata-externalid-url not being available, some links to other dictionaries (often used as references) on Bengali Wiktionary are currently broken. [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 07:27, 22 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) * [[:toolforge:revibot]], revibot-i, revibot-ii; all pywikibot. Has php codes in other directory but never accessible from outsider and is just leftover from past testing. &mdash; [[User:Revi C.|<span style="color:green">레비</span>]][[User talk:Revi C.|<span style="color:green"><small>Revi</small></span>]] 01:37, 22 October 2026 (UTC) * [[:toolforge:jawi]], only uses JS, CSS, and HTML for Malay script (ms-Latn to ms-Arab & IPA) conversion [[User:Hakimi97|Hakimi97]] ([[User talk:Hakimi97|talk]]) 01:56, 22 October 2026 (UTC) * [https://fountain.toolforge.org/ Fountain], no PHP at all. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * chie-bot, no PHP. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * [[toolforge:wsindex]], built with Python and Django. -- [[User:Bodhisattwa|Bodhisattwa]] ([[User talk:Bodhisattwa|talk]]) 02:21, 22 October 2026 (UTC) * krinklebot, Python &mdash; cross-wiki file protection on Commons. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 02:35, 22 October 2026 (UTC) * [[:toolforge:uploadmap]], only html files --[[User:GPSLeo|GPSLeo]] ([[User talk:GPSLeo|talk]]) 04:28, 22 October 2026 (UTC) * [[:toolforge:bup]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:bupc]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:tss]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:namehistory]], [[:toolforge:checkusertools]], [[:toolforge:rangetree]], [[:toolforge:wiki-mail-verify]], [[:toolforge:flaggedrevspromotioncheck]], [[:toolforge:dewiki-votecheck]], [[:toolforge:spamcheck]]: web services, no PHP. xlinks, dewiki-voterightsnotifier, dewikisignbot, dewiki-rangeblock: bots, no PHP. [[:toolforge:globallinksearch]], globalspeedies: only registered, no code yet and will not be PHP. --[[User:Count Count|Count Count]] ([[User talk:Count Count|talk]]) * [[:toolforge:zabytki]] – JS only; no server-side dynamic stuff. [[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:20, 22 October 2026 (UTC) * [[:toolforge:zonestamp]] nodeJS - used to share event and meeting dates [[User:TheDJ|TheDJ]] ([[User talk:TheDJ|talk]]) 08:50, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:stimmberechtigung]]: PHP tool for voting rights check on German Wikipedia. I will be available for update. --[[User:Count Count|Count Count]] ([[User talk:Count Count|talk]]) 06:44, 22 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:gcapi]] '''DO NOT ENABLE''', tool is abandoned. Delete the single PhP file if you want. I will delete the tool when toolforge is available again. -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:41, 22 October 2026 (UTC) * [[:toolforge:dna]] should be able to run on php8; I can up the image setting if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) * [[:toolforge:authors]] should be able to run on php8; I can up the image setting if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) * [[:toolforge:wiwosm]] not sure; I can try to up the image setting and work on resolving bugs if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) * [[:toolforge:objectium]] PHP, build packs. Low prio [[User:TheDJ|TheDJ]] ([[User talk:TheDJ|talk]]) 08:49, 22 October 2026 (UTC) ===Cloud VPS (no PHP)=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) * <code>wikiwho</code> is only Python, and the longer it stays down, the longer it will take to pick up on everything it missed (all edits across 74 language editions of Wikipedia). Getting that back up and running would be great. In addition, on behalf of the [[mw:Moderator Tools|Moderator Tools]] team, I'm requesting these Python projects be considered for restoration as well: <code>twl</code> and <code>wikilink</code> (The Wikipedia Library), and <code>hashtags</code>. Thank you! <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 04:36, 22 October 2026 (UTC) * wiki-polis-backend: no Php. It serves as an internal backend for the Toolforge tool wiki-polis (Python/Flask, also no Php) [[User:Effeietsanders|Effeietsanders]] ([[User talk:Effeietsanders|talk]]) 04:38, 22 October 2026 (UTC) * [[Nova Resource:Google-api-proxy|google-api-proxy]] uses no PHP per @[[User:MusikAnimal|MusikAnimal]], and is a dependency of [[toolforge:copyvios]]. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 05:03, 22 October 2026 (UTC) ===Cloud VPS (PHP)=== * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * math runs PHP. It would be helpful to get ssh but no public HTTP access. Alternatively switch off all instances so I can block HTTP in the firewall before starting the VMs again. --[[User:Physikerwelt|physikerwelt]] ([[User talk:Physikerwelt|talk]]) 04:15, 22 October 2026 (UTC) * <code>eseap</code> has one machine which uses PHP, <code>eseap-appserver-01</code>. Ready to update as soon as it's unblocked. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 04:47, 22 October 2026 (UTC) * <code>xtools</code>, <code>commtech</code> (and soon to moved to <code>pageviews</code>), and <code>copypatrol</code> are all PHP, but myself and/or Moderator Tools are able to patch them as soon as we are able to SSH in again. <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 05:03, 22 October 2026 (UTC) == Why not just enable Toolforge without PHP images == From what I recall, TF works with the images enabled in the web configuration. You could try disabling, removing, or renaming those images, then running TF again. Afterward, you can work on restoring the PHP services by upgrading images. I believe the information about what image is available in the configuration files, so admins may be able to find it using [[w:Grep|grep]]. There should be no need for people manually writing which service doesn't use PHP (unless they enable PHP, but not actually using it). Personally I don't even remember what my setup is. Would be easier if some TF admin would post a list. [[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:33, 22 October 2026 (UTC) l8v6k8d87hwuvzyx7u1zo6ojkq362b9 2471968 2471957 2026-10-22T10:42:27Z Pepe piton 37027 /* Exceptions */ Added Paulina tool to exceptions 2471968 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) *:I would like to add that due to wikidata-externalid-url not being available, some links to other dictionaries (often used as references) on Bengali Wiktionary are currently broken. [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 07:27, 22 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) * [[:toolforge:revibot]], revibot-i, revibot-ii; all pywikibot. Has php codes in other directory but never accessible from outsider and is just leftover from past testing. &mdash; [[User:Revi C.|<span style="color:green">레비</span>]][[User talk:Revi C.|<span style="color:green"><small>Revi</small></span>]] 01:37, 22 October 2026 (UTC) * [[:toolforge:jawi]], only uses JS, CSS, and HTML for Malay script (ms-Latn to ms-Arab & IPA) conversion [[User:Hakimi97|Hakimi97]] ([[User talk:Hakimi97|talk]]) 01:56, 22 October 2026 (UTC) * [https://fountain.toolforge.org/ Fountain], no PHP at all. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * chie-bot, no PHP. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * [[toolforge:wsindex]], built with Python and Django. -- [[User:Bodhisattwa|Bodhisattwa]] ([[User talk:Bodhisattwa|talk]]) 02:21, 22 October 2026 (UTC) * krinklebot, Python &mdash; cross-wiki file protection on Commons. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 02:35, 22 October 2026 (UTC) * [[:toolforge:uploadmap]], only html files --[[User:GPSLeo|GPSLeo]] ([[User talk:GPSLeo|talk]]) 04:28, 22 October 2026 (UTC) * [[:toolforge:bup]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:bupc]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:tss]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:namehistory]], [[:toolforge:checkusertools]], [[:toolforge:rangetree]], [[:toolforge:wiki-mail-verify]], [[:toolforge:flaggedrevspromotioncheck]], [[:toolforge:dewiki-votecheck]], [[:toolforge:spamcheck]]: web services, no PHP. xlinks, dewiki-voterightsnotifier, dewikisignbot, dewiki-rangeblock: bots, no PHP. [[:toolforge:globallinksearch]], globalspeedies: only registered, no code yet and will not be PHP. --[[User:Count Count|Count Count]] ([[User talk:Count Count|talk]]) * [[:toolforge:zabytki]] – JS only; no server-side dynamic stuff. [[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:20, 22 October 2026 (UTC) * [[:toolforge:zonestamp]] nodeJS - used to share event and meeting dates [[User:TheDJ|TheDJ]] ([[User talk:TheDJ|talk]]) 08:50, 22 October 2026 (UTC) * [[:toolforge:paulina]] Python/Flask tool. No PHP at all. [[User:Pepe piton|Pepe piton]] ([[User talk:Pepe piton|talk]]) 10:42, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:stimmberechtigung]]: PHP tool for voting rights check on German Wikipedia. I will be available for update. --[[User:Count Count|Count Count]] ([[User talk:Count Count|talk]]) 06:44, 22 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:gcapi]] '''DO NOT ENABLE''', tool is abandoned. Delete the single PhP file if you want. I will delete the tool when toolforge is available again. -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:41, 22 October 2026 (UTC) * [[:toolforge:dna]] should be able to run on php8; I can up the image setting if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) * [[:toolforge:authors]] should be able to run on php8; I can up the image setting if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) * [[:toolforge:wiwosm]] not sure; I can try to up the image setting and work on resolving bugs if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) * [[:toolforge:objectium]] PHP, build packs. Low prio [[User:TheDJ|TheDJ]] ([[User talk:TheDJ|talk]]) 08:49, 22 October 2026 (UTC) ===Cloud VPS (no PHP)=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) * <code>wikiwho</code> is only Python, and the longer it stays down, the longer it will take to pick up on everything it missed (all edits across 74 language editions of Wikipedia). Getting that back up and running would be great. In addition, on behalf of the [[mw:Moderator Tools|Moderator Tools]] team, I'm requesting these Python projects be considered for restoration as well: <code>twl</code> and <code>wikilink</code> (The Wikipedia Library), and <code>hashtags</code>. Thank you! <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 04:36, 22 October 2026 (UTC) * wiki-polis-backend: no Php. It serves as an internal backend for the Toolforge tool wiki-polis (Python/Flask, also no Php) [[User:Effeietsanders|Effeietsanders]] ([[User talk:Effeietsanders|talk]]) 04:38, 22 October 2026 (UTC) * [[Nova Resource:Google-api-proxy|google-api-proxy]] uses no PHP per @[[User:MusikAnimal|MusikAnimal]], and is a dependency of [[toolforge:copyvios]]. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 05:03, 22 October 2026 (UTC) ===Cloud VPS (PHP)=== * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * math runs PHP. It would be helpful to get ssh but no public HTTP access. Alternatively switch off all instances so I can block HTTP in the firewall before starting the VMs again. --[[User:Physikerwelt|physikerwelt]] ([[User talk:Physikerwelt|talk]]) 04:15, 22 October 2026 (UTC) * <code>eseap</code> has one machine which uses PHP, <code>eseap-appserver-01</code>. Ready to update as soon as it's unblocked. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 04:47, 22 October 2026 (UTC) * <code>xtools</code>, <code>commtech</code> (and soon to moved to <code>pageviews</code>), and <code>copypatrol</code> are all PHP, but myself and/or Moderator Tools are able to patch them as soon as we are able to SSH in again. <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 05:03, 22 October 2026 (UTC) == Why not just enable Toolforge without PHP images == From what I recall, TF works with the images enabled in the web configuration. You could try disabling, removing, or renaming those images, then running TF again. Afterward, you can work on restoring the PHP services by upgrading images. I believe the information about what image is available in the configuration files, so admins may be able to find it using [[w:Grep|grep]]. There should be no need for people manually writing which service doesn't use PHP (unless they enable PHP, but not actually using it). Personally I don't even remember what my setup is. Would be easier if some TF admin would post a list. [[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:33, 22 October 2026 (UTC) d9ow2dkxu5xc687qg53r362k1ewel7m 2471969 2471968 2026-10-22T11:14:47Z DamianZaremba 54 Add core cluebot related tools 2471969 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) *:I would like to add that due to wikidata-externalid-url not being available, some links to other dictionaries (often used as references) on Bengali Wiktionary are currently broken. [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 07:27, 22 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) * [[:toolforge:revibot]], revibot-i, revibot-ii; all pywikibot. Has php codes in other directory but never accessible from outsider and is just leftover from past testing. &mdash; [[User:Revi C.|<span style="color:green">레비</span>]][[User talk:Revi C.|<span style="color:green"><small>Revi</small></span>]] 01:37, 22 October 2026 (UTC) * [[:toolforge:jawi]], only uses JS, CSS, and HTML for Malay script (ms-Latn to ms-Arab & IPA) conversion [[User:Hakimi97|Hakimi97]] ([[User talk:Hakimi97|talk]]) 01:56, 22 October 2026 (UTC) * [https://fountain.toolforge.org/ Fountain], no PHP at all. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * chie-bot, no PHP. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * [[toolforge:wsindex]], built with Python and Django. -- [[User:Bodhisattwa|Bodhisattwa]] ([[User talk:Bodhisattwa|talk]]) 02:21, 22 October 2026 (UTC) * krinklebot, Python &mdash; cross-wiki file protection on Commons. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 02:35, 22 October 2026 (UTC) * [[:toolforge:uploadmap]], only html files --[[User:GPSLeo|GPSLeo]] ([[User talk:GPSLeo|talk]]) 04:28, 22 October 2026 (UTC) * [[:toolforge:bup]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:bupc]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:tss]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:namehistory]], [[:toolforge:checkusertools]], [[:toolforge:rangetree]], [[:toolforge:wiki-mail-verify]], [[:toolforge:flaggedrevspromotioncheck]], [[:toolforge:dewiki-votecheck]], [[:toolforge:spamcheck]]: web services, no PHP. xlinks, dewiki-voterightsnotifier, dewikisignbot, dewiki-rangeblock: bots, no PHP. [[:toolforge:globallinksearch]], globalspeedies: only registered, no code yet and will not be PHP. --[[User:Count Count|Count Count]] ([[User talk:Count Count|talk]]) * [[:toolforge:zabytki]] – JS only; no server-side dynamic stuff. [[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:20, 22 October 2026 (UTC) * [[:toolforge:zonestamp]] nodeJS - used to share event and meeting dates [[User:TheDJ|TheDJ]] ([[User talk:TheDJ|talk]]) 08:50, 22 October 2026 (UTC) * [[:toolforge:paulina]] Python/Flask tool. No PHP at all. [[User:Pepe piton|Pepe piton]] ([[User talk:Pepe piton|talk]]) 10:42, 22 October 2026 (UTC) * [[:toolforge:cluebotng-monitoring]] Prometheus/Grafana stack - used by other tools. [[User:DamianZaremba|damian]] ([[User talk:DamianZaremba|talk]]) 11:14, 22 October 2026 (UTC) * [[:toolforge:cluebotng-review]] Python based (Django/Celery). Uses trove. [[User:DamianZaremba|damian]] ([[User talk:DamianZaremba|talk]]) 11:14, 22 October 2026 (UTC) * [[:toolforge:cluebot-syncer]] Python based. [[User:DamianZaremba|damian]] ([[User talk:DamianZaremba|talk]]) 11:14, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:stimmberechtigung]]: PHP tool for voting rights check on German Wikipedia. I will be available for update. --[[User:Count Count|Count Count]] ([[User talk:Count Count|talk]]) 06:44, 22 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:gcapi]] '''DO NOT ENABLE''', tool is abandoned. Delete the single PhP file if you want. I will delete the tool when toolforge is available again. -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:41, 22 October 2026 (UTC) * [[:toolforge:dna]] should be able to run on php8; I can up the image setting if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) * [[:toolforge:authors]] should be able to run on php8; I can up the image setting if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) * [[:toolforge:wiwosm]] not sure; I can try to up the image setting and work on resolving bugs if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) * [[:toolforge:objectium]] PHP, build packs. Low prio [[User:TheDJ|TheDJ]] ([[User talk:TheDJ|talk]]) 08:49, 22 October 2026 (UTC) * [[:toolforge:cluebotng]] Command line process. Web interface can be disabled/replaced (otherwise blocked on T441917). [[User:DamianZaremba|damian]] ([[User talk:DamianZaremba|talk]]) 11:14, 22 October 2026 (UTC) * [[:toolforge:cluebot3]] Command line process only (otherwise blocked on T441917). [[User:DamianZaremba|damian]] ([[User talk:DamianZaremba|talk]]) 11:14, 22 October 2026 (UTC) ===Cloud VPS (no PHP)=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) * <code>wikiwho</code> is only Python, and the longer it stays down, the longer it will take to pick up on everything it missed (all edits across 74 language editions of Wikipedia). Getting that back up and running would be great. In addition, on behalf of the [[mw:Moderator Tools|Moderator Tools]] team, I'm requesting these Python projects be considered for restoration as well: <code>twl</code> and <code>wikilink</code> (The Wikipedia Library), and <code>hashtags</code>. Thank you! <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 04:36, 22 October 2026 (UTC) * wiki-polis-backend: no Php. It serves as an internal backend for the Toolforge tool wiki-polis (Python/Flask, also no Php) [[User:Effeietsanders|Effeietsanders]] ([[User talk:Effeietsanders|talk]]) 04:38, 22 October 2026 (UTC) * [[Nova Resource:Google-api-proxy|google-api-proxy]] uses no PHP per @[[User:MusikAnimal|MusikAnimal]], and is a dependency of [[toolforge:copyvios]]. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 05:03, 22 October 2026 (UTC) ===Cloud VPS (PHP)=== * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * math runs PHP. It would be helpful to get ssh but no public HTTP access. Alternatively switch off all instances so I can block HTTP in the firewall before starting the VMs again. --[[User:Physikerwelt|physikerwelt]] ([[User talk:Physikerwelt|talk]]) 04:15, 22 October 2026 (UTC) * <code>eseap</code> has one machine which uses PHP, <code>eseap-appserver-01</code>. Ready to update as soon as it's unblocked. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 04:47, 22 October 2026 (UTC) * <code>xtools</code>, <code>commtech</code> (and soon to moved to <code>pageviews</code>), and <code>copypatrol</code> are all PHP, but myself and/or Moderator Tools are able to patch them as soon as we are able to SSH in again. <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 05:03, 22 October 2026 (UTC) == Why not just enable Toolforge without PHP images == From what I recall, TF works with the images enabled in the web configuration. You could try disabling, removing, or renaming those images, then running TF again. Afterward, you can work on restoring the PHP services by upgrading images. I believe the information about what image is available in the configuration files, so admins may be able to find it using [[w:Grep|grep]]. There should be no need for people manually writing which service doesn't use PHP (unless they enable PHP, but not actually using it). Personally I don't even remember what my setup is. Would be easier if some TF admin would post a list. [[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:33, 22 October 2026 (UTC) hoqxm29xhyoi750qjxzvoiuyz895jg8 2471970 2471969 2026-10-22T11:17:40Z DamianZaremba 54 /* Why not just enable Toolforge without PHP images */ Reply 2471970 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) *:I would like to add that due to wikidata-externalid-url not being available, some links to other dictionaries (often used as references) on Bengali Wiktionary are currently broken. [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 07:27, 22 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) * [[:toolforge:revibot]], revibot-i, revibot-ii; all pywikibot. Has php codes in other directory but never accessible from outsider and is just leftover from past testing. &mdash; [[User:Revi C.|<span style="color:green">레비</span>]][[User talk:Revi C.|<span style="color:green"><small>Revi</small></span>]] 01:37, 22 October 2026 (UTC) * [[:toolforge:jawi]], only uses JS, CSS, and HTML for Malay script (ms-Latn to ms-Arab & IPA) conversion [[User:Hakimi97|Hakimi97]] ([[User talk:Hakimi97|talk]]) 01:56, 22 October 2026 (UTC) * [https://fountain.toolforge.org/ Fountain], no PHP at all. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * chie-bot, no PHP. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * [[toolforge:wsindex]], built with Python and Django. -- [[User:Bodhisattwa|Bodhisattwa]] ([[User talk:Bodhisattwa|talk]]) 02:21, 22 October 2026 (UTC) * krinklebot, Python &mdash; cross-wiki file protection on Commons. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 02:35, 22 October 2026 (UTC) * [[:toolforge:uploadmap]], only html files --[[User:GPSLeo|GPSLeo]] ([[User talk:GPSLeo|talk]]) 04:28, 22 October 2026 (UTC) * [[:toolforge:bup]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:bupc]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:tss]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:namehistory]], [[:toolforge:checkusertools]], [[:toolforge:rangetree]], [[:toolforge:wiki-mail-verify]], [[:toolforge:flaggedrevspromotioncheck]], [[:toolforge:dewiki-votecheck]], [[:toolforge:spamcheck]]: web services, no PHP. xlinks, dewiki-voterightsnotifier, dewikisignbot, dewiki-rangeblock: bots, no PHP. [[:toolforge:globallinksearch]], globalspeedies: only registered, no code yet and will not be PHP. --[[User:Count Count|Count Count]] ([[User talk:Count Count|talk]]) * [[:toolforge:zabytki]] – JS only; no server-side dynamic stuff. [[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:20, 22 October 2026 (UTC) * [[:toolforge:zonestamp]] nodeJS - used to share event and meeting dates [[User:TheDJ|TheDJ]] ([[User talk:TheDJ|talk]]) 08:50, 22 October 2026 (UTC) * [[:toolforge:paulina]] Python/Flask tool. No PHP at all. [[User:Pepe piton|Pepe piton]] ([[User talk:Pepe piton|talk]]) 10:42, 22 October 2026 (UTC) * [[:toolforge:cluebotng-monitoring]] Prometheus/Grafana stack - used by other tools. [[User:DamianZaremba|damian]] ([[User talk:DamianZaremba|talk]]) 11:14, 22 October 2026 (UTC) * [[:toolforge:cluebotng-review]] Python based (Django/Celery). Uses trove. [[User:DamianZaremba|damian]] ([[User talk:DamianZaremba|talk]]) 11:14, 22 October 2026 (UTC) * [[:toolforge:cluebot-syncer]] Python based. [[User:DamianZaremba|damian]] ([[User talk:DamianZaremba|talk]]) 11:14, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:stimmberechtigung]]: PHP tool for voting rights check on German Wikipedia. I will be available for update. --[[User:Count Count|Count Count]] ([[User talk:Count Count|talk]]) 06:44, 22 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:gcapi]] '''DO NOT ENABLE''', tool is abandoned. Delete the single PhP file if you want. I will delete the tool when toolforge is available again. -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:41, 22 October 2026 (UTC) * [[:toolforge:dna]] should be able to run on php8; I can up the image setting if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) * [[:toolforge:authors]] should be able to run on php8; I can up the image setting if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) * [[:toolforge:wiwosm]] not sure; I can try to up the image setting and work on resolving bugs if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) * [[:toolforge:objectium]] PHP, build packs. Low prio [[User:TheDJ|TheDJ]] ([[User talk:TheDJ|talk]]) 08:49, 22 October 2026 (UTC) * [[:toolforge:cluebotng]] Command line process. Web interface can be disabled/replaced (otherwise blocked on T441917). [[User:DamianZaremba|damian]] ([[User talk:DamianZaremba|talk]]) 11:14, 22 October 2026 (UTC) * [[:toolforge:cluebot3]] Command line process only (otherwise blocked on T441917). [[User:DamianZaremba|damian]] ([[User talk:DamianZaremba|talk]]) 11:14, 22 October 2026 (UTC) ===Cloud VPS (no PHP)=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) * <code>wikiwho</code> is only Python, and the longer it stays down, the longer it will take to pick up on everything it missed (all edits across 74 language editions of Wikipedia). Getting that back up and running would be great. In addition, on behalf of the [[mw:Moderator Tools|Moderator Tools]] team, I'm requesting these Python projects be considered for restoration as well: <code>twl</code> and <code>wikilink</code> (The Wikipedia Library), and <code>hashtags</code>. Thank you! <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 04:36, 22 October 2026 (UTC) * wiki-polis-backend: no Php. It serves as an internal backend for the Toolforge tool wiki-polis (Python/Flask, also no Php) [[User:Effeietsanders|Effeietsanders]] ([[User talk:Effeietsanders|talk]]) 04:38, 22 October 2026 (UTC) * [[Nova Resource:Google-api-proxy|google-api-proxy]] uses no PHP per @[[User:MusikAnimal|MusikAnimal]], and is a dependency of [[toolforge:copyvios]]. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 05:03, 22 October 2026 (UTC) ===Cloud VPS (PHP)=== * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * math runs PHP. It would be helpful to get ssh but no public HTTP access. Alternatively switch off all instances so I can block HTTP in the firewall before starting the VMs again. --[[User:Physikerwelt|physikerwelt]] ([[User talk:Physikerwelt|talk]]) 04:15, 22 October 2026 (UTC) * <code>eseap</code> has one machine which uses PHP, <code>eseap-appserver-01</code>. Ready to update as soon as it's unblocked. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 04:47, 22 October 2026 (UTC) * <code>xtools</code>, <code>commtech</code> (and soon to moved to <code>pageviews</code>), and <code>copypatrol</code> are all PHP, but myself and/or Moderator Tools are able to patch them as soon as we are able to SSH in again. <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 05:03, 22 October 2026 (UTC) == Why not just enable Toolforge without PHP images == From what I recall, TF works with the images enabled in the web configuration. You could try disabling, removing, or renaming those images, then running TF again. Afterward, you can work on restoring the PHP services by upgrading images. I believe the information about what image is available in the configuration files, so admins may be able to find it using [[w:Grep|grep]]. There should be no need for people manually writing which service doesn't use PHP (unless they enable PHP, but not actually using it). Personally I don't even remember what my setup is. Would be easier if some TF admin would post a list. [[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:33, 22 October 2026 (UTC) :That would only cover a subset of tools (those using web images) - component based tools would require the images analysis (SBOM) to see what software is installed. :I do agree it would be easier to just block all web traffic, allowing access to check tool users/files and then make a case for un-blocking (would also allow patching), alas that is not the current strategy. [[User:DamianZaremba|damian]] ([[User talk:DamianZaremba|talk]]) 11:17, 22 October 2026 (UTC) cl0mzkqyzii5885jyoxsstmpxycpwu6 2471971 2471970 2026-10-22T11:57:33Z Strainu 188 /* Toolforge (no PHP) */ Reply 2471971 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) *:* [[toolforge:patrocle]] *:* [[toolforge:eventfeedback]] *:Are both in python [[User:Strainu|strainu]] ([[User talk:Strainu|talk]]) 11:57, 22 October 2026 (UTC) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) *:I would like to add that due to wikidata-externalid-url not being available, some links to other dictionaries (often used as references) on Bengali Wiktionary are currently broken. [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 07:27, 22 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) * [[:toolforge:revibot]], revibot-i, revibot-ii; all pywikibot. Has php codes in other directory but never accessible from outsider and is just leftover from past testing. &mdash; [[User:Revi C.|<span style="color:green">레비</span>]][[User talk:Revi C.|<span style="color:green"><small>Revi</small></span>]] 01:37, 22 October 2026 (UTC) * [[:toolforge:jawi]], only uses JS, CSS, and HTML for Malay script (ms-Latn to ms-Arab & IPA) conversion [[User:Hakimi97|Hakimi97]] ([[User talk:Hakimi97|talk]]) 01:56, 22 October 2026 (UTC) * [https://fountain.toolforge.org/ Fountain], no PHP at all. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * chie-bot, no PHP. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * [[toolforge:wsindex]], built with Python and Django. -- [[User:Bodhisattwa|Bodhisattwa]] ([[User talk:Bodhisattwa|talk]]) 02:21, 22 October 2026 (UTC) * krinklebot, Python &mdash; cross-wiki file protection on Commons. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 02:35, 22 October 2026 (UTC) * [[:toolforge:uploadmap]], only html files --[[User:GPSLeo|GPSLeo]] ([[User talk:GPSLeo|talk]]) 04:28, 22 October 2026 (UTC) * [[:toolforge:bup]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:bupc]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:tss]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:namehistory]], [[:toolforge:checkusertools]], [[:toolforge:rangetree]], [[:toolforge:wiki-mail-verify]], [[:toolforge:flaggedrevspromotioncheck]], [[:toolforge:dewiki-votecheck]], [[:toolforge:spamcheck]]: web services, no PHP. xlinks, dewiki-voterightsnotifier, dewikisignbot, dewiki-rangeblock: bots, no PHP. [[:toolforge:globallinksearch]], globalspeedies: only registered, no code yet and will not be PHP. --[[User:Count Count|Count Count]] ([[User talk:Count Count|talk]]) * [[:toolforge:zabytki]] – JS only; no server-side dynamic stuff. [[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:20, 22 October 2026 (UTC) * [[:toolforge:zonestamp]] nodeJS - used to share event and meeting dates [[User:TheDJ|TheDJ]] ([[User talk:TheDJ|talk]]) 08:50, 22 October 2026 (UTC) * [[:toolforge:paulina]] Python/Flask tool. No PHP at all. [[User:Pepe piton|Pepe piton]] ([[User talk:Pepe piton|talk]]) 10:42, 22 October 2026 (UTC) * [[:toolforge:cluebotng-monitoring]] Prometheus/Grafana stack - used by other tools. [[User:DamianZaremba|damian]] ([[User talk:DamianZaremba|talk]]) 11:14, 22 October 2026 (UTC) * [[:toolforge:cluebotng-review]] Python based (Django/Celery). Uses trove. [[User:DamianZaremba|damian]] ([[User talk:DamianZaremba|talk]]) 11:14, 22 October 2026 (UTC) * [[:toolforge:cluebot-syncer]] Python based. [[User:DamianZaremba|damian]] ([[User talk:DamianZaremba|talk]]) 11:14, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:stimmberechtigung]]: PHP tool for voting rights check on German Wikipedia. I will be available for update. --[[User:Count Count|Count Count]] ([[User talk:Count Count|talk]]) 06:44, 22 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:gcapi]] '''DO NOT ENABLE''', tool is abandoned. Delete the single PhP file if you want. I will delete the tool when toolforge is available again. -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:41, 22 October 2026 (UTC) * [[:toolforge:dna]] should be able to run on php8; I can up the image setting if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) * [[:toolforge:authors]] should be able to run on php8; I can up the image setting if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) * [[:toolforge:wiwosm]] not sure; I can try to up the image setting and work on resolving bugs if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) * [[:toolforge:objectium]] PHP, build packs. Low prio [[User:TheDJ|TheDJ]] ([[User talk:TheDJ|talk]]) 08:49, 22 October 2026 (UTC) * [[:toolforge:cluebotng]] Command line process. Web interface can be disabled/replaced (otherwise blocked on T441917). [[User:DamianZaremba|damian]] ([[User talk:DamianZaremba|talk]]) 11:14, 22 October 2026 (UTC) * [[:toolforge:cluebot3]] Command line process only (otherwise blocked on T441917). [[User:DamianZaremba|damian]] ([[User talk:DamianZaremba|talk]]) 11:14, 22 October 2026 (UTC) ===Cloud VPS (no PHP)=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) * <code>wikiwho</code> is only Python, and the longer it stays down, the longer it will take to pick up on everything it missed (all edits across 74 language editions of Wikipedia). Getting that back up and running would be great. In addition, on behalf of the [[mw:Moderator Tools|Moderator Tools]] team, I'm requesting these Python projects be considered for restoration as well: <code>twl</code> and <code>wikilink</code> (The Wikipedia Library), and <code>hashtags</code>. Thank you! <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 04:36, 22 October 2026 (UTC) * wiki-polis-backend: no Php. It serves as an internal backend for the Toolforge tool wiki-polis (Python/Flask, also no Php) [[User:Effeietsanders|Effeietsanders]] ([[User talk:Effeietsanders|talk]]) 04:38, 22 October 2026 (UTC) * [[Nova Resource:Google-api-proxy|google-api-proxy]] uses no PHP per @[[User:MusikAnimal|MusikAnimal]], and is a dependency of [[toolforge:copyvios]]. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 05:03, 22 October 2026 (UTC) ===Cloud VPS (PHP)=== * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * math runs PHP. It would be helpful to get ssh but no public HTTP access. Alternatively switch off all instances so I can block HTTP in the firewall before starting the VMs again. --[[User:Physikerwelt|physikerwelt]] ([[User talk:Physikerwelt|talk]]) 04:15, 22 October 2026 (UTC) * <code>eseap</code> has one machine which uses PHP, <code>eseap-appserver-01</code>. Ready to update as soon as it's unblocked. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 04:47, 22 October 2026 (UTC) * <code>xtools</code>, <code>commtech</code> (and soon to moved to <code>pageviews</code>), and <code>copypatrol</code> are all PHP, but myself and/or Moderator Tools are able to patch them as soon as we are able to SSH in again. <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 05:03, 22 October 2026 (UTC) == Why not just enable Toolforge without PHP images == From what I recall, TF works with the images enabled in the web configuration. You could try disabling, removing, or renaming those images, then running TF again. Afterward, you can work on restoring the PHP services by upgrading images. I believe the information about what image is available in the configuration files, so admins may be able to find it using [[w:Grep|grep]]. There should be no need for people manually writing which service doesn't use PHP (unless they enable PHP, but not actually using it). Personally I don't even remember what my setup is. Would be easier if some TF admin would post a list. [[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:33, 22 October 2026 (UTC) :That would only cover a subset of tools (those using web images) - component based tools would require the images analysis (SBOM) to see what software is installed. :I do agree it would be easier to just block all web traffic, allowing access to check tool users/files and then make a case for un-blocking (would also allow patching), alas that is not the current strategy. [[User:DamianZaremba|damian]] ([[User talk:DamianZaremba|talk]]) 11:17, 22 October 2026 (UTC) l9l9qxd66t7m700izxespxsll7bi5hx 2471972 2471971 2026-10-22T11:58:17Z Strainu 188 /* Toolforge (no PHP) */ Reorder 2471972 wikitext text/x-wiki == Exceptions == Please specify if your tool doesn't run PHP and/or if you're available to upgrade it once it will be back up. ===Toolforge (no PHP)=== * [[Tool:Stashbot|stashbot]], [[Tool:Bridgebot|bridgebot]], [[:mw:wikibugs|wikibugs]], [[Tool:Jouncebot|jouncebot]] – important IRC bots; none use PHP as far as [[User:Lucas Werkmeister|Lucas Werkmeister]] ([[User talk:Lucas Werkmeister|talk]]) 18:10, 21 October 2026 (UTC) is aware (Python, Go, Python, Python) * ztools * feather * pid-bangladesh-uploadbot2 * [[m:wikinewsie|wikinewsie]], no PHP * wikiauthbot-ng - Rust, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 18:11, 21 October 2026 (UTC) * [[toolforge:techcontribs]], [[toolforge:deputy]], [[toolforge:ultraviolet]] &ndash; 100% sure that these don't use PHP. Theoretically, I can upgrade all of my tools to be PHP-safe but I don't have a full list of tools as a reference (because [[toolforge:ldap]] is down. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * [[toolforge:copyvios]] &ndash; uses Python (cc @[[User:The Earwig|The Earwig]]) <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 18:18, 21 October 2026 (UTC) * tfaprotbot (100% Rust, no web UI), adminbot responsible for protecting English Wikipedia's "Today's Featured Article". [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:21, 21 October 2026 (UTC) * apt-browser, ldap (100% Rust), I think these will be useful for remediation and tracking efforts. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * prosesize (100% Rust), used by a popular gadget on English Wikipedia (and probably elsewhere), used in DYK and other processes. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 18:24, 21 October 2026 (UTC) * [[toolforge:anomiebot]] has no PHP, unless I'm much misremembering. Web-facing stuff (which is minimal) should be all Perl. [[User:Anomie|Anomie]] ([[User talk:Anomie|talk]]) 18:43, 21 October 2026 (UTC) * [[en:User:DYKUpdateBot|DYKUpdateBot]], adminbot responsible for updating the Did you know section of Enwiki's Main Page, is pretty much 100% Python on top of Pywikibot, with a minimal amount of bash as the "glue". Toolforge project <code>dykbot</code> I believe. [[User:Shubinator|Shubinator]] ([[User talk:Shubinator|talk]]) 19:11, 21 October 2026 (UTC) * [[Tool:Ldap]] (rust): browse Developer account/WMCS LDAP directory * [[gitlab:toolforge-repos/disabled-tools]] (python): Tool shutdown dashboard * [[Tool:Etherpad-backup]] (python): Archival storage of etherpad data * [[Tool:Gitlab-account-approval]] (python): New gitlab account approval * [[GitLab/Webhooks]] (python): link github MRs to Phab, also used by [[:mw:wikibugs]] * [[Tool:Ircservserv]] (rust): IRC channel configuration management * [[Tool:Openstack-browser]] (python): OpenStack project inspector * [[gitlab:toolforge-repos/k8s-status]] (python): Toolforge Kubernetes inspector * [[Tool:Phab-ban]] (python): Community bans of Phab abusers * [[Tool:Toolviews]] (python): Toolforge webservice usage reporting * [[Tool:Wmopbot]] (python): IRC cloaks, IRC ban helper * [[Tool:Gitlab-content]] (go): gitlab data export, used by popular [[m:Cite Unseen]] user script * inaturalistreviewer: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * anticompositebot: python bot, no PHP [[User:AntiCompositeNumber|AntiCompositeNumber]] ([[User talk:AntiCompositeNumber|talk]]) 19:07, 21 October 2026 (UTC) * [[:gitlab:countcount/xlinks]] (Rust, also known as spamcheck): Used a lot at [[:m:Talk:Spam blacklist]]. Maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/multiuserinfo]] (Rust) and [[:gitlab:toolforge-repos/allblocksever]] (Vue): Power [[:m:User:Count Count/userinfo]]. The latter has its own site. Both maintained by [[User:Count Count|Count Count]]. [[User:NguoiDungKhongDinhDanh|NguoiDungKhongDinhDanh]] ([[User talk:NguoiDungKhongDinhDanh|talk]]) 19:09, 21 October 2026 (UTC) * fireflytools, tenshihinanawi-bot (Python+bash scripts, Python) [[User: Tenshi Hinanawi|Tenshi!]] ([[User talk: Tenshi Hinanawi|Talk page]]) 19:49, 21 October 2026 (UTC) * ptable - python. My other tools (author-disambiguator, wikidata-externalid-url, property-helper) are all php based, I can help update them if needed when things are back up; exteranlid-url might be the most urgent of those. [[User:ArthurPSmith|ArthurPSmith]] ([[User talk:ArthurPSmith|talk]]) 20:18, 21 October 2026 (UTC) *:I would like to add that due to wikidata-externalid-url not being available, some links to other dictionaries (often used as references) on Bengali Wiktionary are currently broken. [[User:Redmin|Redmin]] ([[User talk:Redmin|talk]]) 07:27, 22 October 2026 (UTC) * daily-article-l, flammablebot (Python only) [[User:FlammablePizza|FlammablePizza]] ([[User talk:FlammablePizza|talk]]) 20:55, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/nichesportsbot|nichesportsbot]] - python bot, no PHP. Maintains the case tables at [[:en:WP:AI noticeboard]] [[User:NicheSports|NicheSports]] ([[User talk:NicheSports|talk]]) 21:08, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/leximap]] (Codex + Python), [[:gitlab:toolforge-repos/sangkalak]] (Vue + Python), [[:gitlab:toolforge-repos/promanika]] (Vue + Rust), [[:gitlab:toolforge-repos/elemthala]] (and elemwala.toolforge.org and elemwala-backend.toolforge.org, on which Elemthala relies; both Python), talikak.toolforge.org (Python), hangor.toolforge.org (Python), mishramilan.toolforge.org (Vue + Python). [[User:Mahir256|Mahir256]] ([[User talk:Mahir256|talk]]) 21:26, 21 October 2026 (UTC) * [[Tool:afdstats|afdstats]] and [[:toolforge:afdstats2|afdstats2]] (python). These tools use the "python3.13" pre-built webservice image. They do not use PHP. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-ahechtbot|Ahechtbot]] and [[:toolhub:tools/toolforge-wikiprojectlist|WikiProjectList]] (python and nodejs): no webservice. Needed for updating the database used by the [[:en:Template:High-use]] template and the database of WikiProjects used for [[:en:Wikipedia:WikiProject Articles for creation/Helper script]], [[:en:Wikipedia:WikiProject Articles for creation/Add WikiProject tags]], and other scripts. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[toolforge:mna]] is a Node app (albeit with a Trove database, if that matters), and [[toolforge:wikidata-discographer]] is also a Node app, using ToolsDB. [[User:Nicereddy|Nicereddy]] ([[User talk:Nicereddy|talk]]) * [[toolforge:russbot]] is all Python; no PHP usage. —[[User:R&#39;n&#39;B|russblau]] ([[User talk:R&#39;n&#39;B|talk]]) 22:18, 21 October 2026 (UTC) * [[toolforge:spacemedia]] is all Java; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:31, 21 October 2026 (UTC) * [[toolforge:video2commons]] is all Python; no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:32, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/fr-toolkit]] NodeJS/Vue webapp; no PHP usage. --[[User:PPenloglou-WMF|PPenloglou-WMF]] ([[User talk:PPenloglou-WMF|talk]]) 23:55, 21 October 2026 (UTC) * [[toolforge:hub]] (source: [https://codeberg.org/maxlath/hub codeberg:maxlath/hub]) is all Node.js; no PHP usage. [[User:Bb010g|Bb010g]] ([[User talk:Bb010g|talk]]) 00:04, 22 October 2026 (UTC) * [[:toolforge:matchandsplit]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:wsstats]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:qpqtool]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:link-dispenser]], all Python and JS (with Redis and Celery) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:sodium-bot]], all Python, no PHP -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:yapping-sodium]], Golang binaries, no web facing instance -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[toolforge:nanonabot01]] and [[toolforge:nanonabot2-01]] is all Node.js; no PHP usage.--[[User:Nanona15dobato|Nanona15dobato]] ([[User talk:Nanona15dobato|talk]]) 00:17, 22 October 2026 (UTC) * [[:toolforge:SeroBOT]], an anti-vandalism secondary bot in Spanish Wikipedia/Wikibooks [[User:Superzerocool|Superzerocool]] ([[User talk:Superzerocool|talk]]) 01:17, 22 October 2026 (UTC) * [[:toolforge:revibot]], revibot-i, revibot-ii; all pywikibot. Has php codes in other directory but never accessible from outsider and is just leftover from past testing. &mdash; [[User:Revi C.|<span style="color:green">레비</span>]][[User talk:Revi C.|<span style="color:green"><small>Revi</small></span>]] 01:37, 22 October 2026 (UTC) * [[:toolforge:jawi]], only uses JS, CSS, and HTML for Malay script (ms-Latn to ms-Arab & IPA) conversion [[User:Hakimi97|Hakimi97]] ([[User talk:Hakimi97|talk]]) 01:56, 22 October 2026 (UTC) * [https://fountain.toolforge.org/ Fountain], no PHP at all. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * chie-bot, no PHP. [[User:Le Loy|Le Loy]] ([[User talk:Le Loy|talk]]) 02:13, 22 October 2026 (UTC) * [[toolforge:wsindex]], built with Python and Django. -- [[User:Bodhisattwa|Bodhisattwa]] ([[User talk:Bodhisattwa|talk]]) 02:21, 22 October 2026 (UTC) * krinklebot, Python &mdash; cross-wiki file protection on Commons. [[User:Legoktm|Legoktm]] ([[User talk:Legoktm|talk]]) 02:35, 22 October 2026 (UTC) * [[:toolforge:uploadmap]], only html files --[[User:GPSLeo|GPSLeo]] ([[User talk:GPSLeo|talk]]) 04:28, 22 October 2026 (UTC) * [[:toolforge:bup]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:bupc]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:tss]], no PhP -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:31, 22 October 2026 (UTC) * [[:toolforge:namehistory]], [[:toolforge:checkusertools]], [[:toolforge:rangetree]], [[:toolforge:wiki-mail-verify]], [[:toolforge:flaggedrevspromotioncheck]], [[:toolforge:dewiki-votecheck]], [[:toolforge:spamcheck]]: web services, no PHP. xlinks, dewiki-voterightsnotifier, dewikisignbot, dewiki-rangeblock: bots, no PHP. [[:toolforge:globallinksearch]], globalspeedies: only registered, no code yet and will not be PHP. --[[User:Count Count|Count Count]] ([[User talk:Count Count|talk]]) * [[:toolforge:zabytki]] – JS only; no server-side dynamic stuff. [[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:20, 22 October 2026 (UTC) * [[:toolforge:zonestamp]] nodeJS - used to share event and meeting dates [[User:TheDJ|TheDJ]] ([[User talk:TheDJ|talk]]) 08:50, 22 October 2026 (UTC) * [[:toolforge:paulina]] Python/Flask tool. No PHP at all. [[User:Pepe piton|Pepe piton]] ([[User talk:Pepe piton|talk]]) 10:42, 22 October 2026 (UTC) * [[:toolforge:cluebotng-monitoring]] Prometheus/Grafana stack - used by other tools. [[User:DamianZaremba|damian]] ([[User talk:DamianZaremba|talk]]) 11:14, 22 October 2026 (UTC) * [[:toolforge:cluebotng-review]] Python based (Django/Celery). Uses trove. [[User:DamianZaremba|damian]] ([[User talk:DamianZaremba|talk]]) 11:14, 22 October 2026 (UTC) * [[:toolforge:cluebot-syncer]] Python based. [[User:DamianZaremba|damian]] ([[User talk:DamianZaremba|talk]]) 11:14, 22 October 2026 (UTC) *:* [[toolforge:patrocle]] *:* [[toolforge:eventfeedback]] *:Are both in python [[User:Strainu|strainu]] ([[User talk:Strainu|talk]]) 11:57, 22 October 2026 (UTC) ===Toolforge (PHP)=== * [https://gerrit.wikimedia.org/g/labs/tools/guc gerrit:labs/tools/guc]: Global user contributions (PHP): Widely used by patrollers and counter vandalism efforts. I'll upgrade PHP as needed. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:43, 21 October 2026 (UTC) * [[:gitlab:toolforge-repos/globalusagecount|globalusagecount]] and [[:toolforge:globalusagecountmirror|globalusagecountmirror]] (PHP). These tools use the "php8.4" pre-built webservice image. I will be available to upgrade if anything is needed beyond an update of that image. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 21:49, 21 October 2026 (UTC) * [[:toolhub:tools/toolforge-randomincategory|RandomInCategory]], [[:toolhub:tools/toolforge-ircredirect|IRCRedirect]], [[:toolhub:tools/toolforge-excel2wiki|Excel2Wiki]] (PHP): I will be available to update. [[User:Ahecht|Ahecht]] ([[User talk:Ahecht|talk]]) 23:08, 21 October 2026 (UTC) * [[:toolforge:stimmberechtigung]]: PHP tool for voting rights check on German Wikipedia. I will be available for update. --[[User:Count Count|Count Count]] ([[User talk:Count Count|talk]]) 06:44, 22 October 2026 (UTC) * [[:toolforge:phetools]] '''DO NOT ENABLE''', has PHP code, is unmaintained. (It was decommissioned during the Grid Engine migration, unsure of what is running atm) -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:soda-test]] '''DO NOT ENABLE''', testing area, probably has an old version of croptool lying about (I think I took it down, but I am not sure), anything in that space can remain disabled. -- [[User:Sohom Datta|Sohom Datta]] ([[User talk:Sohom Datta|talk]]) 00:15, 22 October 2026 (UTC) * [[:toolforge:gcapi]] '''DO NOT ENABLE''', tool is abandoned. Delete the single PhP file if you want. I will delete the tool when toolforge is available again. -- [[User:GreenC|GreenC]] ([[User talk:GreenC|talk]]) 04:41, 22 October 2026 (UTC) * [[:toolforge:dna]] should be able to run on php8; I can up the image setting if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) * [[:toolforge:authors]] should be able to run on php8; I can up the image setting if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) * [[:toolforge:wiwosm]] not sure; I can try to up the image setting and work on resolving bugs if that is needed. --[[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:17, 22 October 2026 (UTC) * [[:toolforge:objectium]] PHP, build packs. Low prio [[User:TheDJ|TheDJ]] ([[User talk:TheDJ|talk]]) 08:49, 22 October 2026 (UTC) * [[:toolforge:cluebotng]] Command line process. Web interface can be disabled/replaced (otherwise blocked on T441917). [[User:DamianZaremba|damian]] ([[User talk:DamianZaremba|talk]]) 11:14, 22 October 2026 (UTC) * [[:toolforge:cluebot3]] Command line process only (otherwise blocked on T441917). [[User:DamianZaremba|damian]] ([[User talk:DamianZaremba|talk]]) 11:14, 22 October 2026 (UTC) ===Cloud VPS (no PHP)=== * maps --saper 14:24, 21 October 2026 (UTC) * [[m:IRC/WikiLounge|thelounge]] * dwl – [[User:Giftpflanze|gifti]] ([[User talk:Giftpflanze|talk]]) 19:54, 21 October 2026 (UTC) * mwoffliner uses no PHP. -[[User:Audiodude|Audiodude]] ([[User talk:Audiodude|talk]]) 21:21, 21 October 2026 (UTC) * spacemedia (cloudvps workers) - All Java, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * video (video2commons encoders) - All Python, no PHP usage. --[[User:Don-vip|Don-vip]] ([[User talk:Don-vip|talk]]) 23:34, 21 October 2026 (UTC) * outreachdashboard.wmflabs.org (globaleducation project), including `peony-database`, `peony-web`, `peony-sidekiq`, `peony-sidekiq-medium`, `peony-sidekiq-short`, and `p-and-e-dashboard-redis` - No PHP. Another instance in this project does use PHP, though, and I'll be eager to get it upgraded to restore access to Replica, which outreachdashbard relies on.--[[User:Sage (Wiki Ed)|Sage (Wiki Ed)]] ([[User talk:Sage (Wiki Ed)|talk]]) 00:58, 22 October 2026 (UTC) * <code>wikiwho</code> is only Python, and the longer it stays down, the longer it will take to pick up on everything it missed (all edits across 74 language editions of Wikipedia). Getting that back up and running would be great. In addition, on behalf of the [[mw:Moderator Tools|Moderator Tools]] team, I'm requesting these Python projects be considered for restoration as well: <code>twl</code> and <code>wikilink</code> (The Wikipedia Library), and <code>hashtags</code>. Thank you! <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 04:36, 22 October 2026 (UTC) * wiki-polis-backend: no Php. It serves as an internal backend for the Toolforge tool wiki-polis (Python/Flask, also no Php) [[User:Effeietsanders|Effeietsanders]] ([[User talk:Effeietsanders|talk]]) 04:38, 22 October 2026 (UTC) * [[Nova Resource:Google-api-proxy|google-api-proxy]] uses no PHP per @[[User:MusikAnimal|MusikAnimal]], and is a dependency of [[toolforge:copyvios]]. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 05:03, 22 October 2026 (UTC) ===Cloud VPS (PHP)=== * cyberbot, per Skynet in #wikimedia-cloud 2026-10-21T16:49Z: has PHP but only one VM is actually vulnerable to the exploit. I will update PHP in all of the VMs to patch the vulnerability regardless. Ready to work on this immediately.[[User:Cyberpower678|Cyberpower678]] ([[User talk:Cyberpower678|talk]]) 18:00, 21 October 2026 (UTC) * wm-bot Only the logs browser uses PHP, I can take that down. I also can be available to update for the next hour and then starting a couple hours later. [[User:MacFan4000|MacFan4000]] ([[User talk:MacFan4000|talk]]) 18:05, 21 October 2026 (UTC) * [[m:Countervandalism_Network/Infrastructure#Wikimedia_Cloud_VPS|cvn]] - cvn-app instances don't have anything web-facing, PHP or otherwise. cvn-apache hosts a PHP webapp that I will update. [[User:Krinkle|Krinkle]] ([[User talk:Krinkle|talk]]) 21:39, 21 October 2026 (UTC) * math runs PHP. It would be helpful to get ssh but no public HTTP access. Alternatively switch off all instances so I can block HTTP in the firewall before starting the VMs again. --[[User:Physikerwelt|physikerwelt]] ([[User talk:Physikerwelt|talk]]) 04:15, 22 October 2026 (UTC) * <code>eseap</code> has one machine which uses PHP, <code>eseap-appserver-01</code>. Ready to update as soon as it's unblocked. <span style="font-weight: bold; font-style: italic;">[[User:Chlod Alejandro|Chlod]]</span> <span style="font-size: calc(1em - 2pt);">([[User talk:Chlod Alejandro|say hi!]]) (please ping on reply)</span> 04:47, 22 October 2026 (UTC) * <code>xtools</code>, <code>commtech</code> (and soon to moved to <code>pageviews</code>), and <code>copypatrol</code> are all PHP, but myself and/or Moderator Tools are able to patch them as soon as we are able to SSH in again. <span style="font-family:sans-serif">&mdash; <span style="font-weight:bold">[[User:MusikAnimal|<span style="color:black; font-style:italic">MusikAnimal</span>]] <sup>[[User talk:MusikAnimal|<span style="color:green">talk</span>]]</sup></span></span> 05:03, 22 October 2026 (UTC) == Why not just enable Toolforge without PHP images == From what I recall, TF works with the images enabled in the web configuration. You could try disabling, removing, or renaming those images, then running TF again. Afterward, you can work on restoring the PHP services by upgrading images. I believe the information about what image is available in the configuration files, so admins may be able to find it using [[w:Grep|grep]]. There should be no need for people manually writing which service doesn't use PHP (unless they enable PHP, but not actually using it). Personally I don't even remember what my setup is. Would be easier if some TF admin would post a list. [[User:Nux|Nux]] ([[User talk:Nux|talk]]) 08:33, 22 October 2026 (UTC) :That would only cover a subset of tools (those using web images) - component based tools would require the images analysis (SBOM) to see what software is installed. :I do agree it would be easier to just block all web traffic, allowing access to check tool users/files and then make a case for un-blocking (would also allow patching), alas that is not the current strategy. [[User:DamianZaremba|damian]] ([[User talk:DamianZaremba|talk]]) 11:17, 22 October 2026 (UTC) bps8yuewznnm3d3exogu01w0iac8fut Talk:Incidents/2026-10-21 PHP security update 1 460843 2471848 2026-10-21T15:23:55Z GPSLeo 38467 /* Thumbnails vanishing */ new section 2471848 wikitext text/x-wiki == Thumbnails vanishing == I am writing here as the Phabricator is still down. It seems that something is currently deleting all thumbnails for files. [[User:GPSLeo|GPSLeo]] ([[User talk:GPSLeo|talk]]) 15:23, 21 October 2026 (UTC) cvkomvut4t98k9z0wxbwknfcdyfd4mo User:Bafanat89 2 460844 2471967 2026-10-22T10:07:51Z Bafanat89 39570 Shares and Crypto 2471967 wikitext text/x-wiki Milli-Ki icwnbxjqkiwdya60u2ppi22u1q23vc2