Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Moved the section on stunnel configuration from www/server.wiki to www/ssl.wiki, adding links from one to the other. Also changed all remaining references to "SSL" in server.wiki to "TLS". |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
355c16a528d03e799befc20378f46105 |
| User & Date: | wyoung 2019-03-17 06:42:04.527 |
Context
|
2019-03-17
| ||
| 07:01 | Expanded the "Standalone server" section of www/server.wiki to add more examples. Also fixed a few grammar problems elsewhere in the doc. ... (check-in: f153777f3e user: wyoung tags: trunk) | |
| 06:42 | Moved the section on stunnel configuration from www/server.wiki to www/ssl.wiki, adding links from one to the other. Also changed all remaining references to "SSL" in server.wiki to "TLS". ... (check-in: 355c16a528 user: wyoung tags: trunk) | |
| 06:18 | Expanded the discussion of the difference between "fossil ui" and "fossil server" in www/server.wiki. ... (check-in: 67e30333d1 user: wyoung tags: trunk) | |
Changes
Changes to www/server.wiki.
| ︙ | ︙ | |||
21 22 23 24 25 26 27 | <h2>Overview</h2> <blockquote> There are basically four ways to set up a Fossil server: <ol> <li>A stand-alone server | | | 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <h2>Overview</h2> <blockquote> There are basically four ways to set up a Fossil server: <ol> <li>A stand-alone server <li>Using inetd, xinetd, or stunnel <li>CGI <li>SCGI (a.k.a. SimpleCGI) </ol> Each of these can serve either a single repository, or a directory hierarchy containing many repositories with names ending in ".fossil". </blockquote> |
| ︙ | ︙ | |||
70 71 72 73 74 75 76 | the repository. Both commands have additional command-line options that can be used to refine their behavior. See the [/help/server|online documentation] for an overview. </blockquote> | | | 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | the repository. Both commands have additional command-line options that can be used to refine their behavior. See the [/help/server|online documentation] for an overview. </blockquote> <h2 id="inetd">Fossil as an inetd/xinetd service</h2> <blockquote> A Fossil server can be launched on-demand by inetd or xinetd using the [/help/http|fossil http] command. To launch Fossil from inetd, modify your inetd configuration file (typically "/etc/inetd.conf") to contain a line something like this: |
| ︙ | ︙ | |||
140 141 142 143 144 145 146 | but if it is done, then Fossil will automatically put itself into a chroot jail for the user who owns the fossil repository before reading any information off of the wire. Inetd or xinetd must be enabled, and must be (re)started whenever their configuration changes - consult your system's documentation for details. | < < < < < < < < < < < < < < < < < < < < < | | > > > | 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 | but if it is done, then Fossil will automatically put itself into a chroot jail for the user who owns the fossil repository before reading any information off of the wire. Inetd or xinetd must be enabled, and must be (re)started whenever their configuration changes - consult your system's documentation for details. Using inetd or xinetd is a more complex setup than the "standalone" server, but it has the advantage of only using system resources when an actual connection is attempted. If no-one ever connects to that port, a Fossil server will not (automatically) run. It has the disadvantage of requiring "root" access and therefore may not normally be available to lower-priced "shared" servers on the Internet. The configuration for <tt>stunnel</tt> is similar, but it is covered in [./ssl.wiki#stunnel|a separate document]. </blockquote> <h2 id="cgi">Fossil as CGI</h2> <blockquote> A Fossil server can also be run from an ordinary web server as a CGI program. |
| ︙ | ︙ | |||
277 278 279 280 281 282 283 | would be something like this: <blockquote><pre> fossil server $REPOSITORY --scgi --localhost --port 9000 </pre></blockquote> </blockquote> | | < < < < < < | < < < | < < | | | 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 | would be something like this: <blockquote><pre> fossil server $REPOSITORY --scgi --localhost --port 9000 </pre></blockquote> </blockquote> <h2 id="tls">Securing a repository with TLS</h2> <blockquote> Fossil's built-in HTTP server (e.g. "fossil server") does not support TLS, but there are multiple ways to protect your Fossil server with TLS. All of this is covered in a separate document, <a href="./ssl.wiki">Using TLS-Encrypted Communications with Fossil</a>. </blockquote> <h2 id="loadmgmt">Managing Server Load</h2> <blockquote> A Fossil server is very efficient and normally presents a very light load on the server. |
| ︙ | ︙ |
Changes to www/ssl.wiki.
| ︙ | ︙ | |||
209 210 211 212 213 214 215 | way to serve via HTTP over TLS, a.k.a. HTTPS, even when you've linked Fossil to OpenSSL. To serve a Fossil repository via HTTPS, you must put it behind some kind of HTTPS proxy. <h3 id="stunnel">stunnel Alone</h3> | | > > > > | | | > > > > > > > > > | < | > | > > > > | 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 |
way to serve via HTTP over TLS, a.k.a. HTTPS, even when you've linked
Fossil to OpenSSL. To serve a Fossil repository via HTTPS, you must put
it behind some kind of HTTPS proxy.
<h3 id="stunnel">stunnel Alone</h3>
[https://www.stunnel.org/ | <tt>stunnel</tt>] is an
[https://en.wikipedia.org/wiki/Inetd | <tt>inetd</tt>]-like process that
accepts and decodes TLS-encrypted connections. It can directly proxy
Fossil communications, allowing secure TLS-encrypted communications to a
Fossil repository server. You simply need to install <tt>stunnel</tt>
and then place something like this in its main configuration file,
<tt>stunnel.conf</tt>:
<nowiki><pre>
[https]
accept = www.ubercool-project.org:443
TIMEOUTclose = 0
exec = /usr/bin/fossil
execargs = /usr/bin/fossil http /home/fossil/ubercool.fossil --https
</pre></nowiki>
The directory where that file goes varies between OSes, so check the man
pages on your system to find out where it should be locally.
See the <tt>stunnel</tt> documentation for further details about this
configuration file.
It is important that the [/help/http | <tt>fossil http</tt>] command in
that configuration include the <tt>--https</tt> option to let Fossil
know to use "<tt>https</tt>" instead of "<tt>http</tt>" as the URL
scheme on generated hyperlinks.
<h3 id="althttpd">stunnel + althttpd</h3>
The public SQLite and Fossil web sites can't just use stunnel + Fossil
because parts of the web site are static, served by
[https://www.sqlite.org/docsrc/file/misc/althttpd.c|a separate web
|
| ︙ | ︙ |