Skip to content
Snippets Groups Projects
Name Last commit Last update
.dockerignore
Dockerfile
LICENSE.md
Makefile
README.md

Dockerimage for Quasselcore

Stateful usage (with UI Wizard)

By default, the core will be run in stateful mode.

If you use the core in this mode, you’ll have to make sure /config is stored on a volume.

Example usage:

docker run \
  -v /path/to/quassel/volume:/config \
  k8r.eu/justjanne/quassel-docker:v0.13.1

Stateless usage

To use Quassel in stateless mode, where it needs to be configured through environment arguments, run it with the --config-from-environment argument.

DB_BACKEND defines the backend used for the database, this can be SQLite or PostgreSQL. In case SQLite is used, the database will be stored in /root/.config/quassel-irc.org/quassel-storage.sqlite. If PostgreSQL is used instead, these variables determine the connection details: DB_PGSQL_USERNAME, DB_PGSQL_PASSWORD, DB_PGSQL_HOSTNAME, DB_PGSQL_PORT, DB_PGSQL_DATABASE.

AUTH_AUTHENTICATOR defines the backend used for authentication, this can be Database or LDAP. In case LDAP is used, the following environment variables determine the connection details: AUTH_LDAP_HOSTNAME, AUTH_LDAP_PORT, AUTH_LDAP_BIND_DN, AUTH_LDAP_BIND_PASSWORD, AUTH_LDAP_BASE_DN, AUTH_LDAP_FILTER, AUTH_LDAP_UID_ATTRIBUTE.

Minimal example with SQLite:

docker run \
  -v /path/to/quassel/volume:/config \
  -e DB_BACKEND=SQLite \
  -e AUTH_AUTHENTICATOR=Database \
  k8r.eu/justjanne/quassel-docker:v0.13.1 \
  --config-from-environment

Full example with PostgreSQL and examples of other options:

docker run \
  -v /path/to/certificates/tls.crt:/tls.crt \
  -v /path/to/certificates/tls.key:/tls.key \
  -e DB_BACKEND=PostgreSQL \
  -e AUTH_AUTHENTICATOR=Database \
  -e DB_PGSQL_USERNAME=quassel \
  -e DB_PGSQL_PASSWORD=thesamecombinationasonmyluggage \
  -e DB_PGSQL_HOSTNAME=postgresql.default.svc.cluster.local \
  -e DB_PGSQL_PORT=5432 \
  -e DB_PGSQL_DATABASE=quassel \
  k8r.eu/justjanne/quassel-docker:v0.13.1 \
  --config-from-environment \
  --strict-ident \
  --ident-daemon \
  --ident-port "10113" \
  --ident-listen "::,0.0.0.0" \
  --ssl-cert /tls.crt \
  --ssl-key /tls.key \
  --require-ssl

SSL

You can use the core with SSL, in this case you should either put a quasselCert.pem file with the full certificate chain and private key into the /config volume, or you can use the --ssl-cert and --ssl-key arguments to use separate key and certificate.

Ports

Per default, the container will listen on the port 4242 for connections. This can be configured with --port and --listen.

If the --ident-daemon argument is passed, the ident daemon will additionally listen on 10113. You can configure this with --ident-port. This by default only listens on localhost, which obviously will cause issues when used in a container like this, so make sure to add the --ident-listen ::,0.0.0.0 argument.
You’ll also want to bind this to port 113 on the host, as IRC networks will expect to find the ident daemon on that port.