MariaDB POC
This demonstrates a basic MariaDB Galera cluster. When either node drops, the server continues running. Due to env vars and config, relaunching either node isn't possible with this setup. I'm no DBA, so not attempting to fix it.mariadb_cluster
parent
ac36da1a4f
commit
e1a362fe6c
|
@ -0,0 +1,83 @@
|
|||
# Clustered configuration
|
||||
|
||||
Running `./start.sh -c` will perform some cleanup then start the containers in a clustered configuration.
|
||||
When running, the system looks like this:
|
||||
|
||||
```
|
||||
+--------------------------------------------------+
|
||||
| 172.60.0.99 |
|
||||
| +----------------+ |
|
||||
| | |+--------------+ |
|
||||
(XMPP-C2S) 55222 -|-------| Load Balancer |+-------+ | |
|
||||
(BOSH) 57070 -| | | | | |
|
||||
(BOSHS) 57443 -| +----------------+ | | |
|
||||
| | | 172.60.0.30 |
|
||||
| | | +--------+ |
|
||||
| | +=============+ | |- 5223 (XMPP-C2S)
|
||||
| | | | | XMPP 3 |----|- 5263 (XMPP-S2S)
|
||||
| | | | | | |- 9093 (HTTP-Admin)
|
||||
| | | | +------+-+ |- 7073 (BOSH)
|
||||
| | | | | |
|
||||
| 172.60.0.10 | 172.60.0.20 | |
|
||||
| +--------+ | +--------+ | |
|
||||
(XMPP-C2S) 5221 -| | +======+ | |=====+ |- 5222 (XMPP-C2S)
|
||||
(XMPP-S2S) 5261 -|------| XMPP 1 +============+ XMPP 2 | |- 5262 (XMPP-S2S)
|
||||
(HTTP-Admin) 9091 -| | | | |------------|- 9092 (HTTP-Admin)
|
||||
(BOSH) 7071 -| +----+---+ +----+---+ |- 7072 (BOSH)
|
||||
| | | |
|
||||
| | | |
|
||||
| +---+--+ | |
|
||||
| | | | |
|
||||
(Database) 5432 -|-------| DB +------------------+ |
|
||||
| | | |
|
||||
| +------+ |
|
||||
| 172.60.0.11 |
|
||||
| |
|
||||
+----------------172.60.0.0/24---------------------+
|
||||
```
|
||||
|
||||
Note that the load balancer is configured to be less flappy, with the flappiness controlled by the nginx config, simulating simple round-robin DNS load balancing. Ports from individual servers are exposed and can be hit directly.
|
||||
|
||||
Openfire is configured with the following XMPP domain:
|
||||
|
||||
* `xmpp.localhost.example`
|
||||
|
||||
Openfire is configured with the following hostnames:
|
||||
|
||||
* `xmpp1.localhost.example`
|
||||
* `xmpp2.localhost.example`
|
||||
* `xmpp3.localhost.example`
|
||||
|
||||
The following users are configured:
|
||||
|
||||
* `user1` `password`
|
||||
* `user2` `password`
|
||||
|
||||
The following MUC rooms are configured:
|
||||
|
||||
* `muc1`
|
||||
* `muc2`
|
||||
|
||||
## Network
|
||||
|
||||
The Docker compose file defines a custom bridge network with a single subnet of `172.60.0.0/24` for the clustered configuration.
|
||||
|
||||
### Removing a node from the network
|
||||
|
||||
To remove a node from the network run the following command:
|
||||
|
||||
`docker network disconnect NETWORK-NAME CONTAINER-NAME`
|
||||
|
||||
For example:
|
||||
|
||||
`docker network disconnect openfire-testing_openfire-federated-net openfire-testing_xmpp1_1`
|
||||
|
||||
### Adding a node to the network
|
||||
|
||||
To add a node to the network fun the following command:
|
||||
|
||||
`docker network connect NETWORK-NAME CONTAINER-NAME`
|
||||
|
||||
For example:
|
||||
|
||||
`docker network connect openfire-testing_openfire-federated-net openfire-testing_xmpp1_1`
|
|
@ -0,0 +1,176 @@
|
|||
version: '3.7'
|
||||
|
||||
services:
|
||||
|
||||
db-1:
|
||||
image: bitnami/mariadb-galera:10.9
|
||||
ports:
|
||||
- 3306
|
||||
- 4444
|
||||
- 4567
|
||||
- 4568
|
||||
environment:
|
||||
- MARIADB_ROOT_PASSWORD=adminpassword
|
||||
- MARIADB_USER=openfire
|
||||
- MARIADB_PASSWORD=hunter2
|
||||
- MARIADB_DATABASE=openfire
|
||||
- MARIADB_GALERA_MARIABACKUP_PASSWORD=backuppassword
|
||||
- MARIADB_GALERA_CLUSTER_BOOTSTRAP=yes
|
||||
- MARIADB_GALERA_CLUSTER_NAME=galera
|
||||
#- MARIADB_GALERA_CLUSTER_ADDRESS=gcomm://172.60.0.11:4567,0.0.0.0:4567
|
||||
#- MARIADB_GALERA_NODE_ADDRESS=172.60.0.11
|
||||
- MARIADB_REPLICATION_USER=replica
|
||||
- MARIADB_REPLICATION_PASSWORD=replicapassword
|
||||
- MARIADB_EXTRA_FLAGS=--wsrep_provider_options=ist.recv_addr=172.60.0.11:4568;ist.recv_bind=0.0.0.0:4568 --wsrep_node_incoming_address=172.60.0.11 --wsrep_sst_receive_address=172.60.0.11
|
||||
volumes:
|
||||
- 'mariadb_galera_data_0:/bitnami/mariadb'
|
||||
restart: always
|
||||
networks:
|
||||
openfire-clustered-net:
|
||||
ipv4_address: 172.60.0.11
|
||||
|
||||
db-2:
|
||||
image: bitnami/mariadb-galera:10.9
|
||||
ports:
|
||||
- 3306
|
||||
- 4444
|
||||
- 4567
|
||||
- 4568
|
||||
entrypoint: ""
|
||||
command:
|
||||
- bash
|
||||
- -ec
|
||||
- |
|
||||
# Wait 20 seconds to guarantee creation order
|
||||
sleep 20
|
||||
exec /opt/bitnami/scripts/mariadb-galera/entrypoint.sh /opt/bitnami/scripts/mariadb-galera/run.sh
|
||||
environment:
|
||||
- MARIADB_ROOT_PASSWORD=adminpassword
|
||||
- MARIADB_GALERA_MARIABACKUP_PASSWORD=backuppassword
|
||||
- MARIADB_GALERA_CLUSTER_NAME=galera
|
||||
- MARIADB_GALERA_CLUSTER_ADDRESS=gcomm://172.60.0.11:4567
|
||||
- MARIADB_REPLICATION_USER=replica
|
||||
- MARIADB_REPLICATION_PASSWORD=replicapassword
|
||||
- MARIADB_EXTRA_FLAGS=--wsrep_provider_options=ist.recv_addr=172.60.0.12:4568;ist.recv_bind=0.0.0.0:4568 --wsrep_node_incoming_address=172.60.0.12 --wsrep_sst_receive_address=172.60.0.12
|
||||
volumes:
|
||||
- 'mariadb_galera_data_1:/bitnami/mariadb'
|
||||
restart: always
|
||||
networks:
|
||||
openfire-clustered-net:
|
||||
ipv4_address: 172.60.0.12
|
||||
|
||||
lb:
|
||||
image: nginx:stable
|
||||
ports:
|
||||
- "55222:55222"
|
||||
- "57070:57070"
|
||||
- "57443:57443"
|
||||
volumes:
|
||||
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
|
||||
networks:
|
||||
openfire-clustered-net:
|
||||
ipv4_address: 172.60.0.99
|
||||
|
||||
xmpp1:
|
||||
image: "openfire:${OPENFIRE_TAG}"
|
||||
ports:
|
||||
- "5221:5222"
|
||||
- "5261:5269"
|
||||
- "7071:7070"
|
||||
- "7441:7443"
|
||||
- "9091:9090"
|
||||
depends_on:
|
||||
- "db-1"
|
||||
volumes:
|
||||
- ./_data/xmpp/1/conf:/var/lib/openfire/conf
|
||||
- ./_data/plugins:/opt/plugins
|
||||
- ../_common/wait-for-it.sh:/wait-for-it.sh
|
||||
- ./sql/openfire.sql:/usr/local/openfire/resources/database/openfire_mysql.sql
|
||||
command: ["/wait-for-it.sh", "-t", "60", "-s", "db-1:3306", "--", "/sbin/entrypoint.sh"]
|
||||
networks:
|
||||
openfire-clustered-net:
|
||||
ipv4_address: 172.60.0.10
|
||||
extra_hosts:
|
||||
- "xmpp1.localhost.example:172.60.0.10"
|
||||
- "conference.xmpp1.localhost.example:172.60.0.10"
|
||||
- "xmpp2.localhost.example:172.60.0.20"
|
||||
- "conference.xmpp2.localhost.example:172.60.0.20"
|
||||
- "xmpp3.localhost.example:172.60.0.30"
|
||||
- "conference.xmpp3.localhost.example:172.60.0.30"
|
||||
|
||||
xmpp2:
|
||||
image: "openfire:${OPENFIRE_TAG}"
|
||||
ports:
|
||||
- "5222:5222"
|
||||
- "5262:5269"
|
||||
- "7072:7070"
|
||||
- "7442:7443"
|
||||
- "9092:9090"
|
||||
depends_on:
|
||||
- "db-1"
|
||||
- "xmpp1"
|
||||
volumes:
|
||||
- ./_data/xmpp/2/conf:/var/lib/openfire/conf
|
||||
- ./_data/plugins:/opt/plugins
|
||||
- ../_common/wait-for-it.sh:/wait-for-it.sh
|
||||
- ./sql/openfire.sql:/usr/local/openfire/resources/database/openfire_mysql.sql
|
||||
command: ["/wait-for-it.sh", "-t", "60", "-s", "xmpp1:9090", "--", "/sbin/entrypoint.sh"]
|
||||
networks:
|
||||
openfire-clustered-net:
|
||||
ipv4_address: 172.60.0.20
|
||||
extra_hosts:
|
||||
- "xmpp1.localhost.example:172.60.0.10"
|
||||
- "conference.xmpp1.localhost.example:172.60.0.10"
|
||||
- "xmpp2.localhost.example:172.60.0.20"
|
||||
- "conference.xmpp2.localhost.example:172.60.0.20"
|
||||
- "xmpp3.localhost.example:172.60.0.30"
|
||||
- "conference.xmpp3.localhost.example:172.60.0.30"
|
||||
|
||||
xmpp3:
|
||||
image: "openfire:${OPENFIRE_TAG}"
|
||||
ports:
|
||||
- "5223:5222"
|
||||
- "5263:5269"
|
||||
- "7073:7070"
|
||||
- "7443:7443"
|
||||
- "9093:9090"
|
||||
depends_on:
|
||||
- "db-1"
|
||||
- "xmpp2"
|
||||
volumes:
|
||||
- ./_data/xmpp/3/conf:/var/lib/openfire/conf
|
||||
- ./_data/plugins:/opt/plugins
|
||||
- ../_common/wait-for-it.sh:/wait-for-it.sh
|
||||
- ./sql/openfire.sql:/usr/local/openfire/resources/database/openfire_mysql.sql
|
||||
command: ["/wait-for-it.sh", "-t", "60", "-s", "xmpp1:9090", "--", "/sbin/entrypoint.sh"]
|
||||
networks:
|
||||
openfire-clustered-net:
|
||||
ipv4_address: 172.60.0.30
|
||||
extra_hosts:
|
||||
- "xmpp1.localhost.example:172.60.0.10"
|
||||
- "conference.xmpp1.localhost.example:172.60.0.10"
|
||||
- "xmpp2.localhost.example:172.60.0.20"
|
||||
- "conference.xmpp2.localhost.example:172.60.0.20"
|
||||
- "xmpp3.localhost.example:172.60.0.30"
|
||||
- "conference.xmpp3.localhost.example:172.60.0.30"
|
||||
|
||||
dozzle:
|
||||
image: amir20/dozzle:latest
|
||||
volumes:
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
ports:
|
||||
- 9999:8080
|
||||
|
||||
volumes:
|
||||
mariadb_galera_data_0:
|
||||
driver: local
|
||||
mariadb_galera_data_1:
|
||||
driver: local
|
||||
|
||||
networks:
|
||||
openfire-clustered-net:
|
||||
driver: bridge
|
||||
ipam:
|
||||
driver: default
|
||||
config:
|
||||
- subnet: 172.60.0.0/24
|
|
@ -0,0 +1,70 @@
|
|||
# error_log stdout debug;
|
||||
|
||||
stream {
|
||||
upstream xmpp {
|
||||
server 172.60.0.10:5222;
|
||||
server 172.60.0.20:5222;
|
||||
server 172.60.0.30:5222;
|
||||
}
|
||||
server {
|
||||
listen 55222;
|
||||
tcp_nodelay on;
|
||||
proxy_connect_timeout 10s;
|
||||
proxy_timeout 12h; # Set this lower to be more flappy
|
||||
proxy_pass xmpp;
|
||||
}
|
||||
|
||||
upstream bosh {
|
||||
server 172.60.0.10:7070;
|
||||
server 172.60.0.20:7070;
|
||||
server 172.60.0.30:7070;
|
||||
}
|
||||
server {
|
||||
listen 57070;
|
||||
tcp_nodelay on;
|
||||
proxy_connect_timeout 10s;
|
||||
proxy_timeout 12h; # Set this lower to be more flappy
|
||||
proxy_pass bosh;
|
||||
}
|
||||
|
||||
upstream boshs {
|
||||
server 172.60.0.10:7443;
|
||||
server 172.60.0.20:7443;
|
||||
server 172.60.0.30:7443;
|
||||
}
|
||||
server {
|
||||
listen 57443;
|
||||
tcp_nodelay on;
|
||||
proxy_connect_timeout 10s;
|
||||
proxy_timeout 30s;
|
||||
proxy_pass boshs;
|
||||
}
|
||||
|
||||
upstream s2s {
|
||||
server 172.60.0.10:5269;
|
||||
server 172.60.0.20:5269;
|
||||
server 172.60.0.30:5269;
|
||||
}
|
||||
server {
|
||||
listen 5269;
|
||||
tcp_nodelay on;
|
||||
proxy_connect_timeout 10s;
|
||||
proxy_timeout 1m;
|
||||
proxy_pass s2s;
|
||||
}
|
||||
|
||||
upstream s2slegacy {
|
||||
server 172.60.0.10:5270;
|
||||
server 172.60.0.20:5270;
|
||||
server 172.60.0.30:5270;
|
||||
}
|
||||
server {
|
||||
listen 5270;
|
||||
tcp_nodelay on;
|
||||
proxy_connect_timeout 10s;
|
||||
proxy_timeout 1m;
|
||||
proxy_pass s2slegacy;
|
||||
}
|
||||
}
|
||||
|
||||
events {}
|
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,851 @@
|
|||
-- MariaDB dump 10.19 Distrib 10.9.4-MariaDB, for Linux (x86_64)
|
||||
--
|
||||
-- Host: localhost Database: openfire
|
||||
-- ------------------------------------------------------
|
||||
-- Server version 10.9.4-MariaDB-log
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofExtComponentConf`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `ofExtComponentConf` (
|
||||
`subdomain` varchar(255) NOT NULL,
|
||||
`wildcard` tinyint(4) NOT NULL,
|
||||
`secret` varchar(255) DEFAULT NULL,
|
||||
`permission` varchar(10) NOT NULL,
|
||||
PRIMARY KEY (`subdomain`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofGroup`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `ofGroup` (
|
||||
`groupName` varchar(50) NOT NULL,
|
||||
`description` varchar(255) DEFAULT NULL,
|
||||
PRIMARY KEY (`groupName`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofGroupProp`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `ofGroupProp` (
|
||||
`groupName` varchar(50) NOT NULL,
|
||||
`name` varchar(100) NOT NULL,
|
||||
`propValue` text NOT NULL,
|
||||
PRIMARY KEY (`groupName`,`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofGroupUser`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `ofGroupUser` (
|
||||
`groupName` varchar(50) NOT NULL,
|
||||
`username` varchar(100) NOT NULL,
|
||||
`administrator` tinyint(4) NOT NULL,
|
||||
PRIMARY KEY (`groupName`,`username`,`administrator`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofID`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `ofID` (
|
||||
`idType` int(11) NOT NULL,
|
||||
`id` bigint(20) NOT NULL,
|
||||
PRIMARY KEY (`idType`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
INSERT INTO `ofID` VALUES
|
||||
(18,1),
|
||||
(19,1),
|
||||
(23,6),
|
||||
(25,12),
|
||||
(26,2),
|
||||
(27,51);
|
||||
|
||||
--
|
||||
-- Table structure for table `ofMucAffiliation`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `ofMucAffiliation` (
|
||||
`roomID` bigint(20) NOT NULL,
|
||||
`jid` text NOT NULL,
|
||||
`affiliation` tinyint(4) NOT NULL,
|
||||
PRIMARY KEY (`roomID`,`jid`(70))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
INSERT INTO `ofMucAffiliation` VALUES
|
||||
(1,'admin@xmpp.localhost.example',10),
|
||||
(2,'admin@xmpp.localhost.example',10);
|
||||
|
||||
--
|
||||
-- Table structure for table `ofMucConversationLog`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `ofMucConversationLog` (
|
||||
`roomID` bigint(20) NOT NULL,
|
||||
`messageID` bigint(20) NOT NULL,
|
||||
`sender` text NOT NULL,
|
||||
`nickname` varchar(255) DEFAULT NULL,
|
||||
`logTime` char(15) NOT NULL,
|
||||
`subject` varchar(255) DEFAULT NULL,
|
||||
`body` text DEFAULT NULL,
|
||||
`stanza` text DEFAULT NULL,
|
||||
KEY `ofMucConversationLog_roomtime_idx` (`roomID`,`logTime`),
|
||||
KEY `ofMucConversationLog_time_idx` (`logTime`),
|
||||
KEY `ofMucConversationLog_msg_id` (`messageID`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
--
|
||||
-- Dumping data for table `ofMucConversationLog`
|
||||
--
|
||||
|
||||
INSERT INTO `ofMucConversationLog` VALUES
|
||||
(1,1,'muc1@conference.xmpp.localhost.example',NULL,'001668898144605','',NULL,'<message type=\"groupchat\" from=\"muc1@conference.xmpp.localhost.example\" to=\"muc1@conference.xmpp.localhost.example\"><subject></subject></message>'),
|
||||
(2,2,'muc2@conference.xmpp.localhost.example',NULL,'001668898266510','',NULL,'<message type=\"groupchat\" from=\"muc2@conference.xmpp.localhost.example\" to=\"muc2@conference.xmpp.localhost.example\"><subject></subject></message>');
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofMucMember`
|
||||
--
|
||||
|
||||
|
||||
CREATE TABLE `ofMucMember` (
|
||||
`roomID` bigint(20) NOT NULL,
|
||||
`jid` text NOT NULL,
|
||||
`nickname` varchar(255) DEFAULT NULL,
|
||||
`firstName` varchar(100) DEFAULT NULL,
|
||||
`lastName` varchar(100) DEFAULT NULL,
|
||||
`url` varchar(100) DEFAULT NULL,
|
||||
`email` varchar(100) DEFAULT NULL,
|
||||
`faqentry` varchar(100) DEFAULT NULL,
|
||||
PRIMARY KEY (`roomID`,`jid`(70))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofMucRoom`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `ofMucRoom` (
|
||||
`serviceID` bigint(20) NOT NULL,
|
||||
`roomID` bigint(20) NOT NULL,
|
||||
`creationDate` char(15) NOT NULL,
|
||||
`modificationDate` char(15) NOT NULL,
|
||||
`name` varchar(50) NOT NULL,
|
||||
`naturalName` varchar(255) NOT NULL,
|
||||
`description` varchar(255) DEFAULT NULL,
|
||||
`lockedDate` char(15) NOT NULL,
|
||||
`emptyDate` char(15) DEFAULT NULL,
|
||||
`canChangeSubject` tinyint(4) NOT NULL,
|
||||
`maxUsers` int(11) NOT NULL,
|
||||
`publicRoom` tinyint(4) NOT NULL,
|
||||
`moderated` tinyint(4) NOT NULL,
|
||||
`membersOnly` tinyint(4) NOT NULL,
|
||||
`canInvite` tinyint(4) NOT NULL,
|
||||
`roomPassword` varchar(50) DEFAULT NULL,
|
||||
`canDiscoverJID` tinyint(4) NOT NULL,
|
||||
`logEnabled` tinyint(4) NOT NULL,
|
||||
`subject` varchar(100) DEFAULT NULL,
|
||||
`rolesToBroadcast` tinyint(4) NOT NULL,
|
||||
`useReservedNick` tinyint(4) NOT NULL,
|
||||
`canChangeNick` tinyint(4) NOT NULL,
|
||||
`canRegister` tinyint(4) NOT NULL,
|
||||
`allowpm` tinyint(4) DEFAULT NULL,
|
||||
`fmucEnabled` tinyint(4) DEFAULT NULL,
|
||||
`fmucOutboundNode` varchar(255) DEFAULT NULL,
|
||||
`fmucOutboundMode` tinyint(4) DEFAULT NULL,
|
||||
`fmucInboundNodes` varchar(4000) DEFAULT NULL,
|
||||
PRIMARY KEY (`serviceID`,`name`),
|
||||
KEY `ofMucRoom_roomid_idx` (`roomID`),
|
||||
KEY `ofMucRoom_serviceid_idx` (`serviceID`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
--
|
||||
-- Dumping data for table `ofMucRoom`
|
||||
--
|
||||
|
||||
|
||||
INSERT INTO `ofMucRoom` VALUES
|
||||
(1,1,'001668898144600','001668898144619','muc1','MUC One','First MUC Room','000000000000000','001668898144600',0,30,1,0,0,0,NULL,1,1,'',7,0,1,1,0,0,NULL,NULL,NULL),
|
||||
(1,2,'001668898266509','001668898266510','muc2','MUC Two','Second MUC room','000000000000000','001668898266509',0,30,1,0,0,0,NULL,1,1,'',7,0,1,1,0,0,NULL,NULL,NULL);
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofMucRoomProp`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `ofMucRoomProp` (
|
||||
`roomID` bigint(20) NOT NULL,
|
||||
`name` varchar(100) NOT NULL,
|
||||
`propValue` text NOT NULL,
|
||||
PRIMARY KEY (`roomID`,`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofMucService`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `ofMucService` (
|
||||
`serviceID` bigint(20) NOT NULL,
|
||||
`subdomain` varchar(255) NOT NULL,
|
||||
`description` varchar(255) DEFAULT NULL,
|
||||
`isHidden` tinyint(4) NOT NULL,
|
||||
PRIMARY KEY (`subdomain`),
|
||||
KEY `ofMucService_serviceid_idx` (`serviceID`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
--
|
||||
-- Dumping data for table `ofMucService`
|
||||
--
|
||||
|
||||
|
||||
|
||||
INSERT INTO `ofMucService` VALUES
|
||||
(1,'conference',NULL,0);
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofMucServiceProp`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `ofMucServiceProp` (
|
||||
`serviceID` bigint(20) NOT NULL,
|
||||
`name` varchar(100) NOT NULL,
|
||||
`propValue` text NOT NULL,
|
||||
PRIMARY KEY (`serviceID`,`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
--
|
||||
-- Dumping data for table `ofMucServiceProp`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofOffline`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `ofOffline` (
|
||||
`username` varchar(64) NOT NULL,
|
||||
`messageID` bigint(20) NOT NULL,
|
||||
`creationDate` char(15) NOT NULL,
|
||||
`messageSize` int(11) NOT NULL,
|
||||
`stanza` text NOT NULL,
|
||||
PRIMARY KEY (`username`,`messageID`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
--
|
||||
-- Dumping data for table `ofOffline`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofPresence`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `ofPresence` (
|
||||
`username` varchar(64) NOT NULL,
|
||||
`offlinePresence` text DEFAULT NULL,
|
||||
`offlineDate` char(15) NOT NULL,
|
||||
PRIMARY KEY (`username`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
--
|
||||
-- Dumping data for table `ofPresence`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofPrivacyList`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `ofPrivacyList` (
|
||||
`username` varchar(64) NOT NULL,
|
||||
`name` varchar(100) NOT NULL,
|
||||
`isDefault` tinyint(4) NOT NULL,
|
||||
`list` text NOT NULL,
|
||||
PRIMARY KEY (`username`,`name`),
|
||||
KEY `ofPrivacyList_default_idx` (`username`,`isDefault`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
--
|
||||
-- Dumping data for table `ofPrivacyList`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofProperty`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `ofProperty` (
|
||||
`name` varchar(100) NOT NULL,
|
||||
`propValue` text NOT NULL,
|
||||
`encrypted` int(11) DEFAULT NULL,
|
||||
`iv` char(24) DEFAULT NULL,
|
||||
PRIMARY KEY (`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
--
|
||||
-- Dumping data for table `ofProperty`
|
||||
--
|
||||
|
||||
|
||||
|
||||
INSERT INTO `ofProperty` VALUES
|
||||
('cache.MUCService\'conference\'Rooms.maxLifetime','-1',0,NULL),
|
||||
('cache.MUCService\'conference\'Rooms.size','-1',0,NULL),
|
||||
('cache.MUCService\'conference\'RoomStatistics.maxLifetime','-1',0,NULL),
|
||||
('cache.MUCService\'conference\'RoomStatistics.size','-1',0,NULL),
|
||||
('passwordKey','ZGUaqsUSz4fw13t',0,NULL),
|
||||
('update.lastCheck','1668897795614',0,NULL),
|
||||
('xmpp.domain','xmpp.localhost.example',0,NULL);
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofPubsubAffiliation`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `ofPubsubAffiliation` (
|
||||
`serviceID` varchar(100) NOT NULL,
|
||||
`nodeID` varchar(100) NOT NULL,
|
||||
`jid` varchar(255) NOT NULL,
|
||||
`affiliation` varchar(10) NOT NULL,
|
||||
PRIMARY KEY (`serviceID`,`nodeID`,`jid`(70))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
--
|
||||
-- Dumping data for table `ofPubsubAffiliation`
|
||||
--
|
||||
|
||||
|
||||
|
||||
INSERT INTO `ofPubsubAffiliation` VALUES
|
||||
('pubsub','','xmpp.localhost.example','owner');
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofPubsubDefaultConf`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `ofPubsubDefaultConf` (
|
||||
`serviceID` varchar(100) NOT NULL,
|
||||
`leaf` tinyint(4) NOT NULL,
|
||||
`deliverPayloads` tinyint(4) NOT NULL,
|
||||
`maxPayloadSize` int(11) NOT NULL,
|
||||
`persistItems` tinyint(4) NOT NULL,
|
||||
`maxItems` int(11) NOT NULL,
|
||||
`notifyConfigChanges` tinyint(4) NOT NULL,
|
||||
`notifyDelete` tinyint(4) NOT NULL,
|
||||
`notifyRetract` tinyint(4) NOT NULL,
|
||||
`presenceBased` tinyint(4) NOT NULL,
|
||||
`sendItemSubscribe` tinyint(4) NOT NULL,
|
||||
`publisherModel` varchar(15) NOT NULL,
|
||||
`subscriptionEnabled` tinyint(4) NOT NULL,
|
||||
`accessModel` varchar(10) NOT NULL,
|
||||
`language` varchar(255) DEFAULT NULL,
|
||||
`replyPolicy` varchar(15) DEFAULT NULL,
|
||||
`associationPolicy` varchar(15) NOT NULL,
|
||||
`maxLeafNodes` int(11) NOT NULL,
|
||||
PRIMARY KEY (`serviceID`,`leaf`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
--
|
||||
-- Dumping data for table `ofPubsubDefaultConf`
|
||||
--
|
||||
|
||||
|
||||
|
||||
INSERT INTO `ofPubsubDefaultConf` VALUES
|
||||
('pubsub',0,0,0,0,0,1,1,1,0,0,'publishers',1,'open','English',NULL,'all',-1),
|
||||
('pubsub',1,1,10485760,0,1,1,1,1,0,1,'publishers',1,'open','English',NULL,'all',-1);
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofPubsubItem`
|
||||
--
|
||||
|
||||
|
||||
CREATE TABLE `ofPubsubItem` (
|
||||
`serviceID` varchar(100) NOT NULL,
|
||||
`nodeID` varchar(100) NOT NULL,
|
||||
`id` varchar(100) NOT NULL,
|
||||
`jid` varchar(255) NOT NULL,
|
||||
`creationDate` char(15) NOT NULL,
|
||||
`payload` mediumtext DEFAULT NULL,
|
||||
PRIMARY KEY (`serviceID`,`nodeID`,`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofPubsubNode`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `ofPubsubNode` (
|
||||
`serviceID` varchar(100) NOT NULL,
|
||||
`nodeID` varchar(100) NOT NULL,
|
||||
`leaf` tinyint(4) NOT NULL,
|
||||
`creationDate` char(15) NOT NULL,
|
||||
`modificationDate` char(15) NOT NULL,
|
||||
`parent` varchar(100) DEFAULT NULL,
|
||||
`deliverPayloads` tinyint(4) NOT NULL,
|
||||
`maxPayloadSize` int(11) DEFAULT NULL,
|
||||
`persistItems` tinyint(4) DEFAULT NULL,
|
||||
`maxItems` int(11) DEFAULT NULL,
|
||||
`notifyConfigChanges` tinyint(4) NOT NULL,
|
||||
`notifyDelete` tinyint(4) NOT NULL,
|
||||
`notifyRetract` tinyint(4) NOT NULL,
|
||||
`presenceBased` tinyint(4) NOT NULL,
|
||||
`sendItemSubscribe` tinyint(4) NOT NULL,
|
||||
`publisherModel` varchar(15) NOT NULL,
|
||||
`subscriptionEnabled` tinyint(4) NOT NULL,
|
||||
`configSubscription` tinyint(4) NOT NULL,
|
||||
`accessModel` varchar(10) NOT NULL,
|
||||
`payloadType` varchar(100) DEFAULT NULL,
|
||||
`bodyXSLT` varchar(100) DEFAULT NULL,
|
||||
`dataformXSLT` varchar(100) DEFAULT NULL,
|
||||
`creator` varchar(255) NOT NULL,
|
||||
`description` varchar(255) DEFAULT NULL,
|
||||
`language` varchar(255) DEFAULT NULL,
|
||||
`name` varchar(50) DEFAULT NULL,
|
||||
`replyPolicy` varchar(15) DEFAULT NULL,
|
||||
`associationPolicy` varchar(15) DEFAULT NULL,
|
||||
`maxLeafNodes` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`serviceID`,`nodeID`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
--
|
||||
-- Dumping data for table `ofPubsubNode`
|
||||
--
|
||||
|
||||
|
||||
|
||||
INSERT INTO `ofPubsubNode` VALUES
|
||||
('pubsub','',0,'001668897760143','001668897760143',NULL,0,0,0,0,1,1,1,0,0,'publishers',1,0,'open','','','','xmpp.localhost.example','','English','',NULL,'all',-1);
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofPubsubNodeGroups`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `ofPubsubNodeGroups` (
|
||||
`serviceID` varchar(100) NOT NULL,
|
||||
`nodeID` varchar(100) NOT NULL,
|
||||
`rosterGroup` varchar(100) NOT NULL,
|
||||
KEY `ofPubsubNodeGroups_idx` (`serviceID`,`nodeID`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofPubsubNodeJIDs`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `ofPubsubNodeJIDs` (
|
||||
`serviceID` varchar(100) NOT NULL,
|
||||
`nodeID` varchar(100) NOT NULL,
|
||||
`jid` varchar(255) NOT NULL,
|
||||
`associationType` varchar(20) NOT NULL,
|
||||
PRIMARY KEY (`serviceID`,`nodeID`,`jid`(70))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofPubsubSubscription`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `ofPubsubSubscription` (
|
||||
`serviceID` varchar(100) NOT NULL,
|
||||
`nodeID` varchar(100) NOT NULL,
|
||||
`id` varchar(100) NOT NULL,
|
||||
`jid` varchar(255) NOT NULL,
|
||||
`owner` varchar(255) NOT NULL,
|
||||
`state` varchar(15) NOT NULL,
|
||||
`deliver` tinyint(4) NOT NULL,
|
||||
`digest` tinyint(4) NOT NULL,
|
||||
`digest_frequency` int(11) NOT NULL,
|
||||
`expire` char(15) DEFAULT NULL,
|
||||
`includeBody` tinyint(4) NOT NULL,
|
||||
`showValues` varchar(30) DEFAULT NULL,
|
||||
`subscriptionType` varchar(10) NOT NULL,
|
||||
`subscriptionDepth` tinyint(4) NOT NULL,
|
||||
`keyword` varchar(200) DEFAULT NULL,
|
||||
PRIMARY KEY (`serviceID`,`nodeID`,`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofRemoteServerConf`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `ofRemoteServerConf` (
|
||||
`xmppDomain` varchar(255) NOT NULL,
|
||||
`remotePort` int(11) DEFAULT NULL,
|
||||
`permission` varchar(10) NOT NULL,
|
||||
PRIMARY KEY (`xmppDomain`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofRoster`
|
||||
--
|
||||
|
||||
|
||||
CREATE TABLE `ofRoster` (
|
||||
`rosterID` bigint(20) NOT NULL,
|
||||
`username` varchar(64) NOT NULL,
|
||||
`jid` varchar(1024) NOT NULL,
|
||||
`sub` tinyint(4) NOT NULL,
|
||||
`ask` tinyint(4) NOT NULL,
|
||||
`recv` tinyint(4) NOT NULL,
|
||||
`nick` varchar(255) DEFAULT NULL,
|
||||
`stanza` text DEFAULT NULL,
|
||||
PRIMARY KEY (`rosterID`),
|
||||
KEY `ofRoster_unameid_idx` (`username`),
|
||||
KEY `ofRoster_jid_idx` (`jid`(255))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofRosterGroups`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `ofRosterGroups` (
|
||||
`rosterID` bigint(20) NOT NULL,
|
||||
`rank` tinyint(4) NOT NULL,
|
||||
`groupName` varchar(255) NOT NULL,
|
||||
PRIMARY KEY (`rosterID`,`rank`),
|
||||
KEY `ofRosterGroup_rosterid_idx` (`rosterID`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofSASLAuthorized`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `ofSASLAuthorized` (
|
||||
`username` varchar(64) NOT NULL,
|
||||
`principal` text NOT NULL,
|
||||
PRIMARY KEY (`username`,`principal`(200))
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofSecurityAuditLog`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `ofSecurityAuditLog` (
|
||||
`msgID` bigint(20) NOT NULL,
|
||||
`username` varchar(64) NOT NULL,
|
||||
`entryStamp` bigint(20) NOT NULL,
|
||||
`summary` varchar(255) NOT NULL,
|
||||
`node` varchar(255) NOT NULL,
|
||||
`details` text DEFAULT NULL,
|
||||
PRIMARY KEY (`msgID`),
|
||||
KEY `ofSecurityAuditLog_tstamp_idx` (`entryStamp`),
|
||||
KEY `ofSecurityAuditLog_uname_idx` (`username`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
--
|
||||
-- Dumping data for table `ofSecurityAuditLog`
|
||||
--
|
||||
|
||||
|
||||
|
||||
INSERT INTO `ofSecurityAuditLog` VALUES
|
||||
(1,'admin',1668897797130,'Successful admin console login attempt','xmpp1.localhost.example','The user logged in successfully to the admin console from address 172.60.0.1. '),
|
||||
(2,'admin',1668898061969,'created new user user1','xmpp1.localhost.example','name = User One, email = null, admin = false'),
|
||||
(3,'admin',1668898061978,'added group member to null','xmpp1.localhost.example','username = user1'),
|
||||
(4,'admin',1668898071126,'created new user user2','xmpp1.localhost.example','name = User Two, email = null, admin = false'),
|
||||
(5,'admin',1668898071136,'added group member to null','xmpp1.localhost.example','username = user2'),
|
||||
(6,'admin',1668898080692,'created new user user3','xmpp1.localhost.example','name = User Three, email = null, admin = false'),
|
||||
(7,'admin',1668898080700,'added group member to null','xmpp1.localhost.example','username = user3'),
|
||||
(8,'admin',1668898144638,'created new MUC room muc1','xmpp1.localhost.example','subject = \nroomdesc = First MUC Room\nroomname = MUC One\nmaxusers = 30'),
|
||||
(9,'admin',1668898266545,'created new MUC room muc2','xmpp1.localhost.example','subject = \nroomdesc = Second MUC room\nroomname = MUC Two\nmaxusers = 30'),
|
||||
(10,'admin',1668898435466,'Updated server property xmpp.domain','xmpp1.localhost.example','Property created with value \'xmpp.localhost.example\'');
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofUser`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `ofUser` (
|
||||
`username` varchar(64) NOT NULL,
|
||||
`storedKey` varchar(32) DEFAULT NULL,
|
||||
`serverKey` varchar(32) DEFAULT NULL,
|
||||
`salt` varchar(32) DEFAULT NULL,
|
||||
`iterations` int(11) DEFAULT NULL,
|
||||
`plainPassword` varchar(32) DEFAULT NULL,
|
||||
`encryptedPassword` varchar(255) DEFAULT NULL,
|
||||
`name` varchar(100) DEFAULT NULL,
|
||||
`email` varchar(100) DEFAULT NULL,
|
||||
`creationDate` char(15) NOT NULL,
|
||||
`modificationDate` char(15) NOT NULL,
|
||||
PRIMARY KEY (`username`),
|
||||
KEY `ofUser_cDate_idx` (`creationDate`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
--
|
||||
-- Dumping data for table `ofUser`
|
||||
--
|
||||
|
||||
|
||||
|
||||
INSERT INTO `ofUser` VALUES
|
||||
('admin','JE6LyPcQZdChBNNeM0M7snT1dXM=','31Otc5MIhsPspMdeXiJ94kQ9FZA=','JDnaIaXxR5/ga4cmvq7osEM2mGfgi/nj',4096,NULL,'a49c592969e790ec55cf12052e61cf825c3d8280b0e17617','Administrator','admin@example.com','001668896628386','0'),
|
||||
('user1','OvLMqePOH2WjgO0YiBGcCyu1Too=','nb+gNEZpy5B02vSfz6mz6daVnW0=','3n8axfTJ11fg4l5FdicKpEsMNJO7iDD1',4096,NULL,'e92627b0960a7cfa4fb4abd734b2b49f7f3e3beb4f67607a3a6373b54e095fa0','User One',NULL,'001668898061935','001668898061935'),
|
||||
('user2','feTCBDi6/ax6qnGBIb3w0zDZUMY=','x6HLyC4wd0DbEtYf+4Glv2mUFUE=','4bAfMLWYChBEQ0WtM0h1bBHVet/qF0eT',4096,NULL,'246b445922dbd94fda5ff1c3da4f6d61efbdf65ff4541735b926d30b92c89534','User Two',NULL,'001668898071105','001668898071105'),
|
||||
('user3','HL/+RMY4RRvbvZ2Cbn0zrGY0GSU=','B6tiBNMyTkUjLsLqeaZ/C3nU3hI=','erfKR7jcUT1eeO94EWJjKDAmyfD0C9d8',4096,NULL,'2e64a59c37f3ff01dbd95274c84695af84d309e42f6b5e676762a056a503416e','User Three',NULL,'001668898080670','001668898080670');
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofUserFlag`
|
||||
--
|
||||
|
||||
|
||||
CREATE TABLE `ofUserFlag` (
|
||||
`username` varchar(64) NOT NULL,
|
||||
`name` varchar(100) NOT NULL,
|
||||
`startTime` char(15) DEFAULT NULL,
|
||||
`endTime` char(15) DEFAULT NULL,
|
||||
PRIMARY KEY (`username`,`name`),
|
||||
KEY `ofUserFlag_sTime_idx` (`startTime`),
|
||||
KEY `ofUserFlag_eTime_idx` (`endTime`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
--
|
||||
-- Dumping data for table `ofUserFlag`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofUserProp`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `ofUserProp` (
|
||||
`username` varchar(64) NOT NULL,
|
||||
`name` varchar(100) NOT NULL,
|
||||
`propValue` text NOT NULL,
|
||||
PRIMARY KEY (`username`,`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
--
|
||||
-- Dumping data for table `ofUserProp`
|
||||
--
|
||||
|
||||
|
||||
|
||||
INSERT INTO `ofUserProp` VALUES
|
||||
('admin','console.rows_per_page','/muc-room-summary.jsp=25,/session-summary.jsp=25,/pubsub-node-summary.jsp=25,/server-properties.jsp=25');
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofVCard`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `ofVCard` (
|
||||
`username` varchar(64) NOT NULL,
|
||||
`vcard` mediumtext NOT NULL,
|
||||
PRIMARY KEY (`username`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
--
|
||||
-- Dumping data for table `ofVCard`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- Table structure for table `ofVersion`
|
||||
--
|
||||
|
||||
|
||||
|
||||
|
||||
CREATE TABLE `ofVersion` (
|
||||
`name` varchar(50) NOT NULL,
|
||||
`version` int(11) NOT NULL,
|
||||
PRIMARY KEY (`name`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb3 COLLATE=utf8mb3_general_ci;
|
||||
|
||||
|
||||
--
|
||||
-- Dumping data for table `ofVersion`
|
||||
--
|
||||
|
||||
|
||||
|
||||
INSERT INTO `ofVersion` VALUES
|
||||
('openfire',34);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
-- Dump completed on 2022-11-19 22:56:21
|
|
@ -0,0 +1,56 @@
|
|||
#!/bin/bash
|
||||
|
||||
usage() { echo "Usage: $0 [-n openfire-tag] [-h]
|
||||
-n openfire-tag Launches all Openfire instances with the specified tag. This overrides the value in .env
|
||||
-h Show this helpful information
|
||||
"; exit 0; }
|
||||
|
||||
PROJECT="openfire"
|
||||
COMPOSE_FILE_COMMAND=("docker" "compose")
|
||||
COMPOSE_FILE_COMMAND+=("--env-file" "../_common/.env")
|
||||
COMPOSE_FILE_COMMAND+=("--project-name" "$PROJECT")
|
||||
|
||||
# Where is this script? It could be called from anywhere, so use this to get full paths.
|
||||
SCRIPTPATH="$( cd "$(dirname "$0")"; pwd -P )"
|
||||
|
||||
source "$SCRIPTPATH/../_common/functions.sh"
|
||||
|
||||
check_deps
|
||||
|
||||
while getopts n:h o; do
|
||||
case "$o" in
|
||||
n)
|
||||
if [[ $OPTARG =~ " " ]]; then
|
||||
echo "Docker tags cannot contain spaces"
|
||||
exit 1
|
||||
fi
|
||||
echo "Using Openfire tag: $OPTARG"
|
||||
export OPENFIRE_TAG="$OPTARG"
|
||||
;;
|
||||
h)
|
||||
usage
|
||||
;;
|
||||
*)
|
||||
usage
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
echo "Starting a clustered environment."
|
||||
COMPOSE_FILE_COMMAND+=("-f" "docker-compose-clustered.yml")
|
||||
|
||||
pushd "$SCRIPTPATH"
|
||||
|
||||
"$SCRIPTPATH"/../stop.sh
|
||||
"${COMPOSE_FILE_COMMAND[@]}" pull --ignore-pull-failures
|
||||
|
||||
# Clean up temporary persistence data
|
||||
if ! rm -rf _data; then
|
||||
echo "ERROR: Failed to delete _data directory. Try with sudo, then re-run." && popd && exit 1
|
||||
fi
|
||||
mkdir _data
|
||||
cp -r xmpp _data/
|
||||
cp -r plugins _data/
|
||||
|
||||
"${COMPOSE_FILE_COMMAND[@]}" up -d || popd
|
||||
popd
|
|
@ -0,0 +1,60 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<hazelcast xmlns="http://www.hazelcast.com/schema/config"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.hazelcast.com/schema/config
|
||||
http://www.hazelcast.com/schema/config/hazelcast-config-3.12.xsd">
|
||||
<group>
|
||||
<name>openfire</name>
|
||||
<password>openfire</password>
|
||||
</group>
|
||||
<network>
|
||||
<port auto-increment="true" port-count="100">5701</port>
|
||||
<outbound-ports>
|
||||
<ports>0</ports>
|
||||
</outbound-ports>
|
||||
<!-- The following enables multicast discovery of cluster members
|
||||
See http://docs.hazelcast.org/docs/3.12/manual/html-single/index.html#discovering-members-by-multicast
|
||||
-->
|
||||
<join>
|
||||
<multicast enabled="true">
|
||||
<multicast-group>224.2.2.3</multicast-group>
|
||||
<multicast-port>54327</multicast-port>
|
||||
</multicast>
|
||||
<tcp-ip enabled="false"/>
|
||||
</join>
|
||||
<!-- The following enables TCP/IP based discovery of cluster members
|
||||
See http://docs.hazelcast.org/docs/3.12/manual/html-single/index.html#discovering-members-by-tcp
|
||||
-->
|
||||
<!--
|
||||
<join>
|
||||
<multicast enabled="false"/>
|
||||
<tcp-ip enabled="true">
|
||||
<member>10.10.1.1:5701</member>
|
||||
<member>10.10.1.2:5701</member>
|
||||
</tcp-ip>
|
||||
</join>
|
||||
-->
|
||||
<interfaces enabled="false">
|
||||
<interface>10.10.1.*</interface>
|
||||
</interfaces>
|
||||
<ssl enabled="false"/>
|
||||
<socket-interceptor enabled="false"/>
|
||||
<symmetric-encryption enabled="false">
|
||||
<!--
|
||||
encryption algorithm such as
|
||||
DES/ECB/PKCS5Padding,
|
||||
PBEWithMD5AndDES,
|
||||
AES/CBC/PKCS5Padding,
|
||||
Blowfish,
|
||||
DESede
|
||||
-->
|
||||
<algorithm>PBEWithMD5AndDES</algorithm>
|
||||
<!-- salt value to use when generating the secret key -->
|
||||
<salt>thesalt</salt>
|
||||
<!-- pass phrase to use when generating the secret key -->
|
||||
<password>thepass</password>
|
||||
<!-- iteration count to use when generating the secret key -->
|
||||
<iteration-count>19</iteration-count>
|
||||
</symmetric-encryption>
|
||||
</network>
|
||||
</hazelcast>
|
|
@ -0,0 +1,67 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
This file stores bootstrap properties needed by Openfire.
|
||||
Property names must be in the format: "prop.name.is.blah=value"
|
||||
That will be stored as:
|
||||
<prop>
|
||||
<name>
|
||||
<is>
|
||||
<blah>value</blah>
|
||||
</is>
|
||||
</name>
|
||||
</prop>
|
||||
|
||||
Most properties are stored in the Openfire database. A
|
||||
property viewer and editor is included in the admin console.
|
||||
-->
|
||||
<!-- root element, all properties must be under this element -->
|
||||
<jive>
|
||||
<adminConsole>
|
||||
<!-- Disable either port by setting the value to -1 -->
|
||||
<port>9090</port>
|
||||
<securePort>9091</securePort>
|
||||
</adminConsole>
|
||||
<locale>en</locale>
|
||||
<!-- Network settings. By default, Openfire will bind to all network interfaces.
|
||||
Alternatively, you can specify a specific network interfaces that the server
|
||||
will listen on. For example, 127.0.0.1. This setting is generally only useful
|
||||
on multi-homed servers. -->
|
||||
<!--
|
||||
<network>
|
||||
<interface></interface>
|
||||
</network>
|
||||
-->
|
||||
<!--
|
||||
One time token to gain temporary access to the admin console.
|
||||
-->
|
||||
<!--
|
||||
<oneTimeAccessToken>secretToken</oneTimeAccessToken>
|
||||
-->
|
||||
<connectionProvider>
|
||||
<className>org.jivesoftware.database.DefaultConnectionProvider</className>
|
||||
</connectionProvider>
|
||||
<database>
|
||||
<defaultProvider>
|
||||
<driver>com.mysql.cj.jdbc.Driver</driver>
|
||||
<serverURL>jdbc:mysql:loadbalance://db-1:3306,db-2:3306/openfire?rewriteBatchedStatements=true&characterEncoding=UTF-8&characterSetResults=UTF-8&serverTimezone=UTC&failOverReadOnly=false</serverURL>
|
||||
<username encrypted="true">10d847caed2654fbb1fe6cefac0f381893323ae6b5eea27d31503d5880091fca</username>
|
||||
<password encrypted="true">30c1893796e0110fc4607c8b1bca0d0e54f10b270c4615d3</password>
|
||||
<testSQL>select 1</testSQL>
|
||||
<testBeforeUse>false</testBeforeUse>
|
||||
<testAfterUse>false</testAfterUse>
|
||||
<testTimeout>500</testTimeout>
|
||||
<timeBetweenEvictionRuns>30000</timeBetweenEvictionRuns>
|
||||
<minIdleTime>900000</minIdleTime>
|
||||
<maxWaitTime>500</maxWaitTime>
|
||||
<minConnections>5</minConnections>
|
||||
<maxConnections>25</maxConnections>
|
||||
<connectionTimeout>1.0</connectionTimeout>
|
||||
</defaultProvider>
|
||||
</database>
|
||||
<setup>true</setup>
|
||||
<fqdn>xmpp1.localhost.example</fqdn>
|
||||
<clustering>
|
||||
<enabled>true</enabled>
|
||||
</clustering>
|
||||
</jive>
|
|
@ -0,0 +1,66 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
This file stores security-related properties needed by Openfire.
|
||||
You may edit this file to manage encrypted properties and
|
||||
encryption configuration value. Note however that you should not
|
||||
edit this file while Openfire is running, or it may be overwritten.
|
||||
|
||||
It is important to note that Openfire will store encrypted property
|
||||
values securely "at rest" (e.g. in the database or XML), but the
|
||||
values will be managed as clear text strings in memory at runtime for
|
||||
interoperability and performance reasons. Encrypted property values
|
||||
are not visible via the Openfire console, but they may be edited or
|
||||
deleted as needed.
|
||||
-->
|
||||
<security>
|
||||
<encrypt>
|
||||
<!-- This can be set to "AES" or "Blowfish" (default) at setup time -->
|
||||
<algorithm>Blowfish</algorithm>
|
||||
<key>
|
||||
<!--
|
||||
If this is a new server setup, you may set a custom encryption key
|
||||
by setting a value for the <new /> encryption key element only.
|
||||
|
||||
To change the encryption key, provide values for both new and old
|
||||
encryption keys here. The "old" key must match the unencrypted value
|
||||
of the "current" key. The server will update the existing property
|
||||
values in the database, re-encrypting them using the new key. After
|
||||
the encrypted properties have been updated, the new key will itself
|
||||
be encrypted and re-written into this file as <current />.
|
||||
|
||||
Note that if the current encryption key becomes invalid, any property
|
||||
values secured by the original key will be inaccessible as well.
|
||||
|
||||
The key value can be any string, and it will be hashed, filled, and/or
|
||||
truncated to produce a compatible key for the corresponding algorithm.
|
||||
Note that leading and trailing spaces will be ignored. A strong key
|
||||
will contain sixteen characters or more.
|
||||
|
||||
<old></old>
|
||||
<new></new>
|
||||
-->
|
||||
<current></current>
|
||||
</key>
|
||||
<property>
|
||||
<!--
|
||||
This list includes the names of properties that have been marked for
|
||||
encryption. Any XML properties (from openfire.xml) that are listed here
|
||||
will be encrypted automatically upon first use. Other properties
|
||||
(already in the database) can be added to this list at runtime via the
|
||||
"System Properties" page in the Openfire console.
|
||||
-->
|
||||
<name>database.defaultProvider.username</name>
|
||||
<name>database.defaultProvider.password</name>
|
||||
</property>
|
||||
</encrypt>
|
||||
<!--
|
||||
Any other property defined in this file will be treated as an encrypted
|
||||
property. The value (in clear text) will be encrypted and migrated into
|
||||
the Openfire database during the next startup. The property name will
|
||||
be added to the list of encrypted properties and the clear text value
|
||||
will be removed from this file.
|
||||
|
||||
<foo><bar>Secr3t$tr1ng!</bar></foo>
|
||||
-->
|
||||
</security>
|
|
@ -0,0 +1 @@
|
|||
This directory is used as a default location in which Openfire stores backups of keystore files.
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,60 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<hazelcast xmlns="http://www.hazelcast.com/schema/config"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.hazelcast.com/schema/config
|
||||
http://www.hazelcast.com/schema/config/hazelcast-config-3.12.xsd">
|
||||
<group>
|
||||
<name>openfire</name>
|
||||
<password>openfire</password>
|
||||
</group>
|
||||
<network>
|
||||
<port auto-increment="true" port-count="100">5701</port>
|
||||
<outbound-ports>
|
||||
<ports>0</ports>
|
||||
</outbound-ports>
|
||||
<!-- The following enables multicast discovery of cluster members
|
||||
See http://docs.hazelcast.org/docs/3.12/manual/html-single/index.html#discovering-members-by-multicast
|
||||
-->
|
||||
<join>
|
||||
<multicast enabled="true">
|
||||
<multicast-group>224.2.2.3</multicast-group>
|
||||
<multicast-port>54327</multicast-port>
|
||||
</multicast>
|
||||
<tcp-ip enabled="false"/>
|
||||
</join>
|
||||
<!-- The following enables TCP/IP based discovery of cluster members
|
||||
See http://docs.hazelcast.org/docs/3.12/manual/html-single/index.html#discovering-members-by-tcp
|
||||
-->
|
||||
<!--
|
||||
<join>
|
||||
<multicast enabled="false"/>
|
||||
<tcp-ip enabled="true">
|
||||
<member>10.10.1.1:5701</member>
|
||||
<member>10.10.1.2:5701</member>
|
||||
</tcp-ip>
|
||||
</join>
|
||||
-->
|
||||
<interfaces enabled="false">
|
||||
<interface>10.10.1.*</interface>
|
||||
</interfaces>
|
||||
<ssl enabled="false"/>
|
||||
<socket-interceptor enabled="false"/>
|
||||
<symmetric-encryption enabled="false">
|
||||
<!--
|
||||
encryption algorithm such as
|
||||
DES/ECB/PKCS5Padding,
|
||||
PBEWithMD5AndDES,
|
||||
AES/CBC/PKCS5Padding,
|
||||
Blowfish,
|
||||
DESede
|
||||
-->
|
||||
<algorithm>PBEWithMD5AndDES</algorithm>
|
||||
<!-- salt value to use when generating the secret key -->
|
||||
<salt>thesalt</salt>
|
||||
<!-- pass phrase to use when generating the secret key -->
|
||||
<password>thepass</password>
|
||||
<!-- iteration count to use when generating the secret key -->
|
||||
<iteration-count>19</iteration-count>
|
||||
</symmetric-encryption>
|
||||
</network>
|
||||
</hazelcast>
|
|
@ -0,0 +1,67 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
This file stores bootstrap properties needed by Openfire.
|
||||
Property names must be in the format: "prop.name.is.blah=value"
|
||||
That will be stored as:
|
||||
<prop>
|
||||
<name>
|
||||
<is>
|
||||
<blah>value</blah>
|
||||
</is>
|
||||
</name>
|
||||
</prop>
|
||||
|
||||
Most properties are stored in the Openfire database. A
|
||||
property viewer and editor is included in the admin console.
|
||||
-->
|
||||
<!-- root element, all properties must be under this element -->
|
||||
<jive>
|
||||
<adminConsole>
|
||||
<!-- Disable either port by setting the value to -1 -->
|
||||
<port>9090</port>
|
||||
<securePort>9091</securePort>
|
||||
</adminConsole>
|
||||
<locale>en</locale>
|
||||
<!-- Network settings. By default, Openfire will bind to all network interfaces.
|
||||
Alternatively, you can specify a specific network interfaces that the server
|
||||
will listen on. For example, 127.0.0.1. This setting is generally only useful
|
||||
on multi-homed servers. -->
|
||||
<!--
|
||||
<network>
|
||||
<interface></interface>
|
||||
</network>
|
||||
-->
|
||||
<!--
|
||||
One time token to gain temporary access to the admin console.
|
||||
-->
|
||||
<!--
|
||||
<oneTimeAccessToken>secretToken</oneTimeAccessToken>
|
||||
-->
|
||||
<connectionProvider>
|
||||
<className>org.jivesoftware.database.DefaultConnectionProvider</className>
|
||||
</connectionProvider>
|
||||
<database>
|
||||
<defaultProvider>
|
||||
<driver>com.mysql.cj.jdbc.Driver</driver>
|
||||
<serverURL>jdbc:mysql:loadbalance://db-1:3306,db-2:3306/openfire?rewriteBatchedStatements=true&characterEncoding=UTF-8&characterSetResults=UTF-8&serverTimezone=UTC&failOverReadOnly=false</serverURL>
|
||||
<username encrypted="true">10d847caed2654fbb1fe6cefac0f381893323ae6b5eea27d31503d5880091fca</username>
|
||||
<password encrypted="true">30c1893796e0110fc4607c8b1bca0d0e54f10b270c4615d3</password>
|
||||
<testSQL>select 1</testSQL>
|
||||
<testBeforeUse>false</testBeforeUse>
|
||||
<testAfterUse>false</testAfterUse>
|
||||
<testTimeout>500</testTimeout>
|
||||
<timeBetweenEvictionRuns>30000</timeBetweenEvictionRuns>
|
||||
<minIdleTime>900000</minIdleTime>
|
||||
<maxWaitTime>500</maxWaitTime>
|
||||
<minConnections>5</minConnections>
|
||||
<maxConnections>25</maxConnections>
|
||||
<connectionTimeout>1.0</connectionTimeout>
|
||||
</defaultProvider>
|
||||
</database>
|
||||
<setup>true</setup>
|
||||
<fqdn>xmpp2.localhost.example</fqdn>
|
||||
<clustering>
|
||||
<enabled>true</enabled>
|
||||
</clustering>
|
||||
</jive>
|
|
@ -0,0 +1,66 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
This file stores security-related properties needed by Openfire.
|
||||
You may edit this file to manage encrypted properties and
|
||||
encryption configuration value. Note however that you should not
|
||||
edit this file while Openfire is running, or it may be overwritten.
|
||||
|
||||
It is important to note that Openfire will store encrypted property
|
||||
values securely "at rest" (e.g. in the database or XML), but the
|
||||
values will be managed as clear text strings in memory at runtime for
|
||||
interoperability and performance reasons. Encrypted property values
|
||||
are not visible via the Openfire console, but they may be edited or
|
||||
deleted as needed.
|
||||
-->
|
||||
<security>
|
||||
<encrypt>
|
||||
<!-- This can be set to "AES" or "Blowfish" (default) at setup time -->
|
||||
<algorithm>Blowfish</algorithm>
|
||||
<key>
|
||||
<!--
|
||||
If this is a new server setup, you may set a custom encryption key
|
||||
by setting a value for the <new /> encryption key element only.
|
||||
|
||||
To change the encryption key, provide values for both new and old
|
||||
encryption keys here. The "old" key must match the unencrypted value
|
||||
of the "current" key. The server will update the existing property
|
||||
values in the database, re-encrypting them using the new key. After
|
||||
the encrypted properties have been updated, the new key will itself
|
||||
be encrypted and re-written into this file as <current />.
|
||||
|
||||
Note that if the current encryption key becomes invalid, any property
|
||||
values secured by the original key will be inaccessible as well.
|
||||
|
||||
The key value can be any string, and it will be hashed, filled, and/or
|
||||
truncated to produce a compatible key for the corresponding algorithm.
|
||||
Note that leading and trailing spaces will be ignored. A strong key
|
||||
will contain sixteen characters or more.
|
||||
|
||||
<old></old>
|
||||
<new></new>
|
||||
-->
|
||||
<current></current>
|
||||
</key>
|
||||
<property>
|
||||
<!--
|
||||
This list includes the names of properties that have been marked for
|
||||
encryption. Any XML properties (from openfire.xml) that are listed here
|
||||
will be encrypted automatically upon first use. Other properties
|
||||
(already in the database) can be added to this list at runtime via the
|
||||
"System Properties" page in the Openfire console.
|
||||
-->
|
||||
<name>database.defaultProvider.username</name>
|
||||
<name>database.defaultProvider.password</name>
|
||||
</property>
|
||||
</encrypt>
|
||||
<!--
|
||||
Any other property defined in this file will be treated as an encrypted
|
||||
property. The value (in clear text) will be encrypted and migrated into
|
||||
the Openfire database during the next startup. The property name will
|
||||
be added to the list of encrypted properties and the clear text value
|
||||
will be removed from this file.
|
||||
|
||||
<foo><bar>Secr3t$tr1ng!</bar></foo>
|
||||
-->
|
||||
</security>
|
|
@ -0,0 +1 @@
|
|||
This directory is used as a default location in which Openfire stores backups of keystore files.
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
@ -0,0 +1,60 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<hazelcast xmlns="http://www.hazelcast.com/schema/config"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://www.hazelcast.com/schema/config
|
||||
http://www.hazelcast.com/schema/config/hazelcast-config-3.12.xsd">
|
||||
<group>
|
||||
<name>openfire</name>
|
||||
<password>openfire</password>
|
||||
</group>
|
||||
<network>
|
||||
<port auto-increment="true" port-count="100">5701</port>
|
||||
<outbound-ports>
|
||||
<ports>0</ports>
|
||||
</outbound-ports>
|
||||
<!-- The following enables multicast discovery of cluster members
|
||||
See http://docs.hazelcast.org/docs/3.12/manual/html-single/index.html#discovering-members-by-multicast
|
||||
-->
|
||||
<join>
|
||||
<multicast enabled="true">
|
||||
<multicast-group>224.2.2.3</multicast-group>
|
||||
<multicast-port>54327</multicast-port>
|
||||
</multicast>
|
||||
<tcp-ip enabled="false"/>
|
||||
</join>
|
||||
<!-- The following enables TCP/IP based discovery of cluster members
|
||||
See http://docs.hazelcast.org/docs/3.12/manual/html-single/index.html#discovering-members-by-tcp
|
||||
-->
|
||||
<!--
|
||||
<join>
|
||||
<multicast enabled="false"/>
|
||||
<tcp-ip enabled="true">
|
||||
<member>10.10.1.1:5701</member>
|
||||
<member>10.10.1.2:5701</member>
|
||||
</tcp-ip>
|
||||
</join>
|
||||
-->
|
||||
<interfaces enabled="false">
|
||||
<interface>10.10.1.*</interface>
|
||||
</interfaces>
|
||||
<ssl enabled="false"/>
|
||||
<socket-interceptor enabled="false"/>
|
||||
<symmetric-encryption enabled="false">
|
||||
<!--
|
||||
encryption algorithm such as
|
||||
DES/ECB/PKCS5Padding,
|
||||
PBEWithMD5AndDES,
|
||||
AES/CBC/PKCS5Padding,
|
||||
Blowfish,
|
||||
DESede
|
||||
-->
|
||||
<algorithm>PBEWithMD5AndDES</algorithm>
|
||||
<!-- salt value to use when generating the secret key -->
|
||||
<salt>thesalt</salt>
|
||||
<!-- pass phrase to use when generating the secret key -->
|
||||
<password>thepass</password>
|
||||
<!-- iteration count to use when generating the secret key -->
|
||||
<iteration-count>19</iteration-count>
|
||||
</symmetric-encryption>
|
||||
</network>
|
||||
</hazelcast>
|
|
@ -0,0 +1,67 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
This file stores bootstrap properties needed by Openfire.
|
||||
Property names must be in the format: "prop.name.is.blah=value"
|
||||
That will be stored as:
|
||||
<prop>
|
||||
<name>
|
||||
<is>
|
||||
<blah>value</blah>
|
||||
</is>
|
||||
</name>
|
||||
</prop>
|
||||
|
||||
Most properties are stored in the Openfire database. A
|
||||
property viewer and editor is included in the admin console.
|
||||
-->
|
||||
<!-- root element, all properties must be under this element -->
|
||||
<jive>
|
||||
<adminConsole>
|
||||
<!-- Disable either port by setting the value to -1 -->
|
||||
<port>9090</port>
|
||||
<securePort>9091</securePort>
|
||||
</adminConsole>
|
||||
<locale>en</locale>
|
||||
<!-- Network settings. By default, Openfire will bind to all network interfaces.
|
||||
Alternatively, you can specify a specific network interfaces that the server
|
||||
will listen on. For example, 127.0.0.1. This setting is generally only useful
|
||||
on multi-homed servers. -->
|
||||
<!--
|
||||
<network>
|
||||
<interface></interface>
|
||||
</network>
|
||||
-->
|
||||
<!--
|
||||
One time token to gain temporary access to the admin console.
|
||||
-->
|
||||
<!--
|
||||
<oneTimeAccessToken>secretToken</oneTimeAccessToken>
|
||||
-->
|
||||
<connectionProvider>
|
||||
<className>org.jivesoftware.database.DefaultConnectionProvider</className>
|
||||
</connectionProvider>
|
||||
<database>
|
||||
<defaultProvider>
|
||||
<driver>com.mysql.cj.jdbc.Driver</driver>
|
||||
<serverURL>jdbc:mysql:loadbalance://db-1:3306,db-2:3306/openfire?rewriteBatchedStatements=true&characterEncoding=UTF-8&characterSetResults=UTF-8&serverTimezone=UTC&failOverReadOnly=false</serverURL>
|
||||
<username encrypted="true">10d847caed2654fbb1fe6cefac0f381893323ae6b5eea27d31503d5880091fca</username>
|
||||
<password encrypted="true">30c1893796e0110fc4607c8b1bca0d0e54f10b270c4615d3</password>
|
||||
<testSQL>select 1</testSQL>
|
||||
<testBeforeUse>false</testBeforeUse>
|
||||
<testAfterUse>false</testAfterUse>
|
||||
<testTimeout>500</testTimeout>
|
||||
<timeBetweenEvictionRuns>30000</timeBetweenEvictionRuns>
|
||||
<minIdleTime>900000</minIdleTime>
|
||||
<maxWaitTime>500</maxWaitTime>
|
||||
<minConnections>5</minConnections>
|
||||
<maxConnections>25</maxConnections>
|
||||
<connectionTimeout>1.0</connectionTimeout>
|
||||
</defaultProvider>
|
||||
</database>
|
||||
<setup>true</setup>
|
||||
<fqdn>xmpp3.localhost.example</fqdn>
|
||||
<clustering>
|
||||
<enabled>true</enabled>
|
||||
</clustering>
|
||||
</jive>
|
|
@ -0,0 +1,66 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
|
||||
<!--
|
||||
This file stores security-related properties needed by Openfire.
|
||||
You may edit this file to manage encrypted properties and
|
||||
encryption configuration value. Note however that you should not
|
||||
edit this file while Openfire is running, or it may be overwritten.
|
||||
|
||||
It is important to note that Openfire will store encrypted property
|
||||
values securely "at rest" (e.g. in the database or XML), but the
|
||||
values will be managed as clear text strings in memory at runtime for
|
||||
interoperability and performance reasons. Encrypted property values
|
||||
are not visible via the Openfire console, but they may be edited or
|
||||
deleted as needed.
|
||||
-->
|
||||
<security>
|
||||
<encrypt>
|
||||
<!-- This can be set to "AES" or "Blowfish" (default) at setup time -->
|
||||
<algorithm>Blowfish</algorithm>
|
||||
<key>
|
||||
<!--
|
||||
If this is a new server setup, you may set a custom encryption key
|
||||
by setting a value for the <new /> encryption key element only.
|
||||
|
||||
To change the encryption key, provide values for both new and old
|
||||
encryption keys here. The "old" key must match the unencrypted value
|
||||
of the "current" key. The server will update the existing property
|
||||
values in the database, re-encrypting them using the new key. After
|
||||
the encrypted properties have been updated, the new key will itself
|
||||
be encrypted and re-written into this file as <current />.
|
||||
|
||||
Note that if the current encryption key becomes invalid, any property
|
||||
values secured by the original key will be inaccessible as well.
|
||||
|
||||
The key value can be any string, and it will be hashed, filled, and/or
|
||||
truncated to produce a compatible key for the corresponding algorithm.
|
||||
Note that leading and trailing spaces will be ignored. A strong key
|
||||
will contain sixteen characters or more.
|
||||
|
||||
<old></old>
|
||||
<new></new>
|
||||
-->
|
||||
<current></current>
|
||||
</key>
|
||||
<property>
|
||||
<!--
|
||||
This list includes the names of properties that have been marked for
|
||||
encryption. Any XML properties (from openfire.xml) that are listed here
|
||||
will be encrypted automatically upon first use. Other properties
|
||||
(already in the database) can be added to this list at runtime via the
|
||||
"System Properties" page in the Openfire console.
|
||||
-->
|
||||
<name>database.defaultProvider.username</name>
|
||||
<name>database.defaultProvider.password</name>
|
||||
</property>
|
||||
</encrypt>
|
||||
<!--
|
||||
Any other property defined in this file will be treated as an encrypted
|
||||
property. The value (in clear text) will be encrypted and migrated into
|
||||
the Openfire database during the next startup. The property name will
|
||||
be added to the list of encrypted properties and the clear text value
|
||||
will be removed from this file.
|
||||
|
||||
<foo><bar>Secr3t$tr1ng!</bar></foo>
|
||||
-->
|
||||
</security>
|
|
@ -0,0 +1 @@
|
|||
This directory is used as a default location in which Openfire stores backups of keystore files.
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue