Skip to content
Back to skills

Openfreemap

ASecurity

"Routes OpenFreeMap deployment, HTTP-host maintenance,

  • 247 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 8, 2026
devopspythonrustbashbackend

Works with

  • cli

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 20 files and shows the line behind each finding

Scanned September 8, 2026

npx -y skills add VectorSpaceLab/AREX-Skill --skill openfreemap --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Openfreemap?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Openfreemap
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/vectorspacelab-openfreemap/badge)](https://www.skillsdirectory.com/skills/vectorspacelab-openfreemap)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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.

Files in this skill

  • SKILL.md5.1 KB
  • references/benchmarking.md2.2 KB
  • references/client-integration.md4.1 KB
  • references/configuration.md3.8 KB
  • references/repo-provenance.md1.8 KB
  • references/repo-routing-metadata.json325 B
  • references/troubleshooting.md5.5 KB
  • scripts/nginx_to_path_list.py2.2 KB
  • scripts/wrk_custom_list.lua1.4 KB
  • sub-skills/deployment/SKILL.md2.6 KB
  • sub-skills/deployment/references/api-reference.md2.8 KB
  • sub-skills/deployment/references/troubleshooting.md2.9 KB
  • sub-skills/deployment/references/workflows.md2.6 KB
  • sub-skills/http-host/SKILL.md2.6 KB
  • sub-skills/http-host/references/api-reference.md3.5 KB
  • sub-skills/http-host/references/troubleshooting.md3.2 KB
  • sub-skills/http-host/references/workflows.md2 KB
  • sub-skills/http-host/scripts/metadata_to_tilejson.py2.4 KB
  • sub-skills/load-balancing/SKILL.md2.4 KB
  • sub-skills/load-balancing/references/api-reference.md2.7 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.