Files
chrisandClaude Opus 5.5 68ec5a8d99 Slim song cards with an expand arrow, and lyrics
Feed and profile cards now show one slim line (small artwork, title,
artist, Open button) with the progress bar and reactions. The arrow
opens the rest: album, your other services, Share, and lyrics.

Lyrics come from LRCLIB (open source; LRCLIB_URL can point at a
self-hosted copy, or be empty to turn lyrics off). The server looks each
song up once and caches it, including misses (retried after a week).
Timed lyrics follow along with the song; otherwise the first lines show
with "All lyrics".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 21:19:56 -04:00

40 lines
1.6 KiB
Bash

DATABASE_URL=postgres://musicshare:musicshare@localhost:5447/musicshare
REDIS_URL=redis://localhost:6380
PORT=4000
# Where the web app lives (CORS + post-OAuth redirects)
WEB_URL=http://localhost:3737
# Public base URL of this API, used for OAuth redirect URIs.
# Spotify requires a loopback IP (not "localhost") for http redirect URIs.
API_PUBLIC_URL=http://127.0.0.1:4000
COOKIE_SECURE=false
# 32 random bytes, base64. Generate with: openssl rand -base64 32
TOKEN_ENCRYPTION_KEY=
# https://developer.spotify.com/dashboard (redirect URI: $API_PUBLIC_URL/connections/spotify/callback)
SPOTIFY_CLIENT_ID=
SPOTIFY_CLIENT_SECRET=
# https://www.last.fm/api/account/create
LASTFM_API_KEY=
# Shared secret from the same Last.fm API account; enables one-tap "Sign in with Last.fm"
LASTFM_SHARED_SECRET=
# song.link API key (request at https://odesli.co). Enables YouTube Music/TIDAL links; without it those fall back to search.
ODESLI_API_KEY=
# Lyrics source: LRCLIB (open source; run your own and point this at it). Empty turns lyrics off.
LRCLIB_URL=https://lrclib.net
# Stable identifier for this app in Plex's auth flow
PLEX_CLIENT_ID=musicshare-dev
# Let users connect Jellyfin/Plex servers on private networks (LAN). Never enable in a hosted deployment.
ALLOW_PRIVATE_SERVER_URLS=false
# Apple Music: Apple Developer → Certificates, IDs & Profiles → Keys → new key with MusicKit enabled.
# Paste the .p8 contents with newlines as \n.
APPLE_TEAM_ID=
APPLE_MUSICKIT_KEY_ID=
APPLE_MUSICKIT_PRIVATE_KEY=
# Outgoing email (verification, password reset). SMTPS on 465.
SMTP_HOST=
SMTP_PORT=465
SMTP_USER=
SMTP_PASSWORD=
MAIL_FROM=musicshare <app@musicshare.binarygnome.com>