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.
Commit
d9ab9c567c500169a4b854d3218b311960d93ae422d6ad347acebd591a963304
Parent
1c50073d317c76f…
1 file changed
+35
-32
+35
-32
| --- www/server/index.html | ||
| +++ www/server/index.html | ||
| @@ -64,48 +64,56 @@ | ||
| 64 | 64 | <h2 id="methods">Methods</h2> |
| 65 | 65 | |
| 66 | 66 | <p>There are basically four ways to set up a Fossil server:</p> |
| 67 | 67 | |
| 68 | 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 | 69 | <li><a id="standalone" href="any/none.md">Stand-alone HTTP server</a> |
| 70 | + <li>Socket listener | |
| 74 | 71 | <li><a id="scgi" href="any/scgi.md">SCGI</a> |
| 75 | 72 | <li><a id="cgi" href="any/cgi.md">CGI</a> |
| 76 | 73 | </ol> |
| 77 | 74 | |
| 78 | 75 | <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> | |
| 81 | 77 | |
| 82 | 78 | <p>You are not restricted to using a single method. The same Fossil |
| 83 | 79 | 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> | |
| 87 | 95 | |
| 88 | 96 | |
| 89 | 97 | <h3>Socket Listener</h3> |
| 90 | 98 | |
| 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> | |
| 107 | 115 | |
| 108 | 116 | |
| 109 | 117 | <h3>CGI and SCGI</h3> |
| 110 | 118 | |
| 111 | 119 | <p>Fossil can also be run using CGI from ordinary web servers such as |
| @@ -195,17 +203,12 @@ | ||
| 195 | 203 | web server configured as a <a |
| 196 | 204 | href="https://en.wikipedia.org/wiki/Reverse_proxy">reverse proxy</a> for |
| 197 | 205 | Fossil's built-in HTTP server: <a href="debian/nginx.md">nginx</a>, <a |
| 198 | 206 | href="windows/iis.md">IIS</a>, Apache, etc.</p> |
| 199 | 207 | |
| 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> | |
| 207 | 210 | </noscript> |
| 208 | 211 | |
| 209 | 212 | |
| 210 | 213 | <h2 id="more">Further Details</h2> |
| 211 | 214 | |
| 212 | 215 |
| --- 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 |