Our preferred way to install the Tigase server is using Web installer and configuration program which comes with one of the binary packages. Please pick up the latest version of the distribution archive in our download section.
In many cases however it is not always possible to use the web installer. In many cases you have just an ssh access or even a direct access in console mode only. We are going to provide a text-only installer in one of the next releases but for the time being you can use our binary packages to install the server manually. Please continue reading to learn how to install and setup the server in a few easy steps…
If you have an old version of the Tigase server running and working and you intend to upgrade it please always backup the old version first.
Please note that these instructions are for *nix operating systems, and some modifications may be required for other Operating Systems!
Have a look at our download area. Always pick the latest version of the package available. For manual installation either zip
or tar.gz
file is available. Pick one of files with filename looking like: tigase-server-<version>-b<build>-<type>.<archive>
, where <version>
is in the form of major.minor.bugfix
, <type>
can be either dist
(basic package) or dist-max
(extended set of components) and archive type can be eitehr tar.gz
or zip
.
Unpack the file using command for the tar.gz file:
$ tar -xzvf tigase-server-x.y.z-bv.tar.gz
or for the zip file:
$ unzip tigase-server-x.y.z-bv.zip
A new directory will be created: tigase-server-x.y.z-bv/.
Sometimes after unpacking package on unix system startup script doesn’t have execution permissions. To fix the problem you have to run following command:
$ chmod u+x ./scripts/tigase.sh
If you look inside the new directory, it should like this output:
$ ls -l total 88 drwxr-xr-x 2 tigase tigase 4096 Aug 15 18:17 certs -rw-r--r-- 1 tigase tigase 0 Aug 15 18:26 ChangeLog drwxr-xr-x 2 tigase tigase 12288 Aug 15 18:17 database drwxrwxr-x 4 tigase tigase 4096 Oct 12 09:48 docs drwxrwxr-x 2 tigase tigase 4096 Oct 12 09:48 etc drwxrwxr-x 2 tigase tigase 4096 Oct 12 09:48 jars -rw-r--r-- 1 tigase tigase 34203 Aug 15 18:26 License.html drwxr-xr-- 2 tigase tigase 4096 Aug 15 18:26 logs -rw-r--r-- 1 tigase tigase 3614 Aug 15 18:26 package.html -rw-r--r-- 1 tigase tigase 2675 Aug 15 18:26 README drwxr-xr-x 9 tigase tigase 4096 Aug 15 18:17 scripts drwxr-xr-x 5 tigase tigase 4096 Aug 15 18:17 tigase drwxrwxr-x 4 tigase tigase 4096 Oct 12 09:48 win-stuff
At the moment the most important is the etc/ directory with these files:
$ ls -l etc/ total 36 -rw-r--r-- 1 tigase tigase 153 Aug 15 18:11 bosh-extra-headers.txt -rw-r--r-- 1 tigase tigase 325 Aug 15 18:11 client-access-policy.xml -rw-r--r-- 1 tigase tigase 124 Aug 15 18:11 config.tdsl -rw-r--r-- 1 tigase tigase 263 Aug 15 18:11 cross-domain-policy.xml -rw-r--r-- 1 tigase tigase 2337 Aug 15 18:11 jmx.access -rw-r--r-- 1 tigase tigase 2893 Aug 15 18:11 jmx.password -rw-r--r-- 1 tigase tigase 735 Aug 15 18:11 logback.xml -rw-r--r-- 1 tigase tigase 3386 Aug 15 18:11 snmp.acl -rw-r--r-- 1 tigase tigase 1346 Aug 15 18:11 tigase.conf
Tigase.conf is a file that contains general program operating parameters, and java settings for Tigase to run. For now, the only setting we need to set is the JAVA_HOME directory.
JAVA_HOME="${JDKPath}"
Replace ${JDKPath} with a path to Java JDK installation on your system.
You need also to edit the config.tdsl
file. It contains initial parameters normally set by the configuration program. As this is a manual installation, you will have to edit this document yourself. It contains already a few lines:
'config-type' = 'setup' http () { setup () { 'admin-user' = 'admin' 'admin-password' = 'tigase' } }
You will need to set a few things in order to get Tigase up and running.
Refer to config-type property description for details, but for most operations, change setup
to default
.
Without a virtual host, your XMPP server has no domain with which to operate. To set a virtual host use the following configuration:
'default-virtual-host' = 'hostname'
You have to replace hostname
with a domain name used for your XMPP installation. Let’s say this is jabber.your-great.net. Your setting should look like this:
'default-virtual-host' = 'jabber.your-great.net'
There are many other settings that can be configured visit this section for details.
At least one administrator is required, and once the database is setup will have the default password of tigase
. Be sure to change this once you have finished setting up your server. To add admins, use the following line in the config.tdsl
file:
admins = [ 'admin@jabber.your-great.net', 'user2jabber.your-great.net' ]
You will also need to configure connection to the database. First you have to decide what database you want to use: Derby
, MySQL
, PostgreSQL
, MSSQL
, or MondoDB
.
Each database will have slightly different configurations. If we are using derby, in a directory called tigasedb
, your configuration would look like this:
dataSource () { default () { uri = 'jdbc:derby:tigasedb;create=true' } }
Consult dataSource property for more configuration info.
This is enough basic configuration to have your Tigase server installation running.
Creating the database is the next step. Previously, we had scripts to handle this process, but we now have the advantage of functions in the tigase.sh
script that can be used. Setting up the database can now be done using a single command.
./scripts/tigase.sh install-schema etc/tigase.conf -T derby -D tigasedb -H localhost -U tigase_user -P tigase_pass -R root -A rootpass -J admin@jabber.your-great.net -N pass
This command will install tigase using a Derby database on one named tigasedb
hosted on localhost
. The username and password editing the database is tigase_pass
and root
. Note that -J
explicitly adds the administrator, this is highly recommended with the -N
passing the password.
You may customize this command as needed, refer to the install-schema section of the documentation for more information.
On a windows system, you need to call the program directly:
C:\tigase>java -cp "jars/*" tigase.db.util.SchemaManager "install-schema" -T derby -D tigasedb -H localhost -U tigase_user -P tigase_pass -R root -A rootpass -J admin@jabber.your-great.net -N pass
If this successfully passes, you should see some information printed out
LogLevel: CONFIG 2017-10-12 20:05:47.987 [main] DBSchemaLoader.init() CONFIG: Parameters: [ingoreMissingFiles: false, logLevel: CONFIG, adminPassword: pass, admins: [admin@jabber.your-great.net], dbRootPass: rootpass, dbRootUser: root, dbType: derby, dbName: tigasedbx, dbHostname: localhost, dbUser: tigase_user, dbPass: tigase_pass, useSSL: false, useLegacyDatetimeCode: false, serverTimezone: null, file: null, query: null] Oct 12, 2017 8:05:48 PM tigase.util.DNSResolverDefault <init> WARNING: Resolving default host name: ubuntu took: 7 Oct 12, 2017 8:05:49 PM tigase.db.util.SchemaManager loadSchemas INFO: found 1 data sources to upgrade... Oct 12, 2017 8:05:49 PM tigase.db.util.SchemaManager loadSchemas INFO: begining upgrade... LogLevel: CONFIG 2017-10-12 20:05:49.877 [main] DBSchemaLoader.init() CONFIG: Parameters: [ingoreMissingFiles: false, logLevel: CONFIG, adminPassword: pass, admins: [admin@jabber.your-great.net], dbRootPass: rootpass, dbRootUser: root, dbType: derby, dbName: tigasedbx, dbHostname: null, dbUser: null, dbPass: null, useSSL: null, useLegacyDatetimeCode: false, serverTimezone: null, file: null, query: null] 2017-10-12 20:05:49.877 [main] DBSchemaLoader.validateDBConnection() INFO: Validating DBConnection, URI: jdbc:derby:tigasedbx;create=true 2017-10-12 20:05:50.932 [main] DBSchemaLoader.validateDBConnection() CONFIG: DriverManager (available drivers): [org.apache.derby.jdbc.AutoloadedDriver@65262308, jTDS 1.3.1, com.mysql.jdbc.Driver@54997f67, com.mysql.fabric.jdbc.FabricMySQLDriver@189633f2, org.postgresql.Driver@76fc5687] 2017-10-12 20:05:50.932 [main] DBSchemaLoader.validateDBConnection() INFO: Connection OK 2017-10-12 20:05:50.933 [main] DBSchemaLoader.validateDBExists() INFO: Validating whether DB Exists, URI: jdbc:derby:tigasedbx;create=true 2017-10-12 20:05:50.936 [main] DBSchemaLoader.withConnection() CONFIG: DriverManager (available drivers): [org.apache.derby.jdbc.AutoloadedDriver@65262308, jTDS 1.3.1, com.mysql.jdbc.Driver@54997f67, com.mysql.fabric.jdbc.FabricMySQLDriver@189633f2, org.postgresql.Driver@76fc5687] 2017-10-12 20:05:50.937 [main] DBSchemaLoader.lambda$validateDBExists$283() INFO: Exists OK 2017-10-12 20:05:50.939 [main] DBSchemaLoader.loadSchemaFile() INFO: Loading schema from file(s): database/derby-schema-7-2.sql, URI: jdbc:derby:tigasedbx;create=true 2017-10-12 20:05:50.941 [main] DBSchemaLoader.withConnection() CONFIG: DriverManager (available drivers): [org.apache.derby.jdbc.AutoloadedDriver@65262308, jTDS 1.3.1, com.mysql.jdbc.Driver@54997f67, com.mysql.fabric.jdbc.FabricMySQLDriver@189633f2, org.postgresql.Driver@76fc5687] 2017-10-12 20:05:51.923 [main] DBSchemaLoader.lambda$loadSchemaFile$287() INFO: completed OK 2017-10-12 20:05:51.925 [main] DBSchemaLoader.loadSchemaFile() INFO: Loading schema from file(s): database/derby-message-archiving-schema-1.3.0.sql, URI: jdbc:derby:tigasedbx;create=true 2017-10-12 20:05:51.926 [main] DBSchemaLoader.withConnection() CONFIG: DriverManager (available drivers): [org.apache.derby.jdbc.AutoloadedDriver@65262308, jTDS 1.3.1, com.mysql.jdbc.Driver@54997f67, com.mysql.fabric.jdbc.FabricMySQLDriver@189633f2, org.postgresql.Driver@76fc5687] 2017-10-12 20:05:52.209 [main] DBSchemaLoader.lambda$loadSchemaFile$287() INFO: completed OK 2017-10-12 20:05:52.210 [main] DBSchemaLoader.loadSchemaFile() INFO: Loading schema from file(s): database/derby-muc-schema-2.5.0.sql, URI: jdbc:derby:tigasedbx;create=true 2017-10-12 20:05:52.211 [main] DBSchemaLoader.withConnection() CONFIG: DriverManager (available drivers): [org.apache.derby.jdbc.AutoloadedDriver@65262308, jTDS 1.3.1, com.mysql.jdbc.Driver@54997f67, com.mysql.fabric.jdbc.FabricMySQLDriver@189633f2, org.postgresql.Driver@76fc5687] 2017-10-12 20:05:52.305 [main] DBSchemaLoader.lambda$loadSchemaFile$287() INFO: completed OK 2017-10-12 20:05:52.306 [main] DBSchemaLoader.loadSchemaFile() INFO: Loading schema from file(s): database/derby-pubsub-schema-3.3.0.sql, URI: jdbc:derby:tigasedbx;create=true 2017-10-12 20:05:52.307 [main] DBSchemaLoader.withConnection() CONFIG: DriverManager (available drivers): [org.apache.derby.jdbc.AutoloadedDriver@65262308, jTDS 1.3.1, com.mysql.jdbc.Driver@54997f67, com.mysql.fabric.jdbc.FabricMySQLDriver@189633f2, org.postgresql.Driver@76fc5687] 2017-10-12 20:05:52.731 [main] DBSchemaLoader.lambda$loadSchemaFile$287() INFO: completed OK 2017-10-12 20:05:52.732 [main] DBSchemaLoader.addXmppAdminAccount() INFO: Adding XMPP Admin Account, URI: jdbc:derby:tigasedbx;create=true 2017-10-12 20:05:52.732 [main] DBSchemaLoader.addXmppAdminAccount() CONFIG: RepositoryFactory.getAuthRepository(null, jdbc:derby:tigasedbx;create=true,{data-repo-pool-size=1}) Oct 12, 2017 8:05:52 PM tigase.db.jdbc.DataRepositoryImpl initialize INFO: Table schema found: jdbc:derby:tigasedbx;create=true, database type: derby, database driver: org.apache.derby.jdbc.EmbeddedDriver Oct 12, 2017 8:05:52 PM tigase.db.jdbc.DataRepositoryImpl initialize INFO: Initialized database connection: jdbc:derby:tigasedbx;create=true 2017-10-12 20:05:52.884 [main] DBSchemaLoader.addXmppAdminAccount() INFO: All users added 2017-10-12 20:05:52.884 [main] DBSchemaLoader.postInstallation() INFO: Post Installation, URI: jdbc:derby:tigasedbx;create=true 2017-10-12 20:05:52.891 [main] DBSchemaLoader.withConnection() CONFIG: DriverManager (available drivers): [org.apache.derby.jdbc.AutoloadedDriver@65262308, jTDS 1.3.1, com.mysql.jdbc.Driver@54997f67, com.mysql.fabric.jdbc.FabricMySQLDriver@189633f2, org.postgresql.Driver@76fc5687] 2017-10-12 20:05:52.892 [main] DBSchemaLoader.lambda$postInstallation$286() INFO: Finalizing... 2017-10-12 20:05:52.893 [main] DBSchemaLoader.lambda$postInstallation$286() INFO: completed OK 2017-10-12 20:05:52.895 [main] DBSchemaLoader.shutdownDerby() INFO: Validating DBConnection, URI: jdbc:derby:tigasedbx;create=true 2017-10-12 20:05:53.129 [main] DBSchemaLoader.withConnection() SEVERE: ===== Failure: Database 'tigasedbx' shutdown. ===== Oct 12, 2017 8:05:53 PM tigase.db.util.SchemaManager loadSchemas INFO: schema upgrade finished! ============================================================================= Schema installation finished Data source: default with uri jdbc:derby:tigasedbx;create=true Checking connection to database ok Checking if database exists ok Loading schema: Tigase XMPP Server (Core), version: 8.0.0 ok Loading schema: Tigase Message Archiving Component, version: 1.3.0 ok Loading schema: Tigase MUC Component, version: 2.5.0 ok Loading schema: Tigase PubSub Component, version: 3.3.0 ok Adding XMPP admin accounts ok Post installation action ok Example etc/config.tdsl configuration file: 'config-type' = 'default' debug = [ 'server' ] 'default-virtual-host' = [ 'ubuntu' ] dataSource () { default () { uri = 'jdbc:derby:tigasedbx;create=true' } } amp () {} bosh () {} c2s () {} eventbus () {} http () {} 'message-archive' () {} monitor () {} muc () {} pubsub () {} s2s () {} ws2s () {} =============================================================================
Note at the end, the script will output a recommended example file. You may use this in conjunction with your written config file, but some settings may not be set using this configuration. Again, it is only an EXAMPLE.
You can start the server using the tigase file found in the scripts sub-directory of Tigase server base directory. There, select the type of linux you have, debian, gentoo, mendriva or redhat. In the root server directory type the following command:
./scripts/{OS}/init.d/tigase start etc/tigase.conf
Where {OS} is your *nix operating system.
and you should get the output like this:
Starting Tigase: nohup: redirecting stderr to stdout Tigase running pid=18103
The server is started already but how do you know if it is really working and there were no problems. Have a look in the logs/
directory. There should be a few files in there:
$ ls -l logs/ total 40K -rw-r--r-- 1 20K 2009-02-03 21:48 tigase-console.log -rw-r--r-- 1 16K 2009-02-03 21:48 tigase.log.0 -rw-r--r-- 1 0 2009-02-03 21:48 tigase.log.0.lck -rw-r--r-- 1 6 2009-02-03 21:48 tigase.pid
The first 2 files are the most interesting for us: tigase-console.log and tigase.log.0. The first one contains very limited information and only the most important entries. Have a look inside and check if there are any WARNING or SEVERE entries. If not everything should be fine.
Now you can connect with an XMPP client of your choice with the administrator account you setup earlier.