Fork me on GitHub

Silverpeas 6 is the new major version of Silverpeas. It replaces definitively the previous 5.x versions. A great work has been done both in its engines that propels Silverpeas as well as in its Web GUI to smooth the user interaction and to offer a better user experience. Silverpeas 6.0 and 6.1 were based upon Java 8, JEE 7, and respectively the application server Wildfly 10.1.0 and 18.0.1. Starting with 6.2, Silverpeas is now based upon Java 11, JEE 8 and Wildfly 26.1.3.

Silverpeas 6 isn't compatible with Silverpeas 5. For an upgrade from a Silverpeas 5 installation, please take care of:

- the upgrade can be performed only from Silverpeas >= 5.15,
- some migration treatments by hand are required on the properties and on the configuration before the upgrade (this is not the subject of this page).

This document is about how to install Silverpeas 6 on a server. However, as alternative, Silverpeas 6 is also available as an official docker image in the Official Docker Hub Repository.

## Give it a try

You can give easily a try of Silverpeas by signing up in our demonstration platform Enjoy Silverpeas!

In the case you're comfortable with Docker, you have also an another way to give a try of Silverpeas by pulling and running our dedicated Silverpeas Docker image for testing.

## Download the production-ready distribution

The above solutions are obviously limited in functionalities as Silverpeas requires additional external tools and services to perform some of its advanced features and those services aren't packaged with them (in order to keep them simple and light for a testing purpose).

To fetch directly the last stable version, production-ready, of Silverpeas, please use the links below to download both the distribution of Wildfly required by Silverpeas and the current distribution of Silverpeas:

- Wildfly 26
- silverpeas-6.4.7-wildfly26.zip (the GPG signature of the distribution)

You can also fetch the last release candidate of the next major version of Silverpeas by downloading both the distribution of Wildfly required by it and its current distribution.

For those wishing to upgrade their Silverpeas distribution to the latest release candidate, you have to know latter has an impacting change on its implementation of the JCR that requires a migration of it. See below on how to install Silverpeas for more explanations.

- Wildfly 34
- silverpeas-6.5-build260820-wildfly34.zip (the GPG signature of the distribution)

Don't forget to read the instructions below about how to install Silverpeas from these two distributions.

## Pre-requisite

Silverpeas 6 can be automatically deployed on the JEE application server Wildfly >= 10.1.0. Nevertheless, we strongly recommend to deploy it on Wildfly 26.1.3 as this version was tested by ourselves with the current version of Silverpeas.

Silverpeas 6 depends on external tools/services to run or to offer a better user experience. Please find below a list of the tools and services you will need to install.

### Java

Silverpeas 6.0 and 6.1 requires Java SE Development Kit (JDK) version 8 to run, which can be downloaded from Oracle or from OpenJDK. Don't forget to set up the environment variable `JAVA_HOME` with the path of the installation directory of Java.

Silverpeas 6.2 and above requires Java SE Development Kit (JDK) version 11 to run, which can be downloaded from Oracle or from OpenJDK. Don't forget to set up the environment variable `JAVA_HOME` with the path of the installation directory of Java.

### Wildfly

Silverpeas requires Wildfly as a runtime that is the open-source version of JBoss EAP; JBoss EAP is the commercial, enterprise class, version of Wildfly sold by RedHat. If you need maintenance and services on the application server itself, then we recommend you to contact RedHat in order to subscribe to their RedHat Subscription plan. You can download Wildfly from different locations:

- From our own Web site: Wildfly 26.1.3
- From the official Wildfly Project Web site: Wildfly downloads page

Once a Widfly or a JBoss EAP distribution downloaded, please unzip it into the location you want Wildfly/JBoss to be installed and then set up the environment variable `JBOSS_HOME` with the path of the extracted Wildfly/JBoss directory.

For example, in Unix:

- Unzip the `wildfly-26.1.3.Final.zip` file into `/opt/`
- Sets the `$JBOSS_HOME` environment variable with the path `/opt/wildfly-26.1.3.Final`

