Download and install OpenJDK 11 (or later), available from
|What about Java 8?|
BASE 3.15 is the last BASE version that supports Java 8. Starting with BASE 3.16, Java 11 (or later) will be the only supported Java version. Note that Oracle no longer provide a free JDK or JRE. Instead, OpenJDK has to be used
BASE utilise Hibernate for object persistence to a relational database. Hibernate supports many database engines, but at the moment we only work with PostgreSQL. Support for MySQL was ended in BASE 3.19.
PostgreSQL 11 seems to be working well with
BASE and Hibernate. Older versions may also work, but
are no longer tested or supported.
Download and install PostgreSQL, available from
The database names (base2 and base2dynamic are used here), the db_user, and the db_password can be changed during the creation of the databases. It is recommended to change the db_password, the other changes are optional and can be made if desired. The database names, the db_user, and the db_password are needed below when configuring BASE.
|Note that the db_user name and db_password set here is used internally by BASE in communication with the database and is never used to log on to the BASE application.|
|The database must use the UTF-8 character set|
Otherwise there will be a problem with storing values that uses characters outside the normal Latin1 range, for example unit-related such as µ (micro) and Ω (ohm).
Create a new database for BASE, and add a db_user with the proper privileges. To do this, log in as your PostgreSQL user and issue these lines (omit comments):
createuser db_user -P # this will prompt for an password for the new user, and issue two # more question that should be answered with character 'n' for no. createdb --owner db_user --encoding UTF8 base2 psql base2 # this will start the psql command line tool. Issue the next line # within the tool and quit with a '\q'. CREATE SCHEMA "dynamic" AUTHORIZATION "db_user";
If you download BASE (instructions below) you find a file
that contains the above statements and can be used
psql command-line tool:
template1 The header in the script file
contains further information about the script.
BASE and unpack the downloaded file,
tar zxpf base-...tar.gz. If you
prefer to have the bleeding edge version of BASE, perform
a checkout of the source from the subversion repository
(subversion checkout instructions at
If you choose to download the binary package, skip to the
next item. The rest of us, read on and compile BASE. If
you downloaded a source distribution, unpack the
base-...src.tar.gz, or you may have performed a
subversion checkout. Change to the 'root' base2
directory, and issue
package.bin. This will create a binary package
in the base2 'root' directory. Unpack this new package
(outside of the source file hierarchy), and from now on
the instructions are the same irrespective where you got
the binary package.
This section is intended for advanced users and programmers only. In cases when you want to change the BASE code and try out personalised features it may be advantageous to run the tweaked BASE server against the development tree. Instructions on how to accomplish this is available in the building BASE document. When you return back after compiling in the subversion tree you can follow the instruction here (with obvious changes to paths).
An area for file storage must be setup. Create an empty
directory in a proper location in your file system. Set
the owner of the created directory to the user the Tomcat
server will be running as. Tomcat server set up
instructions will follow below. Remember this location for
later use. The default location is
An area for plug-in and extensions installation must be setup.
Create an empty directory in a proper location in your file system,
and make sure that the user that the Tomcat
server will be running as has read permission in this
directory. Tomcat server set up instructions will follow
below. Remember this location for
later use. The default location is
Basic BASE configuration is done in
See the Appendix B, base.config reference for more
information about the settings in
Optional but recommended. You may want
to modify extended properties to fit your needs. Extended
properties are defined in
There is an
discussing extended properties available. If you
plan to perform a migration of a BASE version 1.2 database you
should probably not remove any extended properties
columns (this is not tested so the outcome is currently
undefined). However, adding columns does not affect
Change directory to
and execute the following commands:
sudo ./initdb.sh [base_root_login] base_root_password
In the first command sudo is required because a file will be created in the directory defined by userfiles above. If the directory is writable by you then sudo is not needed.
The base_root_login and
base_root_password you use here
is given to the BASE web application root user account.
The base_root_login is optional. If
If the initialisation script fails, it is probably a
problem related to the underlying database. Make sure that
the database accepts network connection and make sure that
db_user has proper credentials. You
may also get a Permission denied on
extension-settings.xml if you do
not have write permission to the directory defined by
variable userfiles in file
base.config. If the initialisation
must drop the database and recreate the database as
described in BASE (database engine).
Download and install Apache Tomcat 9
available from http:
As of BASE 3.15 we are recommending that Tomcat 9 is used for new installations. Tomcat 8.5 may work, but is no longer supported.
There are a few configuration options that are needed to
make Tomcat work properly with BASE. The options are set in the
CATALINA_OPTS environment variable.
Increase the amount of memory that Tomcat is allowed to use. The default setting is
usually not enough. To give Tomcat 1 gigabyte, use
Unless you have manually downloaded and installed JAI (Java Advanced
Imaging) native acceleration libraries (see http:
Enable headless mode if your are setting up a server which doesn't have
a display device connected to it.
Depending on your system there are probably several ways to set the
CATALINA_OPTS variable. One suggestion is to add the following
line (as a single line) close to the top of the
script that comes with Tomcat (directory
CATALINA_OPTS="-Xmx1G -Dcom.sun.media.jai.disableMediaLib=true -Djava.awt.headless=true"
For more information about Tomcat options see
Do the following:
Either move the
directory to the Tomcat
webapps directory or
create a symbolic link from the Tomcat
webapps directory to
cd /path/to/tomcat/webapps ln -s /path_to_base/www base2
Make sure that user Tomcat is running as can read
all objects in the directory defined by
plugins.dir in file
Make sure that user Tomcat is running as owns (i.e.,
can read, write, delete and create) all objects in
the directory, as well as the directory itself,
defined by userfiles in file
If you plan to install extensions you should make
sure that the
directory is writable by the user account Tomcat is
and finalise with start, or restart, Tomcat, and try http://hostname:8080/base2 (change hostname to your hostname and base2 if you selected another name for the BASE Tomcat application) in your favourite browser. The BASE log-in page should appear after a few seconds.
This step is optional.
If you want run the Tomcat server through the Apache web
server, you need to install the Apache version 2 web
Happy BASEing. Now you can log on to your BASE server as user root (use the base_root_password from the database initialisation step above). You should begin with creating a couple user accounts, for more information on how to create user accounts please refer to Chapter 23, Account administration.