Janitor News #11

Phew… what a year!

This is your recurrent burst of good news about Janitor, the IDE-as-a-service for open source projects.

Janitor Beta

We’re all out of Alpha! We’ve shipped everything we wanted to, including a fresh new web app (see below), and Janitor is now 100% operational. And it’s beautiful:


One last piece still needs to fall into place – our hard disks are full, and we need to auto-remove old containers to make space for newer project images. Our service is designed to support many, many containers. However, this only works when they’re fresh – the older a container gets, the more disk space it starts eating up (mostly because it prevents a big old project image from being garbage collected, but also because things like container logs grow to infinity over time).

So watch out for email reminders about expired containers – we’ll soon ask you to backup anything valuable in your containers that are over 6 months old (e.g. by pushing commits to a remote; or downloading important files; or migrating to a newer Janitor container) and after a short grace period, we’ll automatically delete them. This will free up enough disk space for us to continuously download newer project images, thus staying fresh forever, and accept many more users going forward.

2018 in a nutshell

We did a lot of things, some easy, some harder. Here are the highlights:

  • We shipped a beautiful new web app, based on Mozilla’s Photon design language
  • You gave us feedback via a survey – many thanks! Here are the results
  • You can now SSH into containers – configure your authorized_keys and see SSH instructions under “Advanced”
  • When you connect with GitHub, hub now gets pre-configured for your account (hint: you may need to reset your .config/hub and .netrc config files after connecting with GitHub)
  • DataDog started sponsoring Janitor with a premium account! Many thanks, this allows us to keep our servers healthy
  • @Coder206 created useful DataDog-based performance dashboard for our public data page
  • We added the PrivateBin project, thanks to @elrido’s help
  • We completed a Janitor Windows proof-of-concept for instant Firefox development
  • We started integrating the fast and powerful Theia IDE
  • We improved our Docker continuous integration with CircleCI and Docker Hub
  • Servo’s non-Rust code now builds with Clang 6.0 instead of GCC
  • Firefox containers got support for Phabricator and git-cinnabar
  • Thunderbird containers got a new source code layout thanks to Tom Prince
  • We successfully de-commissioned one of our oldest hosting servers, MOZ1 – thanks and farewell!
  • Janitor also has a short domain now – jntr.io
  • Overall we made our service much smoother, safer, and robuster

Janitor :heart: Gitpod

As a core developer of Janitor, I’m especially happy and proud to announce that after five years at Mozilla, I’m now joining TypeFox to help build Gitpod.io. It’s heart-lifting to see the world finally waking up to the potential of cloud-native software development, and the people at TypeFox have built a truly incredible product.

