Skip to content
WebAnno server installation
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


WebAnno Server Installation Guide (Version 3.2.2)

The following installation is based on Debian Operating System (Jessie 8.4.4) and the installation commands are executed as a root user.

First of all, Login as the root user using the following command:
sudo su -

You're now logged in as the root user. Run the following commands:

  1. Add the repository source:
    echo "deb trusty main" | tee /etc/apt/sources.list.d/webupd8team-java.list

    echo "deb-src trusty main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list

  2. verify it with the keys:
    apt-key adv --keyserver hkp:// --recv-keys EEA14886

  3. Update the apt-get package manager:
    apt-get update

  4. Install the java8 package:
    apt-get install oracle-java8-installer
    apt-get install oracle-java8-set-default

  5. Check whether the installation is successful using the following command:
    java -version

  6. Create a user for the tomcat Server (before we install the Tomcat server):
    sudo adduser --system --shell /bin/bash --gecos 'Tomcat Java Servlet and JSP engine' --group --disabled-password --home /home/tomcat tomcat

  7. Create a directory called tmp:
    mkdir -p ~/tmp

  8. Choose the directory:
    cd ~/tmp

  9. Download the Apache Tomcat Server from a mirror:

  10. unzip the tar contents:
    tar xvzf ./apache-tomcat-8.5.20.tar.gz

  11. Once you unzip the contents, you can delete the gzip file:
    rm ./apache-tomcat-8.5.20.tar.gz

  12. Move the Apache Tomcat directory to /usr/share :
    sudo mv ./apache-tomcat-8.5.20/ /usr/share/

  13. remove the older tomcat directory(if you have any) to make sure you are using the newest version:
    sudo rm -f /usr/share/tomcat

  14. Provide the soft link to Apache tomcat directory:
    sudo ln -s /usr/share/apache-tomcat-8.5.5 /usr/share/tomcat

  15. Install the apache server:
    apt-get install apache2

  16. Load and source the environment configurations of apache2 server:
    source /etc/apache2/envvars

  17. Start the Apache server:
    /etc/init.d/apache2 start

  18. To print the process info of apache server:
    ps -ef | grep apache

  19. Install the MySql server:
    sudo apt-get install mysql-server

  20. Now we will need to add the character-set-server=utf8 line to the my.cnf file(read the next step)

  21. Open the my.cnf file in nano file editor using nano /etc/mysql/my.cnf and add this line character-set-server=utf8 at the end of the file
    (You can exit the nano editor with Ctrl+x , then type y at the prompt and hit Enter)

  22. Login to MySQL:
    mysql -u root -p
    Enter your password at the prompt

  23. Execute following commands in Mysql interpreter:

    Create a database user called webanno with your password 'enter_your_password' which is later used by the application to access the database (instructions for file below).

    mysql> CREATE DATABASE webanno DEFAULT CHARACTER SET utf8 COLLATE utf8_bin ;

    mysql> CREATE USER 'webanno'@'localhost' IDENTIFIED BY 'enter_your_password';

    mysql> GRANT ALL PRIVILEGES ON webanno.* TO 'webanno'@'localhost';

    mysql> exit

  24. Install aptitude package manager with following command:
    aptitude install tomcat8-user authbind

  25. Create a directory called /opt:
    cd /opt/

  26. Create a new Tomcat Instance:
    tomcat8-instance-create -p 18080 -c 18005 webanno

  27. Change the permissions of /opt/webanno:
    chown -R www-data /opt/webanno

  28. Open the webanno configuration file in nano editor using:
    nano /etc/init.d/webanno

  29. Paste the following script in the file:


    # Licensed under the Apache License, Version 2.0:

    # kFreeBSD do not accept scripts as interpreters, using #!/bin/sh and sourcing.
    if [ true != "$INIT_D_SCRIPT_SOURCED" ] ; then
        set "$0" "$@"; INIT_D_SCRIPT_SOURCED=true . /lib/init/init-d-script
    # Provides:          webanno
    # Required-Start:    $remote_fs $syslog
    # Required-Stop:     $remote_fs $syslog
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: WebAnno init script
    # Description:       This file should be placed in /etc/init.d. It
    #                    allows starting/stopping WebAnno using the
    #                    "service" command and ensures that WebAnno starts
    #                    when the system is booted.

    # Author: Richard Eckart de Castilho

    JAVA_OPTS="-Djava.awt.headless=true -Xmx750m -XX:+UseConcMarkSweepGC -Dwebanno.home=$WEBANNO_HOME"

    setup_authbind() {
      # log_action_msg "Setting up authbind configuration for $DESC on port $WEBANNO_PORT"
      touch /etc/authbind/byport/$WEBANNO_PORT
      chmod 500 /etc/authbind/byport/$WEBANNO_PORT
      chown $WEBANNO_USER /etc/authbind/byport/$WEBANNO_PORT
      AUTHBIND="authbind --deep"

    tomcat_pid() {
      echo `ps -fe | grep -- "-Dcatalina.base=$CATALINA_BASE" | grep -v grep | tr -s " "|cut -d" " -f2`

    do_start_cmd_override() {
      if [ $WEBANNO_PORT -lt 1024 ]

      su - www-data -s "/bin/bash" -c "JAVA_OPTS=\"$JAVA_OPTS\" $AUTHBIND $CATALINA_BASE/bin/" > /dev/null 2>&1

    do_stop_cmd_override() {
      su - www-data -s "/bin/bash" -c "$CATALINA_BASE/bin/" > /dev/null 2>&1

    do_status() {
      local pid
      if [ -n "$pid" ]
        log_action_msg "Status $DESC: running"
        return 0
        log_action_msg "Status $DESC: stopped"
        return 1

You can exit the nano editor with Ctrl+x , then type y at the prompt and hit Enter

  1. Change the permissions of the above script file to an executable:
    chmod +x /etc/init.d/webanno

  2. Update the boot script to include webanno while starting system:
    update-rc.d webanno defaults

  3. Download the Webanno Web archive(.WAR) file:

  4. Moving the .WAR file to /opt/webanno/webapps:
    cp webanno-webapp-3.2.2.war /opt/webanno/webapps/webanno.war

  5. Create a directory /srv/webanno using following command:
    mkdir /srv/webanno

  6. Open the file in the nano editor:
    nano /srv/webanno/

  7. Paste the following properties definition:


# 60 * 60 * 24 * 30 = 30 days

# 60 * 5 = 5 minutes


ui.brat.sentences.number = 5
You can exit the nano editor with `Ctrl`+`x` , then type `y` at the prompt and hit `Enter`
  1. Change the permissions of webanno home directory:
    chown -R www-data /srv/webanno

  2. Finally, Start WebAnno!

    service webanno start

    WebAnno will be up and running at http://localhost:18080/webanno

  3. Following commands will display all the active ports with the service name:
    netstat -lp

Following are the commands to run ngrok. (No need to run the following commands if we are exposing the Port on web using the instance IP)
40. wget
41. unzip
42. apt-get install unzip
43. unzip
45. ./ngrok authtoken
46. ./ngrok http 18080
47. nano /root/.ngrok2/ngrok.yml
48. nohup ./ngrok http 18080
49. nano nohup.out
50. ngrok -log=stdout 18080 > ngrok.log &
51. ps -ef | grep ngrok


Official WebAnno Installation guide Installation steps are available on this link but it's not up-to-date and it assumes you have server installed with a user called www-data.

You can’t perform that action at this time.