For example, in Windows:

- Unzip the `wildfly-26.1.3.Final.zip` file into `C:\Silverpeas`
- Sets the `%JBOSS_HOME%` environment variable with the path `C:\Silverpeas\wildfly-26.1.3.Final`

In the next sections, we will refer the JBOSS_HOME environment variable by its name (without the OS-specific characters like `%` or `$`).

### PostgreSQL

Silverpeas supports the following RDBMS:

- PostgreSQL >= 9.2,
- MS-SQLServer,
- and Oracle >= 12.

However we recommend to use PostgreSQL for its great capabilities and flexibilities compared to the others solutions. This is why Silverpeas is pre-configured to run on PostgreSQL 9.x which can be downloaded from here.

You will have to create a database `Silverpeas` and a user with administrative rights for this database. (The credentials of this user have to be specified in the Silverpeas configuration file; see the corresponding section.) You may use the tool pgAdmin which provides a GUI to manage PostgreSQL.

### LibreOffice

Silverpeas needs LibreOffice (or OpenOffice.org) to convert documents into various formats (mainly in PDF). For Silverpeas 6.0, this office suite has to be ran as a service in background (daemon in Unix jargon), but no more since Silverpeas 6.1; indeed, since this version, Silverpeas 6 manages itself the execution of LibreOffice as a background service.

It is a free software (free as freedom) and it can be downloaded from its home site.

### ImageMagick

Silverpeas uses the image handling tool suite ImageMagick to render the preview of documents and to resize images used in Web pages.

It is a free software (free as freedom) and it can be downloaded from this page

### SWFTools, Ghostscript and Pdf2Json

Whereas not required to run and to use Silverpeas, we recommend strongly to install the SWFTools tool suite to enhance the user experience with Silverpeas. It is used by Silverpeas to preview and to visualize any document content (whatever the document format). It depends on the Ghostscript software so you have also to install it.

Pdf2Json is another tool, developed and provided by FlexPaper. It is used by Silverpeas to split a large document into smaller pieces in order to be processed more efficiently by FlexPaper (that is used in the visualization of document content).

They are all free softwares (free as freedom) and they can be downloaded from:

- Ghostscript: http://www.ghostscript.com/download/
- SWFTools: http://www.swftools.org/download.html
- Pdf2Json: https://github.com/flexpaper/pdf2json/releases

If you expect to install Silverpeas on a server running with a Debian-based distribution, you cannot use the SWFTools software packaged with your distribution. Indeed, it lacks of the program `pdf2swf` that is used by Silverpeas.

For Unix-like operating systems, we have compiled and packaged both Pdf2Json and SWFTools so that you have just to unpack them at the root directory; they will be installed into the `/usr/local` folder so that their binary will be by default in the `PATH` (they will be in `/usr/local/bin`).

- SWFTools: swftools-bin-0.9.2.zip
- Pdf2Json: pdf2json-bin-0.68.zip

## Installation

You will get better performance with GNU/Linux (or *BSD) systems.

### Preparing Silverpeas

We currently provide two distributions of Silverpeas 6: one for the current stable version of Silverpeas and another one with a build version of the next stable version of Silverpeas yet in development. Both of these distributions include a pre-configured Silverpeas installation tool that will build Silverpeas 6 from different software bundles downloaded from our Nexus Repository Manager, then it will set up Wildfly and the database for Silverpeas.

Please download:

Stable version (currently 6.4.7): silverpeas-6.4.7-wildfly26.zip (the GPG signature of the distribution)

  The stable version of Silverpeas is built atop of JEE 7, runs in Java 8, and is tested with Wildfly 26 that can be directly downloaded from our web site.

Build version (currently 6.5-build260820): silverpeas-6.5-build260820-wildfly34.zip (the GPG signature of the distribution)

  The build version of Silverpeas is built atop of JEE 8, runs in Java 11 (and not anymore in Java 8), and is tested with Wildfly 34.0.1 that can be directly downloaded from our web site.

