"Routes OpenFreeMap deployment, HTTP-host maintenance,
Scanned 9/8/2026
Install to Claude Code
npx -y skills add VectorSpaceLab/AREX-Skill --skill openfreemap --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Openfreemap?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/vectorspacelab-openfreemap)More formats (shields.io, HTML) on the badges page.
---
name: openfreemap
description: "Routes OpenFreeMap deployment, HTTP-host maintenance,
tile-generation, load-balancing, and client-integration workflows."
disable-model-invocation: true
metadata:
disco-role: operating
license: NOASSERTION
---
# OpenFreeMap
Use this skill for OpenFreeMap repository operations: clean-server bootstrap, HTTP-host sync, tile generation, round-robin DNS maintenance, public style integration, and benchmark helpers.
## Quick install and inspection
Create a Python 3.11 environment and install the editable repo packages you need for inspection:
```bash
python -m pip install -e . -e modules/http_host -e modules/tile_gen -e modules/loadbalancer
```
OpenFreeMap's Python packages read configuration at import time. If you are inspecting a checkout before a real deployment exists, point `ENV` at `sample` so `ssh_lib` can read `config/.env.sample`, and provide a temporary `config.json` stub or deployment-generated config for the host-side modules.
Minimal safe import check:
```bash
ENV=sample python -I -c "import ssh_lib, http_host_lib.config, tile_gen_lib.config, loadbalancer_lib.config"
```
The repo does not require a GPU/accelerator backend. A single CPU-capable inspection environment is enough.
## What to read first
- `references/repo-provenance.md` — check whether this skill still matches the current checkout.
- `references/configuration.md` — read this when a task mentions `.env`, `config.json`, bucket credentials, or deployment prerequisites.
- `references/troubleshooting.md` — read this first for import/config/runtime failures.
- `references/client-integration.md` — read this for MapLibre, Mapbox migration, Leaflet, OpenLayers, mobile, or custom-style questions.
- `references/benchmarking.md` — read this for localhost benchmarking and path-list replay.
## Route map
### 1. Clean-server bootstrap and deployment
Start here when the request is about a fresh Ubuntu server, a VM, or the `init-server.py` orchestration entry point.
Follow `sub-skills/deployment/SKILL.md` for:
- SSH connection setup and confirmation prompts.
- Remote user creation, sudo setup, and package installation.
- HTTP-host, tile-generation, and load-balancing deployment entry points.
- The quick-test path with `SKIP_PLANET=true` before a full planet run.
### 2. HTTP-host runtime maintenance
Start here when the request is about downloading btrfs images, assets, version files, mounting tiles, rebuilding nginx config, or running the sync cron workflow.
Follow `sub-skills/http-host/SKILL.md` for:
- `download-btrfs`, `download-assets`, `mount`, `fetch-versions`, `nginx-config`, `sync`, `auto-clean`, and `debug`.
- `metadata_to_tilejson.py`, which is bundled as a reusable helper.
- Errors such as missing images, stale mounts, or missing deployment config.
### 3. Tile generation and publishing
Start here when the request is about Planetiler runs, MBTiles extraction, Btrfs image conversion, uploads, or version promotion.
Follow `sub-skills/tile-generation/SKILL.md` for:
- `make-tiles`, `upload-area`, `make-indexes`, and `set-version`.
- How MBTiles become deduplicated hard-linked Btrfs trees.
- Why `shrink_btrfs.py` stays reference-only instead of being wrapped as a routine helper.
### 4. Round-robin DNS and certificate publishing
Start here when the request is about Cloudflare DNS records, host-health checks, certificate deploy hooks, or round-robin public hosts.
Follow `sub-skills/load-balancing/SKILL.md` for:
- `check`, `fix`, and the one-time `roundrobin-dns-writer` setup path.
- The bundled `rclone_write.sh` deploy hook.
- Cloudflare, Telegram, and host-list troubleshooting.
## Client usage and public-instance guidance
When the task is about using OpenFreeMap in a site or app rather than operating the repo itself, read `references/client-integration.md`.
That reference covers:
- MapLibre GL JS integration.
- Mapbox-to-MapLibre migration guidance.
- Leaflet and OpenLayers adapters.
- Mobile-app usage through MapLibre Native.
- Custom styles and Maputnik-driven edits.
## Benchmarking helpers
When the task is about replaying nginx access patterns or checking localhost throughput, read `references/benchmarking.md` and use the bundled helpers in `scripts/`.
- `scripts/nginx_to_path_list.py` converts a tiny access-log sample into a replay list.
- `scripts/wrk_custom_list.lua` replays those paths with `wrk`.
## Common repo facts
- OpenFreeMap is designed for clean Ubuntu servers or dedicated VMs, not for casual local installs.
- HTTP-host and tile-generation workflows assume `/data/ofm/config/config.json` exists on the target host.
- Round-robin DNS workflows additionally need `cloudflare.ini` and `rclone.conf`.
- `MapLibre` is the preferred client integration path; Mapbox GL JS 2.x+ is not the recommended route.
- The repo ships no native test suite; safe CLI help checks and tiny synthetic fixtures are the usual verification path.
## Freshness check
Before relying on this skill for a changed checkout, read `references/repo-provenance.md`.
If the commit, branch, dirty state, or evidence roots differ from that snapshot, refresh the skill before trusting the routes or references.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!