From Wikitech
Jump to navigation Jump to search

What is Wikimedia Labs?

Wikimedia Labs is an open source project where volunteering contributors can involve in software development and hosts virtual machines in the virtual cluster. Ever wondered what is difference between Labs, Tool Labs, Projects and Tools? Are you confused of all these terms we are using on Wikimedia Labs? This is a place for you.

Note: If you know all this, but you are looking for more technical details, see Help:Terminology.

Wikimedia Labs (aka Labs)

Wikimedia labs is a platform which provides virtual machine hosting. It consists of projects that contain virtual machines ("instances") and access lists as well as various configuration options for these (each project can have own its own access policies, DNS records, etc.).

For help with Wikimedia Labs, see Help:Contents.

Tool Labs (aka tools)

Tool Labs is one of those projects inside Wikimedia Labs. It is designed to host tools that are not so complicated that they would require a dedicated instance (which tools don't need their own virtual machine and operating system). Users can create so called "tools" within this project. Each tool gets its own service group which enables you to grant individuals access to collaborate on your tool.

For help with Tool Labs, see Help:Tool Labs.


An instance is a virtual machine that hosted inside Wikimedia Labs. Every instance belongs to a project. Example of an instance is "tools-exec-02".

Service group

Every Wikimedia Labs project may optionally have an unlimited number of service groups. Every service group has its own LDAP user account which is meant to be used as a service user account for various applications. For example, if you want to install an application and run its executables as a service user (as opposed to running it as your personal user name), you can create a service group for one or more applications.

Service groups can be configured per project. In the case of Tool Labs, each tool automatically has its own service group to keep tools from accessing each other without permission.

What is it for?

Wikimedia Labs is for the volunteers to get involved in Wikimedia operations and software development. Labs contains many projects, each of which uses one or more instances. Tool Labs is one of the most important projects in Wikimedia Labs.

How does it work?

Wikimedia Labs is a virtualization cluster and hosts various virtual machines (called instances) using OpenStack Compute.This is slightly different from your normal servers that you ssh to (i.e. Toolserver), as virtual machines do not exist physically, but reside inside a much bigger machine called the host machine. More details about the physical setup of labs can be found under Labs infrastructure.

What is the difference between the Labs and Tool Labs ?

Tool Labs is a part of Wikimedia Labs which gives community developers a reliable and scalable hosting environment to develop their tools and bots. It is designed to host tools which don’t need their own virtual machine and operating system.

I am new to Wikimedia Labs. What should I do next?

If you haven’t done so, create a user account on Wikitech. Go through our Getting Started and Help documents. If you want more help drop by our irc channel #wikimedia-labs channel on Freenode or drop a mail to our mailing list labs-l mailing list and ask for help.

I have a project idea. How can I request a new project?

If you haven’t done so, create a user account on Wikitech. If you need to create a new project for your development work, place your request on phabricator. You can also get help by dropping by our irc channel #wikimedia-labs channel on Freenode or sending a mail to our mailing list .

I want to contribute to an existing project. where can I find the project list ?

List of projects

How can I contact a human? (How can I get help from a human)

Drop by our irc channel #wikimedia-labs channel on Freenode or send a mail to our mailing list labs-l mailing list.

What is shell access?

Shell access to Wikimedia Labs gives you the ability to access the virtual machine instances . It depends on your accounts access rights and the projects you have been assigned. Only project admins are allowed to create and manage instances.

What is Puppet?

Puppet is a configuration management system. When instances are created, they build themselves according to a set of rules (manifests, template, and files) defined by puppet. learn more about puppet.

What is gerrit?

Gerrit is a code review system that manages git repositories. It will provide a simple framework for reviewing every commit before it is accepted into the code base. When a volunteer submit a patch it is reviewed using Gerrit by the project admins before it gets merged to the code base.This tutorial will help you to work with Gerrit.

What is a bastion instance?

For security purposes most lab instances cannot be directly accessed from the internet. Hence to log in to other instances bastion instance is used. Bastion instance ( is accessible by every labs account holder.

Where can I find other Labs Terminology explained?

In Terminology page