J-AST Help

Server

J-AST can be easily hosted on any Linux/Windows/macOS server that supports Java. Both bare-metal and Docker-based hosting are supported and have been tested by us.

Bare metal

You can download pre-packaged server distributions of J-AST from our website. Start the server.jar file using Java. Use standard methods for configuring Spring Boot (e.g., environment variables).

Docker (Linux only)

We provide a ready-to-use docker-compose setup for Linux that will build a package containing all necessary files. Alternatively, you can use our server packages and adapt our Dockerfile and docker-compose.yml to your needs.

All files can be found in the J-AST source code directory under the subfolder dist/docker.

If you want to use the provided prepare.sh script, you will first have to copy the JIPipe version associated to the J-AST version into [Repository root]/bin/jipipe-linux. Follow the structure provided by the server packages our ideally just use the JIPipe distribution from our packages.

Deployment on subpath

While Spring boot supports subpaths (e.g., https://asb.hki-jena.de/j-ast-app/) by just changing the SERVER_SERVLET_CONTEXT_PATH environment variable to the desired subpath (in our example /j-ast-app), the frontend toolkit does not allow for such a simple change.

You will need to build your own server packages that come with a modified frontend. To do this, you can adapt our existing build scripts:

cd dist/server-hki ./build.sh 0 /j-ast-app /j-ast-app/api

You will need to provide the context path for the frontend and the API. When running the server, do not forget to set SERVER_SERVLET_CONTEXT_PATH accordingly!

Configuration

We highly recommend to change various default configurations. You can also find the full configuration file below.

Database

J-AST was designed to work both with H2 and MariaDB databases, where H2 is intended for the use in our desktop application and MariaDB should be used whenever J-AST is deployed as server.

If you use environments to configure J-AST, set the following:

SPRING_DATASOURCE_URL=jdbc:mariadb://mariadb:3306/DATABASE_NAME SPRING_DATASOURCE_USERNAME=DATABASE_USER SPRING_DATASOURCE_PASSWORD=DATABASE_PASSWORD

Admin account

We highly recommend to change the username and password of the administrator account, as well as the contact E-Mail:

ACCOUNTS_ADMIN_USERNAME=USERNAME@DOMAIN ACCOUNTS_ADMIN_PASSWORD=ADMIN_PASSWORD ACCOUNTS_ADMIN_CONTACT=ADMIN_EMAIL_ADDRESS

JWT Security

Do not forget to change the JWT secret!

SECURITY_JWT_SECRET=LONG_STRING_USED_AS_JWT_SECRET

Provider info

If you host J-AST for public use, do not forget to follow your local government's laws and add an imprint and if necessary a data protection/privacy statement. You also should link to the hosting institution.

PROVIDER_PROVIDER_NAME=YOUR_INSTITUTION PROVIDER_PROVIDER_URL=YOUR_INSTITUTION_ADDRESS PROVIDER_IMPRINT_FILE=LOCAL_FILE_FOR_IMPRINT PROVIDER_PRIVACY_STATEMENT_FILE=LOCAL_FILE_FOR_PRIVACY_STATEMENT

The backend will attempt to access the imprint and privacy statement files if requested. If the paths are empty or are not found, an empty statement will be generated.

Registration and guest accounts

The J-AST server can be configured to allow guest accounts and limit registrations:

ACCOUNTS_ALLOW_SELF_REGISTER=false ACCOUNTS_ALLOW_GUEST_ACCOUNTS=true ACCOUNTS_GUEST_PROJECT_LIMIT=1 ACCOUNTS_GUEST_IMAGE_LIMIT=10 ACCOUNTS_GUEST_ACCOUNT_EXPIRES_MINUTES=4320

The settings above will prevent self-registration, but allow the creation of limited guest accounts with a limit on images and projects. After the given time, the account is deactivated and the data is deleted.

Runtime

By default, J-AST allows to run two JIPipe instances in parallel. Adapt the following settings:

ORG_JOBRUNR_BACKGROUND_JOB_SERVER_WORKER_COUNT=NUMBER_OF_WORKERS

J-AST allocates 8GB of RAM per JIPipe instance. You can change this by setting the following variable:

RUNTIME_FIJI_ARGS_1=8G

Full configuration file

The full YAML configuration file can be found below:

server: port: 8081 spring: datasource: # url: jdbc:h2:file:./storage/database # username: sa # password: password # driverClassName: org.h2.Driver url: 'jdbc:mariadb://localhost:3306/jast-dev' username: jast-dev password: jast driver-class-name: org.mariadb.jdbc.Driver jpa: hibernate: ddl-auto: update show-sql: false servlet: multipart: enabled: true max-file-size: 10MB org: jobrunr: background-job-server: enabled: true worker-count: 2 dashboard: enabled: true runtime: fiji-path: 'bin/jipipe-linux' fiji-executable-path: 'bin/jipipe-linux/ImageJ-linux64' fiji-args: [ '--memory', '8G' ] fiji-wrapper-enabled: true fiji-wrapper: '/usr/bin/xvfb-run' fiji-wrapper-args: [ '-a' ] custom-temp-directory: "./storage/tmp" data-directory: "./storage/data" shared-resources-directory: "./share" keep-tmp: true accounts: admin-username: 'admin@localhost' admin-password: 'Ckw55ryzy1mXGxb8' provider: provider-name: 'Localhost' provider-url: 'http://localhost' imprint-file: '' privacy-statement-file: '' security: jwt-secret: "8TJGD0tLb0M20pxRyasR3ajktjYVfhzqVauIleiKfRJdy3SVKr95JYpC7enixXeD" jwt-access-token-expiration-in-minutes: 60 jwt-refresh-token-expiration-in-minutes: 1440 #server: # servlet: # context-path: '/abc' debug: off
08 January 2026