From Wikitech
Jump to navigation Jump to search

What is planet?

An RSS feed aggregator. See meta:Planet_Wikimedia for details.

How do I access it? and several other languages, *

Which languages exist?

The current list of languages is:

How to add a new language?

Make a change in the operations/puppet repo in ./modules/profile/manifests/planet/venus.pp . You'll see the existing examples.

New planet (planet-venus)

On Jan,23rd 2013 we switched from the old planet ( to the new planet-venus (

What's better about the new planet?

  1. It's packaged in Ubuntu. (planet-venus), the old planet was not packaged.
  2. It's fully puppetized, the old planet was all manual.
  3. It uses git. People adding feed URLs can just send Gerrit patchsets. The old planet used SVN.
  4. It's a complete rewrite of the old code in Python. It uses more modern technology like html5lib, Atom, XSLT and Django templates.
  5. It's IPv6-enabled.
  6. It's SSL-enabled. You can now use https://<lang>
  7. Apache site config is separate for each language and generated from language hash in puppet

What may not be better about the new planet (yet)?

  1. The "gmq" planet, which is a combo of Scandinavian languages does not have separate index pages in each language yet.
  2. Some CSS/layout/design issues, like localized logo in Arabic or right-to-left alignment of thumbnails. (Arabic does already use a separate CSS file though and has the sidebar on the right hand side)
  3. It does not include iframes (this might be considered a good thing though)

Where should I report issues?

On Phabricator. In product Wikimedia, component Planet

Where does it run?

On planetX001 where X={1, 2} varying on the datacenter (eqiad, codfw). Before that it was on zirconium in eqiad. The even older planet was on singer.

Where's the code?

In git, in the operations/puppet repo:

  1. ./manifests/role/planet.pp
  2. ./manifests/misc/planet.pp


  1. git clone

How are planets being updated?

Puppet creates cron jobs, running as user "planet".

crontab -u planet -l
example:  0 0 * * * /usr/bin/planet -v /usr/share/planet-venus/wikimedia/de/config.ini > /var/log/planet/de-planet.log 2>&1

There is also /var/lib/planet/update-planets to update all planets at once. run with sudo -u planet though to not mess up permissions on log files.

How do I add or remove feed URLs?

  1. Clone the operations/puppet Git repository: git clone;
  2. go to puppet/templates/planet/ and edit one of the [language]_config.erb files (where [language] matches the code of the language of the new feed);
  3. submit to Gerrit and have somebody review and it.

How do I change HTML of the index pages?

  1. see above, edit ./puppet/templates/planet/index.html.tmpl.erb

How do I add/change translations in the index pages or add a new language?

  1. see above, edit ./puppet/manifests/role/planet.pp (find $planet_languages=...)

How do I request changes if I can't or don't want to submit a change set myself?

Ask on meta:Planet_Wikimedia#Requests_for_Update_or_Removal

Are there more general docs on planet-venus and its architecture?

Sure, see docs and venus.svg.