Repository navigation
Expand file tree
/
Copy path.env.example
More file actions
109 lines (93 loc) · 3.99 KB
/
Copy path.env.example
File metadata and controls
109 lines (93 loc) · 3.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# TuneCamp Environment Configuration
# Server Port
TUNECAMP_PORT=1970
# Paths (Absolute or relative to project root)
# TUNECAMP_DB_PATH=./tunecamp.db
# TUNECAMP_DOWNLOAD_DIR=./music/downloads
#
# Two variables name a music folder, and which one you set depends on how you
# run TuneCamp. They are not aliases and neither is deprecated:
#
# TUNECAMP_MUSIC_PATH — Docker only. The folder ON THE HOST that Compose
# mounts into the container. Set this when running
# `docker compose`; docker-compose.yml then pins the
# in-container path to /music for you.
# TUNECAMP_MUSIC_DIR — the path the SERVER reads. Set this when running from
# source (npm start). Under Docker it is already /music
# and you should leave it alone.
#
# TUNECAMP_MUSIC_PATH=/srv/music # docker compose
# TUNECAMP_MUSIC_DIR=./music # npm start
# Streaming performance
# Transcode cache: on-the-fly transcodes are cached here so repeat requests are
# served as plain file reads instead of re-encoding. Defaults to <db-dir>/cache/transcode.
# TUNECAMP_TRANSCODE_CACHE_DIR=
# TUNECAMP_TRANSCODE_CACHE_MAX_BYTES=2147483648
# Max concurrent LIVE transcodes (seeks / cold-cache plays). Requests over this
# ceiling are shed with HTTP 503 instead of spawning unbounded ffmpeg processes
# that would saturate the CPU and stall the event loop. Defaults to cores*8.
# TUNECAMP_MAX_LIVE_TRANSCODES=
# Hard timeout (ms) for a single cache-fill encode; a stuck ffmpeg is killed so it
# can't hold a concurrency slot forever. Defaults to 300000 (5 min).
# TUNECAMP_TRANSCODE_TIMEOUT_MS=300000
# X-Accel-Redirect: hand local audio to nginx to serve (see docs/nginx.md). Opt-in;
# requires matching `internal` locations in your nginx config or streaming breaks.
# TUNECAMP_XACCEL_REDIRECT=false
# TUNECAMP_XACCEL_MEDIA_PREFIX=/_protected_media
# TUNECAMP_XACCEL_CACHE_PREFIX=/_protected_cache
# Authentication
TUNECAMP_JWT_SECRET=
TUNECAMP_ADMIN_USER=admin
TUNECAMP_ADMIN_PASS=admin
# CORS allowed origins (comma separated). Empty = same-origin only.
# TUNECAMP_CORS_ORIGINS=
# FFmpeg binary override (defaults to system/bundled ffmpeg)
# FFMPEG_PATH=
# Network & Federation
TUNECAMP_PUBLIC_URL=
TUNECAMP_SITE_NAME=TuneCamp
# Seed instances to bootstrap federated discovery (comma/space-separated origins).
# Optional — ActivityPub-followed TuneCamp sites also seed the crawl.
# TUNECAMP_FEDERATION_SEEDS=https://instance-a.example,https://instance-b.example
# External APIs
DISCOGS_TOKEN=
# TELEGRAM_BOT_TOKEN / TELEGRAM_MASTER_ID are accepted as aliases
TUNECAMP_TELEGRAM_BOT_TOKEN=
TUNECAMP_TELEGRAM_MASTER_ID=
# Payments: Stripe
STRIPE_SECRET_KEY=
STRIPE_WEBHOOK_SECRET=
# Crypto onramp key (falls back to STRIPE_SECRET_KEY)
# STRIPE_ONRAMP_SECRET_KEY=
# Payments: Web3 (Base network)
TUNECAMP_RPC_URL=https://mainnet.base.org
TUNECAMP_OWNER_ADDRESS=
# Webapp build-time vars (Vite, used at build of webapp/)
# VITE_TUNECAMP_RPC_URL=
# VITE_TUNECAMP_CURRENCY_CONTRACT=
# OpenRouter AI Integration
OPENROUTER_API_KEY=
OPENROUTER_MODEL=openai/gpt-4o-mini
# Google Drive Integration
TUNECAMP_GDRIVE_CLIENT_ID=
TUNECAMP_GDRIVE_CLIENT_SECRET=
# Additional Metadata Providers (Optional)
# THEAUDIODB_API_KEY=
# LASTFM_API_KEY=
# LASTFM_API_SECRET=
# Development & Private IP access (Allow private IP federation in dev)
# TUNECAMP_ALLOW_PRIVATE_IP=false
# TUNECAMP_LIVE_ENABLED=true
# Password reset emails: Brevo transactional API (https://www.brevo.com)
# Get a key from Brevo dashboard -> SMTP & API -> API Keys. Without these, the
# /forgot-password endpoint silently no-ops (no email is sent).
BREVO_API_KEY=
BREVO_SENDER_EMAIL=
# BREVO_SENDER_NAME=TuneCamp
# Monitoring: Sentry crash reporting (optional, off when unset)
# Create a free project at https://sentry.io (or self-hosted GlitchTip) and paste its DSN.
SENTRY_DSN=
# Defaults to NODE_ENV
# SENTRY_ENVIRONMENT=production
# Performance tracing sample rate, 0 = errors only (default)
# SENTRY_TRACES_SAMPLE_RATE=0