Gitpod and Janitor are very similar, but they also differ in a few interesting ways: for example, Gitpod can quickly check out any project / branch / pull request directly from GitHub (just prefix the URL with gitpod.io#), whereas Janitor is highly specialized for performance-hungry, opinionated-workflowed projects like Firefox, Servo, Chromium, Thunderbird (and more). I’m really looking forward to see what we’ll accomplish together on this new adventure.

And that’s all for now. We hope you had some magical holidays, and a good start into the new year.

Here’s to an exciting 2019!
Jan for Team Janitor

Datadog Sponsorship Announcement

Hi there,

As you may know, Janitor uses Datadog to keep the team informed of the health and performance of our Docker servers. The addition of our 6th server OVH1, lead to a new step in the relationship between Datadog and Janitor. We are thrilled to announce that Datadog became a sponsor to Janitor!

This new sponsorship enables us to monitor all of our ever-increasing number of servers and will help us make Janitor even more reliable as a platform for working on Open Source projects.

In celebration, we are working on making the data collected by Janitor publicly available for everyone. To start this off, here are some public dashboards made with Datadog featuring data about Janitor:

Stay tuned for more!

Team Janitor

Janitor News #10

Happy 2018 everyone!

We hope you’ve had a smooth start into the year, and wish you all the best in your life and projects.
This is your recurrent burst of good news about Janitor.

First Survey

We have big plans for 2018, and about 500 people now use Janitor to contribute to open source software. We’d love to understand what you’re getting out of Janitor, and what we could improve to make your life easier.

2018 Janitor Survey (should take < 3 minutes)

Please help us do our best work this year. In return, we’ll publicly share the stats and insights via our blog.

Towards Windows Support

Last month at Mozilla’s All Hands in Austin, we announced Windows environments in Janitor for mid-2018. You can watch the lightning talk and the slides online.

Since then, we’ve iterated on a prototype Windows image for Firefox (based on a Windows 10 VM in Azure) and we’re now looking into using Azure’s REST API to allow Janitor users to spawn and automatically configure new VMs based on our Firefox Windows image. This is similar to spawning and auto-configuring new Docker containers based on our Linux images today.

It’s still early days, but if you’re excited about Windows support, you can track our progress with the new Janitor Windows roadmap.

Announcing Janitor 0.0.10

We’ve improved, upgraded and extended Janitor in many cool ways. So much that the next release should hopefully take us from Alpha to Beta, which will bring even more exciting features, supported open source projects, users, speed, stability and scalability.

Here is what we did since 0.0.9 was released 4 months ago:

  • Quick preview URLs in the IDE (notriddle)
  • Improved Run scripts for most projects (janx)
  • Enabled collaborative editing in the IDE (janx)
  • New website design for Janitor to be released soon (ntim, arshad, notriddle)
  • New containers page with a cool SSH one-liner (ntim)
  • New blog page populated directly from our Discourse (notriddle)
  • New OVH1 Docker server, our most powerful yet (16 CPU, 64GB RAM, 2TB SSD)
  • Added the PeerTube project (janx, bnjbvr, Chocobozzz)
  • Added the Yuzu Emulator project (etiennewan)
  • Refactored most of our Node.js modules to async/await
  • Tested Janitor on an iPad and it works! (Flaki)
  • Supported UTF-8 in all recent containers
  • Supported multiple email addresses per user, allowing imports from GitHub
  • Supported validation functions and ‘*’ URL parameters in our self-testing API system
  • Latest LLVM toolchain (clang 6.0, lld 6.0, lldb 6.0)
  • Latest Rust toolchain (stable 1.23.0, nightly 1.25.0)
  • Latest Git (2.16.1)
  • Latest Mercurial (4.4.1)
  • Latest Node.js (node 8.9.4, npm 5.6.0, nvm 0.33.8)
  • Latest fd (6.2.0)
  • Latest rg (0.7.1)
  • Latest rr (5.1.0)
  • Latest Vim 8 + latest Neovim
  • Latest Cloud9 SDK and noVNC
  • … plus many more upgrades, bug fixes, stability and performance improvements

And that’s a wrap! As always, please feel free to stop by our IRC channel and Discourse forum to learn more about this project. We’d love to meet you.

Thanks for your time!
Team Janitor

Janitor News #9

Hi there!

This is your recurrent burst of good news about Janitor.
Thank you ever so much for being part of this community. It really means a lot.

Announcing Windows Environments

Janitor is great for quickly fixing platform-specific bugs in your projects, especially if you don’t normally develop on that platform. Today, we only provide Linux containers (Ubuntu 16.04) but many of you asked for native Windows environments on Janitor, so that’s exactly what we plan to give you.

We want to make it easy for you to work on all operating systems, without the hassle of setting up a VM or maintaining a dual boot. In fact, you won’t even need to install anything other than a good web browser (like Firefox Quantum) because our Windows environments will be accessible from the web, with a graphical VNC environment, just like our current Linux containers.

We’re looking into Windows VMs on Azure and TaskCluster workers on AWS. If Mozilla plays along, you should see Windows environments for Firefox on Janitor within just a few months. (If you can help us get there faster, please let us know here, here or here.)

Announcing Janitor 0.0.9

So much has happened this year that it was hard to find time to write about our progress. This version bump was long overdue.

Here is a quick rundown of what we did since July:

  • Now serving Cloud9 IDE directly from Janitor (no c9.io account required anymore)
  • Made both IDE and VNC load much faster (thanks to browser caching improvements)
  • Improved our Docker proxy to allow working in multiple containers at the same time
  • Added the Discourse open source project to Janitor (thanks notriddle!)
  • Added janitor.json configuration files to automate your project’s workflows on Janitor (thanks ntim!)
  • Added two new Docker servers to our cluster (thanks IRILL for the much needed sponsorship upgrade!)
  • Added a “Reviews” IDE sidebar with code review comments you need to address (thanks ntim!)
  • Now pulling automated Docker image builds (thanks to Docker Hub and CircleCI)
  • Expanded our API to manage Docker containers (to create / inspect / delete containers and image layers)
  • Created a Docker administration page to efficiently manage our container farm
  • Cleaner UI and more controls in our “Projects” and “Containers” pages (thanks ntim, Coder206 and fbeaufort!)
  • Dropped the “The” in “The Janitor” because it’s cleaner (thanks arshad!)
  • Refreshed Firefox, Servo and Chromium project logos (thanks Coder206, arshad and ntim!)
  • Switched Firefox (hg) from mozilla-central to mozilla-unified (thanks ntim)
  • Upgraded to Git 2.15.0
  • Upgraded to Mercurial 4.4.1
  • Upgraded to Clang 5.0 and replaced Gold with LLD 5.0 (now links Firefox 2x faster)
  • Upgraded to Rust 1.22.1 / 1.23.0-nightly (installed via rustup 1.7.0)
  • Upgraded to Node.js 8.9.1 and npm 5.5.1 (now installed via nvm 0.33.6)
  • Upgraded to Ninja 1.8.2 (now with bash completion)
  • Upgraded to rr 5.0.0
  • Upgraded to the latest Vim 8 and Neovim
  • Installed the latest valgrind (for nbp)
  • Installed the latest tmux (for Paul Rouget)
  • … and many more improvements and bug fixes.

Our Cluster Just Got Bigger

Janitor is now used by over 400 developers and our hardware was starting to feel small, so IRILL upgraded their sponsorship, growing our cluster to a total of 6 servers (4 Docker hosts, including 3 at IRILL in Versaille and 1 at Mozilla in California, as well as 2 VPS web app hosts at OVH in Gravelines). This means that Janitor now runs on 42 CPUs, 120 GB RAM and 4 TB disk space.

Here is a picture of EtienneWan and I manually installing the new servers in IRILL’s data center near Paris.

You can really thank IRILL and Sylvestre for keeping us going! In the future we’ll make it much simpler for anyone to join our cluster, in order to accept many more open source projects and developers to Janitor.

Janitor Around the World

Here are some events we went to, or are planning to attend:

  • Watch how Coder206 presented Janitor to Sudbury’s Google Developer Group, with a cool side-by-side comparison of hacking on Servo.
  • Come see two Janitor lightning talks at Mozilla’s All Hands in Austin this December, in the Firefox Lightning Talks and Power tools for open source tracks.
  • Come hack on open source software with Janitor at INSA Lyon or 42 in Paris in just a few months (two hackathons to be announced).

Last Stretch to Beta

2017 has been such a wild ride. We significantly lowered the barrier to new contributions for several major open source projects, allowing many people to contribute to Firefox, Chromium, Servo, Thunderbird (and more) for the first time, and we proved that it was possible to modernize software development at scale. Now we just need to finish a few more things before we can call our Alpha a resounding success.

In 2018, Janitor Beta will get us to the next level, with Windows environments (and maybe MacOS too); massive Docker scaling improvements; an open build farm that anyone can join; new open source partnerships; and even more radical automation to make software development faster and more fun. More on that very soon.

And that’s a wrap for today. How is everything going? We’d love to know! Also our Discourse and IRC channel are great resources to ask questions and learn more about this project.

Stay safe,
Team Janitor

P.S. One more thing: Here is a sneak peek at the beautiful new design that ntim, arshad and notriddle are working on for Janitor.

Janitor News #8

Hi there,

This is your recurrent burst of good news about the Janitor.

Janitor 0.0.8 is Live!

We’re inching ever closer to Beta, taking the pain out of Open Source contributions bit by bit.

Here is a quick rundown of what we did since February:

  • Brand-new Discourse forum for our caring community
  • Always-fresh API reference to interact with our service
  • Faster and more stable noVNC remote desktop (production build)
  • Faster container spawn times (3s → 1.7s)
  • Editable .gitconfig and .hgrc for your containers (contributed by @nt1m)
  • Editable container names (contributed by @bnjbvr and @nt1m)
  • API for upcoming push notifications (contributed by @Coder206)
  • Automated linting and many code improvements (contributed by @magopian)
  • Automated building and deploying of our dockerfiles (using CircleCI)
  • Multiple containers per project now possible (for faster multi-tasking)
  • Latest Git (2.8.2 → 2.13.3, SHA-1 collision safe + new indent heuristic)
  • Latest Mercurial (3.7.3 → 4.1.3, improved Firefox clone times 16min → 4min)
  • Latest Rust (stable + nightly, with ripgrep, rustfmt, clippy and rls)
  • Latest LLVM & Clang (3.9 → 4.0, with the clang-tidy static analyzer)
  • Latest Node.js (6.1.0 → 8.2.1, with 5x faster npm + 5% faster V8)
  • Latest Arc (command-line tool for the Phabricator code review system)
  • Latest Cloud9 SDK (to ship a personalized IDE with every container)
  • Latest htop and nano
  • Latest Vim 8 and latest Neovim
  • Better Terminal colors & completion

And it’s finally possible to hack on Janitor using Janitor! Now you can code while you code.

Up Next…

But wait, there’s more!

Here is what we’re currently working on:

  • Quick IDE buttons to Build, Update sources and Send to code review in just a few clicks
  • A janitor.json configuration file to automate your project’s workflows on Janitor
  • Many more projects to be added to Janitor soon
  • A GitHub integration for faster sign-in & faster pull requests
  • A Bugzilla integration for easier contributions to Firefox & Thunderbird
  • Opt-in push notifications in Janitor and Cloud9 (to let know know when builds finish or when reviews are accepted)
  • An IDE sidebar with code review comments you need to address
  • Static analysis and code coverage feedback right in your code editor, starting with Firefox (JS, C++ and then Rust)
  • Open pull requests (and other review requests) directly in Janitor to try them out faster
  • Open failed Firefox test containers from Treeherder directly in Janitor (to let you debug problems in situ instead of trying to reproduce them locally)
  • An API to open just about anything in Janitor really fast

Meet us IRL?

Sometimes we close our laptops to go outside, and we’d love to meet you!

Here are some recent events we went to:

  • May 18: Mozilla Roadshow in Paris. I explained Janitor and here are my slides, a video and a longer video (in French).
  • May 31: Lyon JS in Lyon. A monthly meetup about JavaScript.
  • June 14: Clang Social in Paris. We showed off Janitor and got people very excited.
  • June 26-30: Mozilla All Hands in San Francisco. Great technical discussions and many exciting demos.

And that’s about all we could fit into an email!

If you’d like, please come hang with us in our new Discourse forum or in our friendly IRC channel. They’re great places to ask questions or to chat about this project.


Intent to Implement: Firefox IDE service

(This email was sent to Mozilla’s tools mailing list.)

Dear Firefox tooling community,

Janitor, the zero setup, browser based development environment, has already made it easy for ~300 people to contribute to Firefox, Servo, Thunderbird, Chromium, KDE, Kresus and Janitor itself. It does this by eliminating the complexity that we have in setting up a development environment and reducing it down to a single click.

It uses Cloud9 IDE + noVNC as front-ends, and Docker containers as back-ends (here is a short video). The environment images are updated every day, and new containers are created on-demand from the website in just a few seconds.

This gets new contributors making contributions that we care about more quickly: Instead of the minutes/hours/days usually needed to bootstrap these projects, it just takes 2 seconds to get a working environment.

Now we want to go even further by leveraging this platform to solve key software development issues encountered by more experienced Mozilla developers. Please help us by listing the problems that you encounter in your daily work in this document.

To seed this discussion, we’ll slightly abuse the “Intent to Implement” email format. Here goes.


We want to build a “Firefox IDE” web service that automates the setup and maintenance of development environments for Firefox and Servo, providing containers that are quick to startup and that integrate the tools our developers need to produce high quality code without wasting time setting it all up.

Firefox IDE will provide a developer-friendly cloud environment that ties together:

  • Services like Janitor, Bugzilla, Phabricator and TaskCluster (among others),
  • Tools like gdb, rr, clang-tidy, eslint, clippy, ripgrep…,
  • Code coverage and static analysis feedback, directly in the code editor.

This will help automate time-consuming Firefox development workflows, and will ease access to the most powerful Firefox tools & services from a single location: an efficient IDE web front-end connected to auto-configured Docker containers.

Non-goal: We do not aim to replace local development setups with something new, but instead we wish to complement our current services offering with a developer service that brings live software development much closer to the Firefox CI infrastructure, and that offers convenient access to specific tools and workflows which might be harder to set up locally.


We start by collecting key problems encountered by experienced Mozilla developers while working on Firefox and Servo in this document.

We will then work on solving the most compelling problems (with the highest estimated return on investment, based on feature interest and feasibility) and present a minimum viable “Firefox IDE” service to address the selected problems by the end of Q3.

After that, we hope to invite all Firefox and Servo developers to a Beta of this service; continue collecting feedback and address more problems from our list; and demo our solutions during the All Hands in Cancun.

Tracking progress

Firefox and Servo development problems: https://docs.google.com/a/mozilla.com/document/d/1KmIURMgpAPBi8Bkramo8ITr0fAH1f3XFYLl2hzv0s8M/edit
Repositories on GitHub: https://github.com/JanitorTechnology/
Issues and milestones: https://github.com/JanitorTechnology/janitor/issues
IRC: #janitor on Freenode: https://kiwiirc.com/client/irc.freenode.net/?#janitor


Janitor News #7

Happy 2017 everyone!

This is your recurrent burst of good news about the Janitor.

What’s new in Janitor 0.0.7?

We’re about to release our biggest update yet, “Alpha: Mark 7”. It took six months of dedicated efforts, touched almost every line of our code, and will greatly improve our ability to scale by adding more servers to what is now becoming a distributed system.

This means that our resource shortage is almost over, and that we’ll finally be able to send out new invites (and also update all project images more frequently). We know that many of you have been waiting to try the Janitor for months now, and we would like to acknowledge that and thank you for your patience. We hope you’ll enjoy what we built for you.

Here is a list of changes made since Janitor 0.0.6 (released September 2016):

  • Upgraded the Janitor source code to ECMAScript 6
  • Updated all project images with the latest sources and the greatest tools (clang 3.9, git 2.11, hg 3.7, vim 8, rust 1.15, node 7.5, rr 4.5, hub, rg, z, …)
  • Implemented several important security features
  • Implemented an OAuth2-based Single-Sign-On to work transparently across all Janitor hosts
  • Started implementing a self-documenting and self-testing JSON API
  • Implemented an RSA helper to generate certificates on the fly for SSH, Docker/TLS and HTTPS (automatically signed by Let’s Encrypt)
  • Automated all server initialization tasks, making most of the Makefile obsolete
  • Automated all cluster-joining tasks in a separate helper script (which will eventually allow adding your own servers with a single command and support your own projects on Janitor)

All of these improvements should be live by the end of the week, and all new invite emails should be sent out by that time as well.

Announcing Firefox IDE

Now that we’ve laid the foundation for a fast, powerful and ever-growing container service for developers, it’s time for Janitor to enter a new phase. Now we would like to automate the development processes of every major open source project out there, starting with Firefox.

We plan to empower Firefox developers by integrating relevant tools, services and workflows directly in Janitor’s IDE, in order to make them discoverable and easy to use, from a single web interface that can be accessed from anywhere instantly. Contrary to other, more general-purpose development tools, we aim to be highly specialized by implementing all the processes and best practices specific to the Firefox project.

We will start by building Cloud9 plugins to update bugs on Bugzilla; trigger new jobs on TaskCluster; send contributions to Autoland; send push notifications about a patch’s progress all the way from review, to automated tests, to finally being merged into the central repository; and augment the IDE’s code editor with static analysis and automatic code quality suggestions based on amazing tools like clang-tidy. You can participate in this process by reviewing, contributing or implementing ideas in this GitHub issue.

And if this Firefox IDE experiment is successful, we will create similar IDEs for Servo, Rust, Chromium, Thunderbird, KDE, and all other open source projects that Janitor will support.

That’s all Folks! As always, previous newsletters can be found on our blog, and if you have the time, please drop by to say hi in our very own IRC channel (on freenode).

Peace out,

Janitor Alpha 0.0.7 is Live

What better day to release Janitor Alpha 0.0.7 and the new MOZ1 backend server than on a Friday?

How do I try this?

Simply log in to janitor.technology, click on any of the supported projects and start hacking.

If you don’t have an account yet, the Alpha invite process is bit complicated (but we’re working on making it much simpler). You will receive two emails:

  • one to create a free Cloud9 account (no credit card required),
  • and another to access your Janitor account.

Please carefully read the steps in the “Janitor Invite” email, as they explain how to properly link Cloud9 IDE so that you can use it to hack on Firefox, Servo, Chromium, Thunderbird, KDE (and more projects coming soon) directly from Janitor. If you don’t do it, it won’t work.

New backend server!

The Janitor service now runs on two very powerful Docker servers:

  • IRILL which is located in Paris, and will continue to host open source projects,
  • MOZ1 which is located in California, and will host all Mozilla projects going forward.

MOZ1 is a brand new AWS EC2 instance sponsored by Mozilla, which has 16 CPUs, 32GB RAM, 1TB disk space and that can build (from scratch):

  • Servo in 08:27,
  • Firefox in 11:10,
  • Thunderbird in 12:19 (all clobber build times are from today).

The new project images also contain a few surprises for you:

  • a Terminal prompt with colors, Git completions and a fancy branch indicator,
  • cool scripts: z to navigate faster and rg to grep faster,
  • the official hub script to interact with GitHub repositories,
  • and a hidden feature as well (more about it soon).

MOZ1 is very recent (activated today) so if you started a Janitor contribution before, chances are it’s still hosted on IRILL. If you want to try the new, even faster MOZ1 server, you’ll need to back up your work, delete your previous contribution (and its associated workspace on Cloud9) and click on any Mozilla project again. You’ll then automatically land in a new Docker container hosted on MOZ1. (If Cloud9 doesn’t work instantly, please wait a few seconds and refresh the page.)

A huge thank you to everyone who helped ship Janitor Alpha 0.0.7 by writing code, reviewing code, solving problems, or finding more problems! (Please report any new bugs here or here.)

With love,

Janitor News #6


This is your monthly* burst of good news about the Janitor.

* Well ok, this is actually more of a quarterly thing at the moment, but that doesn’t mean nothing is happening—in fact quite the opposite is true. See for yourself:

Janitor & Mozilla’s A-Team

In September, I officially joined Mozilla’s Engineering Productivity team (also known as “A-Team”) to help boost the productivity of developers working on Mozilla’s software projects.

If this sounds like the Janitor to you, then you’re spot on! In fact I’m now working full-time on improving the Janitor, with the support of some amazingly talented A-Team folks, and with the goal of making contributions to Mozilla’s projects like Firefox, Servo and Rust (coming soon) much faster and easier for everyone.

And because Mozilla is awesome and a fierce supporter of Open Source in general, non-Mozilla projects like Chromium and KDE will continue to be supported, and we won’t stop there—over the next months we’ll continue adding more and more amazing projects to the Janitor, like for example Git, Mercurial, Vim, Clang, and one day maybe even the Linux Kernel. The Janitor’s long-term objective is to make open source contributions a breeze for everyone, anywhere in the world.

Say hello to Docker Host 2

Due to a swift increase in popularity over the last months, the Janitor’s back-end resources became saturated much faster than expected. After a quick datacenter visit to install a new 1 TB drive on Docker Host 1 (which is now 98% full), we realized that adding more disks wouldn’t help much longer.

So we re-designed the Janitor from the ground up and turned it into a multi-server cluster, which will allow the service to grow significantly over the coming months.

This is the Janitor cluster today:

  • Docker Host 1 (16 CPU, 64 GB, 1 TB) hosted by IRILL in a French datacenter,
  • Docker Host 2 (16 CPU, 32 GB, 1 TB) hosted by Mozilla on an EC2 instance.

Everything is still hosted on Docker Host 1 (98% full), but all Mozilla projects (about half of the entire load) will be gradually and seamlessly migrated to Docker Host 2 soon. This will free up resources to support more users and projects, and will enable more frequent image updates as well as some overdue server maintenance.

We’ve also put special efforts into completely automating the addition of new hosts, from automatic TLS and Let’s Encrypt certificates to cluster discovery and software updates, so that adding more resources becomes quick and easy. We could even make the cluster grow automatically following demand now.

If you’re one of the almost 40 people still on the waitlist, we’re so sorry to keep you waiting. We worked relentlessly on building a cluster with more resources, and we’re happy to announce that the waiting is almost over—new invites should be headed your way over the coming weeks.


A cool spin-off from the cluster effort is the JSON API we designed to automate all things Janitor. It’s based on Self API, a system that can automatically document and test API functions against their own examples, removing the need to maintain separate documentation or test suites.

The resulting API documentation will soon be available on the website, and anyone interested in using it will be able to do so using the website’s password-less authentication, or dedicated OAuth 2 access tokens.

Even more news

  • On November 5, there was a Rust / Servo hackathon with Janitor support at the Coredump hackerspace in Zurich.
  • On November 12, Patrick Trottier gave a great talk about open source contributions and the Janitor at GDG DevFest in Sudbury. Here are his slides and a video.
  • On December 7, I will present a few Janitor-based productivity hacks at the Mozilla All Hands in Hawaii.
  • We’re currently evaluating how many contributions we’ve enabled. If you shipped code using the Janitor, please send us links to your contributions so we can count them.
  • We recently published an NPM module which will eventually allow running private cluster hosts to support your own software projects on the Janitor (coming soon™).
  • We would like to open a Discourse. If you know how that works and want to help, please reach out.

And this wraps up today’s news! If you like to review code, you’re welcome to pick a Janitor commit and post feedback on what you don’t like or don’t get about the code. Many thanks!

Until next time,

Janitor News #5


We hope that you’ve enjoyed a hot and relaxing summer. It’s time to resume your monthly burst of good news about the Janitor.

A New Order of Magnitude

Earlier in June, the Janitor greeted its 100th user, and we’re now growing fast into the three digits. Today, there are 189 of us, and we’ve collectively landed 31 official code contributions to the 5 supported software projects. Most of them went to Firefox, with Chrome a close second. (Note: If you’ve made a contribution using the Janitor, please tell me, they’re hard to keep track of!)

Thank you so much for all your enthusiasm and help. It’s been an incredible journey so far, but the most exciting is what’s yet to come.

What’s Next

At Mozilla we’re currently in talks with Cloud9 to make their IDE even better for Firefox development. We’d love to build a dedicated ide.firefox.com service (domain pending) that would be accessible to any developer in just a single click. Then we’d like to expand this concept to other projects, with additional services like ide.servo.org and ide.rust-lang.org (domains pending) that should all work seamlessly with the Janitor. And to support these at scale, we’ll move your back-end Docker containers onto a more powerful cloud platform.

Expect open source contributions to become ever easier with the Janitor, thanks to quick and intuitive UX integrations. For example, you should soon be able to send a patch for review directly from your IDE interface, or trigger an automated test run on your code, or even debug it step-by-step to look for bugs, and all these helpers will work simply with the click of a button.

Fixing Account Problems

A few things have changed in the way Janitor Alpha accounts are set up. A separate Cloud9 account is still required, but it appears that Cloud9 asks for your credit card now, even for free accounts. I don’t know why they chose to do this, but I’m sorry for that experience.

If you’re having trouble getting the Janitor to work, please make sure that you’ve added both your Cloud9 username and Cloud9 SSH public key to your Janitor account. Adding your username will enable your Cloud9 account to work with the Janitor (this can take a short while, because I need to add you to our sponsored Team Account manually) while adding Cloud9’s SSH public key will authorize their IDE to access your Janitor environments via SSH (without that, the IDE part won’t work).

Janitor Events

Here is a recap of all Janitor-related events that happened since the last newsletter, or that will be coming soon.

June 13-17, 2016: Mozilla All Hands in London

  • I held two sessions where Mozillians could learn more about the Janitor. High five if you were there!
  • Here are the slides I presented.
  • The room was not equipped for recording, but we shot a video anyway.

August 27, 2016: Gecko Inside in Tokyo

  • During the next monthly community event at Mozilla Japan, there will be a Firefox Hackathon.
  • Mantaroh will tell attendees about the Janitor, and anyone interested will be able to try it.

October 28-30, 2016: MozFest in London

  • Each year, the Mozilla Festival is abuzz with exciting people and sessions.
  • I offered to host a Firefox contribution workshop using the Janitor.
  • I’ll let you know if they accept.

And that’s it for today. If you missed any previous “Janitor News” email, they’re now permanently available here.

Stay tuned for more progress soon,

Janitor News #4


This is your monthly burst of good news about the Janitor.

Welcome to 27 new users!

We’re so happy to have you. Our small community of pioneers and cloud-development enthusiasts is growing fast, there are almost 100 of us now.

  • Look for the “Janitor Invite” email, it contains a link to your Janitor Alpha account.
  • Reminder: The Janitor currently requires a Cloud9 premium feature. Please send me your Cloud9 username , so that I can request a free upgrade for you (otherwise, you’ll see errors like “SSH workspaces are a premium feature”).

Major Dockerfiles upgrade

We recently finished a complete overhaul of all Docker images. Here is what changed:

Across all images:

  • Ubuntu 14.04 Trusty → 16.04 Xenial
  • Git 1.9.1 → 2.8.2 (a lot faster, especially for large repositories)
  • Node.js v5.6.0 → v6.1.0 (now with ES6! also npm 3.6.0 → 3.8.6)
  • Clang 3.4 → 3.9
  • Ability to use sudo
  • Pre-opened xterm window in noVNC


  • Mercurial 2.8.2 → 3.7.3
  • ESLint pre-configured (works with ./mach eslint path/to/sources
  • Latest moz-git-tools (upload patches with git bz, try them with git push-to-try)


  • Switched build configuration from GYP to GN
  • Disabled SUID sandbox to allow running out-of-the-box
  • Now with pre-compiled binaries in every image update


  • Now able to run graphically in noVNC with ./mach run -w


  • noVNC goes straight to Plasma desktop, without Fluxbox

I will also upgrade the Janitor’s Docker daemon to a newer version, but if everything goes as planned you won’t notice a thing (except more frequent image updates and even faster spawns).

Janitor events

We already had a few events about the Janitor, with more to come in the near future:

April 2016: Firefox Hackathon in Zurich

  • Daniele showed these amazing slides about the Janitor.
  • Participants used the Janitor to fix 10 bugs in Firefox.
  • Michael published a nice blog post about their experience.
  • Thank you for all the great feedback!

May 2016: JSConf Budapest

  • Flaki hosted me at the Mozilla Hackerlounge there.
  • I demoed the Janitor and Cloud9 IDE during all 3 days.
  • We got very excited and exchanged a lot of ideas.

June 2016: Mozilla All Hands in London

  • I will give a Platform Lightning Talk to pitch the Janitor.
  • There will also be a full session about the Janitor later in the week.
  • Please come by and say hi!

That’s all I could fit into an email, but there is a lot more going on in our Janitor and Dockerfiles repositories, and in our very own IRC channel.

Until next time,

Janitor News #3


This is your monthly burst of good news about the Janitor.

Moar invites!

Thanks to a recent upgrade sponsored by Cloud9, the Janitor can now accept more users to its Alpha. Hooray!

  • If you’re not invited yet, you should receive a “Janitor Invite” email soon, with instructions on how to access your account.
  • If you’re invited, but see this error: “SSH workspaces are a premium feature”, please send me your Cloud9 username so I can upgrade you for free, thanks to Cloud9’s new sponsoring (yes, they’re that awesome).

Optimizing the IDE (coming soon)

I’m currently working on adding new project-specific buttons to your Cloud9 IDE interface, allowing you to quickly:

  • Update to the latest source code
  • Build any changes you’ve made to it
  • Run the project and try your changes live
  • Send your changes to an automated test server
  • Upload a patch to be reviewed by a project owner

… all in a just single click! If you’d like to help, please reach out.

Signing in with GitHub (coming soon)

Enabling GitHub sign-in for the Janitor will have the following advantages:

  • It’s a cool and fast way to sign in
  • The Janitor can automatically grant access to all your public SSH keys
  • It can also register a Janitor key, so you can push to GitHub more easily

Upgraded Docker images (coming soon)

The project-specific dockerfiles used by the Janitor will soon be based on a new common base image, which will bring the following improvements to your contribution environments:

  • Upgrade Ubuntu from 14.04 to 16.06
  • Latest and fastest versions of Git and Node.js
  • VNC sessions will already have an xterm open for you
  • You will be able to use sudo

That’s all I could fit into an email. To learn more about what’s going on with the Janitor, have a look at our GitHub issues, or come say hi in our IRC channel!


Janitor News #2

Hi there,

Thanks a lot for being a pioneer in trying to change the way we do software development! The Janitor’s alpha version is doing great, and things are already shaping up fast toward the beta.

It’s very exciting to see this vision becoming reality, and you’re making it happen. The Janitor currently has 31 confirmed users (15 on waitlist) and supports 6 large open source projects (source).

Scaling to Multiple Servers

The back-end code is currently being rewritten to use the Docker Remote API. This will allow exciting improvements, like running multiple Docker servers in parallel, and more control for you on your contributions.

Warning: I will do my best to make this transition seamless, but there is a slight risk of losing some containers in the process. Please back up your work!

Project Dockerfiles

All the projects available on the Janitor have a Dockerfile that describes a Linux environment suitable for their developers. Writing one is basically all it takes to add a new project to the Janitor. A few examples:

More Invites Coming Soon

Invites used to work like this: Users created a Cloud9 account, I asked Cloud9 to upgrade them to premium for free, and finally I sent out a Janitor invite. While this was great to get started quickly, it obviously doesn’t scale. I’m currently working with Cloud9 on a better solution that won’t require premium accounts.

It goes without saying that the Janitor will always be free for open source contributors, but in the meantime if you already have a Cloud9 premium account, please let me know (I can invite you right now).

That’s it for today! If you have any question, or if you’d like to help, please reach out. The Janitor is on GitHub, and we also have an IRC channel on freenode.

Keep in touch,


Janitor Alpha is here!

Good news everyone!

https://janitor.technology is now open for business, which means that you can use it to hack on cool projects like Firefox, Thunderbird and Chrome, and all directly from your browser!

Obligatory celebration GIF

You’re invited!

You should receive a follow-up email with instructions on how to access your free and unlimited Janitor account.

Reminder: This currently requires a Cloud9 premium account. If you still do not have one, please create a free Cloud9 account and send me your username , so that I can request a free premium for you. Cloud9 has offered to upgrade all Janitor users for free, which is awesome and insanely generous!

What is Janitor?

The Janitor allows you to develop software using only a web browser, without having to install any tools or do any compiling on your own computer.

It works by creating personalized, full-featured development environments (Docker containers) for any given project, and lets you access these environments via Cloud9 IDE for code writing, or via noVNC for a graphical desktop interface.

More details in this excellent demo video we made with my good friend Baptiste.

Supported projects

You can hack & build the following projects in Cloud9 IDE, and run them graphically in noVNC (using right-click to launch XTerm):

  • Firefox
  • Thunderbird
  • Chrome
  • Cozy (early developer preview)

Also, adding a new project is as simple as writing a Dockerfile for it! If there is a particular software project that you’d like to see on the Janitor, let’s work together and make it happen.

Happy hacking!


Janitor News #1

Happy 2016 everyone!

I hope you had a great 2015, and I wish you all the best for this upcoming year.

  1. Alpha version is coming!

With this, I’ll finally be able to send each of you an invite for a free and unlimited account on https://janitor.technology.

This past month I implemented basic support for Dockerfile instructions, successfully automating the creation of Docker images & containers. This means that the projects listed on https://janitor.technology will generally stay “fresher”, and that you’ll be able to open them in fully-functional development environments with just a single click!

To follow my progress on this upcoming milestone: https://github.com/janitortechnology/janitor/milestones/alpha

  1. Free Cloud9 premium accounts

The Janitor uses Cloud9 IDE to let you hack on Firefox / Chromium / Thunderbird / etc, by automatically setting up SSH workspaces in your https://c9.io profile.

For this to work, I recently noticed that you need a cloud9 premium account (thanks Daniele and Etienne for checking!). Luckily, you won’t have to pay anything, because the Cloud9 team has generously offered to upgrade all Janitor users to premium for free!

  1. Useful links

You can follow progress on the Janitor by visiting:

  1. Project pipeline

I’m aiming to make the Janitor the fastest and easiest way to contribute to, in order or priority:

  • Firefox
  • Google Chrome
  • Thunderbird
  • Cozy

With hopefully many more to come! (Once everything is in place, adding support for a project will be as quick as writing a new Dockerfile.)



Janitor News #0

Hi all,

Thanks a lot for subscribing to the Janitor! Your interest has been very encouraging.
Here are a few updates on what’s been going on:

First invites coming soon!

In the near future, I will send each of you an invite for a free and unlimited account on https://janitor.technology.

Before I can do this, I need to finish up these few things:

  • Auto-provision Docker instances (today I’m doing it manually)
  • Make the graphical remote desktop secure (a simple authenticated HTTPS proxy will do)

Useful links

You can follow progress on the Janitor by visiting:

Project pipeline

I’m aiming to make the Janitor the fastest and easiest way to contribute to, in order or priority:

  • Firefox
  • Google Chrome
  • Thunderbird
  • Cozy.io

With hopefully many more to come! (Once everything is in place, adding support for a project will be as quick as writing a new Dockerfile.)

Feedback welcome!

If you have any questions about the Janitor, ideas to share, or if you’d like to help out, feel free to shoot me an email!

Thanks again for your interest in the Janitor!