All checks were successful
Build and Push / build (push) Successful in 13s
- Replace split setup (ratings_server.py on :8081 + http.server on :8080) with a single combined Flask server (server.py) on :8080 that serves static files and the /api/ratings GET/POST endpoints - Ratings are now persisted server-side: mapa_bytu.html loads ratings from GET /api/ratings on startup (API as source of truth) and POSTs on every change — enables cross-browser and cross-device state sharing while keeping localStorage as a synchronous read cache - Dockerfile: install flask, copy server.py instead of ratings_server.py, expose only port 8080 - entrypoint.sh: start single server process instead of two - Makefile: add serve / serve-debug targets for local development - scrape_psn.py: fix log label, add --max-pages stub arg for CLI parity - Refresh all scraped property data Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
23 lines
733 B
Bash
23 lines
733 B
Bash
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
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 combined server on port 8080..."
|
|
exec DATA_DIR="$DATA_DIR" python3 /app/server.py
|