A Server for the Gopher protocol, written in the Go.
Just clone the repository and run go build
in it.
git clone https://github.com/binaryplease/gopherlix.git
cd gopherlix
go build
[paths]
content = "data/content"
templates = "data/templates"
[server]
port = "8000"
domain = "localhost"
host = "0.0.0.0"
The configuration file (config.ini
) should be self explanatory. The server
includes some sample pages and should run with it out of the box on port 8000
.
You may want to change the port to gophers default port 70
Gopherlix will look for the configuration file in the same folder as the server per defalt.
To start it just run ./gopherlix
and start browsing goopher://localhost:8000
You can add content in the content
directory configured in config.ini
.
The templates
directory includes templates that can be rendered in inside
other files. The header.gph
and footer.gph
will be added automatically to
all pages.
A request like gopher://localhost/something
will look for
data/content/something
and check if it's a file or a directory.
For a file, the contents of it will be returned. If the requested path is a
directory, it will try to find a file called index.gph
in it and display it.
If no index.gph
is found in this directory, it will generate a listing with
links to all the directory contents.
Gopherlix leverages the power of golangs
templates to generate content
dynamically. This allows to include ariables in the form of {{.Variablename}}
in any page that will be replaced accordingly. At the moment the following
variables are suported (more to come in future updates):
Variable | Description |
---|---|
{{.Directory}} | Path of the current request |
{{.ServerName}} | Shows the server's domain name |
Pull-request, issues, feature-requst and contributions of any kind are very welcome!