Portal:Toolforge/About Toolforge

From Wikitech
Jump to navigation Jump to search
This page has upcoming planned revisions. Please help improve them and provide feedback: https://phabricator.wikimedia.org/T344627


This page will help you understand what Toolforge is, some of its features, and how it is structured.

If you already know these basics, then you are ready to start developing tools! Visit the Toolforge Portal for more information.

Before you start

Before you can start using Toolforge to create and maintain tools, you'll need:

What is Toolforge?

Toolforge is a hosting environment, also known as Platform as a Service. Toolforge makes it easy for you to perform analytics, administer bots, run webservices, and create tools. Tools help project editors, technical contributors, and other volunteers who work on Wikimedia projects.

Toolforge is part of the Wikimedia Cloud Services (WMCS) suite of services. It is supported by Wikimedia Foundation staff and volunteers.

What is a tool?

Tools are software applications, web applications, gadgets, and bots that help people working on Wikimedia projects. Tools can do all kinds of tasks like helping editors discover quick tasks to do, making automatic edits, visualizing data, extracting metadata, and more.

What tools are hosted on Toolforge?

For a list of tools hosted on Toolforge, visit:

What are the main features of Toolforge?

  • A supported hosting environment for tools, web services, continuous bots, and scheduled tasks
  • Access to replicated production databases
  • Shared management of tool accounts, where tools and bots are stored
  • Support for mosh, SSH, SFTP
  • Version control via Gerrit and Git
  • Support for Redis
  • Support for Elasticsearch

How is Toolforge structured?

Toolforge is made up of the following main parts: the bastion hosts, the Kubernetes cluster, and the databases.

Bastion hosts

You can log in to Toolforge through a bastion host. There are two bastion hosts to choose from:

user login to access tools interactively
functionally identical, please use this for heavy processing such as compiles

The Kubernetes cluster

Kubernetes (often abbreviated k8s) is a platform for running containers. It is used in Toolforge to isolate Tools from each other and allow distributing Tools across a pool of servers. Kubernetes lets Tools run scheduled and continuous jobs and web services.

The databases

Toolforge supports two sets of databases: the wiki replicas and user-created databases, which are used by individual tools. The wiki replicas follow the same setup as production wiki databases, and the information that can be accessed from them is the same as that which normal registered users (i.e.: not +sysop or other types of advanced permissions) can access on-wiki or via the API.

Note: some data has been removed from the replicas for privacy reasons.

User-created databases can be created by either a user or a tool on a local ‘tools’ project database.

Rules of use

As part of Wikimedia Cloud Services, Toolforge is subject to the general Cloud Services Terms of use, and is governed by these additional rules.

Individual wiki policies

Each wiki has its own guidelines and procedures. When developing on Toolforge, please follow the bot policies of the wikis your bot will interact with.

For general information and guidelines, see Bot policy.

Communication and support

Support and administration of the WMCS resources is provided by the Wikimedia Foundation Cloud Services team and Wikimedia movement volunteers. Please reach out with questions and join the conversation:

Discuss and receive general support
Stay aware of critical changes and plans
Track work tasks and report bugs

Use a subproject of the #Cloud-Services Phabricator project to track confirmed bug reports and feature requests about the Cloud Services infrastructure itself

Read stories and WMCS blog posts

Read the Cloud Services Blog (for the broader Wikimedia movement, see the Wikimedia Technical Blog)

See Also