Try telnet macnugget.org
  • Go 74.7%
  • Makefile 23.1%
  • Dockerfile 2.2%
Find a file
2025-06-15 21:02:09 -05:00
.github Add funding template. 2019-12-19 00:40:35 -06:00
rickrolld Stamp the binary with git version shortform 2025-06-12 19:35:53 -05:00
.gitignore Ignore local checkout of go-telnet 2025-06-12 11:16:55 -05:00
docker-compose.yml Attempt to add IPv6 support in container 2025-06-12 15:54:21 -05:00
Dockerfile Put lyrics.dat in CWD for container 2025-06-12 18:40:52 -05:00
go.mod make mod 2025-06-12 11:26:26 -05:00
go.sum make mod 2025-06-12 11:26:26 -05:00
LICENSE Relicensed as MIT (formerly 3-Clause BSD) 2025-06-11 22:22:16 -05:00
lyrics.dat Advertisements are ruining the Internet 2025-06-11 22:50:12 -05:00
Makefile Stamp the binary with git version shortform 2025-06-12 19:35:53 -05:00
README.md Thanks to Techman 2025-06-15 21:02:09 -05:00

Trolling telnet (ft. rickrolld)

telnet macnugget.org

If your machine doesn't have telnet installed, good for you. You can also use Netcat to connect.

nc macnugget.org 23

What is this? Whose fault is this?

I honestly don't remember what exactly was going through my head in 2013 when I wrote the original version of this service. I imagine that I felt then -- as I do now -- that rickrolld represents the zenith of Rickrolling humor.

rickrolld was written in Tcl 8.5 and was bespoke to my favored-at-the-time FreeBSD environment. The script relied on inetd, tcpwrappers, and tcllauncher to function. In 2022 I decommissioned the last of my those FreeBSD servers and lost the enviroment I needed to keep rickrolld running. Sadly, rickrolld died that day.

Version 2.0 Rewrite

In June 2025 I rewrote the server in Golang and got it containerized for an easier deployment in modern infrastructure. Special thanks to Michael Hazell for reminding me to get it finished.

The code from back then is a time capsule from a different era. From before Linux and containers took over the Internet. It's old enough to have been 3-Clause BSD licensed. I remember having strong feelings about that at the time. I changed it to MIT as part of the rewrite.

Description

This service will bind port 23 and listen as a telnet server. Incoming connections will be textually serenaded.

Local Operation

You can build and run locally straight from this repo if you have Golang installed.

make run

Containerized

Images are on dockerhub at nugget/rickrolld

docker run -p 23:23 nugget/rickrolld

Or use the docker-compse.yml file from this repo.

Building the container itself

You can build/tag the rickrolld container locally tagged as rickrolld:dev

make container
make runcontainer

Configuration

These environment variables can be set to override default values:

# string form of address (for example, "192.0.2.1:25", "[2001:db8::1]:80")
RICKROLL_LISTEN_ADDR=:23

# path to the lyrics file
RICKROLL_LYRICS_FILENAME=lyrics.dat