# Indy with hot reload, for working on Indy itself. Runs from the source tree # with the same one-port layout as the image (dev.mjs), against ./data. # # docker compose -f compose.dev.yaml up # # The first start installs dependencies into ./node_modules, so it needs network. # # It runs as the container's root. Under rootless Podman that is your own user, # so files it writes stay yours. Under Docker on Linux, ./node_modules and # ./data end up owned by root; on a Mac, the install replaces the host's native # esbuild and sharp with Linux builds, so run `npm ci` again before using them # outside the container. name: indy-dev services: indy-dev: image: docker.io/library/node:24-bookworm-slim working_dir: /work command: > sh -c "npm ci --no-audit --no-fund --prefer-offline && npm run build:primitives && (cd app && node scripts/build-vendor.mjs) && node dev.mjs" ports: - "${INDY_DEV_PORT:-5178}:${INDY_DEV_PORT:-5178}" environment: PORT: ${INDY_DEV_PORT:-5178} INDY_URL: ${INDY_DEV_URL:-http://localhost:5178} # Other hostnames you open the dev server by, comma separated. INDY_DEV_ORIGINS: ${INDY_DEV_ORIGINS:-} INDY_DATA: /work/data INDY_TMP: /work/data/tmp NEXT_TELEMETRY_DISABLED: "1" volumes: - .:/work