halkyon/deploy/compose.search.yaml
Tizian 「ティツィアーン」 ba77248930
fix(deploy): the sidecars' downloads try again within the hour after a failed round
A failed BRouter segment or listing, a failed tile cut or an unwritable folder waited the whole refresh period, 30 days without routes or a map; they try again after an hour, doubling to a day. Photon's failed download backs off from a day to a week, and a dead Photon is noticed within a minute. The downloads' network is an ordinary bridge the three share, as the comments now say.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-10-30 15:53:12 +01:00

69 lines
2.2 KiB
YAML

# Place search for Halkyon Train (ADR 0030, D50), beside compose.train.yaml, which it
# needs: Photon on GraphHopper's weekly database of Europe, asked by Train's server
# alone. Switched on in .env:
#
# COMPOSE_FILE=compose.yaml:compose.train.yaml:compose.search.yaml
#
# Photon has no site and no sign-in: only Train's server reaches it, on a network of
# their own without a way out, for people signed in, and nothing it is asked is kept
# or logged. Its database (Europe's: a 32.6 GB download on 29 Oct 2026, more
# unpacked, to be measured) is in ./photon/data, renewed monthly, owned by a user ID of
# its own, which no person, no other container and not the CI runner uses. Its memory:
# PHOTON_HEAP (6g) for Java, PHOTON_MEMORY (8g) for the container. Setting it up:
# sidecars/README.md, Train's search.
services:
photon:
build:
context: ..
dockerfile: deploy/photon/Dockerfile
image: halkyon-photon
restart: unless-stopped
user: "61179:61179"
read_only: true
tmpfs:
- /tmp:size=64m,uid=61179,gid=61179
environment:
PHOTON_HEAP: ${PHOTON_HEAP:-6g}
volumes:
- ./photon/data:/data
# Beside Train's server alone: no site, no published port, no way out.
networks:
- search
mem_limit: ${PHOTON_MEMORY:-8g}
# No log: what people search for is where they go.
logging:
driver: none
photon-data:
image: halkyon-photon
restart: unless-stopped
user: "61179:61179"
read_only: true
tmpfs:
- /tmp:size=16m,uid=61179,gid=61179
command: ["/app/data.sh"]
environment:
# A path under GraphHopper's downloads; `europe/germany` for Germany alone.
PHOTON_REGION: ${PHOTON_REGION:-europe}
volumes:
- ./photon/data:/data
# Out to GraphHopper's downloads on `downloads`, an ordinary bridge with a way out
# to anywhere, shared with BRouter's segments and the map's downloads.
networks:
- downloads
mem_limit: 256m
logging:
driver: journald
train-server:
environment:
PHOTON_URL: http://photon:2322/
networks:
- search
networks:
# Train's server and Photon, without a way out.
search:
internal: true
downloads: