File Annotation
Not logged in
67b5f41963 2009-08-24       drh: <title>Fossil Self-Hosting Repositories</title>
67b5f41963 2009-08-24       drh: <h1 align="center">Fossil Self-Hosting Repositories</h1>
67b5f41963 2009-08-24       drh: 
67b5f41963 2009-08-24       drh: Fossil has self-hosted since 2007-07-21.  As of this writing (2009-08-24)
67b5f41963 2009-08-24       drh: there are three publicly accessible repositories for he Fossil source code:
67b5f41963 2009-08-24       drh: 
67b5f41963 2009-08-24       drh:   1.  [http://www.fossil-scm.org/]
67b5f41963 2009-08-24       drh:   2.  [http://www.hwaci.com/cgi-bin/fossil]
67b5f41963 2009-08-24       drh:   3.  [http://www2.fossil-scm.org/]
67b5f41963 2009-08-24       drh: 
67b5f41963 2009-08-24       drh: 
67b5f41963 2009-08-24       drh: The canonical repository is (1).  Repositories (2) and (3) automatically
67b5f41963 2009-08-24       drh: stay in synchronization with (1) via a
67b5f41963 2009-08-24       drh: <a href="http://en.wikipedia.org/wiki/Cron">cron</a> job that invokes
67b5f41963 2009-08-24       drh: "fossil sync" on a daily basis.
67b5f41963 2009-08-24       drh: 
67b5f41963 2009-08-24       drh: Note that the two secondary repositories are more than just read-only mirrors.
67b5f41963 2009-08-24       drh: All three servers support full read/write capabilities.
67b5f41963 2009-08-24       drh: Changes (such as new tickets or wiki or check-ins) can be implemented
67b5f41963 2009-08-24       drh: on any of the three servers and those changes automatically propagate to the
67b5f41963 2009-08-24       drh: other two servers.
67b5f41963 2009-08-24       drh: 
67b5f41963 2009-08-24       drh: Server (1) runs as a CGI script on a
67b5f41963 2009-08-24       drh: <a href="http://www.linode.com/">Linode 720</a> located in Dallas, TX
67b5f41963 2009-08-24       drh: - on the same virtual
67b5f41963 2009-08-24       drh: machine hosts <a href="http://www.sqlite.org/">SQLite</a> and over a
67b5f41963 2009-08-24       drh: dozen other smaller projects.  This demonstrates that Fossil does not
67b5f41963 2009-08-24       drh: require much server power.
67b5f41963 2009-08-24       drh: Multiple fossil-based projects an easily be hosted on the same machine,
67b5f41963 2009-08-24       drh: even if that machine is itself one of several dozen virtual machines on
67b5f41963 2009-08-24       drh: single physical box.  The CGI script that runs the canonical Fossil
67b5f41963 2009-08-24       drh: self-hosting repository is as follows:
67b5f41963 2009-08-24       drh: 
67b5f41963 2009-08-24       drh: <blockquote><pre>
67b5f41963 2009-08-24       drh: #!/usr/bin/fossil
67b5f41963 2009-08-24       drh: repository: /fossil/fossil.fossil
67b5f41963 2009-08-24       drh: </pre></blockquote>
67b5f41963 2009-08-24       drh: 
67b5f41963 2009-08-24       drh: Server (2) run as a CGI script on a shared hosting account at
67b5f41963 2009-08-24       drh: <a href="http://www.he.net/">Hurricane Electric</a> in San Jose and
67b5f41963 2009-08-24       drh: Fremont, CA.  This server demonstrates the ability of
67b5f41963 2009-08-24       drh: Fossil to run on an economical shared-host web account with no
67b5f41963 2009-08-24       drh: privileges beyond port 80 HTTP access and CGI.  It is not necessary
67b5f41963 2009-08-24       drh: to have a dedicated server to run Fossil.  As far as we are aware,
67b5f41963 2009-08-24       drh: Fossil is the only full-featured configuration management system
67b5f41963 2009-08-24       drh: that can run in
67b5f41963 2009-08-24       drh: such a restricted environment.  The CGI script that runs on the
67b5f41963 2009-08-24       drh: Hurricane Electric server is the same as the CGI script shown above,
67b5f41963 2009-08-24       drh: except that the pathnames are modified to suite the environment:
67b5f41963 2009-08-24       drh: 
67b5f41963 2009-08-24       drh: <blockquote><pre>
67b5f41963 2009-08-24       drh: #!/home/hwaci/bin/fossil
67b5f41963 2009-08-24       drh: repository: /home/hwaci/fossil/fossil.fossil
67b5f41963 2009-08-24       drh: </pre></blockquote>
67b5f41963 2009-08-24       drh: 
67b5f41963 2009-08-24       drh: Server (2) is synchronized with the canonical server (1) by running
67b5f41963 2009-08-24       drh: the following command via cron:
67b5f41963 2009-08-24       drh: 
67b5f41963 2009-08-24       drh: <blockquote><pre>
67b5f41963 2009-08-24       drh: /home/hwaci/bin/fossil sync -R /home/hwaci/fossil/fossil.fossil
67b5f41963 2009-08-24       drh: </pre></blockquote>
67b5f41963 2009-08-24       drh: 
67b5f41963 2009-08-24       drh: Server (3) is a
67b5f41963 2009-08-24       drh: <a href="http://www.linode.com/">Linode 360</a> located in Atlanta, GA
67b5f41963 2009-08-24       drh: and set up just like the canonical server (1) with the addition of a
67b5f41963 2009-08-24       drh: cron job for synchronization as in server (2).