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 |
# API (Fastify) — explicit port wins over PORT_INDEX
# PORT=38471
# Slot 0..3 into predefined pools (see config/ports.ts). Same index pairs API + Vite dev by default.
# PORT_INDEX=0
# Vite dev server port — overrides paired slot when set
# VITE_DEV_PORT=38472
# Optional: different slot for Vite only (otherwise PORT_INDEX is used)
# VITE_PORT_INDEX=0
# Absolute path or path relative to cwd when starting `npm run start` / `dev:api`
# Default in code: data/metadata.tsv inside this project (see data/metadata.tsv)
METADATA_TSV=data/metadata.tsv
# SQLite index built from metadata.tsv (npm run index-metadata)
# TRACKS_DB=data/tracks.db
# Comma-separated origins for API CORS (production default: site URL). Use * to allow all.
# CORS_ORIGINS=https://mymusics.murad.gg
# Public site URL (oEmbed, server)
# PUBLIC_SITE_URL=https://mymusics.murad.gg
# Restrict embed postMessage target (optional; client VITE_EMBED_PARENT_ORIGIN)
# VITE_EMBED_PARENT_ORIGIN=https://example.com
# verify-tracks cron sample size
# VERIFY_SAMPLE_SIZE=50
# Optional: Internet Archive item identifier (default: myspace_dragon_hoard_2010)
# IA_ITEM_ID=myspace_dragon_hoard_2010
# Serve Vite build from dist/ on the same port as the API (production / PM2).
# SERVE_STATIC=true
# Optional: public site URL for embed snippet text (default https://mymusics.murad.gg)
# VITE_PUBLIC_SITE_URL=https://mymusics.murad.gg
|