gopher://atl.sh/~username on port 70. Each user’s content lives in ~/public_gopher/.
How it works
gophernicus.socket. It maps tilde selectors to user home directories using the -u flag, which tells it to look for public_gopher/ inside each user’s home.
Gophermap format
Create~/public_gopher/gophermap to define your hole’s menu. Each line is tab-separated:
Item type codes
| Type | Meaning |
|---|---|
i | Informational text (no link) |
0 | Text file |
1 | Directory / submenu |
7 | Search query |
h | HTML link (prefix URL with URL:) |
9 | Binary file |
g | GIF image |
I | Other image |
gophermap exists, Gophernicus generates a directory listing automatically.
Plain text files
Any.txt file in ~/public_gopher/ is served as a type-0 text document. No special formatting needed — just write plain text.
Configuration
Gophernicus is configured via/etc/default/gophernicus:
| Flag | Value | Purpose |
|---|---|---|
-h | atl.sh | Hostname in generated links |
-r | /var/gopher | Document root |
-u | public_gopher | User directory name (for tilde selectors) |
Ansible configuration
| File | Purpose |
|---|---|
roles/services/tasks/gopher.yml | Install, config deploy, enable socket |
roles/services/templates/gophernicus.env.j2 | Config template |
roles/services/defaults/main.yml | Default variables |
| Variable | Default | Description |
|---|---|---|
gopher_port | 70 | Listening port |
gopher_hostname | {{ pubnix_domain }} | Hostname for generated links |
gopher_root | /var/gopher | Document root |
gopher_user_dir | public_gopher | User subdirectory name |
Clients
lynx— installed on the server:lynx gopher://atl.sh/~username- Firefox with OverbiteNX extension
- Lagrange — multi-protocol graphical client
Troubleshooting
Hole returns empty or “error”- Home directory must be
711:chmod 711 ~ public_gophermust be755:chmod 755 ~/public_gopher- Check gophermap syntax — tabs must be real tab characters, not spaces
- Test locally:
echo "/~username" | nc localhost 70
- Check:
systemctl status gophernicus.socket - Restart:
sudo systemctl restart gophernicus.socket