----------------------------------------
A lame frontend for a gopher server on FreeBSD 12, a quick & dirty howto
January 24th, 2019
----------------------------------------

Here's a quick and dirty howto guide on how to deplay a very basic, but
functional, web frontend to a locally hosted gopher server on FreeBSD 12.
This is an add-on to last phlog I posted, "Gophernicus on FreeBSD12 quick
/dirty HOWTO".  As last time, I used VirtualBox, bridged networking,
and accessed the gopher server + web frontend via LAN (ipv4). Everything
was done as root, but gopherfilter and lighttpd run unprivileged.

First let us pull in a cool webserver and some dependencies:
#pkg install lighttpd curl lynx p5-HTML-Parser tidyp unix2dos

Now lets set it to automatically start on boot
You can do this by editing /etc/rc.conf with your favourite text editor,
add this line to the bottom:
lighttpd_enable="YES""

Our gopher gateway is basically a CGI script, so lets go enable CGI now..
Take a text editor to /usr/local/etc/lighttpd/modules.conf and
remove the comment (#) from the mod_cgi line, it should read:
include "conf.d/cgi.conf"
Also remove the comment from the "mod_alias", line too, that module is
required to redirect suspected gopher URLs to the CGI.

Now that CGI and mod_alias have been enabled, we will tell lighttpd
which URLs belong to the gopher gateway script, to do this we will
replace the /usr/local/etc/lighttpd/conf.d/cgi.conf with a prebaked
version which has the most common gophertypes
#cd /usr/local/etc/lighttpd/conf.d
#mv /usr/local/etc/lighttpd/conf.d/cgi.conf cgi.conf.ORIG
#wget http://gopher.zcrayfish.soy/0/phlog/files/cgi.conf
#dos2unix cgi.conf

Our web files will be stored at /usr/local/www/data/, so go there now and
we'll download the CGI script and do some quick and basic setup
#cd /usr/local/www/data
#wget https://gopher.zcrayfish.soy/0/phlog/files/gopher.sh
#dos2unix gopher.sh
#chmod a+x gopher.sh
#ln -s gopher.sh index.sh

Open gopher.sh in your editor and change the fqdn variable to your
hostname.
Open /usr/local/etc/lighttpd/lighttpd.conf in your editor and go find the
index-file.names section, make sure index.sh is in the list.

Now we have to do a workaround for a lynx bug that ruins gopher often.
Edit /etc/services and add a line for gopherfilter which we will run on
port 7070, tcp:
gopherfilter     7070/tcp

Edit /etc/inetd.conf and add a line for the gopherfilter server which we
will install in /usr/local/bin/gopherfilter.sh:
gopherfilter  stream  tcp  nowait  nobody  /usr/local/bin/gopherfilter.sh

Now we will download and start the gopherfilter, and start the web server
#cd /usr/local/bin
#wget http://gopher.zcrayfish.soy/0/phlog/files/gopherfilter.sh
#dos2unix gopherfilter.sh
#chmod a+x gopherfilter.sh
#service inetd restart
#service lighttpd start

Now point a browser at your new web server IP and hope that it works!

Have fun!
----------------------------------------

=> Back to phlog index | gopher.zcrayfish.soy gopher root

This phlog entry has been read 2647 times.
Future direct comment submission has been disabled for this phlog entry.
Comments are still accepted by email, please send to:
zacharygopher@gopher.zcrayfish.soy
Be sure to include the post title in the subject line! Thanks!
Nobody has commented on this post.
Proxy Information
Original URL
gemini://gopher.zcrayfish.soy/1/phlog/20190124-a-lame-frontend-for-a-gopher-server-on-freebsd-12-a-quick-dirty-howto
Status Code
Success (20)
Meta
text/gemini;
Capsule Response Time
572.974569 milliseconds
Gemini-to-HTML Time
0.506473 milliseconds

This content has been proxied by September (ba2dc).