새소식

Server

Ubuntu에서 Docker를 이용한 IRC 서버 구축

  • -

Internet Relay Chatting의 약자로, 특정 topic을 가지고 사용자끼리 대화를 할 수 있습니다.

먼저 방화벽에서 6667, 6697, 7000, 7001 포트를 열어줍니다.

iptables -I INPUT 1 -p tcp --dport 6667 -j ACCEPT iptables -I INPUT 1 -p tcp --dport 6697 -j ACCEPT iptables -I INPUT 1 -p tcp --dport 7000 -j ACCEPT iptables -I INPUT 1 -p tcp --dport 7001 -j ACCEPT

 

또는 서버 방화벽 (보안 그룹) 페이지에서 해당 포트를 열어줄 수 있습니다.

sudo apt install docker sudo apt install certbot sudo apt install screen

 

도커, 인증서 발급 패키지, 백그라운드 실행 패키지를 설치합니다.

IRC 서버를 운영하기 위해서는 인증서가 필요합니다.

sudo certbot certonly --standalone -d <domain>

이제 도커를 이용해서 서비스를 시작해봅시다.

mkdir irc cd irc touch docker-compose.yml mkdir config

 

 

docker-compose.yml 을 아래와 같이 작성합니다.

version: "3.5" services: irc: container_name: irc_server image: inspircd/inspircd-docker:2.0.27 ports: - "6667:6667" - "6697:6697" environment: - INSP_NET_SUFFIX=.irc.your.domain.com - INSP_ADMIN_NAME= - INSP_ADMIN_NICK= - INSP_ADMIN_EMAIL= volumes: - ./config:/inspircd/conf/
sudo cp /etc/letsencrypt/live/<도메인>/fullchain.pem ./config/cert.pem sudo cp /etc/letsencrypt/live/<도메인>/privkey.pem ./config/key.pem sudo chown 10000 ./config/ -R
screen -S irc docker-compose up

 

Ctrl + A, D 를 눌러서 screen 에서 나옵니다.

screen -r

 

screen 에 들어갈 때는 위의 명령을 사용하면 됩니다.

irc 클라이언트 중 하나인 irssi 를 사용하겠습니다.

sudo apt install irssi irssi

 

irssi 가 실행이 되면 자신의 서버에 접속할 수 있습니다.

/connect -tls <도메인> 6697 /join <채널>

 

일일이 접속할 때 마다 위의 명령을 쳐야하기 때문에 zshrc 에 등록해줘도 됩니다.
아래의 명령어를 ~/.zshrc 파일 끝에 추가합니다.

alias irc='irssi -c <도메인> -n <닉네임>'

MOTD 란 Message Of The Day 의 약자로 IRC 서버에 접속할 때 보여주는 문자열입니다.
주로 서버 소개, 규칙 등을 적어놓습니다.

screen -r cd config

 

이후 docker.motd 파일을 수정해서 사용하면 됩니다.

_ _ ___ ___ ___ _ __ ___| |_ (_)_ __ ___ / __|/ _ \/ __| '__/ _ \ __|____| | '__/ __| \__ \ __/ (__| | | __/ ||_____| | | | (__ |___/\___|\___|_| \___|\__| |_|_| \___| 👋 환영합니다! 이곳은 Devleo 가 운영하는 비밀 IRC 서버입니다. 가볍고 빠른 성능의 IRC 서버에서 쾌적한 채팅을 경험하세요! 채팅 채널을 소개합니다. #general: 잡담 #develop: 개발 관련 #hacking: 해킹 관련

 

2022년 1월 25일에 작성한 글입니다.

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.