All checks were successful
Build and Push / build (push) Successful in 7s
Key changes:
- Replace ratings_server.py + status.html with a unified server.py that
serves the map, scraper status dashboard, and ratings API in one process
- Add scraper_stats.py utility: each scraper writes per-run stats (fetched,
accepted, excluded, duration) to stats_<source>.json for the status page
- generate_status.py: respect DATA_DIR env var so status.json lands in the
configured data directory instead of always the project root
- run_all.sh: replace the {"status":"running"} overwrite of status.json with
a dedicated scraper_running.json lock file; trap on EXIT ensures cleanup
even on kill/error, preventing the previous run's results from being wiped
- server.py: detect running state via scraper_running.json existence instead
of status["status"] field, eliminating the dual-use race condition
- Makefile: add serve (local dev), debug (Docker debug container) targets;
add SERVER_PORT variable
- build/Dockerfile + entrypoint.sh: switch to server.py, set DATA_DIR,
adjust volume mounts
- .gitignore: add *.json and *.log to keep runtime data files out of VCS
- mapa_bytu.html: price-per-m² colouring, status link, UX tweaks
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
23 lines
710 B
Bash
23 lines
710 B
Bash
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
export DATA_DIR="/app/data"
|
|
|
|
# Create symlinks so scripts (which write to /app/) persist data to the volume
|
|
for f in byty_sreality.json byty_realingo.json byty_bezrealitky.json \
|
|
byty_idnes.json byty_psn.json byty_cityhome.json byty_merged.json \
|
|
mapa_bytu.html ratings.json; do
|
|
# Remove real file if it exists (e.g. baked into image)
|
|
[ -f "/app/$f" ] && [ ! -L "/app/$f" ] && rm -f "/app/$f"
|
|
ln -sf "$DATA_DIR/$f" "/app/$f"
|
|
done
|
|
|
|
echo "[entrypoint] Starting crond..."
|
|
crond -b -l 2
|
|
|
|
echo "[entrypoint] Starting initial scrape in background..."
|
|
bash /app/run_all.sh &
|
|
|
|
echo "[entrypoint] Starting server on port 8080..."
|
|
exec python3 /app/server.py
|