Welcome to the iceScrum iceScrum install guide. If you don’t want to manage your own iceScrum installation, you may want to consider our Cloud offers (you can try iceScrum Cloud for free!)
Introduction
Hardware requirements
Software requirements
- Operating system
-
We recommend the use of Ubuntu 12.04 LTS (Long Term Support).
However, iceScrum can be used with other Linux distributions, Windows and Mac OS. If you use Windows or Mac OS, you may be interested in the iceScrum Server desktop application.
- Java
-
iceScrum requires Java 6 or 7. Please note that early versions of Java 6 may not work properly and that Java 8 support is planned but not available yet.
You will also need to ensure that the JAVA_HOME environment variable is defined and points to the Java installation directory (which is the directory that contains the bin directory so it is NOT the bin directory itself).
- Application server
-
iceScrum is packaged as a Java Web Application ARchive (WAR). This WAR needs to be run in a Servlet container compatible with Servlet 3.0. We recommend the use of Tomcat, a widely used open source Servlet container. If needed, you can use another application server (e.g. Jetty) but this guide explains the install procedure for Tomcat only.
We will use the name tomcatDir to represent the directory where Tomcat is installed. The user who starts Tomcat must have write permissions on tomcatDir.
Here are the supported Tomcat version, and the manual operations required to use them:
- Tomcat 7 (7.0.23 or greater), recommended: you need to remove the tomcatDir/lib/tomcat-jdbc.jar library.
- Tomcat 6 (6.29 or greater): you need to add the geronimo-servlet_3.0_spec-1.0.jar library to the tomcatDir/lib/ directory.Please note that Tomcat 8 support is planned but not available yet.
Application server
- Configuration
-
First, you need to configure the Tomcat server itself. In the tomcatDir/conf/server.xml file, configure the connector to use the NIO protocol and set the port to be used for iceScrum (start with the port 8080 if it is available, you will be able to change it later):
server.xml configuration <
Connector
port
=
"8080"
protocol
=
"org.apache.coyote.http11.Http11NioProtocol"
connectionTimeout
=
"2000"
maxThreads
=
"500"
URIEncoding
=
"UTF-8"
/>
If you use an Apache server as a frontend proxy for your Tomcat server, you will need to use mod_proxy_http with for example the following configuration for your virtualHost:
ProxyRequests Off
ProxyPreserveHost On
ProxyStatus On
ProxyPass /icescrum/ http://localhost:8080/icescrum/
ProxyPassReverse /icescrum/ http://localhost:8080/icescrum/
iceScrum is not compatible with mod_proxy_ajp as it doesn’t support HTTP streaming / push.
Then, you need to configure the CATALINA_OPTS environment variable (if you use Jetty, define the JAVA_OPTIONS variable instead). A good place to define it is a tomcatDir/bin/setenv.sh script (setenv.bat for Windows), please read the Tomcat documentation for more information.
Add the following settings to the CATALINA_OPTS variable:
Log directory (by default it will use the logs directory in the current path) -Dicescrum.log.dir=/path/to/dir/where/i/can/write/
Timezone (has to be UTC) -Duser.timezone=UTC
Config file (see the Settings section) -Dicescrum_config_location=/path/to/dir/where/i/can/write/config.groovy
Maximum Java heap size (at least 512 Mo) -Xmx512m
Maximum Permanent Generation size (at least 256 Mo) -XX:MaxPermSize=256m
The following flags are usually already configured by default, but we recommend that you check that they are provided to the JVM:
Headless mode (required for iceScrum pdf/doc/... exports) -Djava.awt.headless=
true
Server mode -server
- Install the iceScrum WAR
-
You can choose either iceScrum or iceScrum Pro. iceScrum Pro is an enhanced version that includes support and additional features dedicated to organizations.
Once you have chosen and downloaded the WAR file, move it to the tomcatDir/webapps/ directory.
Configure iceScrum
- iceScrum Pro
-
If you are an iceScrum Pro user, you won’t need to edit a config file. Settings can be edited by the administrator through a nice user interface. Please refer to the iceScrum Pro settings documentation.
Additionally, iceScrum Pro features come with their own settings when needed. Please refer to the iceScrum Pro features documentation for more information.
- Config format
-
iceScrum config must follow the Groovy format:
// Inline comment
/*
Block comment
*/
key = value
// For booleans and numbers values
key =
"string value"
// For strings values
All paths in your config.groovy must use ‘/’ (forward slash)
You may find old config examples where string values have no quotes, when iceScrum used the Properties format (.properties). This format is now deprecated. Look at Upgrade config.properties to config.groovy format
- Application settings
-
Here are the available application settings with their default value, given in the Groovy format (.groovy):
Project icescrum.project.import.enable =
true
icescrum.project.export.enable =
true
icescrum.project.creation.enable =
true
icescrum.project.private.enable =
true
icescrum.project.private.
default
=
false
Users icescrum.gravatar.secure =
false
icescrum.gravatar.enable =
false
icescrum.registration.enable =
true
icescrum.login.retrieve.enable =
true
Alerts icescrum.auto_follow_productowner =
true
icescrum.auto_follow_stakeholder =
true
icescrum.auto_follow_scrummaster =
true
icescrum.alerts.errors.to =
"dev@icescrum.org"
icescrum.alerts.subject_prefix =
"[icescrum]"
icescrum.alerts.enable =
true
icescrum.alerts.
default
.from =
"webmaster@icescrum.org"
Attachments icescrum.attachments.enable =
true
- Technical Settings
-
Server URL grails.serverURL =
"http://localhost:8080/icescrum"
/* Changing the port will require to change
it in the Tomcat server.xml Connector*/
Logging (for debug purposes) icescrum.debug.enable =
false
icescrum.securitydebug.enable =
false
Working directory icescrum.baseDir =
"<yourHome>/icescrum"
/* Use a custom directory where Tomcat has write rights
(not webapps!!). Path must use '/' (forward slash) */
Cross-domain (CORS) support for API icescrum.cors.enable =
true
/* CORS is enabled by default
However, it's enabled only for projects
where web services are enabled */
icescrum.cors.allow.origin.regex =
"*"
/* Use double backslash for escaping
e.g. (http://|.+\.)mydomain\.com */
Mail server (These exemple values aren't set by default) grails.mail.host =
"smtp.gmail.com"
grails.mail.port = 465
grails.mail.username =
"username@gmail.com"
grails.mail.password =
"mypassword"
grails.mail.props = [
"mail.smtp.auth"
:
"true"
,
"mail.smtp.socketFactory.port"
:
"465"
,
"mail.smtp.socketFactory.class"
:
"javax.net.ssl.SSLSocketFactory"
,
"mail.smtp.socketFactory.fallback"
:
"false"
]
/* The props are required for SSL connections */
Database
- HSQLDB
-
HSLQLDB is the default DB in iceScrum. It is bundled so it is possible to try iceScrum without installing a DBMS. The DB is stored as a script file in your file system.
Your database structure and data is stored as SQL statements in a file is called prodDba.script and prodDba.properties that are located in the directory where you started Tomcat from. To backup your DB, just keep a copy of these files.
- MySQL
-
The MySQL JDBC connector is included in iceScrum. Consequently, you just have to configure the connection in your config file.
MySQL5 (with InnoDB storage engine) example settings, assuming an empty icescrum database dataSource.dialect =
"org.hibernate.dialect.MySQL5InnoDBDialect"
dataSource.driverClassName =
"com.mysql.jdbc.Driver"
dataSource.url =
"jdbc:mysql://localhost:3306/icescrum?useUnicode=true&characterEncoding=utf8"
dataSource.username =
"root"
dataSource.password =
"myDbPass"
- Oracle
-
Oracle support is available only for iceScrum Pro.
The Oracle JDBC connector doesn’t come with iceScrum so you will have to download it manually and put it in tomcatDir/lib.
Oracle 11g XE example settings dataSource.dialect =
"org.hibernate.dialect.Oracle10gDialect"
// use this dialect even for greater versions
dataSource.driverClassName =
"oracle.jdbc.driver.OracleDriver"
dataSource.url =
"jdbc:oracle:thin:@localhost:1521:XE"
dataSource.username =
"sa"
dataSource.password =
"myDbPass"
- Other DBMS
-
iceScrum also supports PostgreSQL and SQL Server. The corresponding JDBC connector doesn’t come with iceScrum so you will have to download it manually and put it in tomcatDir/lib.
PostgreSQL example settings, assuming an empty icescrum database dataSource.driverClassName =
"org.postgresql.Driver"
dataSource.url =
"jdbc:postgresql://localhost:5432/icescrum"
dataSource.username =
"postgres"
dataSource.password =
"myDbPass"
SQLServer example settings, assuming an empty icescrum database dataSource.driverClassName =
"com.microsoft.sqlserver.jdbc.SQLServerDriver"
dataSource.url =
"jdbc:sqlserver://localhost:1433;databaseName=icescrum"
dataSource.username =
"sa"
dataSource.password =
"myDbPass"
Start iceScrum
Troubleshooting
- Support
-
You may want to get help for your install and configuration. iceScrum developers can help you! We can install and configure your iceScrum server (contact us) and iceScrum Pro comes with dedicated support (email, skype, phone).
- Common issues
-
- Related to configuration (DB, emails, etc.):
First, verify iceScrum is using your configuration : the config file used is mentioned in the tomcat standard output. If so, it may be not well formatted so check again the config format. You can also try a trivial setting (like disabling registration) and see if it works. If so, the config file is parsed properly so your specific setting may be wrong. Please try with trivial values (e.g. Gmail for emails) to see if the problem comes from your values.- Related to exports (PDF etc.):
Ensure that your JVM is configured in headless mode as explained in this guide and that you don’t use a not supported application server such as Tomcat8 or an unsupported JDK.- Related to special character input (when creating items or importing a project):
Ensure that your server DB has a sensible charset/collation as suggested in this guide. We recommend the use of UTF-8.- Related to network (DB, LDAP, emails, push):
If you use a proxy or a firewall, it may be the reason why it doesn’t work.- Related to server URL (attachments, redirection after logging in, etc.):
If defined a custom URL (domain, port), please ensure that your defined the Server URL setting and the proper tomcat connector.- Related to SSL:
iceScrum does work with SSL (we are sure about that because iceScrum Cloud uses SSL). Don’t forget to change the Server URL setting. If SSL still doesn’t work, please check the config of your proxy (Nginx and Apache should work fine, if configured properly).Common errors in logs:
- java.lang.NoClassDefFoundError: javax/servlet/http/Part:
You application server doesn’t provide native support to Servlet 3.0. Tomcat 6 users, please refer to the software requirements section.- java.lang.ClassNotFoundException: org.hsqldb.jdbcDriver (or com.mysql.jdbc.Driver)
If you use Tomcat 7, you should remove the tomcat-jdbc.jar library from the tomcatDir/lib folder as explained in the software requirements section.- Infos: validateJarFile(/var/lib/tomcat7/webapps/icescrum/WEB-INF/lib/geronimo-servlet_3.0_spec-1.0.jar) – jar not loaded
This message can be ignored. Geronimo-servlet is here to provide compatibility with Tomcat 6.- “Unknown column ‘text_as’” or “Unknown column ‘added’” on startup, marked as ERROR:
These errors can be ignored. They are not actual errors: the column are missing because we removed them when migrating the database structure. The queries remain in order to allow migration from former versions.- java.lang.NoSuchFieldException: count:
This error can be ignored. It’s a minor compatibility issue between the version of the programming language iceScrum is written in (Groovy) and Java 7.- java.lang.NullPointerException on CoyoteAdapter:
Your Tomcat 7 version is probably outdated, please refer to the software requirements section.- Error messages in the Tomcat process when shutting down iceScrum:
it’s a known problem that shouldn’t affect your application. We recommend that you check that the Java process has been really killed.If you didn’t find the cause of your problem, please read the following sections about logs.
- Logging
-
You should find a logs directory in the directory where you started Tomcat from, or in the icescrum.log.dir if you defined it in your CATALINA_OPTS.
You may want to enable more log information. If you are using iceScrum Pro, you have to enable verbose logging in the settings administration. Otherwise, you have to add the following line to your settings:
Enable verbose logging icescrum.debug.enable =
true
Then, please have a look at the icescrum.log file.
- Upgrade config.properties to config.groovy format
-
If your current config file is called config.properties, you will have to follow these instructions:
- Copy the config.properties file and name the copy: config.groovy.
- Open your freshly created config.groovy file and change the content as follows:Where you have String value, wrap the value with double quotes. Additionally, comment syntax has changed so you will have to replace all the # by //. For instance, when you had:
# Data Source
dataSource.driverClassName=com.mysql.jdbc.Driver
Now you will have:
// Data Source
dataSource.driverClassName=
"com.mysql.jdbc.Driver"
If you have key/value with Boolean or Number values, no change is required.
icescrum.registration.enable=
true
mail.port=
25
Then:
- Delete or move your old config.properties file
- Don’t forget to update your config location if it is defined:-Dicescrum_config_location=myLocation
/config
.groovy