Fossil SCM
Replaced the content of "Running Fossil in SCGI Mode" within www/server/debian/nginx.md with references to our other Fossil server docs. This also reduces the prior focus of this section on fslsrv to a single sentence, since we now prefer the systemd option, now that we have it.
Commit
a4bb92f7916cafff936ad23c4fbb38da47aeea47b8a5cd20f90f1ce3e5281b35
Parent
653e90ca6277eea…
1 file changed
+12
-45
+12
-45
| --- www/server/debian/nginx.md | ||
| +++ www/server/debian/nginx.md | ||
| @@ -107,55 +107,22 @@ | ||
| 107 | 107 | $ sudo apt install fossil nginx |
| 108 | 108 | |
| 109 | 109 | |
| 110 | 110 | ## <a name="scgi"></a>Running Fossil in SCGI Mode |
| 111 | 111 | |
| 112 | -I run my Fossil SCGI server instances with a variant of [the `fslsrv` | |
| 113 | -shell script](/file/tools/fslsrv) currently hosted in the Fossil source | |
| 114 | -code repository. You’ll want to download that and make a copy of it, so | |
| 115 | -you can customize it to your particular needs. | |
| 116 | - | |
| 117 | -This script allows running multiple Fossil SCGI servers, one per | |
| 118 | -repository, each bound to a different high-numbered `localhost` port, so | |
| 119 | -that only nginx can see and proxy them out to the public. The | |
| 120 | -“`example`” repo is on TCP port localhost:12345, and the “`foo`” repo is | |
| 121 | -on localhost:12346. | |
| 122 | - | |
| 123 | -As written, the `fslsrv` script expects repositories to be stored in the | |
| 124 | -calling user’s home directory under `~/museum`, because where else do | |
| 125 | -you keep Fossils? | |
| 126 | - | |
| 127 | -That home directory also needs to have a directory to hold log files, | |
| 128 | -`~/log/fossil/*.log`. Fossil doesn’t put out much logging, but when it | |
| 129 | -does, it’s better to have it captured than to need to re-create the | |
| 130 | -problem after the fact. | |
| 131 | - | |
| 132 | -The use of `--baseurl` in this script lets us have each Fossil | |
| 133 | -repository mounted in a different location in the URL scheme. Here, for | |
| 134 | -example, we’re saying that the “`example`” repository is hosted under | |
| 135 | -the `/code` URI on its domains, but that the “`foo`” repo is hosted at | |
| 136 | -the top level of its domain. You’ll want to do something like the | |
| 137 | -former for a Fossil repo that’s just one piece of a larger site, but the | |
| 138 | -latter for a repo that is basically the whole point of the site. | |
| 139 | - | |
| 140 | -You might also want another script to automate the update, build, and | |
| 141 | -deployment steps for new Fossil versions: | |
| 142 | - | |
| 143 | - #!/bin/sh | |
| 144 | - cd $HOME/src/fossil/trunk | |
| 145 | - fossil up | |
| 146 | - make -j11 | |
| 147 | - killall fossil | |
| 148 | - sudo make install | |
| 149 | - fslsrv | |
| 150 | - | |
| 151 | -The `killall fossil` step is needed only on OSes that refuse to let you | |
| 152 | -replace a running binary on disk. | |
| 153 | - | |
| 154 | -As written, the `fslsrv` script assumes a Linux environment. It expects | |
| 155 | -`/bin/bash` to exist, and it depends on non-POSIX tools like `pgrep`. | |
| 156 | -It should not be difficult to port to systems like macOS or the BSDs. | |
| 112 | +For the following nginx configuration to work, it needs to contact a | |
| 113 | +Fossil instance speaking the SCGI protocol. There are [many ways](../) | |
| 114 | +to set that up. For Debian type systems, we primarily recommend | |
| 115 | +following [our systemd user service guide](service.md). | |
| 116 | + | |
| 117 | +Another option would be to customize [the `fslsrv` shell | |
| 118 | +script](/file/tools/fslsrv) that ships with Fossil as an example of | |
| 119 | +launching multiple Fossil instances in the background to serve multiple | |
| 120 | +URLs. | |
| 121 | + | |
| 122 | +However you do it, you need to match up the TCP port numbers between it | |
| 123 | +and those in the nginx configuration below. | |
| 157 | 124 | |
| 158 | 125 | |
| 159 | 126 | ## <a name="config"></a>Configuration |
| 160 | 127 | |
| 161 | 128 | On Debian and Ubuntu systems the primary user-level configuration file |
| 162 | 129 |
| --- www/server/debian/nginx.md | |
| +++ www/server/debian/nginx.md | |
| @@ -107,55 +107,22 @@ | |
| 107 | $ sudo apt install fossil nginx |
| 108 | |
| 109 | |
| 110 | ## <a name="scgi"></a>Running Fossil in SCGI Mode |
| 111 | |
| 112 | I run my Fossil SCGI server instances with a variant of [the `fslsrv` |
| 113 | shell script](/file/tools/fslsrv) currently hosted in the Fossil source |
| 114 | code repository. You’ll want to download that and make a copy of it, so |
| 115 | you can customize it to your particular needs. |
| 116 | |
| 117 | This script allows running multiple Fossil SCGI servers, one per |
| 118 | repository, each bound to a different high-numbered `localhost` port, so |
| 119 | that only nginx can see and proxy them out to the public. The |
| 120 | “`example`” repo is on TCP port localhost:12345, and the “`foo`” repo is |
| 121 | on localhost:12346. |
| 122 | |
| 123 | As written, the `fslsrv` script expects repositories to be stored in the |
| 124 | calling user’s home directory under `~/museum`, because where else do |
| 125 | you keep Fossils? |
| 126 | |
| 127 | That home directory also needs to have a directory to hold log files, |
| 128 | `~/log/fossil/*.log`. Fossil doesn’t put out much logging, but when it |
| 129 | does, it’s better to have it captured than to need to re-create the |
| 130 | problem after the fact. |
| 131 | |
| 132 | The use of `--baseurl` in this script lets us have each Fossil |
| 133 | repository mounted in a different location in the URL scheme. Here, for |
| 134 | example, we’re saying that the “`example`” repository is hosted under |
| 135 | the `/code` URI on its domains, but that the “`foo`” repo is hosted at |
| 136 | the top level of its domain. You’ll want to do something like the |
| 137 | former for a Fossil repo that’s just one piece of a larger site, but the |
| 138 | latter for a repo that is basically the whole point of the site. |
| 139 | |
| 140 | You might also want another script to automate the update, build, and |
| 141 | deployment steps for new Fossil versions: |
| 142 | |
| 143 | #!/bin/sh |
| 144 | cd $HOME/src/fossil/trunk |
| 145 | fossil up |
| 146 | make -j11 |
| 147 | killall fossil |
| 148 | sudo make install |
| 149 | fslsrv |
| 150 | |
| 151 | The `killall fossil` step is needed only on OSes that refuse to let you |
| 152 | replace a running binary on disk. |
| 153 | |
| 154 | As written, the `fslsrv` script assumes a Linux environment. It expects |
| 155 | `/bin/bash` to exist, and it depends on non-POSIX tools like `pgrep`. |
| 156 | It should not be difficult to port to systems like macOS or the BSDs. |
| 157 | |
| 158 | |
| 159 | ## <a name="config"></a>Configuration |
| 160 | |
| 161 | On Debian and Ubuntu systems the primary user-level configuration file |
| 162 |
| --- www/server/debian/nginx.md | |
| +++ www/server/debian/nginx.md | |
| @@ -107,55 +107,22 @@ | |
| 107 | $ sudo apt install fossil nginx |
| 108 | |
| 109 | |
| 110 | ## <a name="scgi"></a>Running Fossil in SCGI Mode |
| 111 | |
| 112 | For the following nginx configuration to work, it needs to contact a |
| 113 | Fossil instance speaking the SCGI protocol. There are [many ways](../) |
| 114 | to set that up. For Debian type systems, we primarily recommend |
| 115 | following [our systemd user service guide](service.md). |
| 116 | |
| 117 | Another option would be to customize [the `fslsrv` shell |
| 118 | script](/file/tools/fslsrv) that ships with Fossil as an example of |
| 119 | launching multiple Fossil instances in the background to serve multiple |
| 120 | URLs. |
| 121 | |
| 122 | However you do it, you need to match up the TCP port numbers between it |
| 123 | and those in the nginx configuration below. |
| 124 | |
| 125 | |
| 126 | ## <a name="config"></a>Configuration |
| 127 | |
| 128 | On Debian and Ubuntu systems the primary user-level configuration file |
| 129 |