diff options
Diffstat (limited to 'www/selfhost.wiki')
| -rw-r--r-- | www/selfhost.wiki | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/www/selfhost.wiki b/www/selfhost.wiki new file mode 100644 index 0000000..40bc179 --- /dev/null +++ b/www/selfhost.wiki @@ -0,0 +1,78 @@ +<title>Fossil Self-Hosting Repositories</title> + +Fossil has self-hosted since 2007-07-21. As of 2025-02-11 +there are three publicly accessible repositories for the Fossil source code: + + 1. [https://fossil-scm.org/] + 2. [https://www2.fossil-scm.org/] + 3. [https://www3.fossil-scm.org/] + +The canonical repository is (1). Repositories (2) and (3) automatically +stay in synchronization with (1) via a +<a href="http://en.wikipedia.org/wiki/Cron">cron job</a> that invokes +"fossil sync" at regular intervals. +Repository (2) also publishes a +[https://github.com/drhsqlite/fossil-mirror|GitHub mirror of Fossil] +as a demonstration of [./mirrortogithub.md|how that can be done]. + +Note that the two secondary repositories are more than just read-only mirrors. +All three servers support full read/write capabilities. +Changes (such as new tickets or wiki or check-ins) can be implemented +on any of the three servers and those changes automatically propagate to the +other two servers. + +Server (1) runs as a [./aboutcgi.wiki|CGI script] on a +<a href="http://www.linode.com/">Linode</a> located in Dallas, TX +- on the same virtual machine that +hosts <a href="http://www.sqlite.org/">SQLite</a> and over a +dozen other smaller projects. This demonstrates that Fossil can run on +a low-power host processor. +Multiple fossil-based projects can easily be hosted on the same machine, +even if that machine is itself one of several dozen virtual machines on +a single physical box. The CGI script that runs the canonical Fossil +self-hosting repository is as follows: + +<pre> +#!/usr/bin/fossil +repository: /fossil/fossil.fossil +</pre> + +Server (3) ran for 10 years as a CGI script on a shared hosting account at +<a href="http://www.he.net/">Hurricane Electric</a> in Fremont, CA. +This server demonstrated the ability of +Fossil to run on an economical shared-host web account with no +privileges beyond port 80 HTTP access and CGI. It is not necessary +to have a dedicated computer with administrator privileges to run Fossil. +As far as we are aware, +Fossil is the only full-featured configuration management system +that can run in +such a restricted environment. The CGI script that ran on the +Hurricane Electric server was the same as the CGI script shown above, +except that the pathnames are modified to suit the environment: + +<pre> +#!/home/hwaci/bin/fossil +repository: /home/hwaci/fossil/fossil.fossil +</pre> + +In recent years, virtual private servers have become a more flexible and +less expensive hosting option compared to shared hosting accounts. +So on 2017-07-25, server (3) was moved +onto a $5/month "droplet" [https://en.wikipedia.org/wiki/Virtual_private_server|VPS] +(update: $6/month now) +from [https://www.digitalocean.com|Digital Ocean] +located in San Francisco. + +Server (3) is synchronized with the canonical server (1) by running +a command similar to the following via cron: + +<pre> +/usr/local/bin/fossil all sync -u +</pre> + +Server (2) is a +<a href="http://www.linode.com/">Linode</a> located in Newark, NJ +and set up just like the canonical server (1) with the addition of a +cron job for synchronization. The same cron job also runs the +[/help/git|fossil git export] command after each sync in order to +[./mirrortogithub.md#ex1|mirror all changes to GitHub]. |
