Project:Infrastructure/Project file hosting

From Gentoo Wiki
Jump to:navigation Jump to:search

This article details how Gentoo projects can host their (relatively small) project files on Gentoo infrastructure; hosted files generally include plain text copies of project meeting logs, various project notes, and other small files that are friendly being hosted by git.

It is recommended to use personal developer web space when needing to host images, videos, compressed, and other binary files - even if they are for projects.

Web resources

Web resources are made available via HTTP. This service replaces the functionality of the old CVS repository for the historical www.g.o main site.

Items that are not permitted include:
  • Files referenced in ebuilds, including but not limited to distfiles, patches, or linked documentation.
  • Project page-like HTML pages (should be on the wiki instead).
  • Large files or resources that expect a lot of traffic (please consult with Infra for alternative hosting locations).

Per-project storage sizes should not exceed 100 MiB, unless approved by the infra team.

The distfiles/ directory is reserved for future use. Please do not touch it.


  • Git repositories:
    • Anonymous: git://$project.git
    • Writable: git+ssh://$project.git
  • URL:$project/
  • Update frequency: every 30 minutes (:15, :45).
  • No CGI scripts are executed.
  • Directory listings are enabled.

Requesting the service for a project

Projects are assigned a directory name related to their project and an associated Git repository by Infra upon request via Bugzilla.

The request should include a list of developers with +w (or request the current project roster to be used).

Redirects from are also possible in reasonable amounts.


Proper distfile hosting will be made available at a future stage - bug #176186.

Infra setup

  1. Add a new entry in conf/sites.conf for the new repository in gitolite-admin.git
  2. In puppet.git, update:
    1. dist/project_hosting/files/var/www/ (link to the new project)
    2. dist/project_hosting/manifests/repos.pp (update list of projects)
    3. dist/project_hosting/files/etc/nginx/vhosts.d/puppet/ (add an alias)