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
If you are new to iceScrum, you may want to use the iceScrum Server desktop application. It requires no computing skills and will allow you to try iceScrum easily .
However, this application is not suitable for production purposes. That’s why we recommend you to follow this guide to install iceScrum manually in order to use it in a real production context.
Installing and configuring the server environment (application server, database, configuration) may require advanced computing skills. Kagilum provides install services, including custom configuration, and remote installation, if you are interested, feel free to contact us.
Hardware requirements
Please note that hardware requirements highly depend on your use of the tool (total number of users, number of concurrent users, other applications running on your machine…).
However, here is an estimated minimal server configuration:
- Processor: a modern one, e.g. 2GHz+, 2+ cores
- RAM: 2GB+ (iceScrum requires at least 768MB but you also need RAM for the OS, other applications etc.)
- Hard disk: 10GB+ (iceScrum itself doesn’t require
much space but you need space for the OS, DB, application server, user
attachments etc.)
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
If you want to change config in a nice user interface and to have your changes taken into account immediately, have a look at iceScrum Pro.
If you don’t use iceScrum Pro, you have to create a file called config.groovy
that follows the Groovy format. The path of this file must be defined
in your CATALINA_OPTS (refer to the application configuration section).
We recommend that you put it in your home folder (avoid any tomcat
folder). All config changes need an application restart to apply if the
server is running.
- 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 =
"[email protected]"
icescrum.alerts.subject_prefix =
"[icescrum]"
icescrum.alerts.enable =
true
icescrum.alerts.
default
.from =
"[email protected]"
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 =
"[email protected]"
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
iceScrum comes with an embedded HSQLDB database so you can try iceScrum without needing to install nor configure a DBMS. The default HSQLDB configuration is NOT suitable for production environments in terms of reliability and performances.
This configuration needs to be set in the config file (please refer
to the above section). Any change will require you to restart your
server if it is running.
Don’t forget to define a sensible charset/collation configuration when creating an empty DB in a custom DBMS. We recommend the use of UTF-8, which allows a wide range of user input.
- 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
Once everything is configured (Tomcat, settings, DB…), you can start the Tomcat server by running the tomcatDir/bin/startup.sh script (startup.bat for Windows). Tomcat will start iceScrum automatically if the WAR is found in the tomcatDir/webapps/ directory.
It may take some time to start it for the first time. When the server
is started, enter the iceScrum URL (corresponding to the Server URL you
defined) in your favorite browser.
First, you need to register: click on “Register”, fill in the form and validate. Follow the getting started guide to enjoy the great iceScrum features!
Troubleshooting
If you find an unexpected behaviour, please read the following information.
- 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