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) 93d0646830 2009-08-24 drh: there are three publicly accessible repositories for the 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 93d0646830 2009-08-24 drh: <a href="http://en.wikipedia.org/wiki/Cron">cron job</a> that invokes 93d0646830 2009-08-24 drh: "fossil sync" at regular intervals. 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 93d0646830 2009-08-24 drh: - on the same virtual machine that 93d0646830 2009-08-24 drh: 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. 93d0646830 2009-08-24 drh: Multiple fossil-based projects can 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: 93d0646830 2009-08-24 drh: Server (2) runs 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).