forked from supernets/inspircd
237 lines
4.2 KiB
Docker
237 lines
4.2 KiB
Docker
FROM ubuntu:latest
|
|
|
|
ARG BUILD_SERVER_NAME="irc.lame-network.local"
|
|
|
|
ENV ADMIN_EMAIL="no-reply@lame-netwoork.local"
|
|
|
|
ENV SID="01A"
|
|
|
|
ENV SERVER_NAME="irc.lame-network.local"
|
|
|
|
ENV NETWORK_NAME="LameNet"
|
|
|
|
ENV STS_HOST="irc.lame-network.local"
|
|
|
|
ENV SASL_TARGET="service.lame-network.local"
|
|
|
|
ENV ADMIN_PASSWORD="changeme"
|
|
|
|
ENV COMMAND_RATE="128000"
|
|
|
|
ENV FAKE_LAG="on"
|
|
|
|
ENV HARD_SENDQ="1M"
|
|
|
|
ENV MAX_CHANS="256"
|
|
|
|
ENV PING_FREQ="64"
|
|
|
|
ENV RECVQ="8K"
|
|
|
|
ENV SOFT_SENDQ="8192"
|
|
|
|
ENV COMMAND_RATE_THRESHOLD="128"
|
|
|
|
ENV COMMAND_RATE_THRESHOLD_TIMEOUT="16"
|
|
|
|
ENV USE_CONN_FLOOD="yes"
|
|
|
|
ENV USE_DNSBL="yes"
|
|
|
|
ENV USE_IDENT="no"
|
|
|
|
ENV GLOBAL_MAX="32"
|
|
|
|
ENV LOCAL_MAX="16"
|
|
|
|
ENV MAX_CONN_WARN="yes"
|
|
|
|
ENV DEFAULT_USER_MODES="+xWz"
|
|
|
|
ENV PORT="6667"
|
|
|
|
ENV RESOLVE_HOST_NAMES="yes"
|
|
|
|
ENV USE_CONNECT_BAN="yes"
|
|
|
|
ENV SSL_USER_MODES="+xWz"
|
|
|
|
ENV SSL_PORT="6697"
|
|
|
|
ENV AUTHENTICATED_USER_MODES="+xwWz"
|
|
|
|
ENV SERVER_SSL_PORT="7000"
|
|
|
|
ENV OPER_CHANNEL="#oper"
|
|
|
|
ENV HTTP_ACL_PASSWORD="changeme"
|
|
|
|
ENV HTTP_ACL_USERNAME="lame-network"
|
|
|
|
ENV SERVICE_CHANNEL="#services"
|
|
|
|
ENV HELP_CHANNEL="#help"
|
|
|
|
ENV MAX_AWAY="256"
|
|
|
|
ENV MAX_CHAN="31"
|
|
|
|
ENV MAX_GECOS="256"
|
|
|
|
ENV MAX_HOST="64"
|
|
|
|
ENV MAX_IDENT="16"
|
|
|
|
ENV MAX_KICK="256"
|
|
|
|
ENV MAX_MODES="32"
|
|
|
|
ENV MAX_NICK="31"
|
|
|
|
ENV MAX_QUIT="256"
|
|
|
|
ENV MAX_TOPIC="256"
|
|
|
|
ENV ALLOW_MISMATCH="yes"
|
|
|
|
ENV ALLOW_ZERO_LIMIT="yes"
|
|
|
|
ENV ANNOUNCE_TS="yes"
|
|
|
|
ENV CYCLE_HOST_TS="yes"
|
|
|
|
ENV CYCLE_HOST_FROM_USER="no"
|
|
|
|
ENV HOST_IN_TOPIC="yes"
|
|
|
|
ENV INVITE_BYPASS_MODES="yes"
|
|
|
|
ENV MODES_IN_LIST="yes"
|
|
|
|
ENV NO_SNOTICE_STACK="yes"
|
|
|
|
ENV PING_WARNING="8"
|
|
|
|
ENV PREFIX_PART="""
|
|
|
|
ENV PREFIX_QUIT="QUIT: ""
|
|
|
|
ENV SERVER_PING_FREQ="8"
|
|
|
|
ENV SPLIT_WHOIS="no"
|
|
|
|
ENV SUFFIX_PART="""
|
|
|
|
ENV SUFFIX_QUIT="""
|
|
|
|
ENV SYNTAX_HINTS="yes"
|
|
|
|
ENV XLINE_MESSAGE="DEAUTHORIZED"
|
|
|
|
ENV CLONES_ON_CONNECT="yes"
|
|
|
|
ENV NET_BUFFER_SIZE="10240"
|
|
|
|
ENV QUIET_BURSTS="yes"
|
|
|
|
ENV SOFT_LIMIT="102400"
|
|
|
|
ENV SO_MAX_CONN="1024"
|
|
|
|
ENV TIME_SKIP_WARN="2s"
|
|
|
|
ENV ROLE_PLAY_VHOST="rp.lame-network.local"
|
|
|
|
ENV CUSTOM_VERSION="LameNetworkIRCd v3.14 (final)"
|
|
|
|
ENV FLAT_LINKS="no"
|
|
|
|
ENV GENERIC_OPER="yes"
|
|
|
|
ENV HIDE_BANS="no"
|
|
|
|
ENV HIDE_MODES="no"
|
|
|
|
ENV HIDE_SPLITS="yes"
|
|
|
|
ENV HIDE_ULINES="no"
|
|
|
|
ENV MAX_TARGETS="16"
|
|
|
|
ENV RESTRICT_BANNED_USERS="yes"
|
|
|
|
ENV USER_STATS="Pu"
|
|
|
|
ENV NET_ADMIN_VHOST="oper/admin.lame-network.local"
|
|
|
|
ENV GLOBAL_OP_VHOST="oper/op.lame-network.local"
|
|
|
|
ENV HOPM_VHOST="oper/hopm.lame-network.local"
|
|
|
|
ENV HELPER_VHOST="oper/helper.lame-network.local"
|
|
|
|
ENV SERVICES_ULINE="services.lame-network.local"
|
|
|
|
ENV WS_ORIGIN_ALLOW="irc.lame-network.local"
|
|
|
|
ENV DEFAULT_BLOCK_HOST_MASK="*@*"
|
|
|
|
ENV LINK_RECV_PASSWORD="changeme"
|
|
|
|
ENV LINK_SEND_PASSWORD="changeme"
|
|
|
|
ENV LINK_TIMEOUT=3600
|
|
|
|
RUN apt -y update
|
|
|
|
RUN apt -y install perl git automake autoconf build-essential libpcre2-dev rapidjson-dev libcurl4-gnutls-dev libargon2-dev libmaxminddb-dev libldap2-dev rapidjson-dev libmysqlclient-dev libmysqlclient-dev default-libmysqlclient-dev libpq-dev libre2-dev gnutls-dev libsqlite3-dev libmbedtls-dev libqrencode-dev libpcre3-dev libtre-dev pkg-config libwww-perl
|
|
|
|
RUN groupadd inspircd
|
|
|
|
RUN useradd --system --shell /bin/bash inspircd -g inspircd
|
|
|
|
WORKDIR /tmp
|
|
|
|
RUN git clone https://github.com/inspircd/inspircd.git
|
|
|
|
WORKDIR /tmp/inspircd
|
|
|
|
RUN ./configure --gid inspircd --uid inspircd --development --prefix=/usr/local
|
|
|
|
RUN ./modulemanager list | awk '{print $1}' | xargs -i ./modulemanager install {} ; true
|
|
|
|
RUN make -j$(nproc) install
|
|
|
|
RUN mkdir -p /etc/inspircd /var/lib/inspircd /etc/ssl/inspircd /var/log/inspircd
|
|
|
|
ADD inspircd.conf /etc/inspircd
|
|
|
|
ADD include.default.conf /etc/inspircd/include.conf
|
|
|
|
ADD GeoLite2-ASN.mmdb /etc/inspircd
|
|
|
|
RUN touch /etc/inspircd/motd.txt
|
|
|
|
RUN touch /etc/inspircd/oper.motd.txt
|
|
|
|
RUN openssl genrsa -out /etc/ssl/inspircd/server.key
|
|
|
|
RUN openssl req -new -key /etc/ssl/inspircd/server.key -out /etc/ssl/inspircd/server.csr \
|
|
-subj "/C=US/ST=Washington/L=Seattle/O=LameNetwork/OU=IT Department/CN=$SERVER_NAME"
|
|
|
|
RUN openssl x509 -req -days 365 -in /etc/ssl/inspircd/server.csr -signkey /etc/ssl/inspircd/server.key -out /etc/ssl/inspircd/server.crt
|
|
|
|
RUN chown -R inspircd:inspircd /etc/inspircd /etc/ssl/inspircd /var/lib/inspircd /var/log/inspircd
|
|
|
|
VOLUME /etc/ssl/inspircd
|
|
|
|
VOLUME /var/lib/inspircd
|
|
|
|
VOLUME /var/log/inspircd
|
|
|
|
USER inspircd
|
|
|
|
WORKDIR /
|
|
|
|
CMD /usr/local/bin/inspircd -c /etc/inspircd/inspircd.conf -F
|