Difference between revisions of "Mirror Server"

From stoney cloud
Jump to: navigation, search
[unchecked revision][unchecked revision]
(Directory structure)
Line 1: Line 1:
 +
== Requirements ==
 +
 +
* Hosts all the files required to build a package (<code>GENTOO_MIRRORS=mirror.example.com/public/gentoo/distfiles</code>)
 +
** Acts as a caching mirror for already downloaded packages from an official mirror, example caching mirror URL https://mirror.example.com/mirror
 +
**  Serves fetch-restricted files (<code>dev-java/oracle-jdk-bin</code> for example), to authorized clients
 +
* Files are served via HTTPS
 +
* Distinguishes between three groups of files
 +
** '''public''': Files which are available to all clients (theoretically even to the entire internet, added to clients via GENTOO_MIRRORS)
 +
** '''site-local''': Files which are only available to authenticated clients belonging to the same infrastructure (for example those which would put us into [http://www.bettercallsaul.com/ legal troubles] if available to the public, used by clients via a ''local'' entry in <code>/etc/portage/mirrors</code>)
 +
*** A subdirectory named after a site will be created below <code>site-local</code>, for example <code>site-local/example-site</code>.
 +
** '''stack-local''': Files which are only available to authenticated clients belonging to the same infrastructure and the software stack group (private files of a specific customer, used by clients via a ''local'' entry in <code>/etc/portage/mirrors</code>)
 +
*** A subdirectory per stack will be created below <code>stack-local</code>, for example <code>stack-local/secret-stack</code>.
 +
* Provides an easy way to let an administrator manually upload new files, for example via WebDAV-CGI, SFTP or a similar mechanism.
 +
* Possibility to authenticate clients either via HTTP basic auth or client certificates.
 +
* Old or no longer supported files will be removed automatically
 +
* Can be implemented on the [[#Build_host_requirements|build host]]
 +
 +
 
== Directory structure ==
 
== Directory structure ==
  

Revision as of 13:17, 21 August 2014

Requirements

  • Hosts all the files required to build a package (GENTOO_MIRRORS=mirror.example.com/public/gentoo/distfiles)
    • Acts as a caching mirror for already downloaded packages from an official mirror, example caching mirror URL https://mirror.example.com/mirror
    • Serves fetch-restricted files (dev-java/oracle-jdk-bin for example), to authorized clients
  • Files are served via HTTPS
  • Distinguishes between three groups of files
    • public: Files which are available to all clients (theoretically even to the entire internet, added to clients via GENTOO_MIRRORS)
    • site-local: Files which are only available to authenticated clients belonging to the same infrastructure (for example those which would put us into legal troubles if available to the public, used by clients via a local entry in /etc/portage/mirrors)
      • A subdirectory named after a site will be created below site-local, for example site-local/example-site.
    • stack-local: Files which are only available to authenticated clients belonging to the same infrastructure and the software stack group (private files of a specific customer, used by clients via a local entry in /etc/portage/mirrors)
      • A subdirectory per stack will be created below stack-local, for example stack-local/secret-stack.
  • Provides an easy way to let an administrator manually upload new files, for example via WebDAV-CGI, SFTP or a similar mechanism.
  • Possibility to authenticate clients either via HTTP basic auth or client certificates.
  • Old or no longer supported files will be removed automatically
  • Can be implemented on the build host


Directory structure

The visible structure starting from the root directory will be as follows:

/
|- public/
  |- gentoo/
    |- distfiles/
  |- stepping-stone.ch/
    |- sepiola/
|- site-restricted/
  |- stepping-stone.ch/
    |- gentoo/
      |- distfiles/
|- role-restricted/
  |- mediawiki_AiO