Files
scout-website/docker-compose.yml
T
Claude 27f1a2104b calendar: consume the scout-calendar feed instead of local events.json
Events now come from EVENTS_FEED_URL (the scout-calendar container,
which serves Radicale mike/site73 as JSON). The last good copy is
cached to /data/events-cache.json and served whenever the feed is down
or empty; 'Nothing on the books' remains the cold-start floor only.
The round-trip test proved the feed reproduces all 32 rows of
app/events.json byte-identically, so nothing visible changes today.

Removes app/events.json, the first-boot seed copy, and the local load
path; README calendar section rewritten; compose gains EVENTS_FEED_URL
from the Portainer stack env.
2026-08-29 11:33:43 -04:00

40 lines
1.3 KiB
YAML

# scout-website — greenlanescouts73.org (Pack & Troop 73)
#
# Deployed as a Portainer Repository stack pointed at this repo
# (ops/portainer-stacks/00-the-rule.md in claude-workspace applies):
# - no relative bind mounts: `.` resolves to Portainer's clone, not /srv
# - no env_file: NTFY_URL comes from the Portainer stack env
# Images live OUTSIDE the repo at /srv/scout-website-assets/img (bind-mounted
# read-only) so photos never bloat clones.
# The calendar comes from the scout-calendar feed (EVENTS_FEED_URL, set in
# the Portainer stack env); /data/events-cache.json is the stale fallback.
name: scout-website
services:
scout-website:
build:
context: ./app
container_name: scout-website
restart: unless-stopped
ports:
- "8132:8000"
environment:
- NTFY_URL=${NTFY_URL}
- SHEET_ID=${SHEET_ID}
- NTFY_BASE=${NTFY_BASE}
- NTFY_TOPIC=${NTFY_TOPIC}
- NTFY_TOKEN=${NTFY_TOKEN}
- ADMIN_TOKEN=${ADMIN_TOKEN}
- EVENTS_FEED_URL=${EVENTS_FEED_URL}
volumes:
- /srv/scout-website/data:/data
- /srv/scout-website/secrets/service_account.json:/app/service_account.json:ro
- /srv/scout-website-assets/img:/app/static/img:ro
networks:
- default
- npm
networks:
npm:
external: true
name: arrstack_arr_net