Skip to main content

Quick start

This guide covers deployment on Linux with Docker Compose, including the platform, frontend, and simulation engines. External scheduling components have separate prerequisites.

1. Prepare the environment​

  • Git, Docker Engine, and a working Docker daemon.
  • Docker Compose v2, or a compatible docker-compose installation.
  • At least 8 GB of available memory and sufficient disk space.
  • For GPU components: an NVIDIA driver and NVIDIA Container Toolkit.

The platform and the MA + PIBT test/tuning workflow support CPU operation. CTDE-PPO pipeline training requires CUDA; the platform's CPU fallback is not a guarantee that every algorithm can train without a GPU. The batch container workflow also has its own GPU requirements.

2. Prepare sibling repositories​

mkdir skyengine-workspace
cd skyengine-workspace
git clone https://github.com/dayu-autostreamer/skyengine.git
git clone https://github.com/skyrimforest/SkyEngine-FJSP.git
git clone https://github.com/skyrimforest/SkyEngine-MAPF.git

Obtain skyengine-DFJSPT from the project's delivery package or an authorized repository supplied by the maintainers. Place it next to skyengine, with that exact lowercase directory name:

skyengine-workspace/
├── skyengine/
├── skyengine-DFJSPT/
│ └── dfjsp_t_rl/__init__.py
├── SkyEngine-FJSP/
└── SkyEngine-MAPF/
Installation prerequisite

The current install.sh checks for skyengine-DFJSPT/dfjsp_t_rl/__init__.py before building. A clone of the public skyengine repository alone is not sufficient for this installation workflow. Contact the maintainers if the delivery is unavailable.

3. Build the algorithm images​

From skyengine-workspace:

cd SkyEngine-FJSP
docker compose build
cd ../SkyEngine-MAPF
docker compose build

Follow the respective repositories for model weights, GPU requirements, and image names. DFJSP-T is a Python package mounted into the backend, not another algorithm image to build in this step.

4. Install and start​

From SkyEngine-MAPF:

cd ../skyengine
./install.sh
./start.sh

Installation checks the environment, prepares directories and .env, updates dataset template digests, builds images, and probes CUDA availability inside the backend image. If you move the project directory, run ./install.sh again to update host paths before starting.

Use the addresses printed by start.sh. Occupied host ports are automatically replaced by available ports.

ServiceDefault address
Frontendhttp://localhost:5180
Backend APIhttp://localhost:8233
Online enginehttp://localhost:8080

5. Check the services​

docker compose -f docker-compose.yml ps
docker compose -f docker-compose.yml logs --tail 100 backend frontend
docker compose -p skyengine-online -f docker-compose-online.yaml logs --tail 100 engine

Open the printed frontend address. Select a containerized factory for an initial run, or open /training under the frontend address for the algorithm experiment workbench.

Compute mode​

Set SKYENGINE_GPU_MODE in .env:

ValueBehavior
autoUse backend CUDA when the container probe succeeds; otherwise CPU
cudaRequire an NVIDIA GPU accessible to Docker and backend PyTorch
cpuDo not request GPU access for the backend

PPO currently uses one selected GPU; entering multiple GPU IDs does not enable multi-GPU training. Sampling and validation use CPU resources.

Rebuilding or restarting the backend interrupts active experiments. Stop or finish those runs before applying dependency, Dockerfile, or GPU changes.

Stop the platform​

./stop.sh

The script stops platform, online-engine, and batch-engine Compose projects. It does not delete images, datasets, or logs.

Troubleshooting​

SymptomCheck
Missing DFJSP-T directoryVerify the sibling name and dfjsp_t_rl/__init__.py
SKYENGINE_DOCKER_HOST_DIR not setRun ./install.sh from the current project location
Address differs from the defaultRead start.sh output and the port values in .env
Algorithm image not foundBuild the external algorithm repositories and check image tags
Services fail to startInspect the three log commands above
OpenCV / libGL error during samplingUpdate dependencies and rebuild the backend using the project's dependency lockfile

Continue with operation and analysis or the experiment workbench.