music on atproto
plyr.fm
1# plyr.fm configuration
2
3# app
4DEBUG=false
5PORT=8001
6FRONTEND_URL=http://localhost:5173
7# FRONTEND_CORS_ORIGIN_REGEX= # optional regex pattern for CORS (defaults to plyr.fm + localhost)
8
9# branding (optional)
10# backend branding settings
11# APP_NAME=plyr.fm
12# APP_TAGLINE=music streaming on atproto
13# CANONICAL_HOST=plyr.fm
14# CANONICAL_URL_OVERRIDE=
15# BROADCAST_CHANNEL_PREFIX=plyr
16
17# frontend branding (requires VITE_ prefix for SvelteKit)
18# VITE_APP_NAME=plyr.fm
19# VITE_APP_TAGLINE=music streaming on atproto
20# VITE_APP_CANONICAL_HOST=plyr.fm
21# VITE_APP_CANONICAL_URL=
22# VITE_APP_BROADCAST_PREFIX=plyr
23
24# database
25DATABASE_URL=postgresql+asyncpg://localhost/plyr
26
27# storage (cloudflare r2)
28AWS_ACCESS_KEY_ID=your_r2_access_key_id
29AWS_SECRET_ACCESS_KEY=your_r2_secret_access_key
30R2_BUCKET=audio-dev
31R2_IMAGE_BUCKET=images-dev
32R2_ENDPOINT_URL=https://8feb33b5fb57ce2bc093bc6f4141f40a.r2.cloudflarestorage.com
33R2_PUBLIC_BUCKET_URL=https://pub-154b70b3121149eda0cf1ccbae78cb33.r2.dev
34R2_PUBLIC_IMAGE_BUCKET_URL=https://pub-154b70b3121149eda0cf1ccbae78cb33.r2.dev
35MAX_UPLOAD_SIZE_MB=1536 # max audio upload size (default: 1536MB / 1.5GB - supports 2-hour WAV)
36
37# atproto
38ATPROTO_PDS_URL=https://bsky.social
39ATPROTO_CLIENT_ID=
40ATPROTO_CLIENT_SECRET=
41ATPROTO_REDIRECT_URI=http://localhost:8000/auth/callback
42OAUTH_ENCRYPTION_KEY= # base64-encoded 32-byte key (required for production)
43
44# atproto namespace (optional - defaults to fm.plyr)
45# ATPROTO_APP_NAMESPACE=fm.plyr
46# ATPROTO_SCOPE_OVERRIDE= # override computed oauth scope if needed
47
48# observability (optional)
49# LOGFIRE_ENABLED=false
50# LOGFIRE_WRITE_TOKEN=
51# LOGFIRE_ENVIRONMENT=local
52
53# notifications (optional - bluesky DMs)
54# NOTIFY_ENABLED=false
55# NOTIFY_RECIPIENT_HANDLE=
56# NOTIFY_BOT_HANDLE=
57# NOTIFY_BOT_PASSWORD=