DNA //evolutions

JOpt TourOptimizer on Apple Platforms (macOS)

This document describes how to host JOpt TourOptimizer locally on Apple systems running macOS.
It is intended for developers, system engineers, and integrators who want to run JOpt on Apple hardware (including Apple Silicon) for development, testing, or small on-premise deployments.

Note: Hosting server-side Spring applications directly on iOS is not supported due to platform restrictions. This document therefore focuses on macOS, which is the appropriate Apple platform for running containerized backend services.


System Requirements

The following prerequisites are required:

  • macOS 12 or newer (Intel or Apple Silicon)
  • Docker-compatible container runtime
  • Apple Silicon (M1/M2/M3) or Intel x86_64 CPU
  • Minimum recommended resources:
    • CPU: 2 cores
    • Memory: 4 GB RAM

No additional virtualization configuration is required beyond what the container runtime provides.


Deployment Model

On macOS, JOpt TourOptimizer runs as a containerized Spring application:

  • Exposes REST APIs over HTTP
  • Uses environment variables or configuration files for configuration
  • Writes logs to standard output
  • Runs as a single-node deployment

This model is well suited for:

  • Local development
  • Integration testing
  • Demonstrations
  • Small-scale on-premise usage

Container Runtime Setup

Install a Docker-compatible container runtime for macOS (for example Docker Engine–based or Podman-based solutions).

After installation, verify that the runtime is available:

docker version

Ensure that the container runtime is running before proceeding.


Running JOpt TourOptimizer

Basic Startup

Start JOpt TourOptimizer using the following command:

docker run \
  --name jopt-touroptimizer \
  -p 8080:8080 \
  dna-evolutions/jopt-touroptimizer:latest

Once started, the application is reachable at:

http://localhost:8080

Configuration

Environment-Based Configuration

JOpt follows standard Spring configuration conventions.

Example:

docker run \
  --name jopt-touroptimizer \
  -p 8080:8080 \
  -e SPRING_PROFILES_ACTIVE=macos \
  -e JOPT_LICENSE_KEY=<license-key> \
  dna-evolutions/jopt-touroptimizer:latest

Configuration via Files

Configuration files can be mounted into the container:

docker run \
  --name jopt-touroptimizer \
  -p 8080:8080 \
  -v /Users/<user>/jopt/config/application.yml:/app/config/application.yml:ro \
  dna-evolutions/jopt-touroptimizer:latest

Spring Boot automatically detects configuration files in standard locations.


Apple Silicon Considerations

On Apple Silicon systems:

  • Ensure that the container image supports linux/arm64
  • If multi-architecture images are used, the correct architecture is selected automatically
  • Emulated amd64 images are supported but may result in reduced performance

For compute-intensive optimization workloads, native ARM64 images are strongly recommended.


Resource Management

Limit resource usage explicitly to avoid system contention:

docker run \
  --name jopt-touroptimizer \
  -p 8080:8080 \
  --cpus="2.0" \
  --memory="4g" \
  dna-evolutions/jopt-touroptimizer:latest

Logging and Health Monitoring

Logs

Access application logs using:

docker logs jopt-touroptimizer

Logs are written to standard output and integrate naturally with container tooling.

Health Endpoints

If Spring Boot Actuator is enabled, health endpoints can be used for monitoring:

  • /actuator/health
  • /actuator/health/liveness
  • /actuator/health/readiness

Networking and Security

  • Expose the service only on required interfaces
  • Prefer localhost bindings for development
  • Use HTTPS if the service is exposed beyond the local machine
  • Never embed license keys directly in scripts or shell history

Updates and Lifecycle Management

To update JOpt TourOptimizer:

docker pull dna-evolutions/jopt-touroptimizer:<version>
docker stop jopt-touroptimizer
docker rm jopt-touroptimizer
docker run ...

Always validate new versions before replacing existing installations.


Limitations

  • macOS deployments are intended for local or small-scale use
  • High availability and horizontal scaling require Kubernetes
  • iOS devices are not supported as hosting platforms

Summary

Running JOpt TourOptimizer on macOS provides a convenient and reliable setup for Apple-based development and on-premise scenarios. The containerized Spring architecture ensures consistent behavior across macOS, Linux, and Kubernetes environments.

For production-grade, scalable deployments, Kubernetes remains the recommended platform.