summaryrefslogtreecommitdiff
path: root/www/selfhost.wiki
diff options
context:
space:
mode:
Diffstat (limited to 'www/selfhost.wiki')
-rw-r--r--www/selfhost.wiki78
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].