2020-04-10 19:35:22 +00:00
|
|
|
# Gophor
|
|
|
|
|
|
|
|
A Gopher server written in GoLang as a means of learning about the Gopher
|
|
|
|
protocol, and more GoLang.
|
|
|
|
|
|
|
|
Possibly beta quality soon? More likely alpha right now.
|
|
|
|
|
2020-04-11 13:21:21 +00:00
|
|
|
`go build` and you're set to go! (...phor ha)
|
2020-04-11 10:45:12 +00:00
|
|
|
|
2020-04-10 19:38:17 +00:00
|
|
|
Linux only FOR NOW.
|
2020-04-10 19:35:22 +00:00
|
|
|
|
2020-04-12 20:31:50 +00:00
|
|
|
# Supported gophermap item types
|
|
|
|
|
|
|
|
```
|
|
|
|
0 -- regular file (text)
|
|
|
|
1 -- directory (menu)
|
|
|
|
2 -- CSO phone-book server... should you be using this in 2020 lmao
|
|
|
|
3 -- Error
|
|
|
|
4 -- Binhexed macintosh file
|
|
|
|
5 -- DOS bin archive
|
|
|
|
6 -- Unix uuencoded file
|
|
|
|
7 -- Index-search server
|
|
|
|
8 -- Text-based telnet session
|
|
|
|
9 -- Binary file
|
|
|
|
T -- Text-based tn3270 session... in 2020???
|
|
|
|
g -- Gif format graphic
|
|
|
|
I -- Image file of some kind
|
|
|
|
|
|
|
|
+ -- Redundant server
|
|
|
|
|
|
|
|
. -- Lastline if online this followed by CrLf
|
|
|
|
|
|
|
|
i -- Info message
|
|
|
|
h -- HTML document
|
|
|
|
s -- Audio file
|
|
|
|
p -- PNG image
|
|
|
|
d -- Document
|
|
|
|
|
|
|
|
M -- MIME type file
|
|
|
|
; -- Video file
|
|
|
|
c -- Calendar file
|
|
|
|
! -- Title
|
|
|
|
# -- Comment (not displayed)
|
|
|
|
- -- Hide file from directory listing
|
|
|
|
= -- Include subgophermap (prints file output here)
|
|
|
|
* -- Act as-if lastline and print directory listing below
|
|
|
|
|
2020-04-13 19:22:50 +00:00
|
|
|
Unavailable for now due to issues with accessing path within chroot:
|
|
|
|
~~$ -- Execute shell command and print stdout here~~
|
2020-04-12 20:31:50 +00:00
|
|
|
```
|
|
|
|
|
2020-04-10 19:35:22 +00:00
|
|
|
# Todos
|
|
|
|
|
|
|
|
- TLS support
|
2020-04-11 13:17:21 +00:00
|
|
|
|
|
|
|
- connection throttling
|
|
|
|
|
|
|
|
- header + footer text
|
|
|
|
|
2020-04-11 13:21:21 +00:00
|
|
|
- support proposed protocol extensions (Gopher+ etc)
|
|
|
|
|
2020-04-12 15:13:57 +00:00
|
|
|
- ~~toggleable logging~~
|
2020-04-11 13:21:21 +00:00
|
|
|
|
|
|
|
- rotating logs
|
2020-04-11 13:17:21 +00:00
|
|
|
|
2020-04-11 13:21:21 +00:00
|
|
|
- set default page width (modifies max UserName / Selector fields)
|
|
|
|
|
|
|
|
- set default charset
|
2020-04-11 13:17:21 +00:00
|
|
|
|
2020-04-11 18:31:58 +00:00
|
|
|
- autogenerated caps.txt
|
2020-04-11 13:17:21 +00:00
|
|
|
|
2020-04-11 13:32:00 +00:00
|
|
|
- server status page (?)
|
|
|
|
|
|
|
|
- proxy over HTTP support
|
|
|
|
|
|
|
|
- connection timeout
|
|
|
|
|
2020-04-11 18:31:58 +00:00
|
|
|
- gopher servemux (?)
|
|
|
|
|
2020-04-12 15:13:57 +00:00
|
|
|
- ~~treat plain line of text (no tabs) as info line~~
|
|
|
|
|
2020-04-11 13:21:21 +00:00
|
|
|
# Standards followed
|
2020-04-11 13:17:21 +00:00
|
|
|
|
|
|
|
Gopher-II (The Next Generation Gopher WWIS):
|
|
|
|
https://tools.ietf.org/html/draft-matavka-gopher-ii-00
|
|
|
|
|
|
|
|
All of the below can be viewed from your standard web browser using
|
|
|
|
floodgap's Gopher proxy:
|
2020-04-11 13:21:21 +00:00
|
|
|
https://gopher.floodgap.com/gopher/gw
|
2020-04-11 13:17:21 +00:00
|
|
|
|
|
|
|
RFC 1436 (The Internet Gopher Protocol:
|
|
|
|
gopher://gopher.floodgap.com:70/0/gopher/tech/rfc1436.txt
|
|
|
|
|
|
|
|
Gopher+ (upward compatible enhancements):
|
|
|
|
gopher://gopher.floodgap.com:70/0/gopher/tech/gopherplus.txt
|