Initial commit
This commit is contained in:
commit
e9ec6fbcab
22
Dockerfile
Normal file
22
Dockerfile
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
FROM alpine:latest
|
||||||
|
MAINTAINER Julian Ospald <hasufell@posteo.de>
|
||||||
|
|
||||||
|
|
||||||
|
##### PACKAGE INSTALLATION #####
|
||||||
|
|
||||||
|
RUN apk --no-cache add \
|
||||||
|
bash \
|
||||||
|
umurmur
|
||||||
|
|
||||||
|
################################
|
||||||
|
|
||||||
|
COPY ./config/umurmur.conf /etc/umurmur/umurmur.conf
|
||||||
|
RUN mkdir /umurmurconfig
|
||||||
|
COPY ./config/channels.conf /umurmurconfig/
|
||||||
|
|
||||||
|
COPY ./setup.sh /setup.sh
|
||||||
|
RUN chmod +x /setup.sh
|
||||||
|
|
||||||
|
EXPOSE 64738
|
||||||
|
|
||||||
|
CMD /setup.sh && exec /usr/bin/umurmurd -d -c /etc/umurmur/umurmur.conf
|
62
README.md
Normal file
62
README.md
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
## Installation
|
||||||
|
|
||||||
|
```sh
|
||||||
|
docker build -t hasufell/alpine-umurmur .
|
||||||
|
```
|
||||||
|
|
||||||
|
## Configuration
|
||||||
|
|
||||||
|
All configuration variables (except channel configuration)
|
||||||
|
from the [config file](https://code.google.com/p/umurmur/wiki/Configuring02x)
|
||||||
|
can simply be set when starting the container via the `-e` switches. E.g.
|
||||||
|
if you want to set `password = "abc";` in `umurmur.conf` you just pass
|
||||||
|
`-e password=abc` to the `docker run` command.
|
||||||
|
|
||||||
|
If you don't like the `-e`-foo just modify `config/umurmur.conf` and
|
||||||
|
`config/channels.conf` in-place in this repository or mount them into
|
||||||
|
the container from the host.
|
||||||
|
|
||||||
|
### Channels
|
||||||
|
|
||||||
|
Either modify `config/channels.conf` directly or mount your own `channels.conf`
|
||||||
|
in from the host. It must be in the container at the location
|
||||||
|
`/umurmurconfig/channels.conf`! So e.g.:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
-v /var/lib/umurmurconf/channels.conf:/umurmurconfig/channels.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
### Certificates
|
||||||
|
|
||||||
|
Mount in your private key and certificate from the host into the container,
|
||||||
|
e.g. at `/etc/ssl/` and then pass the environment variables `certificate`
|
||||||
|
and `private_key` to `docker run`.
|
||||||
|
|
||||||
|
E.g.:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
-v /ets/ssl/mydomain:/etc/ssl/mydomain \
|
||||||
|
-e certificate=/etc/ssl/mydomain/foo.crt \
|
||||||
|
-e private_key=/etc/ssl/mydomain/foo.key
|
||||||
|
```
|
||||||
|
|
||||||
|
## Running
|
||||||
|
|
||||||
|
A full command could look like this:
|
||||||
|
|
||||||
|
```sh
|
||||||
|
docker run -ti -d \
|
||||||
|
--name=umurmur \
|
||||||
|
-v /var/lib/umurmurconf/channels.conf:/umurmurconfig/channels.conf \
|
||||||
|
-v /ets/ssl/mydomain:/etc/ssl/mydomain \
|
||||||
|
-e certificate=/etc/ssl/mydomain/foo.crt \
|
||||||
|
-e private_key=/etc/ssl/mydomain/foo.key \
|
||||||
|
-e password=blah \
|
||||||
|
-e admin_password=foo \
|
||||||
|
-e username=murmur \
|
||||||
|
-e groupname=murmur \
|
||||||
|
-p 64738:64738 \
|
||||||
|
hasufell/alpine-umurmur
|
||||||
|
```
|
||||||
|
|
||||||
|
|
34
config/channels.conf
Normal file
34
config/channels.conf
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
channels = ( {
|
||||||
|
name = "Root";
|
||||||
|
parent = "";
|
||||||
|
description = "The Root of all channels";
|
||||||
|
noenter = true;
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "Lobby";
|
||||||
|
parent = "Root";
|
||||||
|
description = "Lobby channel";
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "Red team";
|
||||||
|
parent = "Lobby";
|
||||||
|
description = "The Red team channel";
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name = "Blue team";
|
||||||
|
parent = "Lobby";
|
||||||
|
description = "The Blue team channel";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
# Channel links configuration.
|
||||||
|
channel_links = ( {
|
||||||
|
source = "Lobby";
|
||||||
|
destination = "Red team";
|
||||||
|
},
|
||||||
|
{
|
||||||
|
source = "Lobby";
|
||||||
|
destination = "Blue team";
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
|
default_channel = "Lobby";
|
6
config/supervisord.conf
Normal file
6
config/supervisord.conf
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
[supervisord]
|
||||||
|
nodaemon=true
|
||||||
|
|
||||||
|
[program:umurmur]
|
||||||
|
command=/usr/bin/umurmurd -d -c /etc/umurmur/umurmur.conf -r
|
||||||
|
autorestart=true
|
39
config/umurmur.conf
Normal file
39
config/umurmur.conf
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
# This configuration is based on the official example configuration.
|
||||||
|
# More information can be found at
|
||||||
|
# http://code.google.com/p/umurmur/wiki/Configuring02x
|
||||||
|
|
||||||
|
max_bandwidth = 60000;
|
||||||
|
welcometext = "Welcome to uMurmur!";
|
||||||
|
# certificate = "/etc/umurmur/cert.crt";
|
||||||
|
# private_key = "/etc/umurmur/key.key";
|
||||||
|
# ca_path = "/path/to/ca/certificates/"; # Location of CA certificate. Relevant for OpenSSL only.
|
||||||
|
|
||||||
|
password = "";
|
||||||
|
# admin_password = "";
|
||||||
|
# ban_length = 0; # Length in seconds for a ban. Default is 0. 0 = forever.
|
||||||
|
# enable_ban = false; # Default is false
|
||||||
|
# banfile = "/etc/umurmur/banfile.txt"; # File to save bans to. Default is to not save bans to file.
|
||||||
|
# sync_banfile = false; # Keep banfile synced. Default is false, which means it is saved to at shutdown only.
|
||||||
|
# allow_textmessage = true; # Default is true
|
||||||
|
# opus_threshold = 100; # Required percentage of users that support Opus codec for it to be chosen
|
||||||
|
max_users = 10;
|
||||||
|
|
||||||
|
# Specify port and/or address to bind to. Typically not needed.
|
||||||
|
# Default is '*' for address and 64738 for port.
|
||||||
|
# Can also be specified on the command line, which takes precedence if
|
||||||
|
# both are specified.
|
||||||
|
# bindport = 64738;
|
||||||
|
# bindaddr = "192.168.1.1";
|
||||||
|
|
||||||
|
# bindport6 = 64738;
|
||||||
|
# bindaddr6 = "fde4:8dba:82e1::/48";
|
||||||
|
|
||||||
|
# Log to file option. Default is logging to syslog.
|
||||||
|
# umurmurd will close and reopen the logfile if SIGHUP is received.
|
||||||
|
# logfile = "/var/log/umurmurd.log";
|
||||||
|
|
||||||
|
# Specify this for privilege dropping. If username is specified but not
|
||||||
|
# the groupname, the user's login group is used.
|
||||||
|
username = "murmur";
|
||||||
|
groupname = "murmur";
|
||||||
|
|
36
setup.sh
Normal file
36
setup.sh
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
# strings
|
||||||
|
for i in welcometext certificate private_key ca_path password \
|
||||||
|
admin_password banfile bindaddr bindaddr6 logfile \
|
||||||
|
username groupname; do
|
||||||
|
if [[ ${!i} ]] ; then
|
||||||
|
sed -i \
|
||||||
|
-e "s|${i} = .*|${i} = \"${!i}\";|" \
|
||||||
|
-e "s|# ${i} = .*|${i} = \"${!i}\";|" \
|
||||||
|
-e "s|#${i} = .*|${i} = \"${!i}\";|" \
|
||||||
|
/etc/umurmur/umurmur.conf
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
unset i
|
||||||
|
|
||||||
|
# integers and booleans
|
||||||
|
for i in max_bandwidth ban_length enable_ban sync_banfile allow_textmessage \
|
||||||
|
opus_threshold max_users bindport bindport6; do
|
||||||
|
if [[ ${!i} ]] ; then
|
||||||
|
sed -i \
|
||||||
|
-e "s|${i} = .*|${i} = ${!i};|" \
|
||||||
|
-e "s|# ${i} = .*|${i} = ${!i};|" \
|
||||||
|
-e "s|#${i} = .*|${i} = ${!i};|" \
|
||||||
|
/etc/umurmur/umurmur.conf
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
unset i
|
||||||
|
|
||||||
|
if ! grep -E '^channels =.*' /etc/umurmur/umurmur.conf ; then
|
||||||
|
cat /umurmurconfig/channels.conf >> /etc/umurmur/umurmur.conf
|
||||||
|
fi
|
Loading…
Reference in New Issue
Block a user