Skip to content

Server settings Apache, PHP, Java, MySQL MariaDB

AI Bot edited this page Nov 3, 2026 · 5 revisions

Installation and operations

Choose a deployment

Use the online server for hosted models. Use Docker Compose for a new local installation. The current application does not require the wiki's former PHP, PEAR, Sendmail, or Java 7 setup. Apache can still be a reverse proxy; it is not the application runtime.

Prerequisites and resources

Install Git, Docker Engine, and the Docker Compose plugin. Initial builds need network access for dependencies. Chemistry workers need enough RAM for the dataset, feature profile, and classifier; there is no universal safe memory-per-molecule rule.

The example environment sets an 8 GiB database buffer pool, 16 GiB model-worker limit, and 6 GiB predictor limit, plus other services. Review these for your host before startup. Container limits are ceilings rather than reserved memory, but concurrent jobs can still exhaust a small host. Do not perform resource-heavy production builds on a host that cannot accommodate them.

Clone and configure

git clone https://github.com/jwildenhain/molclass.git
cd molclass
cp .env.example .env

Edit .env:

  • Set distinct long random MOLCLASS_DB_ROOT_PASSWORD and MOLCLASS_DB_PASSWORD values.
  • Set MOLCLASS_CODE_REVISION to the immutable revision built.
  • Review MOLCLASS_INNODB_BUFFER_POOL, service memory limits, and ports.
  • Choose training-data intake and configuration policies using MOLCLASS_DATA_INTAKE_ENABLED and MOLCLASS_CONFIGURATION_ENABLED.

Keep secrets untracked. docker-compose.yml is the effective configuration: some worker arguments are specified directly in service commands, so merely adding a similarly named environment variable does not necessarily change them.

Build and start

docker compose build
docker compose up -d
docker compose ps
curl --fail http://127.0.0.1:8000/api/v1/health/readiness
curl --fail http://127.0.0.1:8082/actuator/health/readiness

Open localhost:3000. Seven services run: database, API, frontend, predictor, and SDF/model/molecule workers. Database, API, and predictor define health checks; frontend and workers should be running.

An empty database volume initializes from sql/v3/. A fresh installation does not include the public server's datasets or trained models. Import your own SDF data, train models, and arrange approval before prediction.

Approval setup

The stock API container does not contain the JDK/Gradle/source prerequisites for web approval. Training can finish while decision controls remain disabled. Configure the supported host administrative bridge or use the documented approval CLI with the intended database credentials. Never bypass approval by manually editing publication pointers.

See review setup and canonical approval transaction.

Public deployment and access

Compose binds published ports to loopback. Put a TLS reverse proxy in front of a public deployment and route the frontend and API paths appropriately. Protect operator-only functions with the administrative controls in the production guide. The model-review token is separate from an integration API key.

Disabling training-data intake does not disable ad-hoc registration/prediction against published models. Configuration controls separately govern model/dataset changes. Check current route guards before describing a deployment as entirely read-only.

Persistent data, upgrades, and recovery

Keep database and upload volumes persistent and back them up. Store local dumps and deployment snapshots under the repository's ignored backups/ directory. Backups are not part of a public wiki or source commit.

SQL initialization scripts run on an empty database, not automatically on every restart. Existing deployments need an explicit migration plan, backup, and verification. Do not apply every migration blindly to an existing schema. Retain the deployed source revision and image identities for rollback.

For stalled work, inspect the relevant job status and worker logs: sdf-worker handles analysis/import, model-worker handles training, and molecule-worker handles registration/prediction. Job leases and retries are persisted; resubmitting a request may create duplicate work.

Developer setup and detailed runbooks

Current container sources use Java 17, Python 3.12, and Node 20; MariaDB is configured as 10.11. CDK and Weka versions are defined by Gradle. Use the repository's locked dependencies rather than the old wiki's global classpath instructions.

Installation guide · Compose configuration · Environment template · Operations · Production deployment and rollback

Clone this wiki locally