Gopher
Gopher был разработан незадолго до html/http, ПО сервера было платным, а возможности представления информации - очень маленькими, по сравнению даже с первыми версиями html. Да, это просто текст со ссылками.



По сути он умер лет 30 назад но недавно интерес к нему начал расти по простой причине: многие гики любят вести дневники в интернете, и ставить на сервер сервер http, субд, PHP, python, движок блога, заходить в админку чтобы написать что прошло за день КАК ТО ПЕРЕБОР. И тут вспоминают про Gopher. Потому что сервер не требует дополнительного ПО, а файлы сайтов представляют собой довольно простой текст. Протокол древний и не поддерживает шифроание, плюс у него всратоватый синтаксис страниц, так что на замену ему разработан gemini, но все-таки суслик это батя простоты и обскурных пространств интернетов, поэтому посмотрим как запускать сервер и писать статьи, тексты и посты.

Ставим сервер, предполагаем что работаем в ubuntu linux
sudo apt install pygopherd
Настройки хранятся в файле
sudo nano /etc/pygopherd/pygopherd.conf
нас интересует пара моментов
Расположение файлов сайта
root = /var/gopher to root (файлы вашего сайта)

Управление сервером
sudo /etc/init.d/pygopherd stop
sudo /etc/init.d/pygopherd start
sudo /etc/init.d/pygopherd restart

Пишем сайт
Аналогои главной страницы index.html которую отдает сервер при обращении являетс я файл gophermap (без расширения) но вообще этот файл писать необязательно, можно просто положить в папку сервера файлы и папки которые вы хотите опубликовать, gopher отобразит содержимое папки если не найдет файла gophermap.
Пример отсюда https://sdfeu.org/w/tutorials:gopher
Если вы положите в корневую папку сервера такое содержимое
 $ ls -lF
drwxr-x--- 2 $USER nobody 512 Dec 2 10:15 dir/
-rw-r----- 1 $USER nobody 6 Dec 2 10:14 file1.txt
-rw-r----- 1 $USER nobody 6 Dec 2 10:14 file2.pdf
-rw-r----- 1 $USER nobody 6 Dec 2 10:14 file3.rtf
То при обращении к серверу увидите в браузере gopher такую картину
 ,,,                                                                 Gopher Menu
Gopher Menu

(DIR) dir
(FILE) file1.txt
(FILE) file2.pdf
(FILE) file3.rtf

Страницы имеют имя файла gophermap без расширения,  содержимое строк имеет следующий формат

Tметка<tab>путь<tab>хост<tab>порт

T это тип содержимого, вот его варианты
i - строка после этого символа отображается так как написана, служит для добавления текста на страницу gopher
0 - ссылка в строке указывает на текстовый файл
1 - ссылка указывает на другой map, как ссылка на другую страницу html
5 - бинарный файл PC
6 - юникс UUENCODED
7 - поисковый сервер
8 - сессия telnet
9 - бинарныфайл
g - gif картинка
h - html документ
s - звук
I - картинка (не gif)

метка  - текст обьясняющий содержимое ссылки (ну или что угодно, это отобразится как текст на странице)
путь -  относительный путь к файлу
хост - имя хоста на котором лежит файл
порт - порт на котором висит gopher на указанном сервере (родной порт 70)

Пример
Давайте представим что в рабочей папке pygopherd  которая указана в его конфиге созданы следующие файлы и папки
 $ ls -lF
drwxr-x--- 2 $USER nobody 512 Dec 2 10:15 dir/
-rw-r----- 1 $USER nobody 6 Dec 2 10:14 file1.txt
-rw-r----- 1 $USER nobody 6 Dec 2 10:14 file2.pdf
-rw-r----- 1 $USER nobody 6 Dec 2 10:14 file3.rtf
-rw-r----- 1 $USER nobody 6 Dec 2 10:14 gophermap
Содержимое файла gophepmap

iWelcome to my Gopherspace!

0My text file    file1.txt
9My pdf file    file2.pdf
1My dir    dir  

0Why is Gopher Still Relevant? /gopher/relevance.txt gopher.floodgap.com 70
hAn http link URL:http://sdf.lonestar.org/
В браузере это будет выглядеть так

,,, Gopher Menu
Gopher Menu

Welcome to my Gopherspace!

(FILE) My text file
(BIN) My pdf file
(DIR) My dir

(FILE) Why is Gopher Still Relevant?
(HTML) An http link