Alex Schroeder ceb4c3a9cc Release process: master → main | 3 years ago | |
---|---|---|
.. | ||
edit-buttons | 9 years ago | |
inkscape | 9 years ago | |
templates | 9 years ago | |
README.md | 5 years ago | |
expire-bans.pl | 8 years ago | |
gemini-server.pl | 4 years ago | |
gopher-server.pl | 5 years ago | |
hypnotoad.pl | 5 years ago | |
mojolicious-app.pl | 5 years ago | |
oddtrans | 6 years ago | |
release | 3 years ago | |
server.pl | 4 years ago | |
toadfarm.pl | 5 years ago | |
upgrade-files.pl | 9 years ago | |
wiki2html | 9 years ago | |
wikiimg | 8 years ago |
Some of the modules requires extra files -- graphics, templates, and so on.
Example usage:
Change your working directory to the root of the Oddmuse repository (the parent directory of this directory).
Set the environment variable WikiDataDir
to test-data
:
export WikiDataDir=test-data
Test that the simple web server works by running stuff/server.pl
.
This should start the web server on http://localhost:8080/
. Visit
the link using your web browser and edit HomePage
.
You should see a test-data
directory containing the new page.
Now start the gopher server on port 7070 by running
stuff/gopher-server.pl --port=7070
. If you don't provide an explicit
port a random port is used and you'll need to read the server output
to determine the actual port. That's why we're setting the port
ourselves. Remember that using ports below 1024 require special
privileges. Don't use them unless you know what you're doing.
Test the gopher server by simulating a request using echo HomePage |
nc localhost 7070
. You should get back the content of the page you
wrote.
Let's test encryption. Create a self-signed certificate and a private
key. If you use the following command, you can leave all the fields
empty except for the common name. The common name you provide must
match the server name you are using. In our case, that would be
localhost
.
openssl req -new -x509 -days 365 -nodes -out \
gopher-server-cert.pem -keyout gopher-server-key.pem
Start the gopher server on port 7443 using this information with
stuff/gopher-server.pl --port=7443
--wiki_key_file=gopher-server-key.pem
--wiki_cert_file=gopher-server-cert.pem
.
If you test this by simulating an unencrypted request using echo
HomePage | nc localhost 7443
, you shouldn't get any output. Use echo
HomePage | gnutls-cli --no-ca-verification localhost:7443
and you
should get back your page. Actually, you have the certificate right
there so you might as well provide it: echo HomePage | gnutls-cli
--x509cafile=gopher-server-cert.pem localhost:7443
What you'd expect to see is a lot of cryptography output by
gnutls-cli
and at the very end the content of the page. If you're
seeing Fatal error: Error in the pull function
instead, then perhaps
the timing of things is a bit off. Introducing a short wait fixed this
for me. (sleep 1;echo HomePage) | gnutls-cli
--x509cafile=gopher-server-cert.pem localhost:7443
Good luck!