commit 2eb2be7c87f00faedb13d069c8cdc61b0bc4e336 Author: Jerry Aldrich Date: Sun May 10 17:00:48 2020 -0700 Initial commit diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 0000000..dacf20c --- /dev/null +++ b/.dockerignore @@ -0,0 +1,3 @@ +unrealircd.conf +server.crt +server.key diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..18d3989 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +unrealircd.conf +server.cert.pem +server.key.pem diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..d5694ad --- /dev/null +++ b/Dockerfile @@ -0,0 +1,43 @@ +FROM alpine:latest as build-stage + +LABEL maintainer "jerryaldrichiii@gmail.com" + +RUN apk add --update \ + wget \ + openssl-dev \ + alpine-sdk \ + && rm -rf /var/cache/apk/* + +# UnrealIRCd doesn't allow building as root +RUN adduser -D unreal +USER unreal +WORKDIR /home/unreal + +RUN wget https://www.unrealircd.org/downloads/unrealircd-latest.tar.gz +RUN tar xvzf unrealircd-latest.tar.gz + +# NOTE: This assumes version 5.X +RUN mv unrealircd-5.* unreal-src + +WORKDIR unreal-src + +RUN ./Config +RUN make +RUN make install + +FROM alpine:latest + +COPY entrypoint.sh /home/unreal/entrypoint.sh +RUN chmod +x /home/unreal/entrypoint.sh + +EXPOSE 6667 +EXPOSE 6697 +EXPOSE 6900 + +RUN adduser -D unreal +RUN mkdir /bootstrap +RUN chown -R unreal:unreal /bootstrap +USER unreal +COPY --from=build-stage /home/unreal/unrealircd /home/unreal/unrealircd/ + +ENTRYPOINT /home/unreal/entrypoint.sh diff --git a/README.md b/README.md new file mode 100644 index 0000000..e9614b3 --- /dev/null +++ b/README.md @@ -0,0 +1,24 @@ +# UnrealIRCd Server + +> NOTE: This assumes version 5.X + +To configure, mount: + - An `unrealircd.conf` to `/bootstrap/unrealircd.conf` + - An SSL key `server.cert.pem` to `/boostrap/server.cert.pem` + - An SSL cert `server.key.pem` to `/boostrap/server.key.pem` + - An optional `ircd.motd` to `/bootstrap/ircd.motd` + +Example: + +``` +docker run -it --rm \ + -v $PWD/unrealircd.conf:/bootstrap/conf/unrealircd.conf \ + -v $PWD/server.key.pem:/bootstrap/tls/server.key.pem \ + -v $PWD/server.cert.pem:/bootstrap/tls/server.cert.pem \ + -p 6667:6667 -p 6697:6697 -p 6900:6900 \ + jerryaldrichiii/unrealircd +``` + +## TODO + - Persistent reputation.db? + - Persistent unrealircd/data diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100644 index 0000000..09a98ce --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,23 @@ +#!/bin/sh + +set -e + +# This is for Kubernetes really, can't mount a single file there +# Or...I'm an idiot +echo "Copying server cert" +cp /bootstrap/tls/server.cert.pem /home/unreal/unrealircd/conf/tls/server.cert.pem +echo "Copying server key" +cp /bootstrap/tls/server.key.pem /home/unreal/unrealircd/conf/tls/server.key.pem +echo "Copying unrealircd.conf" +cp /bootstrap/conf/unrealircd.conf /home/unreal/unrealircd/conf/unrealircd.conf +if [ -f /boostrap/ircd.motd ]; then + echo "Copying ircd.motd" + cp /bootstrap/ircd.motd /home/unreal/unrealircd/conf/ircd.motd +fi + +cd /home/unreal/unrealircd + +# Grr...no way to run in foreground +./unrealircd start + +tail -f logs/ircd.log