Openfire
Real-time collaboration server based on the XMPP protocol
Declared in: projects/Openfire/default.nix
Try the service in a VM
-
Install Nix
- Bash
-
$ apt install --yes curl git jq nix
- Bash
-
$ apt install --yes curl git jq nix
- Bash
-
$ pacman --sync --refresh --noconfirm curl git jq nix
-
Download a configuration file
# default.nix { ngipkgs ? import (fetchTarball "https://github.com/ngi-nix/ngipkgs/tarball/main") { }, }: ngipkgs.demo-vm ( { ... }: { services.openfire-server = { enable = true; openFirewall = true; servicePort = 9090; securePort = 9191; # Settings to be configured on first startup. # For available options, see: # https://download.igniterealtime.org/openfire/docs/latest/documentation/install-guide.html#Autosetup settings.jive.autosetup = { run = true; }; settings.jive.adminConsole = { # needed to access the VM's service port in the host machine interface = "0.0.0.0"; }; }; } )
-
Enable binary substituters
- Bash
-
$ export NIX_CONFIG='substituters = https://cache.nixos.org/ https://ngi.cachix.org/ trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= ngi.cachix.org-1:n+CAL72ROC3qQuLxIHpV+Tw5t42WhXmMhprAGkRSrOw='
-
Build and run a virtual machine
- Bash
-
$ nix-build ./default.nix && ./result
- Bash
-
$ nix-build ./default.nix && ./result
- Bash
-
$ rev=$(nix-instantiate --eval --attr sources.nixpkgs.rev https://github.com/ngi-nix/ngipkgs/archive/master.tar.gz | jq --raw-output)$ nix-shell -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/$rev.tar.gz --packages nix --run "nix-build ./default.nix && ./result"
- Bash
-
$ nix-build ./default.nix && ./result
-
Usage Instructions
-
Visit http://127.0.0.1:9090 in your browser
-
Log in with the admin account:
- username: admin
- password: admin
-
Options
services.openfire-server
-
When enabled, the state directory will be automatically updated to match the installed package version.
For manually doing this, please refer to the Openfire Upgrade Guide.
- Type:
boolean- Default:
false- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
Where to load readonly data from.
- Type:
string- Default:
"${config.services.openfire-server.package}/opt"- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
Whether to enable Openfire XMPP server.
- Type:
boolean- Default:
false- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
Whether to open ports in the firewall for the server.
- Type:
boolean- Default:
false- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
The openfire package to use.
- Type:
package- Default:
pkgs.openfire- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
- Notes:
- Missing update script An update script is required for automatically tracking the latest release.
-
The port on which Openfire should listen for secure Admin Console access.
- Type:
16 bit unsigned integer; between 0 and 65535 (both inclusive)- Default:
9091- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
The port on which Openfire should listen for insecure Admin Console access.
- Type:
16 bit unsigned integer; between 0 and 65535 (both inclusive)- Default:
9090- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
Openfire settings.
- Type:
open submodule of (XML value)- Default:
{ }- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
Whether to allow wildcards in excludes.
- Type:
boolean- Default:
true- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
Admin console host.
- Type:
string- Default:
"localhost"- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
Insecure admin console port.
- Type:
16 bit unsigned integer; between 0 and 65535 (both inclusive)- Default:
9090- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
Secure admin console port.
- Type:
16 bit unsigned integer; between 0 and 65535 (both inclusive)- Default:
9091- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
Admin email.
- Type:
string- Default:
"admin@example.com"- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
Admin password.
- Type:
string- Default:
"admin"- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
Authentication provider.
- Type:
string- Default:
"default"- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
Database mode.
- Type:
one of "standard", "embedded"- Default:
"embedded"- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
Encryption algorithm.
- Type:
string- Default:
"AES"- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
Encryption key.
- Type:
string- Default:
"some-key"- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
Locale setting.
- Type:
string- Default:
"en"- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
Whether to enable autosetup feature.
- Type:
boolean- Default:
false- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
User configurations.
- Type:
attribute set of (submodule)- Default:
{ }- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
User email.
- Type:
string- Default:
""- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
Display name.
- Type:
string- Default:
""- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
User password.
- Type:
string- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
- Type:
attribute set- Default:
{ }- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
User name.
- Type:
string- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
Whether to enable anonymous authentication.
- Type:
boolean- Default:
true- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
XMPP domain.
- Type:
string- Default:
"server"- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
Fully qualified domain name.
- Type:
string- Default:
"server"- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
Whether to enable SSL.
- Type:
boolean- Default:
true- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
Whether to enable the RestAPI plugin.
- Type:
boolean- Default:
true- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
-
Where to store runtime data (logs, plugins, ...).
If left at the default, this will be automatically created on server startup if it does not already exist. If changed, it is the admin's responsibility to make sure that the directory exists and is writeable by the
openfireuser.- Type:
string- Default:
"/var/lib/openfire"- Declared in:
- projects/Openfire/services/openfire-server/module/default.nix
services.openfire-server.autoUpdateState
services.openfire-server.dataDir
services.openfire-server.enable
services.openfire-server.openFirewall
services.openfire-server.package
services.openfire-server.securePort
services.openfire-server.servicePort
services.openfire-server.settings
services.openfire-server.settings.jive.adminConsole.access.allow-wildcards-in-excludes
services.openfire-server.settings.jive.adminConsole.interface
services.openfire-server.settings.jive.adminConsole.port
services.openfire-server.settings.jive.adminConsole.securePort
services.openfire-server.settings.jive.autosetup.admin.email
services.openfire-server.settings.jive.autosetup.admin.password
services.openfire-server.settings.jive.autosetup.authprovider.mode
services.openfire-server.settings.jive.autosetup.database.mode
services.openfire-server.settings.jive.autosetup.encryption.algorithm
services.openfire-server.settings.jive.autosetup.encryption.key
services.openfire-server.settings.jive.autosetup.locale
services.openfire-server.settings.jive.autosetup.run
services.openfire-server.settings.jive.autosetup.users
services.openfire-server.settings.jive.autosetup.users..email
services.openfire-server.settings.jive.autosetup.users..name
services.openfire-server.settings.jive.autosetup.users..password
services.openfire-server.settings.jive.autosetup.users..roster
services.openfire-server.settings.jive.autosetup.users..username
services.openfire-server.settings.jive.autosetup.xmpp.auth.anonymous
services.openfire-server.settings.jive.autosetup.xmpp.domain
services.openfire-server.settings.jive.autosetup.xmpp.fqdn
services.openfire-server.settings.jive.autosetup.xmpp.socket.ssl.active
services.openfire-server.settings.jive.plugin.restapi.enabled
services.openfire-server.stateDir
Examples
Enable Openfire server
{ ... }: { services.openfire-server = { enable = true; openFirewall = true; servicePort = 9090; securePort = 9191; # Settings to be configured on first startup. # For available options, see: # https://download.igniterealtime.org/openfire/docs/latest/documentation/install-guide.html#Autosetup settings.jive.autosetup = { run = true; }; }; }
Declared in: projects/Openfire/services/openfire-server/examples/basic/default.nix
Metadata
This project is funded by NLnet through these subgrants:
- Core
- Openfire-IPv6
- Openfire-Connectivity