Unveiling the World of Internet Relay Chat (IRC): A Journey into Real-Time Online Conversations: IRC server with Docker

Shivani Shetty
3 min readNov 23, 2023

--

In the dynamic landscape of online communication, where instant messaging apps and social media platforms dominate, there exists a digital realm that predates many of them — the Internet Relay Chat, commonly known as IRC. Imagine stepping into a virtual space reminiscent of a bustling town square, where individuals gather to engage in real-time conversations, share thoughts, and connect over shared interests. In this blog post, we’ll embark on a journey to unravel the fascinating world of IRC, exploring its origins, key features, and the unique charm that continues to captivate a dedicated community of users. Join us as we delve into the roots of this timeless platform and discover why IRC remains a resilient and cherished medium for online discourse.

  1. Set up Docker’s Apt repository

Update our list of packages and install few prerequisite

sudo apt-get update
sudo apt-get install ca-certificates curl gnupg

the sudo apt-get install ca-certificates curl gnupg command installs essential packages that provide SSL/TLS certificate authorities for secure connections (ca-certificates)

Curl is a command-line tool and library for transferring data with URLs.

GnuPG (GNU Privacy Guard) is a free and open-source implementation of the OpenPGP (Pretty Good Privacy) standard

sudo install -m 0755 -d /etc/apt/keyrings

the command creates a new directory named “keyrings” in the /etc/apt directory with read, write, and execute permissions for the owner and read and execute permissions for the group and others.

This directory is commonly used in package management on Debian-based Linux distributions like Ubuntu to store GPG keyrings

Add the GPG key for the official Docker repository to our system

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg - dearmor -o /etc/apt/keyrings/docker.gpg

the command fetches a Docker GPG public key from a URL, converts it into a binary format, and saves it as /etc/apt/keyrings/docker.gpg. This key can then be used by the APT package manager to verify Docker-related packages during installation or updates.

sudo chmod a+r /etc/apt/keyrings/docker.gpg

changes the permissions of the file /etc/apt/keyrings/docker.gpg to make it readable by all users on the system.

Add the Docker repository to APT sources

echo \
"deb [arch="$(dpkg --print-architecture)" signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
"$(. /etc/os-release && echo "$VERSION_CODENAME")" stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

this command dynamically generates an APT repository configuration for Docker based on the system’s architecture and Ubuntu release codename. It then writes this configuration to the file /etc/apt/sources.list.d/docker.list, making Docker packages available for installation and updates through the APT package manager.

Update your existing list of packages again for the new packages to be available

sudo apt-get update

2. Install the Docker packages

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

the command installs Docker-related packages and plugins, allowing you to work with Docker containers and images, build container images, and manage multi-container applications using Docker Compose. Docker is widely used for containerization and simplifies the deployment and management of applications in a containerized environment.

3. Verify that the Docker Engine installation is working fine by running the hello-world image

sudo docker run hello-world

4. Downloading IRC server Image [ Reference: https://hub.docker.com/r/inspircd/inspircd-docker/ ]

wget -qO- https://raw.githubusercontent.com/inspircd/inspircd-docker/master/bootstrap.sh | sh

5. Start an InspIRCd instance

sudo docker run - name ircd -p 6667:6667 inspircd/inspircd-docker

is used to start a Docker container running the InspIRCd IRC (Internet Relay Chat) server using the official “inspircd/inspircd-docker” Docker image. Here’s a breakdown of what this command does:

Password Authentication:

sudo docker run - name inspircd -p 6667:6667 -e "INSP_CONNECT_PASSWORD= s3cret" inspircd/inspircd-docker

Troubleshot:

conflicting packages must be uninstalled.

for pkg in docker.io docker-doc docker-compose podman-docker containerd runc; do sudo apt-get remove $pkg; done

Sign up to discover human stories that deepen your understanding of the world.

Free

Distraction-free reading. No ads.

Organize your knowledge with lists and highlights.

Tell your story. Find your audience.

Membership

Read member-only stories

Support writers you read most

Earn money for your writing

Listen to audio narrations

Read offline with the Medium app

--

--

Shivani Shetty
Shivani Shetty

Written by Shivani Shetty

Graduate student at Stevens Institute of Technology in Cybersecurity

No responses yet

Write a response