> ##### Warning

> The next version of Silverpeas will be based upon the Apache Jackrabbit Oak implementation of the JCR and not anymore on the Apache Jackrabbit 2. So, the following requirements have to be satisfied for your existing Silverpeas:
> - Don't update the version of Silvepreas: the distribution archive of silverpeas-6.5-build260820-wildfly34.zip has to be get and used instead.
> - Migrate your JCR repository to Jackrabbit Oak: for doing, fetch the oak-upgrade-1.50.0.jar tool and follow the instructions in the migration guide

Check the integrity of the distribution after importing our public key:

    gpg --keyserver hkp://pgp.mit.edu --recv-keys 3DF442B6
    gpg --verify silverpeas-6.4.7-wildfly26.zip.asc

Unzip the content into the location you want Silverpeas to be installed.

Set up the environment variable SILVERPEAS_HOME with the path of the extracted Silverpeas directory.

For example, in Unix:

- Unzip the `silverpeas-6.4.7-wildfly26.zip` file into `/opt/`
- Sets the `$SILVERPEAS_HOME` environment variable with the path `/opt/silverpeas-6.4.7-wildfly26`

For example, in Windows:

- Unzip the `silverpeas-6.4.7-wildfly26.zip` file into `C:\Silverpeas`
- Sets the `%SILVERPEAS_HOME%` environment variable with the path `C:/Silverpeas/silverpeas-6.4.7-wildfly26` (the slash instead of the backslash character as path separator is normal and SILVERPEAS_HOME should be set as such)

In the next sections, we will refer the SILVERPEAS_HOME environment variable by its name (without the OS-specific characters like % or $).

### Proxy configuration

The installation process starts by downloading from our Nexus Repository Manager the different software components that made up Silverpeas. Hence, an access to the Internet is required, so if you are behind a proxy, you have to define correctly its properties for the installer.

