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

quassel-webserver

  • Clone with SSH
  • Clone with HTTPS
  • Name Last commit Last update
    Dockerfile
    README.md
    docker-entrypoint.sh

    Quassel-Webserver Docker Image

    For configuration, you can mount a file at /quassel-webserver/settings.user.js, with this content (plus whatever changes you wish to make):

    module.exports = {
        default: {  // Those can be overhidden in the browser
            host: '',  // quasselcore host
            port: 4242,  // quasselcore port
            initialBacklogLimit: 20,  // Amount of backlogs to fetch per buffer on connection
            backlogLimit: 100,  // Amount of backlogs to fetch per buffer after first retrieval
            securecore: true,  // Connect to the core using SSL
            theme: 'default',  // Default UI theme
            perchathistory: true,  // Separate history per buffer
            displayfullhostmask: false,  // Display full hostmask instead of just nicks in messages
            emptybufferonswitch: false,  // Trim buffer when switching to another buffer. Can be `false` or a positive integer
            highlightmode: 2  // Highlight mode: 1: None, 2: Current nick, 3: All nicks from identity
        },
        webserver: {
            socket: false,  // Tells the webserver to listen for connections on a local socket. This should be a path. Can be overhidden by '--socket' argument
            listen: null,  // Address on which to listen for connection, defaults to listening on all available IPs. Can be overhidden by '--listen' argument
            port: null,  // Port on which to listen for connection, defaults to 64080 for http mode, 64443 for https. Can be overhidden by '--port' argument
            mode: null  // can be 'http' or 'https', defaults to 'https'. Can be overhidden by '--mode' argument
        },
        themes: ['default', 'darksolarized'],  // Available themes
        forcedefault: false,  // Will force default host and port to be used if true, and will hide the corresponding fields in the UI.
        prefixpath: ''  // Configure this if you use a reverse proxy
    };

    To use this image with kubernetes, you should create the following resources. Make sure to use the same (prefix-)path in the Ingress and the settings-user.js

    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: quassel-webserver
      labels:
        app: quassel-webserver
    data:
      settings-user.js: |-
        module.exports = {
            default: {  // Those can be overhidden in the browser
                host: '',  // quasselcore host
                port: 4242,  // quasselcore port
                initialBacklogLimit: 20,  // Amount of backlogs to fetch per buffer on connection
                backlogLimit: 100,  // Amount of backlogs to fetch per buffer after first retrieval
                securecore: true,  // Connect to the core using SSL
                theme: 'default',  // Default UI theme
                perchathistory: true,  // Separate history per buffer
                displayfullhostmask: false,  // Display full hostmask instead of just nicks in messages
                emptybufferonswitch: false,  // Trim buffer when switching to another buffer. Can be `false` or a positive integer
                highlightmode: 2  // Highlight mode: 1: None, 2: Current nick, 3: All nicks from identity
            },
            webserver: {
                socket: false,  // Tells the webserver to listen for connections on a local socket. This should be a path. Can be overhidden by '--socket' argument
                listen: null,  // Address on which to listen for connection, defaults to listening on all available IPs. Can be overhidden by '--listen' argument
                port: null,  // Port on which to listen for connection, defaults to 64080 for http mode, 64443 for https. Can be overhidden by '--port' argument
                mode: null  // can be 'http' or 'https', defaults to 'https'. Can be overhidden by '--mode' argument
            },
            themes: ['default', 'darksolarized'],  // Available themes
            forcedefault: false,  // Will force default host and port to be used if true, and will hide the corresponding fields in the UI.
            prefixpath: ''  // Configure this if you use a reverse proxy
        };
    kind: Deployment
    apiVersion: extensions/v1beta1
    metadata:
      name: quassel-webserver
      labels:
        app: quassel-webserver
    spec:
      # Increase this if you need more replicas for scaling
      replicas: 1
      selector:
        matchLabels:
          app: quassel-webserver
      template:
        metadata:
          labels:
            app: quassel-webserver
        spec:
          volumes:
          - name: config
            configMap:
              name: quassel-webserver
          containers:
          - name: quassel-webserver
            image: k8r.eu/justjanne/quassel-webserver:2.2.8
            ports:
            - name: http
              containerPort: 80
              protocol: TCP
            volumeMounts:
            - name: config
              mountPath: /quassel-webserver/settings-user.js
              subPath: settings-user.js
    kind: Service
    apiVersion: v1
    metadata:
      name: quassel-webserver
      labels:
        app: quassel-webserver
    spec:
      selector:
        app: quassel-webserver
      ports:
      - name: http
        protocol: TCP
        port: 80
        targetPort: http
      type: ClusterIP
    kind: Ingress
    apiVersion: extensions/v1beta1
    metadata:
      name: quassel-webserver
      labels:
        app: quassel-webserver
      annotations:
        kubernetes.io/ingress.class: nginx
        # Remove this if you don’t want Let’s Encrypt support
        kubernetes.io/tls-acme: true
    spec:
      rules:
      # Change the host to your own
      - host: quassel.example.com
        http:
          paths:
          # Change the path to whatever you set in settings-user.js for prefixpath
          - path: /chat
            backend:
              serviceName: quassel-webserver
              servicePort: http
      # Remove this part if you don’t want Let’s Encrypt support
      tls:
      - secretName: quassel-webserver-tls
        hosts:
        # Change the host to your own
        - quassel.example.com