Sakai 25 Install Guide (Binary)
Sakai 25 pre-requisites
To begin with the following items must be installed (you may skip any you all ready have installed).
Java 17
Git
Maven 3.9 or later
Tomcat 9
Sakai 25.0 was QA tested with Java 17.0.15 (Temurin), Maven 3.9.9, Tomcat 9.0.105
1.0 Install SDKMAN
While it is not required Software Development Kit Manager simplifies installing and upgrading dependencies
Install sdkman with: curl -s "https://get.sdkman.io" | bash
SDKMAN simplifies upgrading and using different versions of software.
2.0 Get the binary archive
Binary limitations. Post-release patches are not always packaged as jars, so a binary install forces a relatively static implementation that cannot be as readily patched later.
The binary distribution of Sakai provides a shortcut for those that already have Tomcat in place and configured as needed (including the database setup and configuration) and it does so by providing a pre-built Sakai that can simply be dropped into place. All you need to do is unpack the binary archive at the root Tomcat directory and the appropriate *.wars, *.jars, etc., for the Sakai application will be deposited in the correct locations.
The latest Sakai binary archive is available at http://source.sakaiproject.org/release/.
3.0 Verify/Install Java 11
Java JDK 17, is the required version to use with Sakai 25. While using a lower or higher version may be possible it is not recommended.
The JDK that is installed on nightly servers is Adoptium's Temurin 17.
sdk install java 17.0.15-tem
To confirm that Java is both installed on your system and is the correct version for Sakai, run java -version from the command line:
java -version
If Java is installed, basic version and build information will be displayed. Example output:
openjdk version "17.0.15" 2025-04-15OpenJDK Runtime Environment Temurin-17.0.15+6 (build 17.0.15+6)OpenJDK 64-Bit Server VM Temurin-17.0.15+6 (build 17.0.15+6, mixed mode, sharing)
3.1 Set Java environment variables
Several environment variables and related properties must be set for Java. For UNIX operating systems one typically modifies a startup file like ~/.bash_login to set and export shell variables while Mac users typically set and export environment variables in .bash_profile. For Windows, go to Start -> Control Panel -> System -> Advanced -> Environment Variables and set JAVA_HOME via the GUI.
Set the JAVA_HOME environment variable to point to the base directory of your Java installation and add Java's /bin directory to the PATH environment variable.
If the variable JRE_HOME is already set or if you want to use a particular JRE if you have more than one JRE installed on your machine then you'll want to set the JRE_HOME variable as well. JRE_HOME is what Apache Tomcat uses when it starts up, but it defaults to use JAVA_HOME if JRE_HOME is not set. In most cases, setting JAVA_HOME should cover both cases sufficiently.
SDKMAN will update JAVA_HOME and PATH for you automatically
Variable | Unix | Mac | Windows |
|---|---|---|---|
JAVA_HOME |
|
|
|
PATH |
|
|
|
Windows: append the string to the end of the Path system variable
Set JAVA_OPTS
The default Java virtual machine (JVM) settings are insufficient for an application of Sakai's size. As a result several JVM parameters must be increased for Sakai to run, while others may need to be adjusted for optimal performance.
We recommend that you define these settings in Tomcat's /bin directory in a file named setenv.sh (Unix/Mac) or setenv.bat (Windows). See the "Install Tomcat 9" section below for more details.
Specify a Language and Locale (optional)
You can define the default language/locale when starting Sakai by setting the system properties -Duser.language and -Duser.region. For information on supported languages see the release notes or visit the i18N Work Group space.
-Duser.language=es
-Duser.region=ES
Specify an HTTP Proxy (optional)
In environments where local network policy or firewalls require use of an upstream HTTP proxy/cache, Sakai needs to be configured accordingly.
-Dhttp.proxyHost=cache.some.domain
-Dhttp.proxyPort=8080
4.0 Install Tomcat 9
Apache Tomcat - https://tomcat.apache.org/download-90.cgi
Note: Always do a fresh install of Tomcat 9 and do not attempt to use OS-installed versions of Tomcat
Note: Ubuntu if using the Tomcat distributed with ubuntu it is sandboxed by systemd and doesn't allow write access to sakai directories
see
SAK-45495 - Ubuntu 20.04: Failed to start IgniteSpringBean Open
Note: Windows users should ensure that there are no spaces in the complete tomcat path as this causes errors with JSF tools in Sakai
GOOD: C:\opt\tomcat\, C:\sakaistuff\installs\tomcat\
BAD: C:\program files\tomcat\, C:\opt\apache tomcat 9.0.71\
Download Tomcat 9 - https://tomcat.apache.org/download-90.cgi
Windows users could install the tomcat9 service, it makes viewing the tomcat logs easier and it is easier to configure.
Extract to /opt (symlink the apache-tomcat-9.0.x directory to tomcat after extracting)
Example (assuming you have saved the file as /opt/apache-tomcat-9.0.x.tar.gz)
Windows users should either rename the directory or, if comfortable, create a directory junction using an elevated cmd prompt:
Modify conf/server.xml for international character support
Add URIEncoding="UTF-8" to the Connector element
<Connector port="8080" URIEncoding="UTF-8" ...
Set environment variable: CATALINA_HOME=/opt/tomcat
Add $CATALINA_HOME/bin to PATH
Setup the SETENV file in the tomcat/bin directory with JAVA_OPTS.
You can populate the database with Demo data or use the quartz job Create Test Sites (Not recommended for production environments)
Using the quartz job will create some sample sites with some sample data in tools ideal for testing
Another alternative instead of starting with an empty database you can add the flag -Dsakai.demo=true in addition to the others shown here. During your first Tomcat launch it will populate your database with test data (students, courses, etc). Once the data has been created remove this flag for subsequent Tomcat launches. Be advised that this flag will not trigger on a database with data already in it so you must make this choice during the initial setup. It should also be noted that without this flag one will not be able to create any course sites in Sakai unless Academic Term, Subject, Course, and Section data is manually added to the "cm_" tables in the database.
Mac/Linux: Create a file called setenv.sh with the following see the setenv.sh used by nightly QA servers:
Tomcat 9 Mac/LinuxWindows(PC): Create a file called setenv.bat with the following:
Tomcat 9 Windows
[OPTIONAL] Delete the default webapps from the webapps dir
rm -rf webapps/*