Billing Stripe, link regia mobile e staff solo trasmissione.

Aggiunge fatturazione club, pagina regia condivisibile senza account, roster squadre e rimuove la modalità controller dall'app (v1.1.0).

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-05-29 07:23:13 +02:00
parent 4083bc5dee
commit f4b7be0f80
156 changed files with 5033 additions and 2033 deletions

View File

@@ -11,3 +11,9 @@ PRIVACY_CONTROLLER_ADDRESS=Via Guido De Ruggiero, 89 - 20142 - Milano (MI)
PRIVACY_CONTACT_EMAIL=privacy@matchlive.it
MAILER_FROM=Match Live TV <noreply@matchlive.it>
PASSWORD_RESET_EXPIRY_HOURS=2
# Stripe (test: sk_test_... / price_... da Dashboard modalità Test)
STRIPE_SECRET_KEY=
STRIPE_WEBHOOK_SECRET=
STRIPE_PREMIUM_LIGHT_PRICE_ID=
STRIPE_PREMIUM_FULL_PRICE_ID=

View File

@@ -85,6 +85,10 @@ services:
SMTP_STARTTLS: ${SMTP_STARTTLS:-true}
RAILS_LOG_TO_STDOUT: "true"
RAILS_LOG_LEVEL: ${RAILS_LOG_LEVEL:-info}
STRIPE_SECRET_KEY: ${STRIPE_SECRET_KEY:-}
STRIPE_WEBHOOK_SECRET: ${STRIPE_WEBHOOK_SECRET:-}
STRIPE_PREMIUM_LIGHT_PRICE_ID: ${STRIPE_PREMIUM_LIGHT_PRICE_ID:-}
STRIPE_PREMIUM_FULL_PRICE_ID: ${STRIPE_PREMIUM_FULL_PRICE_ID:-}
ports:
- "3000:3000" # Solo LAN — NPM proxy HTTPS
depends_on:

View File

@@ -50,9 +50,11 @@ services:
build:
context: ../backend
dockerfile: Dockerfile
command: bash -c "bundle exec rails db:prepare db:seed && bundle exec rails server -b 0.0.0.0 -p 3000"
command: bash -c "bundle check || bundle install && bundle exec rails db:prepare db:seed && bundle exec rails server -b 0.0.0.0 -p 3000"
environment:
RAILS_ENV: development
BUNDLE_WITHOUT: ""
BUNDLE_DEPLOYMENT: "0"
DATABASE_URL: postgresql://postgres:${POSTGRES_PASSWORD:-matchlivetv_dev}@postgres:5432/matchlivetv
REDIS_URL: redis://redis:6379/0
MEDIAMTX_API_URL: http://mediamtx:9997
@@ -69,6 +71,11 @@ services:
PRIVACY_CONTROLLER_ADDRESS: ${PRIVACY_CONTROLLER_ADDRESS:-Via Guido De Ruggiero, 89 - 20142 - Milano (MI)}
PRIVACY_CONTACT_EMAIL: ${PRIVACY_CONTACT_EMAIL:-privacy@matchlive.it}
MAILER_FROM: ${MAILER_FROM:-Match Live TV <noreply@matchlive.it>}
APP_PUBLIC_URL: ${APP_PUBLIC_URL:-http://localhost:3000}
STRIPE_SECRET_KEY: ${STRIPE_SECRET_KEY:-}
STRIPE_WEBHOOK_SECRET: ${STRIPE_WEBHOOK_SECRET:-}
STRIPE_PREMIUM_LIGHT_PRICE_ID: ${STRIPE_PREMIUM_LIGHT_PRICE_ID:-}
STRIPE_PREMIUM_FULL_PRICE_ID: ${STRIPE_PREMIUM_FULL_PRICE_ID:-}
ports:
- "3000:3000"
depends_on:
@@ -81,6 +88,7 @@ services:
volumes:
- ../backend:/app
- recordings:/recordings
- bundle_cache:/usr/local/bundle
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/up"]
interval: 15s
@@ -95,6 +103,8 @@ services:
command: bundle exec sidekiq -C config/sidekiq.yml
environment:
RAILS_ENV: development
BUNDLE_WITHOUT: ""
BUNDLE_DEPLOYMENT: "0"
DATABASE_URL: postgresql://postgres:${POSTGRES_PASSWORD:-matchlivetv_dev}@postgres:5432/matchlivetv
REDIS_URL: redis://redis:6379/0
MEDIAMTX_API_URL: http://mediamtx:9997
@@ -109,6 +119,7 @@ services:
condition: service_healthy
volumes:
- ../backend:/app
- bundle_cache:/usr/local/bundle
nginx:
image: nginx:alpine
@@ -123,3 +134,4 @@ volumes:
postgres_data:
redis_data:
recordings:
bundle_cache: