gopherden: Forum via Gopher Protocol

Screenshot of gopherden being used

gopherden is forum software for the Gopher Protocol. View the official gopherden server via the web or via the Gopher Protocol (as intended) (you may want to read my post about the Gopher Protocol).

I’m thinking about renaming it to “phorum.”

Features (Users/Visitors)

Features for the people who use a gopherden:

  • Transient content. Old threads are deleted. There’s max thread count, when reached and a new post is made, the oldest one gets erased.
  • Anonymous, except IPs are associated with posts for banning and legal purposes
  • View threads as gopher maps or as text files (ASCII art, kind of)
  • Prevents some accidental reposting by refreshing
  • Prevents new threads being created where the message/content is the same as another in the DB
  • “Secret codes” which allow you to use codes like <jgsBagOfMoney> to potentially show an ASCII art picture
  • Rate-limiting (how fast you can make new threads or posts)
  • Handles/parses Gopher and HTTP(S) URIs into menu/map items

News

[news from my blog about gopherden]

Known issues

  • No real bot prevention. A captcha-like system could be implemented.

Feedback

Who’s using, in the news

Some other instances, notable users…

Documentation and tutorials

See also

Post on the official server!

This feels kind of redundant.

Official gopherden server at gopher://gopher.someodd.zip:7070. You may want to read my article on the Gopher Protocol for help on browsing gopherspace.

You can use my Gopher Protocol client, “waffle” to visit the forum!

You can use gopher (sudo apt-get install gopher) and then use gopher -p "/" gopher.someodd.zip 7070.

You could also use Lagrange, which has a client for Linux, MacOS, Windows, Android, and iOS.

Below is a photo of me using Lagrange to visit the forum on my phone:

Langrange client on a phone, visiting a gopherden forum.

Want your own gopherden or want to develop?

gopherden is open source.

Developer and Server Features

Features for those who host or develop (a) gopherden:

  • Written in Haskell
  • TOML configuration spec. First time I implemented a TOML config and I find it decent.
  • Uses Spacecookie, a wonderful Gopher Protocol library. I’ve worked with the author before.
  • CLI for banning

I’m leveraging nixpkgs to:

  • Make it very easy on me to build and deploy, particularly on my server
  • Have a development environment that sets up/takes down postgresql for me, which also helps with deploying a little demo server I’m hosting now. It also wipes the database on exit, too.

Setting up a server

As of the time I’m writing this I don’t have a systemd integration or Debian package, so a set up I like and think is simple/easy:

  1. clone the repo and cd into it
  2. make sure nixpkgs is installed on your system with experimental-features = flakes nix-command in your ~/.config/nix/nix.conf
  3. start a GNU Screen session screen -S services
  4. nix develop
  5. nix run .#gopherden -- launch

There you go! Keep in mind if you send the exit signal (I think) inside of nix develop the database gets wiped.