Logo e favicon nel header, partite programmate su web e mobile, reset password, pagine FAQ/sitemap, privacy/termini GDPR e icona Android «Match Live Tv». Co-authored-by: Cursor <cursoragent@cursor.com>
47 lines
1.4 KiB
Plaintext
47 lines
1.4 KiB
Plaintext
# Copia come .env sul server: cp .env.production.example .env
|
|
# Genera secret: openssl rand -hex 32
|
|
|
|
POSTGRES_PASSWORD=CHANGE_ME_STRONG_PASSWORD
|
|
SECRET_KEY_BASE=CHANGE_ME_openssl_rand_hex_64
|
|
JWT_SECRET=CHANGE_ME_openssl_rand_hex_32
|
|
MEDIAMTX_WEBHOOK_SECRET=CHANGE_ME_openssl_rand_hex_32
|
|
|
|
# RTMP pubblico per telefoni (IP WAN o DDNS + porta 1935)
|
|
MEDIAMTX_RTMP_URL=rtmp://YOUR_PUBLIC_IP_OR_DOMAIN:1935
|
|
|
|
# Dominio pubblico (Nginx Proxy Manager → Rails :3000)
|
|
APP_PUBLIC_URL=https://matchlivetv.yourdomain.com
|
|
HLS_PUBLIC_URL=https://matchlivetv.yourdomain.com/hls
|
|
|
|
CORS_ORIGINS=https://matchlivetv.yourdomain.com
|
|
ALLOWED_HOSTS=matchlivetv.yourdomain.com,192.168.1.146
|
|
YOUTUBE_REDIRECT_URI=https://matchlivetv.yourdomain.com/api/v1/youtube/callback
|
|
|
|
# YouTube OAuth (opzionale)
|
|
YOUTUBE_CLIENT_ID=
|
|
YOUTUBE_CLIENT_SECRET=
|
|
|
|
# Stripe (abbonamento Premium squadra)
|
|
STRIPE_SECRET_KEY=
|
|
STRIPE_WEBHOOK_SECRET=
|
|
STRIPE_PREMIUM_LIGHT_PRICE_ID=
|
|
STRIPE_PREMIUM_FULL_PRICE_ID=
|
|
|
|
RAILS_LOG_LEVEL=info
|
|
|
|
# Titolare trattamento (GDPR) — obbligatorio in produzione
|
|
PRIVACY_CONTROLLER_NAME=Ragione sociale / nome titolare
|
|
PRIVACY_CONTROLLER_ADDRESS=Indirizzo sede legale
|
|
PRIVACY_CONTACT_EMAIL=privacy@matchlivetv.it
|
|
PRIVACY_CONTROLLER_VAT=
|
|
|
|
# Email transazionali (reset password, inviti)
|
|
MAILER_FROM=Match Live TV <noreply@matchlivetv.it>
|
|
SMTP_ADDRESS=
|
|
SMTP_PORT=587
|
|
SMTP_USERNAME=
|
|
SMTP_PASSWORD=
|
|
SMTP_AUTH=plain
|
|
SMTP_STARTTLS=true
|
|
PASSWORD_RESET_EXPIRY_HOURS=2
|