No description
  • Python 32.2%
  • JavaScript 29.8%
  • CSS 25.9%
  • HTML 10.8%
  • Dockerfile 1.3%
Find a file
Freydis Mende 16262b8d5e
All checks were successful
CI / Lint (push) Successful in 8s
CI / Docker build & push (push) Successful in 4s
CI / Deploy (push) Successful in 1s
fix scraper encoding
2026-06-07 18:24:06 +02:00
.forgejo/workflows fix ci 2026-06-01 17:57:31 +02:00
.github add ci magic 2026-06-01 17:03:00 +02:00
.pre-commit-config.yaml add ci magic 2026-06-01 17:03:00 +02:00
docker-compose.yml traefik 2026-03-27 20:55:04 +01:00
Dockerfile initial import 2026-03-27 20:48:01 +01:00
fleamarkets.json fix scraper encoding 2026-06-07 18:24:06 +02:00
index.html add today button 2026-03-28 13:00:37 +01:00
pyproject.toml add ci magic 2026-06-01 17:03:00 +02:00
README.md add readme 2026-06-07 18:21:44 +02:00
scrape.py fix scraper encoding 2026-06-07 18:24:06 +02:00
script.js add today button 2026-03-28 13:00:37 +01:00
style.css add today button 2026-03-28 13:00:37 +01:00
uv.lock fix lint 2026-06-01 18:00:35 +02:00

Flohmarkt-Kalender

A flea-market calendar for the Flensburg area, live at flohmarkt.freyd.is.

Architecture

Two independent parts:

  • Scraper (scrape.py) — fetches dates from flohmarkt-in-flensburg.de and marktcom.de and writes them to fleamarkets.json. Run manually or on a schedule.
  • Frontend (index.html, style.css, script.js) — vanilla HTML/CSS/JS calendar that reads fleamarkets.json at runtime. Served by nginx via Docker. No build step, no framework.

fleamarkets.json is the contract between the two: an array of { "date": "YYYY-MM-DD", "location": string } objects.

Development

Requires Python 3.11+ and uv.

uv sync --group dev   # install runtime + dev deps
pre-commit install    # set up git hooks
uv run scrape         # run the scraper

Deployment

The Docker image (nginx:alpine) is built and pushed in CI, then deployed via Portainer webhook.

docker compose up     # run locally