personal activity index (bluesky, leaflet, substack)
pai.desertthunder.dev
rss
bluesky
1# Cloudflare Workers configuration for Personal Activity Index
2# Copy this file to wrangler.toml and update with your values
3
4name = "personal-activity-index"
5main = "build/index.js"
6compatibility_date = "2025-01-15"
7
8# D1 Database Binding
9# Create your D1 database with:
10# wrangler d1 create personal-activity-db
11# Then replace {DATABASE_ID} below with the ID from the output
12[[d1_databases]]
13binding = "DB"
14database_name = "personal-activity-db"
15database_id = "{DATABASE_ID}"
16
17# Cron Triggers for scheduled syncs
18# Runs every hour at minute 0
19[triggers]
20crons = ["0 * * * *"]
21
22# Environment variables for source configuration
23# Configure the sources you want to sync
24[vars]
25# Substack RSS feed URL
26SUBSTACK_URL = "https://patternmatched.substack.com"
27
28# Bluesky handle
29BLUESKY_HANDLE = "desertthunder.dev"
30
31# Leaflet publications (comma-separated id:url pairs)
32# Format: "id1:https://pub1.leaflet.pub,id2:https://pub2.leaflet.pub"
33LEAFLET_URLS = "desertthunder:https://desertthunder.leaflet.pub,stormlightlabs:https://stormlightlabs.leaflet.pub"
34
35# BearBlog publications (comma-separated id:url pairs)
36# Format: "id1:https://blog1.bearblog.dev,id2:https://blog2.bearblog.dev"
37BEARBLOG_URLS = "desertthunder:https://desertthunder.bearblog.dev"
38
39# CORS configuration (optional)
40# Comma-separated list of allowed origins for cross-origin requests
41# Supports exact match and same-root-domain matching
42# Example: "https://desertthunder.dev" allows pai.desertthunder.dev, api.desertthunder.dev, etc.
43CORS_ALLOWED_ORIGINS = "https://desertthunder.dev,http://localhost:4321"
44
45# Optional development key for local testing
46# When set, requests with X-Local-Dev-Key header matching this value are allowed
47CORS_DEV_KEY = "your-secret-dev-key-change-this"
48
49# Optional: Logging level
50# LOG_LEVEL = "info"
51
52[observability]
53[observability.logs]
54enabled = true
55head_sampling_rate = 1
56invocation_logs = true
57persist = true