Fossil SCM

Merged the lists of socket listener daemons into the Socket Listener section of www/server/index.html: the list of known-working daemons down from the numbered list at the top of the article, and the list of potentially-working daemons up from the <noscript>-cloaked document matrix below. Also reordered the sections from simplest to most complex.

wyoung 2019-08-19 00:01 server-docs
Commit d9ab9c567c500169a4b854d3218b311960d93ae422d6ad347acebd591a963304
1 file changed +35 -32
--- www/server/index.html
+++ www/server/index.html
@@ -64,48 +64,56 @@
6464
<h2 id="methods">Methods</h2>
6565
6666
<p>There are basically four ways to set up a Fossil server:</p>
6767
6868
<ol>
69
- <li>Socket listener:
70
- <a id="inetd" href="any/inetd.md">inetd</a>,
71
- <a id="xinetd" href="any/xinetd.md">xinetd</a>,
72
- <a id="stunnel" href="any/stunnel.md">stunnel</a>...
7369
<li><a id="standalone" href="any/none.md">Stand-alone HTTP server</a>
70
+ <li>Socket listener
7471
<li><a id="scgi" href="any/scgi.md">SCGI</a>
7572
<li><a id="cgi" href="any/cgi.md">CGI</a>
7673
</ol>
7774
7875
<p>All of these methods can serve either a single repository or a
79
-directory hierarchy containing many repositories with names ending in
80
-"<tt>.fossil</tt>".</p>
76
+directory containing repositories named "<tt>*.fossil</tt>".</p>
8177
8278
<p>You are not restricted to using a single method. The same Fossil
8379
repository can be served using two or more of the above techniques at
84
-the same time. You can also migrate from one method to another to
85
-accommodate changes in hosting providers or administrator
86
-preferences.</p>
80
+the same time. These methods use clean, well-defined, standard
81
+interfaces (CGI, SCGI, and HTTP) which allow you to easily migrate from
82
+one method to another to accommodate changes in hosting providers or
83
+administrator preferences.</p>
84
+
85
+
86
+<h3>Stand-alone HTTP Server</h3>
87
+
88
+<p>This is the easiest method. A stand-alone server uses the <a
89
+href="/help?cmd=server"><tt>fossil server</tt></a> command to run a
90
+process that listens for incoming HTTP requests on a socket and then
91
+dispatches a copy of itself to deal with each incoming request. You can
92
+expose Fossil directly to the clients in this way or you can interpose a
93
+<a href="https://en.wikipedia.org/wiki/Reverse_proxy">reverse proxy</a>
94
+layer between the clients and Fossil.</p>
8795
8896
8997
<h3>Socket Listener</h3>
9098
91
-<p>The idea behind the socket listener approach is that each incoming
92
-HTTP request is relayed to a new instance of the <a
93
-href="/help?cmd=http"><tt>fossil http</tt></a> command. That command
94
-reads the HTTP request from its standard input, handles the request, and
95
-writes a complete and correct HTTP reply on standard output which is
96
-then returned to the client.</p>
97
-
98
-
99
-<h3>Stand-alone HTTP Server</h3>
100
-
101
-<p>A stand-alone server uses the <a href="/help?cmd=server"><tt>fossil
102
-server</tt></a> command to run a process that listens for incoming HTTP
103
-requests on a socket and then dispatches a copy of itself to deal with
104
-each incoming request. A stand-alone server can talk directly with the
105
-client, or the system can be configured with a reverse proxy in between
106
-the client and Fossil.</p>
99
+<p>Only slightly more complicated is the socket listener method.
100
+Instead of letting Fossil run in the background continuously to handle
101
+HTTP requests from clients, you configure a socket listener daemon to
102
+run a <a href="/help?cmd=http"><tt>fossil http</tt></a> command on each
103
+HTTP hit. That Fossil instance handles only that one hit and then shuts
104
+back down, letting the socket listener go back to waiting for the next
105
+hit. This scheme is known to work with <a id="inetd"
106
+href="any/inetd.md">inetd</a>, <a id="xinetd"
107
+href="any/xinetd.md">xinetd</a>, and <a id="stunnel"
108
+href="any/stunnel.md">stunnel</a>.</p>
109
+
110
+<p>In principle, this method should also work with Apple’s
111
+<tt>launchd</tt>, Linux’s <tt>systemd</tt>, and Solaris’ SMF, all of
112
+which have similar socket listener features. We do not yet have
113
+tutorials showing how to configure these advanced daemons for Fossil,
114
+but we welcome <a href="contribute.wiki">contributions</a>.</p>
107115
108116
109117
<h3>CGI and SCGI</h3>
110118
111119
<p>Fossil can also be run using CGI from ordinary web servers such as
@@ -195,17 +203,12 @@
195203
web server configured as a <a
196204
href="https://en.wikipedia.org/wiki/Reverse_proxy">reverse proxy</a> for
197205
Fossil's built-in HTTP server: <a href="debian/nginx.md">nginx</a>, <a
198206
href="windows/iis.md">IIS</a>, Apache, etc.</p>
199207
200
-<p>There are several widely-deployed socket listener schemes besides the
201
-<tt>inetd</tt>, <tt>xinetd</tt>, and <tt>stunnel</tt> schemes with
202
-documents linked above: Apple’s <tt>launchd</tt>, Linux’s
203
-<tt>systemd</tt>, Solaris’ SMF, etc. We would welcome <a
204
-href="contribute.wiki">contributions</a> to cover these as well. We also
205
-welcome contributions to fill gaps (<font size="-2">❌</font>) in the table
206
-above. </p>
208
+<p>We welcome <a href="contribute.wiki">contributions</a> to fill gaps
209
+(<font size="-2">❌</font>) in the table above.</p>
207210
</noscript>
208211
209212
210213
<h2 id="more">Further Details</h2>
211214
212215
--- www/server/index.html
+++ www/server/index.html
@@ -64,48 +64,56 @@
64 <h2 id="methods">Methods</h2>
65
66 <p>There are basically four ways to set up a Fossil server:</p>
67
68 <ol>
69 <li>Socket listener:
70 <a id="inetd" href="any/inetd.md">inetd</a>,
71 <a id="xinetd" href="any/xinetd.md">xinetd</a>,
72 <a id="stunnel" href="any/stunnel.md">stunnel</a>...
73 <li><a id="standalone" href="any/none.md">Stand-alone HTTP server</a>
 
