mirror of
https://github.com/jimeh/docker-znc.git
synced 2026-02-19 09:56:43 +00:00
Compare commits
6 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5a826aad15 | |||
| cc821dec0c | |||
| 01d3e5eb53 | |||
| 8712e23e5e | |||
| b3bca7ee0b | |||
| 01796adb43 |
@@ -13,7 +13,6 @@ ADD start-znc /usr/local/bin/
|
||||
ADD znc.conf.default /src/
|
||||
RUN chmod 644 /src/znc.conf.default
|
||||
|
||||
USER znc
|
||||
EXPOSE 6667
|
||||
ENTRYPOINT ["/usr/local/bin/start-znc"]
|
||||
CMD [""]
|
||||
|
||||
5
Makefile
5
Makefile
@@ -1,7 +1,4 @@
|
||||
build:
|
||||
docker build -t ${USER}/znc .
|
||||
|
||||
push: build
|
||||
docker push ${USER}/znc
|
||||
|
||||
.PHONY: default
|
||||
.PHONY: build
|
||||
|
||||
41
README.md
41
README.md
@@ -6,7 +6,7 @@ Run the [ZNC](http://znc.in) IRC Bouncer in a Docker container.
|
||||
## Prerequisites
|
||||
|
||||
1. Install [Docker](http://docker.io/).
|
||||
2. Make .znc folder: `mkdir /home/$(whoami)/.znc`
|
||||
2. Make .znc folder: `mkdir $HOME/.znc`
|
||||
|
||||
|
||||
## Running
|
||||
@@ -14,7 +14,7 @@ Run the [ZNC](http://znc.in) IRC Bouncer in a Docker container.
|
||||
To retain your ZNC settings between runs, you will need to bind a directory
|
||||
from the host to `/znc-data` in the container. For example:
|
||||
|
||||
docker run -d -p 6667 -v /home/$(whoami)/.znc:/znc-data jimeh/znc
|
||||
docker run -d -p 6667 -v $HOME/.znc:/znc-data jimeh/znc
|
||||
|
||||
This will download the image if needed, and create a default config file in
|
||||
your data directory unless you already have a config in place. The default
|
||||
@@ -25,7 +25,7 @@ exposed:
|
||||
|
||||
Or if you want to specify which port to map the default 6667 port to:
|
||||
|
||||
docker run -d -p 36667:6667 -v /home/$(whoami)/.znc:/znc-data jimeh/znc
|
||||
docker run -d -p 36667:6667 -v $HOME/.znc:/znc-data jimeh/znc
|
||||
|
||||
Resulting in port 36667 on the host mapping to 6667 within the container.
|
||||
|
||||
@@ -53,9 +53,38 @@ configuration without having to worry about building them. And it only slows
|
||||
down ZNC's startup with a few seconds.
|
||||
|
||||
|
||||
## Notes on DATADIR
|
||||
|
||||
ZNC needs a data/config directory to run. Within the container it uses
|
||||
`/znc-data`, so to retain this data when shutting down a container, you should
|
||||
mount a directory from the host. Hence `-v $HOME/.znc:/znc-data` is part of
|
||||
the instructions above.
|
||||
|
||||
As ZNC needs to run as it's own user within the container, the directory will
|
||||
have it's ownership changed to UID 1000 (user) and GID 1000 (group). Meaning
|
||||
after the first run, you might need root access to manually modify the data
|
||||
directory.
|
||||
|
||||
|
||||
## Passing Custom Arguments to ZNC
|
||||
|
||||
As `docker run` passes all arguments after the image name to the entrypoint
|
||||
script, the [start-znc][] script simply passes all arguments along to ZNC.
|
||||
|
||||
[start-znc]: https://github.com/jimeh/docker-znc/blob/master/start-znc
|
||||
|
||||
For example, if you want to use the `--makepass` option, you would run:
|
||||
|
||||
docker run -i -t -v $HOME/.znc:/znc-data jimeh/znc --makepass
|
||||
|
||||
Make note of the use of `-i` and `-t` instead of `-d`. This attaches us to the
|
||||
container, so we can interact with ZNC's makepass process. With `-d` it would
|
||||
simply run in the background.
|
||||
|
||||
|
||||
## Building It Yourself
|
||||
|
||||
0. Follow Prerequisites above.
|
||||
1. Checkout source: `git clone https://github.com/jimeh/docker-znc.git && cd docker-znc`
|
||||
1. Follow Prerequisites above.
|
||||
2. Checkout source: `git clone https://github.com/jimeh/docker-znc.git && cd docker-znc`
|
||||
3. Build container: `sudo docker build -t $(whoami)/znc .`
|
||||
4. Run container: `sudo docker run -d -p 6667 -v /home/$(whoami)/.znc:/znc-data $(whoami)/znc`
|
||||
4. Run container: `sudo docker run -d -p 6667 -v $HOME/.znc:/znc-data $(whoami)/znc`
|
||||
|
||||
@@ -6,8 +6,13 @@ set -e
|
||||
ZNC_VERSION="1.4"
|
||||
|
||||
|
||||
# Install build dependencies.
|
||||
# Ensure package list is up to date.
|
||||
apt-get update
|
||||
|
||||
# Install runtime dependencies.
|
||||
apt-get install -y sudo
|
||||
|
||||
# Install build dependencies.
|
||||
apt-get install -y wget build-essential libssl-dev libperl-dev pkg-config
|
||||
|
||||
|
||||
|
||||
@@ -27,5 +27,9 @@ if [ ! -f "${DATADIR}/configs/znc.conf" ]; then
|
||||
cp /src/znc.conf.default "${DATADIR}/configs/znc.conf"
|
||||
fi
|
||||
|
||||
# Make sure $DATADIR is owned by znc user. This effects ownership of the
|
||||
# mounted directory on the host machine too.
|
||||
chown -R znc:znc "$DATADIR"
|
||||
|
||||
# Start ZNC.
|
||||
exec znc --foreground --datadir="$DATADIR" $@
|
||||
exec sudo -u znc znc --foreground --datadir="$DATADIR" $@
|
||||
|
||||
@@ -3,10 +3,12 @@
|
||||
// Do NOT edit this file while ZNC is running!
|
||||
// Use webadmin or *controlpanel instead.
|
||||
//
|
||||
// Buf if you feel risky, you might want to read help on /znc saveconfig and /znc rehash.
|
||||
// Altering this file by hand will forfeit all support.
|
||||
//
|
||||
// But if you feel risky, you might want to read help on /znc saveconfig and /znc rehash.
|
||||
// Also check http://en.znc.in/wiki/Configuration
|
||||
|
||||
Version = 1.0
|
||||
Version = 1.4
|
||||
<Listener l>
|
||||
Port = 6667
|
||||
IPv4 = true
|
||||
@@ -16,7 +18,7 @@ Version = 1.0
|
||||
LoadModule = webadmin
|
||||
|
||||
<User admin>
|
||||
Pass = sha256#0ff9dbecce6e6a60031937e471b4911c3c3b32e9545b7c2868c22152da4f109d#pvcfXcnF/BjsXVU:Z9;-#
|
||||
Pass = sha256#1b9a69be60544ae4a83147ebb04c4c1edc24dba4c62f8f25ef5603b06c264476#5zD6V:PYLf*jZcL8VbZY#
|
||||
Admin = true
|
||||
Nick = admin
|
||||
AltNick = admin_
|
||||
|
||||
Reference in New Issue
Block a user