{"id":13472765,"url":"https://github.com/oskapt/docker-openfire","last_synced_at":"2026-01-10T19:53:19.667Z","repository":{"id":73080795,"uuid":"12626219","full_name":"oskapt/docker-openfire","owner":"oskapt","description":"Docker container build/run env for Openfire XMPP server","archived":false,"fork":false,"pushed_at":"2017-01-15T18:04:27.000Z","size":2497,"stargazers_count":5,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-10-30T05:26:15.684Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oskapt.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2013-09-05T19:04:53.000Z","updated_at":"2019-09-13T08:14:00.000Z","dependencies_parsed_at":"2023-02-24T23:16:02.966Z","dependency_job_id":null,"html_url":"https://github.com/oskapt/docker-openfire","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oskapt%2Fdocker-openfire","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oskapt%2Fdocker-openfire/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oskapt%2Fdocker-openfire/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oskapt%2Fdocker-openfire/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oskapt","download_url":"https://codeload.github.com/oskapt/docker-openfire/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245702233,"owners_count":20658570,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T16:00:57.800Z","updated_at":"2025-03-26T17:31:16.009Z","avatar_url":"https://github.com/oskapt.png","language":"JavaScript","readme":"# Openfire Docker Container\n\n[![](https://images.microbadger.com/badges/image/monachus/openfire.svg)](https://microbadger.com/images/monachus/openfire \"Get your own image badge on microbadger.com\")\n\nThis will build a vanilla installation of [Openfire](http://www.igniterealtime.org/projects/openfire/index.jsp)\ninside of a [Docker](http://docker.io) container.  Because Openfire wants persistent data, I've copied over\nthe vanilla contents of the following directories to be mounted as persistent volumes.\n\n* `/usr/share/openfire/conf`\n* `/usr/share/openfire/resources/security`\n* `/usr/share/openfire/embedded-db`\n* `/usr/share/openfire/plugins`\n\n## Building The Container\n\nIf you prefer to build the container yourself, you'll need to do some prep work.\n\n1. Enter the `build` directory.\n2. Review the Dockerfile for the version of Openfire that you wish to install. Change the environment variable `OF_VERSION` to match.\n3. While you're there, review the version of `dumb-init`. If you need to change it, change the `DI_VERSION` environment variable.\n4. . Run `docker build` and optionally give it a tag that you like.\n\n## Running The Container\n\nCopy the contents of the `run` directory to a location on the filesystem from where you run containers.\nI keep all container operations under `/opt/docker/\u003ccontainer\u003e`, so for the rest of this document I'll presume `/opt/docker/openfire`, which I'll refer to as `$rundir`.\n\n### Via Docker Compose\n\n1. From `$rundir`, optionally edit `docker-compose.yml` to change the tag for the container.\n2. If you don't want to use the admin console over HTTP, remove 9090 from the ports config.\n3. Run `docker-compose up` to start the container in the foreground or `docker-compose up -d` to start it in the background.\n\n### Manually\n\n1. From `$rundir`, optionally edit the `run.sh` file to change the tag for the\ncontainer.\n2. If you don't want to use the admin console over HTTP, remove 9090 from the ports config.\n3. Execute `run.sh` to kick off the container.  This will mount the directories in their\nappropriate places, start Openfire, and tail the logfile.\n\n## Connecting To Openfire\n\nYou'll be able to connect by opening a browser and going to [http://localhost:9090](http://localhost:9090),\noptionally replacing `localhost` with the hostname or IP of your Docker host system.\n\nIf you're doing an upgrade and have configured TLS, you'll be able to connect to the admin console over HTTPS on port 9091.\n\nAs long as you start future iterations of the container from this directory, changes to the configuration,\nplugins, and the embedded database will be preserved.\n\n## Installing SSL Certificates\n\nFor ease in installing SSL certificates, see [this post](https://blog.bigdinosaur.org/openfire-and-ssl-slash-tls-certificates/).\n\nBoth `KeyStoreImport.java` and `KeyStoreImport.class` are contained in this repository, in the `security` folder. The latter\nis provided in case your origin container only provides the JRE.\n\n1. Connect to the container and start a shell\n\n        $ docker run -it monachus/openfire /bin/ash\n\n2. Follow along with the post, changing `/etc/openfire/security` to `/usr/share/openfire/resources/security`\n\nIn case that post disappears in the future, an abridged version of it is saved [here](SSL_CERTIFICATES.md).\n\n## Upgrading The Container (minor versions)\n\nWhen the time comes to upgrade the container, it's quite simple.\n\n1.  Stop and remove the existing container with `docker kill` and `docker rm`.  All of your data is\npersistent.\n2.  Make a backup of `$rundir` just in case something goes south.\n3.  Follow the build steps from above for the latest version of Openfire.\n4.  Start your new container.\n5.  If everything went well, remove the backups.\n\n## Upgrading from Openfire 3 to Openfire 4\n\n### Caveats\n\n* `/etc/openfire` is now `/usr/share/openfire/conf`\n* There is no more `lib` directory. Plugins are at the top level.\n* `/etc/openfire/security` is now `/resources/security`\n* Openfire runs as `daemon` instead of its own user\n\n### Upgrade Steps\n\n1. Backup `lib/embedded-db`, `lib/plugins`, and `etc`\n2. Stop and remove the v3 container.\n3. Rename your current `$rundir` to `$rundir.old`\n3. From this source copy `run` to `$rundir` (creating a new directory)\n4. From your backups, copy the following:\n   * The contents of `etc/security` to `security`\n   * The remaining contents of `etc` to `conf` (excluding the `security` folder)\n   * The contents of `lib/plugins` to `plugins` _except_ the `admin` folder\n   * The contents of `lib/embedded-db` to `embedded-db`\n5. Restart the container via your chosen means\n","funding_links":[],"categories":["JavaScript"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foskapt%2Fdocker-openfire","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foskapt%2Fdocker-openfire","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foskapt%2Fdocker-openfire/lists"}