1. 18
  1.  

  2. 6

    I’ve been running a gopher server for several years now. Is anyone else here running a gopher server?

    1. 7

      I do, but the Gemini protocol is more appealing to me: https://gemini.circumlunar.space/

      1. 3

        I also run a Gemini server that I wrote. I also wrote my own gopher server.

        1. 2

          I mostly run a Gemini capsule, but scrape websites and serve those sites up over Gopher for myself.

        2. 4

          coreboot.org has some basic gopher presence because, why not?

          1. 1

            Maybe that gives a shorter path than http/html for bootstrapping a system (with not much userland utilities there already) and accessing the coreboot.org page from the coreboot-ed system (just for fun maybe).

            1. 1

              Is it at gopher://coreboot.org ?

              1. 1

                Yes

            2. 4

              My phlog is happily serving the markdown sources of my HTML blog. I recently clean the source for it to be more gopher friendly.

              I now want to use gopher more for serving random thoughs/notes quickly without worrying about style.

              1. 3

                I started this week! I just have a test though for now. Also in my first explorations I came across your gopher hole through a phlog aggregator as it happens!

                1. 2

                  Great! AFAIK,servers of the tildeverse can do their best to support gopher. We can also use their gopherproxy to proxy your web gopher://gopher.conman.org. eg.https://gopher.tildeverse.org/conman.org

                  1. 1

                    Yes, dual-hosting with HTML. I use https://code.z0.is/notwiki/ for that.

                    1. 1

                      Floodgap admin here.

                      1. 1

                        Not yet, but I’ve revived an old project I intended on starting five years ago to build one. Just took a few days of occasional work to build a pretty complete Gopher server. I just have to get around to implementing executable gophermaps and possibly CGI support.

                        After I’m done with that, I’m considering implementing my own Gemini server.

                      2. 6

                        And, no SSL handshaking occurs. The lack of SSL in gopherspace is not a problem, because no one is spying on you in gopherspace the way they are on the rest of the Internet.

                        This is a really casual dismissal of one of the most valuable privacy technologies we have. I suppose there’s some merit to the argument “gopherspace is too small for attackers to care about” but I certainly prefer to have a degree of cryptographic assurance that I’m talking to the server I expect.

                        I don’t need the full OpenSSL feature set. I don’t even necessarily require certificate authorities. I can pin a certificate on first visit and verify on subsequent visits. I like the Keybase web of trust approach. Just please don’t make me pull my content in plain text from servers I only know from DNS.

                        Gemini mandates TLS, which is a big advantage for me.

                        1. 3

                          There is also SSL for gopher added to Geomyidae server, by using the same port 70 and detecting the TLS packet: gopher://bitreich.org/0/usr/20h/phlog/2020-06-07T18-28-23-863932.md

                          Detecting is not hard: check the first byte using recv()’s MSG_PEEK letting you peek at a socket, with the next read() still reading the first byte. It is in POSIX:

                          recv(socket, buf, sizeof(buf), MSG_PEEK));  /* add error handling though */
                          
                          if (buf[0] == 0x12 || buf[0] == 0x16) {
                              tls_init(socket); /* normal TLS functions still work there */
                              gopher_read = tls_read;
                          } else {
                              gopher_read = read;
                          }
                          
                          /* no special case for TLS or SSL to add */
                          handle_gopher(socket, gopher_read);
                          

                          This is opportunistic encryption: weaker than mandatory encryption but improve the situation fast.

                        2. 4

                          You might have noticed that I advertise gophwr, @erkin’s GUI Gopher browser written in Racket in every post about Gopher. I’m not changing my behaviour: Lynx is great, but in the time when GUI web browsers are removing non-HTTP protocol support one after another at alarming speed while Gopherspace sees something of a revival, new GUI options are needed.

                          1. 3

                            Fun. The social network I’m on parses HTTP/S, FTP, and GOPHER links. Of course, the API is only accessible over HTTPS.

                            1. 2

                              The point of HTTP seems to have an API, and the point of Gopher seems (to me, maybe not everyone!) to use the right protocol for the right task.

                              Transforming everything onto an over-complex API that use mostly POST or GET rather than actually using HTTP they are based off (like JMAP or Matrix) is another problem…

                              1. 2

                                For sure. I’ve been considering making a tunnel for the API for viewing things in Gopher, but it would effectively be a client for the social network that requires a second client (a gopher client) to read. It would be silly.

                                And yet, on said social network, I have a bot that you can send messages, and it will print your message on a receipt printer, take a picture of the print out, and upload the image of the printed sent message. So there is precedent for such nonsense.

                                1. 2

                                  I love your bot.

                                  A client for access through another client would be a “protocol gateway”?

                                  1. 3

                                    But parsing the API contents into a gopher-readable page would be so opinionated, it seems more than just a gateway to me.

                            2. 1

                              I love reading Metafilter on Gopher at gopher://gopher.metafilter.com . There’s lots of content, and it loads up lightning fast.