How to add a project?


How can one add a project?

It is not clear to me and documenting might be useful.


  1. Put together a docker image, like this one for Discourse.
  2. Get a build set up on the Docker hub, like this one for Discourse
  3. Add a logo to the Janitor repo, like this one for Discourse.
  4. Add it to Janitor’s database. If you’re running an instance, you can get to it from the admin page. Otherwise, just make a post asking @Jan to do it.


Thanks @notriddle for this excellent response!

I’ll add that, while this is how we added projects in the past (Firefox, Chrome, Discourse, etc.) there is now a better way to add a project to Janitor:

  1. Create a .janitor directory in your project’s repository
  2. Add a development-oriented Dockerfile to it, like this one for Janitor
    • basically FROM ubuntu-dev, RUN git clone project && cd project && ./
    • don’t forget to set ENV WORKSPACE and to EXPOSE any ports you need for development
  3. Add a janitor.json configuration file, like this one for Janitor
    • expose any "ports" needed for development (again, sorry) and add a few one-liner "scripts" that could be useful to the developers of your project
    • don’t forget to add an SVG icon of your project (if you want, you may host it under, by adding here)
  4. Set up an Automated Build for free by logging into, selecting your GitHub repository, and indicating where the Dockerfile is located in your repository (if you followed 2. it should be under .janitor/Dockerfile)
    • your development environment image should then be built and pushed automatically, every time you add new commits to your project, without you having to do anything else
    • additionally, it’s great to link it with our base image janitortechnology/ubuntu-dev, so that when we update our base image, your project image also rebuilds itself (without waiting for new commits to trigger a build)
    • if for some reason Docker Hub is unable to build your project, you can use CircleCI to build and push your development image. (For example, Docker Hub uses 1-thread machines, and builds time out after 2 hours. If this is not enough, CircleCI’s free tier has 2-thread machines, and their builds time out after 5 hours. They also use a more recent version of Docker.)
  5. Once your development image was successfully built, please contact a Janitor admin (either @ntim, @rcatolino, @EtienneWan, @ishitatsuyuki or myself) so that we can register your project and pull your development image to one of our servers
  6. Once deployed, please test your image by creating a new Janitor container, and hack on your project like usual. If any issues come up, please fix/update your Dockerfile, and/or contact a Janitor admin so that we can help you troubleshoot and pull newer versions of your image
  7. You’re done! Congratulations :tada: Thanks for adding your project to Janitor :smile:

How to rebuild a project