No updates detected yet. GitHub releases will appear here.
Calendar aggregator for Eastern Orthodox events in Stockholm/Sweden
翻訳待ち
Loading the full README. The saved excerpt is shown below.
En webbtjänst som samlar gudstjänstscheman från östortodoxa församlingar i Sverige i en gemensam kalender. • Samlar scheman från flera östortodoxa församlingar i Sverige • Webbgränssnitt för att bläddra bland kommande gudstjänster • Filtrera efter församling • ICS-kalenderflöde för prenumeration i Google Kalender, Apple Kalender m.fl. • JSON-API för programmatisk åtkomst Data samlas in av ett schemalagt jobb som kör alla scrapers och sparar resultaten i Firestore. Webbservern läser sedan från Firestore för snabb responstid.Read the full README ↗
En webbtjänst som samlar gudstjänstscheman från östortodoxa församlingar i Sverige i en gemensam kalender.
https://ortodoxagudstjanster.se
┌──────────────────────────────────────────────────────────┐
│ Insamling (var 3:e timme, 06–21) │
│ Cloud Scheduler → Cloud Run Job → Scraping → Firestore │
└──────────────────────────────────────────────────────────┘
↓
┌──────────────────────────────────────────────────────────┐
│ Webbserver │
│ ortodoxagudstjanster.se → Cloud Run → Läs Firestore │
└──────────────────────────────────────────────────────────┘
Ett schemalagt jobb kör alla scrapers och sparar resultaten i Firestore. Vissa församlingar publicerar sina scheman som bilder eller fritext; de tolkas med OpenAI:s API. Webbservern läser från Firestore för snabb responstid.
Stockholms län
Västra Götalands län
Örebro län
Östergötlands län
Dessutom visas Ortodoxt sommarläger. De flesta ortodoxa församlingar i Sverige publicerar ännu inga scheman här; alla finns på kartan på ortodoxagudstjanster.se/parishes.
Besök ortodoxagudstjanster.se. Vid första besöket väljer du ditt län, och sedan kan du justera vilka församlingar och språk som visas i filterpanelen. Valet sparas i webbläsaren.
Kalenderlänken finns längst ner i filterpanelen på startsidan och på ortodoxagudstjanster.se/calendar, tillsammans med instruktioner för Google Kalender, Apple Kalender och andra appar. Länken innehåller de församlingar och språk du har valt.
| Endpoint | Beskrivning |
|---|---|
GET /api/services | Alla gudstjänster som JSON |
GET /api/parishes | Alla församlingar med adress, län och koordinater |
GET /api/last-updated | ID för senaste insamlingen (en tidsstämpel i UTC) |
GET /calendar.ics | ICS-flöde (se parametrar nedan) |
Parametrar för /calendar.ics:
| Parameter | Beskrivning |
|---|---|
includeCounties | Kommaseparerade län, t.ex. Stockholm,Örebro. Nya församlingar i länet tas med automatiskt. |
includeParishes | Kommaseparerade församlingsnamn |
includeLang | Kommaseparerade språk: Svenska, Engelska, Övrigt |
Utan parametrar returneras församlingarna i Stockholms län. De äldre parametrarna include och exclude fungerar fortfarande för befintliga prenumerationer.
Kräver Go 1.25+.
# Installera beroenden
go mod download
# Kör webbserver lokalt (kräver Firestore-åtkomst)
export GCP_PROJECT_ID=ortodoxa-gudstjanster
export FIRESTORE_COLLECTION=services
go run ./cmd/server
# Kör insamlingsjobb lokalt (kräver GCS och OpenAI API)
export GCP_PROJECT_ID=ortodoxa-gudstjanster
export FIRESTORE_COLLECTION=services
export GCS_BUCKET=ortodoxa-gudstjanster-ortodoxa-store
export OPENAI_API_KEY=din-nyckel
go run ./cmd/ingest
Servern startar på http://localhost:8080.
| Variabel | Beskrivning | Standard |
|---|---|---|
PORT | Serverport | 8080 |
GCP_PROJECT_ID | GCP-projekt-ID | (krävs) |
FIRESTORE_COLLECTION | Firestore-collection | services |
SMTP_HOST | SMTP-server för feedback-mejl | - |
SMTP_PORT | SMTP-port | - |
SMTP_USER | SMTP-användarnamn | - |
SMTP_PASS | SMTP-lösenord | - |
SMTP_TO | Mottagare för feedback | - |
| Variabel | Beskrivning | Standard |
|---|---|---|
GCP_PROJECT_ID | GCP-projekt-ID | (krävs) |
FIRESTORE_COLLECTION | Firestore-collection | services |
GCS_BUCKET | GCS-bucket för cache av API-svar och titlar | (krävs) |
GCS_UPLOAD_BUCKET | GCS-bucket med manuellt uppladdade schemabilder | - |
OPENAI_API_KEY | Krävs för scrapers som tolkar bilder och fritext | (krävs) |
SMTP_HOST, SMTP_PORT, SMTP_USER, SMTP_PASS, SMTP_TO | Mejlaviseringar när en scraper misslyckas | - |
Om en scraper returnerar betydligt färre gudstjänster än vad som redan finns sparat behålls den gamla datan, den avvisade datan sparas i GCS och en avisering skickas.
docker build -t ortodoxa-gudstjanster .
# Kör webbserver
docker run -p 8080:8080 \
-e GCP_PROJECT_ID=ortodoxa-gudstjanster \
-e FIRESTORE_COLLECTION=services \
ortodoxa-gudstjanster ./server
# Kör insamlingsjobb
docker run \
-e GCP_PROJECT_ID=ortodoxa-gudstjanster \
-e FIRESTORE_COLLECTION=services \
-e GCS_BUCKET=ortodoxa-gudstjanster-ortodoxa-store \
-e OPENAI_API_KEY=din-nyckel \
ortodoxa-gudstjanster ./ingest
# Enhetstester (snabba, utan nätverk eller API-nyckel)
go test -short ./...
# Scrapertester mot de riktiga webbplatserna (läser API-nyckeln från gitignore/apikey.txt)
./run_tests.sh
Katalogen scripts/ innehåller verktyg för att inspektera och rätta Firestore-data, hantera markörerna på församlingskartan och driftsätta. scripts/README.md beskriver inspect-firestore.go och list-titles.go.
Tjänsten körs på Google Cloud Run. Infrastruktur hanteras med Terraform i terraform/; se terraform/README.md.
# Bygg och driftsätt en ny version (webbserver och insamlingsjobb)
./scripts/deploy.sh
# Kör insamlingen direkt i stället för att vänta på nästa schemalagda körning
gcloud run jobs execute ortodoxa-gudstjanster-ingest --region=europe-north1
Katalogen android/ innehåller en Trusted Web Activity som paketerar webbplatsen som en Android-app (se.ortodoxagudstjanster.twa). Bygg med cd android && ./gradlew assembleRelease.
Se CLAUDE.md för fullständig teknisk dokumentation.