74 <li><a id="scgi" href="any/scgi.md">SCGI</a>
75 <li><a id="cgi" href="any/cgi.md">CGI</a>
76 </ol>
77
78 <p>All of these methods can serve either a single repository or a
79 directory hierarchy containing many repositories with names ending in
80 "<tt>.fossil</tt>".</p>
81
82 <p>You are not restricted to using a single method. The same Fossil
83 repository can be served using two or more of the above techniques at
84 the same time. You can also migrate from one method to another to
85 accommodate changes in hosting providers or administrator
86 preferences.</p>
 
 
 
 
 
 
 
 
 
 
 
 
87
88
89 <h3>Socket Listener</h3>
90
91 <p>The idea behind the socket listener approach is that each incoming
92 HTTP request is relayed to a new instance of the <a
93 href="/help?cmd=http"><tt>fossil http</tt></a> command. That command
94 reads the HTTP request from its standard input, handles the request, and
95 writes a complete and correct HTTP reply on standard output which is
96 then returned to the client.</p>
97
98
99 <h3>Stand-alone HTTP Server</h3>
100
101 <p>A stand-alone server uses the <a href="/help?cmd=server"><tt>fossil
102 server</tt></a> command to run a process that listens for incoming HTTP
103 requests on a socket and then dispatches a copy of itself to deal with
104 each incoming request. A stand-alone server can talk directly with the
105 client, or the system can be configured with a reverse proxy in between
106 the client and Fossil.</p>
107
108
109 <h3>CGI and SCGI</h3>
110
111 <p>Fossil can also be run using CGI from ordinary web servers such as
@@ -195,17 +203,12 @@
195 web server configured as a <a
196 href="https://en.wikipedia.org/wiki/Reverse_proxy">reverse proxy</a> for
197 Fossil's built-in HTTP server: <a href="debian/nginx.md">nginx</a>, <a
198 href="windows/iis.md">IIS</a>, Apache, etc.</p>
199
200 <p>There are several widely-deployed socket listener schemes besides the
201 <tt>inetd</tt>, <tt>xinetd</tt>, and <tt>stunnel</tt> schemes with
202 documents linked above: Apple’s <tt>launchd</tt>, Linux’s
203 <tt>systemd</tt>, Solaris’ SMF, etc. We would welcome <a
204 href="contribute.wiki">contributions</a> to cover these as well. We also
205 welcome contributions to fill gaps (<font size="-2">❌</font>) in the table
206 above. </p>
207 </noscript>
208
209
210 <h2 id="more">Further Details</h2>
211
212
--- www/server/index.html
+++ www/server/index.html
@@ -64,48 +64,56 @@
64 <h2 id="methods">Methods</h2>
65
66 <p>There are basically four ways to set up a Fossil server:</p>
67
68 <ol>
 
 
 
 
69 <li><a id="standalone" href="any/none.md">Stand-alone HTTP server</a>
70 <li>Socket listener
71 <li><a id="scgi" href="any/scgi.md">SCGI</a>
72 <li><a id="cgi" href="any/cgi.md">CGI</a>
73 </ol>
74
75 <p>All of these methods can serve either a single repository or a
76 directory containing repositories named "<tt>*.fossil</tt>".</p>
 
