Skip to content

gizmotronic/docker-openfire

 
 

Repository files navigation

gizmotronic/openfire:4.4.4

Introduction

Dockerfile to create a Docker container image for Openfire.

Openfire is a real time collaboration (RTC) server licensed under the Open Source Apache License. It uses the only widely adopted open protocol for instant messaging, XMPP (also called Jabber). Openfire is incredibly easy to setup and administer, but offers rock-solid security and performance.

Due to Oracle Java license changes, this image is built exclusively using OpenJDK starting with Openfire 4.3.2. This project is otherwise almost entirely identical to sameersbn/openfire.

Contributing

If you find this image useful here's how you can help:

  • Send a pull request with your awesome features and bug fixes
  • Help users resolve their issues.
  • Support the development of this image with a donation

Known issues

Openfire setup fails to save configuration

Insufficient input validation in the Openfire setup process can cause failures when saving the configuration file, even when the built-in tests run successfully.

Openfire doesn't write logs to the normal location

Openfire 4.3 and later use Log4j 2, which uses a new configuration file. Please make sure you include a log4j2.xml file in your configuration directory, and use the newest 4.3 or 4.4 image available on Docker Hub.

Other issues

Before reporting a bug please try updating Docker to the latest version and check if it resolves the issue. Refer to the Docker installation guide for instructions.

SELinux users should try disabling SELinux using the command setenforce 0 to see if it resolves the issue.

If the above recommendations do not help then report your issue along with the following information:

  • Output of the docker version and docker info commands
  • The docker run command or docker-compose.yml used to start the image. Mask out the sensitive bits.
  • Please state if you are using Boot2Docker, VirtualBox, etc.

Getting started

Installation

Automated builds of the image are available on Dockerhub and is the recommended method of installation.

docker pull gizmotronic/openfire:4.4.4

Alternatively you can build the image yourself.

docker build -t gizmotronic/openfire github.com/gizmotronic/docker-openfire

Quickstart

Start Openfire using:

docker run --name openfire -d --restart=always \
  --publish 9090:9090 --publish 5222:5222 --publish 7777:7777 \
  --volume /srv/docker/openfire:/var/lib/openfire \
  gizmotronic/openfire:4.4.4

Alternatively, you can use the sample docker-compose.yml file to start the container using Docker Compose

Point your browser to http://localhost:9090 and follow the setup procedure to complete the installation. The Build A Free Jabber Server In 10 Minutes video by HAKK5 should help you with the configuration and also introduce you to some of its features.

Persistence

For the Openfire to preserve its state across container shutdown and startup you should mount a volume at /var/lib/openfire.

The Quickstart command already mounts a volume for persistence.

SELinux users should update the security context of the host mountpoint so that it plays nicely with Docker:

mkdir -p /srv/docker/openfire
chcon -Rt svirt_sandbox_file_t /srv/docker/openfire

Java VM options

You may append options to the startup command to configure the JVM:

docker run -name openfire -d \
  [DOCKER_OPTIONS] \
  gizmotronic/openfire:4.4.4 \
  -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode

Logs

To access the Openfire logs, located at /var/log/openfire, you can use docker exec. For example, if you want to tail the logs:

docker exec -it openfire tail -f /var/log/openfire/info.log

Maintenance

Upgrading

To upgrade to newer releases:

  1. Download the updated Docker image:
docker pull gizmotronic/openfire:4.4.4
  1. Stop the currently running image:
docker stop openfire
  1. Remove the stopped container
docker rm -v openfire
  1. Start the updated image
docker run -name openfire -d \
  [OPTIONS] \
  gizmotronic/openfire:4.4.4

Shell Access

For debugging and maintenance purposes you may want access the containers shell. If you are using Docker version 1.3.0 or higher you can access a running containers shell by starting bash using docker exec:

docker exec -it openfire bash

References

About

Dockerfile to create a Docker container image for Openfire.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 69.8%
  • Dockerfile 26.6%
  • Makefile 3.6%