halkyon/deploy/compose.search.yaml
Tizian 「ティツィアーン」 3ac1880ac8
build(deploy)!: the instance's compose file is compose.learn.yaml, beside compose.train.yaml and compose.todo.yaml
No file has Compose's default name any more, so .env's COMPOSE_FILE is always set,
naming compose.learn.yaml first (.env.example sets it). compose.yaml stays as a link to
compose.learn.yaml for the one deploy that switches learn.halkyon.eu's .env over: the
deploy's merge runs with the COMPOSE_FILE from before. A later commit removes it.

BREAKING CHANGE: an instance's deploy/.env must set COMPOSE_FILE, starting with
compose.learn.yaml, before the link goes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-11-02 23:12:15 +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.learn.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: