Support a persistent, private plugins directory alongside the built-in ones
CI / check (push) Successful in 41s
CI / deploy (push) Successful in 13s

plugins/ ships baked into the image and gets wiped/replaced by the
checkout sync on every deploy (docs/deployment.adoc), so a private
plugin dropped there — the exact use case the plugin contract was
designed for — didn't survive a redeploy the way uploaded GPX/kiwix
data under data/ does.

Plugins.list/run now accept either one directory or an array, and
app.rb checks the built-in plugins/ plus data/plugins/ (already
covered by the existing ./data bind mount, no new volume needed).
This commit is contained in:
randy committed 2026-09-09 17:24:52 +02:00
1 parent 1733fc7c1b
commit 6e0b67f2a0
5 files changed
+82 -19

No files matched your search

+5
View File
@@ -50,6 +50,11 @@ expect this to flip the other way, `/srv/docker` symlinked to
files, `offline.pmtiles`, `terrain.pmtiles`, and
`kiwix/wikipedia.zim` (see `docs/development.adoc` for each).
Persisted via that bind mount, so a redeploy never touches it.
Also where a private import plugin belongs (`data/plugins/<name>/`,
see `lib/maptool/plugins.rb`'s `PLUGINS_DIRS`) — `build/plugins/`
only holds what's checked into this public repo, and gets wiped and
replaced by the checkout sync on every deploy same as the rest of
`build/`.
* `.env` — regenerated every deploy (see below), lives here rather
than in `build/` for the same reason as the symlink: `docker
compose`/`podman compose` auto-load `.env` from the compose file's