Initial commit

main
Jerry Aldrich 5 years ago
commit e611505f03
  1. 3
      .gitignore
  2. 33
      Dockerfile
  3. 30
      README.md
  4. 14
      entrypoint.sh
  5. 80
      znc.conf.example

3
.gitignore vendored

@ -0,0 +1,3 @@
znc.crt
znc.key
znc.conf

@ -0,0 +1,33 @@
FROM alpine:latest as build
RUN apk add --no-cache --update openssl
# Generate self signed SSL cert in case user forgets
RUN openssl req -x509 -newkey rsa:4096 -sha256 -days 3650 -nodes \
-keyout /znc.key -out /znc.crt -subj "/CN=localhost" \
-addext "subjectAltName=DNS:localhost,IP:127.0.0.1" > /dev/null 2>&1 3>&1
RUN cat znc.key znc.crt > /znc.pem
FROM znc:slim
LABEL maintainer "jerryaldrichiii@gmail.com"
COPY --from=build /znc.pem /srv/znc/tls/
RUN mkdir -p /srv/znc/ && \
chmod g+s /srv/znc/ && \
chown znc:znc -R /srv/znc/
# See entrypoint.sh
VOLUME /srv/znc/
EXPOSE 6667
EXPOSE 8000
COPY ./entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
USER znc
ENTRYPOINT ["/entrypoint.sh"]

@ -0,0 +1,30 @@
# ZNC
## Usage
Prerequisites:
- Copy `znc.conf.example` to `znc.conf` and modify relevant lines
- Generate a password (see znc.conf.example)
- (optional) Generate SSL certificates (see Dockerfile for openssl command)
### Using self signed SSL certificates
```
docker run --rm -it \
-v ${PWD}/znc.conf:/bootstrap/configs/znc.conf \
-p 6667:6667 \
-p 8000:8000 \
jerryaldrichiii/znc
```
### Using your SSL certificates
```
docker run --rm -it \
-v ${PWD}/znc.conf:/bootstrap/configs/znc.conf \
-v ${PWD}/znc.crt:/bootstrap/tls/znc.crt \
-v ${PWD}:/bootstrap/tls/znc.key \
-p 6667:6667 \
-p 8000:8000 \
jerryaldrichiii/znc
```

@ -0,0 +1,14 @@
#!/bin/sh
set -e
DATADIR="/srv/znc"
mkdir -p $DATADIR/configs
cp /bootstrap/configs/znc.conf $DATADIR/configs/znc.conf
if [ -f /bootstrap/tls/znc.key ] && [ -f /bootstrap/tls/znc.crt ]; then
cat /bootstrap/tls/znc.key /bootstrap/tls/znc.crt > /srv/znc/tls/znc.pem
fi
/opt/znc/bin/znc --foreground --datadir "$DATADIR"

@ -0,0 +1,80 @@
AnonIPLimit = 10
ConnectDelay = 5
HideVersion = true
LoadModule = webadmin
LoadModule = adminlog
MaxBufferSize = 500
ProtectWebSessions = true
SSLCertFile = /srv/znc/tls/znc.pem
ServerThrottle = 30
Skin = _default_
StatusPrefix = *
Version = 1.8.1
<Listener listener0>
AllowIRC = true
AllowWeb = false
IPv4 = true
IPv6 = true
Port = 6667
SSL = true
URIPrefix = /
</Listener>
<Listener listener1>
AllowIRC = false
AllowWeb = true
IPv4 = true
IPv6 = true
Port = 8000
SSL = false
URIPrefix = /
</Listener>
<User changeme>
Admin = true
Allow = *
AltNick = changeme_
AppendTimestamp = false
AutoClearChanBuffer = true
AutoClearQueryBuffer = true
Buffer = 100
DenyLoadMod = false
DenySetBindHost = false
Ident = changeme
JoinTries = 10
LoadModule = chansaver
LoadModule = controlpanel
MaxJoins = 0
MaxNetworks = 1
MaxQueryBuffers = 50
MultiClients = true
Nick = changeme
PrependTimestamp = true
QuitMsg = %znc%
RealName = Change Me
TimestampFormat = [%H:%M:%S]
<Network irc.jerryaldrichiii.com>
FloodBurst = 4
FloodRate = 1.00
IRCConnectEnabled = true
JoinDelay = 0
LoadModule = simple_away
Server = irc.jerryaldrichiii.com +6697
TrustAllCerts = false
TrustPKI = true
Nick = changeme
<Chan #docker>
</Chan>
</Network>
// To generate this block run:
// docker run -it --entrypoint "znc -s" jerryaldrichiii/znc
<Pass password>
Method = sha256
Hash = e91a3f131f4f2aee652f6ecfca64330bfc74501445208320d6e114e270fa3c34
Salt = NC(Uku)!x7,LUH?oOAGf
</Pass>
</User>
Loading…
Cancel
Save