Because the Silverpeas build life-cycle is managed with Maven (Nexus is a repository of Maven artifacts, id est software bundles), the installation program accesses the repository through an embedded Maven library (unlike Silverpeas 5, it doesn't require Apache Maven to be installed). So, the proxy configuration can be done with the usual user Maven settings. Please edit or create the file `.m2/settings.xml` in the home directory of the user that is responsible of the Silverpeas installation with the following instructions:

    <settings>
      ...
      <proxies>
       <proxy>
          <active>true</active>
          <protocol>http</protocol>
          <host>proxy.somewhere.com</host>
          <port>8080</port>
          <username>proxyuser</username>
          <password>somepassword</password>
          <nonProxyHosts>www.google.com|*.somewhere.com</nonProxyHosts>
        </proxy>
      </proxies>
      ...
    </settings>

For a complete configuration description, see this Maven documentation page. For a complete description of each parameter see Maven Settings.xml configuration page.

### Configuration

The configuration of Silverpeas is split into two main folders in the directory `SILVERPEAS_HOME/configuration`:

- `jboss` with JBoss CLI scripts for configuring Wildfly in order to run Silverpeas,
- `silverpeas` with Groovy and XML scripts for configuring the Silverpeas application itself.

Usually you don't have to touch the content of these folders unless for some specific settings of your own. The only file to adapt to your need is the `SILVERPEAS_HOME/configuration/config.properties` global configuration file that can be created from the template `SILVERPEAS_HOME/configuration/sample_config.properties`. All the commented parameters declared in the global configuration file are set with their default value. To set some parameters with a different value, then just uncomment them and set the correct value. This file is used by the configuration process to set up both the Wildfly server and Silverpeas.

Usually, the properties of the database to be used by Silverpeas have to be set explicitly into this configuration file. So, if it doesn't already exist, creates it from the template `SILVERPEAS_HOME/configuration/sample_config.properties` in the same directory and set the following properties with the parameters of the database. Example of such a `SILVERPEAS_HOME/configuration/config.properties` file:

    DB_SERVERTYPE = the database type (POSTGRESQL, MSSQL, or ORACLE)
    DB_SERVER = the IP address or the DNS name of the database server
    DB_USER = the login of the user with the administrative rights on the database
    DB_PASSWORD = the password associated with the login above
    DB_NAME = the name of the database if otherwise than Silverpeas

Beside the global configuration file, the behaviour of some of the Silverpeas functionalities are parameterized through properties files in the directory `SILVERPEAS_HOME/properties` that is generated during the installation process. This setting can be refined either through a Groovy script or an XML script in `SILVERPEAS_HOME/configuration/silverpeas`. In the case of an XML script, as in Silverpeas 5, it is usually named `CustomerSettings.xml`. When you name your own scripts to configure some parts of Silverpeas, don't forget the scripts are loaded by the configuration process by their name and the `00-SilverpeasSettings.xml` script must be the first one to be executed. Below an example of such a `SILVERPEAS_HOME/configuration/silverpeas/CustomerSettings.xml` file:

    <?xml version="1.0" encoding="UTF-8"?>
    <silverpeas-settings product="Custom">
      <fileset root="${SILVERPEAS_HOME}/properties/org/silverpeas">

        <configfile name="calendar/settings/calendar.properties">
          <parameter key="calendar.import.ics.file.replace.before.process"><![CDATA[CREATED:0000/CREATED:1970]]></parameter>
        </configfile>

        <configfile name="general.properties">
          <parameter key="web.request.domain.allowed">*</parameter>
        </configfile>

        <configfile name="util/uploads/uploadSettings.properties">
          <parameter key="MaximumFileSize">1610612736</parameter>
        </configfile>
      </fileset>
    </silverpeas-settings>

### Installing Silverpeas

The installation program is built upon the build automation system Gradle. You don't have to install it as the program will download it the first time you run it.

For an upgrade, if the use of a new Silverpeas distribution isn't required, you just have to change the `version` variable in the `SILVERPEAS_HOME/bin/silverpeas.gradle` file with the new version of Silverpeas 6.

To install or upgrade Silverpeas, that is to say to download Silverpeas, to configure it and then to deploy it into Wildfly, you just have to type, in the `SILVERPEAS_HOME/bin` directory:

    silverpeas clean install

with:

- `clean`: this command instructs to clean up any previous installation of Silverpeas; this command is required for an upgrade to force the installation process to rebuild and to configure Silverpeas. For a fresh installation, this command isn't required.
- `install`: this command starts the installation process that follows then the following execution path:
  1. if the Gradle's cache is empty, the software components that made up Silverpeas are then downloaded from our Nexus Repository and pushed in the cache, otherwise the version in the cache is used,
  2. the Silverpeas Web application is built,
  3. Wildfly/JBoss is configured to run the Silverpeas Web application,
  4. Silverpeas is configured,
  5. the database used by Silverpeas is either built (in the case of a fresh installation) or updated (in the case of an upgrade).

Once the installation or upgrade process done, you will find the bundles deployed in Wildfly/JBoss in the `SILVERPEAS_HOME/deployments/` directory.

If you need only to reconfigure Silverpeas, you just have to type, in the `SILVERPEAS_HOME/bin` directory:

    silverpeas configure

To know if the process has succeeded or what failed, you can consult the build log file in the `SILVERPEAS_HOME/log` directory whose the name starts with `build` and ends with the timestamp of the process.

### Launching Silverpeas

To start Silverpeas, in the `SILVERPEAS_HOME/bin` directory:

    silverpeas start

To stop Silverpeas, in the `SILVERPEAS_HOME/bin` directory:

    silverpeas stop

To get the status of Silverpeas, in the `SILVERPEAS_HOME/bin` directory:

    silverpeas status

Once started, you can access Silverpeas through the following url: http://localhost:8000/silverpeas and by using the default credentials `SilverAdmin/SilverAdmin`.