Sorry, JavaScript is required for most features of this site.
Build, Install, Configure and Run

Supported Operating Systems

  1. CrushPaper has been developed on Windows 7, Windows 8 and on Linux.
  2. It is pure Java and so it should work on most operating systems.

How to Build CrushPaper

  1. Install Java. The version of Java used during development is 1.8.0_40 64 bit.
  2. Install Maven. The version of Maven used during development is 3.2.5.
  3. In the root of the crushpaper project run mvn package. This should compile all classes, run all tests, and create the executable JAR.
  4. To build without running the tests run mvn package -Dmaven.test.skip=true.
  5. To build with Eclipse follow these directions.

How to Install the CrushPaper Server

  1. Either download or build (see below) the CrushPaper Server executable Jar. It is named crushpaper-<version.jar.
  2. You can download it from GitHub.
  3. It is recommended that you run the CrushPaper server as a dedicated OS userid but this is optional.
  4. It is recommended that you use HTTPS but this is optional. You can generate an SSL certificate for free by following these directions.
  5. Choose the directory where you want to run CrushPaper. Call it $CRUSHPAPER.
  6. If using Unix: mkdir -p $CRUSHPAPER/logs $CRUSHPAPER/tmp $CRUSHPAPER/db $CRUSHPAPER/config $CRUSHPAPER/bin $CRUSHPAPER/backups $CRUSHPAPER/sessions
  7. If using Windows: mkdir %CRUSHPAPER%\logs %CRUSHPAPER%\tmp %CRUSHPAPER%\db %CRUSHPAPER%\config %CRUSHPAPER%\bin %CRUSHPAPER%/backups %CRUSHPAPER%/sessions
  8. Copy the CrushPaper Server executable JAR (crushpaper-version.jar) into the bin directory that was just created.
  9. Create crushpaper.properties in the config directory that was just created with:
    http.port = 8080
    database.directory = db
    temporary.directory = tmp
    logs.directory = logs
    sessionStore.directory = sessions
    singleUser = yourid
    loopbackIsAdmin=true
  10. If using Unix then create $CRUSHPAPER/bin/start with:
    cd $CRUSHPAPER
    JAVA_HOME=<path/to/java>
    PATH=$PATH:$JAVA_HOME/bin
    nohup java -server \
    -jar ./bin/crushpaper-version.jar \
    -properties ./config/crushpaper.properties \
    >> ./logs/crushpaper.log 2>&1 &
    Don't forget to make the script executable with: chmod +x $CRUSHPAPER/bin/start
  11. If using Windows then create %CRUSHPAPER%\bin\start.bat with:
    set CRUSHPAPER="<path/to/crushpaper>"
    cd %CRUSHPAPER%
    set JAVA_HOME="<path/to/java>"
    set Path=%Path%:%JAVA_HOME%\bin
    java ^
    -jar .\bin\crushpaper-<version>.jar ^
    -properties .\config\crushpaper.properties ^
    1> .\logs\crushpaper.log 2>&1
  12. If using Unix then start the CrushPaper server by running $CRUSHPAPER/bin/start.
  13. If using Windows then start the CrushPaper server by running %CRUSHPAPER%\bin\start.bat.
  14. Open your browser and visit http://localhost:8080.

How to Run the CrushPaper Server

  1. Ensure that your JAVA_HOME environment variable is set and your PATH environment variable includes the Java bin directory.
  2. The CrushPaper server can be run from any working directory but remember that relative paths in command line arguments and property files are relative to this working directory.
  3. Run it with this command: $ nohup java -jar <path/to/crushpaper-version.jar> -properties <path/to/crushpaper.properties> 2>&1 > path/to/logfile &
  4. To run it from the build area use this command: $ java -jar target/crushpaper-*.jar -properties src/main/sampleconfig/example.properties

How to Kill the CrushPaper Server

  1. If you kill -9 the server you risk corrupting the H2 database, although the H2 will usually be able recover the database at start up.
  2. You can shutdown the server with kill command.
  3. With administrator privileges you may also shutdown the server from its web site.

Command Line Arguments

  1. -properties <path/to/crushpaper.properties> - This is the path to the CrushPaper server properties file. This argument is mandatory.
  2. -help - This argument results in a very simple help message being printed.

Configuration File Properties

Mandatory Properties

  1. database.directory = <path/to/database/directory> - This is the path to the directory where the H2 database is stored.
  2. temporary.directory = <path/to/temporary/directory> - This is the path to the directory where temporary files are stored. These temporary files are user backup files that are in the process of being restored.
  3. logs.directory = <path/to/logs/directory> - This is the path to the directory where the server's HTTP request logs are stored.

Recommended Properties

  1. http.port = <port> - This is the HTTP port that the server listens on. Either this property or https.port must be set. Both can be set.
  2. singleUser = <username> - If this set to any value then anyone who can access the server is treated as if they signed into the account named <username>. This may be reasonable to use if CrushPaper is installed on a PC or laptop which is accessible only to trusted networks. Defaults to blank which disables this functionality.
  3. loopbackIsAdmin = <true|false> - This treats any session as an admin user if the session is connected from the same host on which the CrushPaper server is running using the loopback interface, i.e localhost:8080, loopback:8080, 127.0.0.1:8080 or 0:0:0:0:0:0:0:1:8080.
  4. sessionStore.directory = <path/to/directory> - This is the directory used to store HTTP session information. If this is not set then HTTP sessions will not be persist across server restarts.

HTTPS Properties

  1. https.port = <port> - This is the HTTPS port that the server listens on. Either this property or http.port must be set. Both can be set.
  2. https.keystore = <path/to/file> - This is the keystore file used for HTTPS. It must be set if https.port is set.
  3. https.keystorePassword = <password> - This is the password for the keystore file. It is optional because not all keystores have passwords.
  4. https.keymanagerPassword = <password> - This is the keymanager password for the keystore file. Not all keystores require this.

Optional Properties

  1. allowSaveIfNotSignedIn = <true|false> - If this is true creating a notebook automatically creates a new account for the session if the user is not signed in. Only set this to true for servers where you want to encourage people to try it out. Defaults to false.
  2. allowSelfSignUp = <true|false> - If this is true anyone who can access the server can create an account. Defaults to false.
  3. https.proxiedPort = <port> - Only set this if connections are forwarded from another port to https.port. This may only be set if https.port is set.

H2 Database Documentation

  1. The H2 Database documentation is here.


Try CrushPaper for free without creating an account!


Or watch the Demo Movie