77
78 <p>You are not restricted to using a single method. The same Fossil
79 repository can be served using two or more of the above techniques at
80 the same time. These methods use clean, well-defined, standard
81 interfaces (CGI, SCGI, and HTTP) which allow you to easily migrate from
82 one method to another to accommodate changes in hosting providers or
83 administrator preferences.</p>
84
85
86 <h3>Stand-alone HTTP Server</h3>
87
88 <p>This is the easiest method. A stand-alone server uses the <a
89 href="/help?cmd=server"><tt>fossil server</tt></a> command to run a
90 process that listens for incoming HTTP requests on a socket and then
91 dispatches a copy of itself to deal with each incoming request. You can
92 expose Fossil directly to the clients in this way or you can interpose a
93 <a href="https://en.wikipedia.org/wiki/Reverse_proxy">reverse proxy</a>
94 layer between the clients and Fossil.</p>
95
96
97 <h3>Socket Listener</h3>
98
99 <p>Only slightly more complicated is the socket listener method.
100 Instead of letting Fossil run in the background continuously to handle
101 HTTP requests from clients, you configure a socket listener daemon to
102 run a <a href="/help?cmd=http"><tt>fossil http</tt></a> command on each
103 HTTP hit. That Fossil instance handles only that one hit and then shuts
104 back down, letting the socket listener go back to waiting for the next
105 hit. This scheme is known to work with <a id="inetd"
106 href="any/inetd.md">inetd</a>, <a id="xinetd"
107 href="any/xinetd.md">xinetd</a>, and <a id="stunnel"
108 href="any/stunnel.md">stunnel</a>.</p>
109
110 <p>In principle, this method should also work with Apple’s
111 <tt>launchd</tt>, Linux’s <tt>systemd</tt>, and Solaris’ SMF, all of
112 which have similar socket listener features. We do not yet have
113 tutorials showing how to configure these advanced daemons for Fossil,
114 but we welcome <a href="contribute.wiki">contributions</a>.</p>
115
116
117 <h3>CGI and SCGI</h3>
118
119 <p>Fossil can also be run using CGI from ordinary web servers such as
@@ -195,17 +203,12 @@
203 web server configured as a <a
204 href="https://en.wikipedia.org/wiki/Reverse_proxy">reverse proxy</a> for
205 Fossil's built-in HTTP server: <a href="debian/nginx.md">nginx</a>, <a
206 href="windows/iis.md">IIS</a>, Apache, etc.</p>
207
208 <p>We welcome <a href="contribute.wiki">contributions</a> to fill gaps
209 (<font size="-2">❌</font>) in the table above.</p>
 
 
 
 
 
210 </noscript>
211
212
213 <h2 id="more">Further Details</h2>
214
215

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button