Skip to content
Snippets Groups Projects
Select Git revision
  • main default protected
1 result

quassel-docker

  • Clone with SSH
  • Clone with HTTPS
  • Janne Koschinski's avatar
    428c7f2f
    History
    Name Last commit Last update
    .dockerignore
    Dockerfile
    LICENSE.md
    Makefile
    README.md

    Dockerimage for Quasselcore

    Supported architectures

    Architecture Tags
    x86-64 0.13.1, latest
    aarch64 0.13.1-aarch64, aarch64
    armhf 0.13.1-armhf, armhf

    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.