maplibre-gl-js Docker & Self-Hosted Deployment

GitHub

MapLibre GL JS - Interactive vector tile maps in the browser

11,266 stars TypeScript TypeScript 1 file ยท ~7,671 tokens #hacktoberfest#maplibre#maplibre-gl#maplibre-gl-js#typescript#webgl2
RAW Compose
1. Pull Image (DOCKERHUB) docker pull zensical/zensical
2. Docker Run (1-Click Launch) docker run -d --name maplibre-gl-js -p 8000:8000 --restart always zensical/zensical:0.0.69
3. Podman Run podman run -d --name maplibre-gl-js -p 8000:8000 --restart always zensical/zensical:0.0.69
4. Skopeo Inspect (Zero-Pull Manifest) skopeo inspect docker://docker.io/zensical/zensical:0.0.69
5. ORAS Pull (OCI Artifact) oras pull zensical/zensical:0.0.69
6. Compose Deployment docker compose up -d
docker-compose.yml
Download .yml
services:
  docs:
    image: zensical/zensical:0.0.69
    volumes:
      - .:/docs
    working_dir: /docs
    command: build --strict

  docs-serve:
    image: zensical/zensical:0.0.69
    volumes:
      - .:/docs
    working_dir: /docs
    ports:
      - "8000:8000"
    command: serve --open --dev-addr=0.0.0.0:8000

  # One command to build the library and serve the examples, without a local
  # Node.js setup: `docker compose run --rm --service-ports dev`, then open
  # http://localhost:9966/test/examples/ . node_modules lives in a named
  # volume so the host tree (and any host-native builds) are left untouched.
  dev:
    # Node version should be kept in sync with .nvmrc.
    image: node:26.11
    working_dir: /app
    volumes:
      - .:/app
      - dev-node-modules:/app/node_modules
    ports:
      - "9966:9966"
    command: sh -c "npm ci && npm run build-dist && npx st --no-cache -H 0.0.0.0 --port 9966 ."

volumes:
  dev-node-modules: