Photos live on disk as photos/<board_key>/<file>.{jpg,jpeg,png} (a read-only
volume). A cached directory index (60s TTL) attaches a `photos` URL list to each
surface in /api/map; a /photos StaticFiles mount serves the files. Photos are
public — shown to anonymous visitors and managers alike.
The balloon renders a gallery (main image + thumbnail strip + "1 / N" counter);
clicking a thumbnail swaps the main image, and clicking the main image / "+N"
opens a fullscreen lightbox over the map (prev/next, Esc, backdrop close).
Surfaces without photos render exactly as before.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
16 lines
278 B
YAML
16 lines
278 B
YAML
services:
|
|
mapdash:
|
|
build: .
|
|
image: mapdash:latest
|
|
container_name: mapdash
|
|
restart: unless-stopped
|
|
networks: [edge]
|
|
env_file:
|
|
- .env
|
|
volumes:
|
|
- ./static:/app/static:ro
|
|
- ./photos:/app/photos:ro
|
|
networks:
|
|
edge:
|
|
external: true
|