Sito marketing, SEO, legal, live programmata e branding Match Live Tv.

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>
This commit is contained in:
2026-05-26 23:17:15 +02:00
parent 3a5649f482
commit 471291b2c4
70 changed files with 1601 additions and 153 deletions

View File

@@ -31,13 +31,11 @@ Rails.application.configure do
# Store uploaded files on the local file system (see config/storage.yml for options).
config.active_storage.service = :local
# Don't care if the mailer can't send.
config.action_mailer.raise_delivery_errors = false
# Disable caching for Action Mailer templates even if Action Controller
# caching is enabled.
config.action_mailer.raise_delivery_errors = true
config.action_mailer.perform_caching = false
config.action_mailer.delivery_method = :file
config.action_mailer.file_settings = { location: Rails.root.join("tmp", "mail") }
config.action_mailer.perform_deliveries = true
config.action_mailer.default_url_options = { host: "localhost", port: 3000 }
# Print deprecation notices to the Rails logger.

View File

@@ -42,6 +42,23 @@ Rails.application.configure do
config.log_level = ENV.fetch("RAILS_LOG_LEVEL", "info")
config.action_mailer.perform_caching = false
config.action_mailer.default_url_options = {
host: URI.parse(ENV.fetch("APP_PUBLIC_URL", "https://matchlivetv.eminux.it")).host,
protocol: URI.parse(ENV.fetch("APP_PUBLIC_URL", "https://matchlivetv.eminux.it")).scheme
}
config.action_mailer.raise_delivery_errors = true
if ENV["SMTP_ADDRESS"].present?
config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
address: ENV["SMTP_ADDRESS"],
port: ENV.fetch("SMTP_PORT", 587).to_i,
user_name: ENV["SMTP_USERNAME"],
password: ENV["SMTP_PASSWORD"],
authentication: ENV.fetch("SMTP_AUTH", "plain"),
enable_starttls_auto: ENV.fetch("SMTP_STARTTLS", "true") == "true"
}
end
config.i18n.fallbacks = true
config.active_support.report_deprecations = false
config.active_record.dump_schema_after_migration = false

View File

@@ -51,5 +51,29 @@ module MatchLiveTv
def stripe_enabled?
stripe_secret_key.present?
end
def privacy_controller_name
ENV.fetch("PRIVACY_CONTROLLER_NAME", "Gestore del servizio Match Live TV")
end
def privacy_controller_email
ENV.fetch("PRIVACY_CONTACT_EMAIL", "privacy@matchlivetv.it")
end
def privacy_controller_address
ENV.fetch("PRIVACY_CONTROLLER_ADDRESS", "Indirizzo del titolare — configurare PRIVACY_CONTROLLER_ADDRESS")
end
def privacy_controller_vat
ENV["PRIVACY_CONTROLLER_VAT"].presence
end
def mail_from
ENV.fetch("MAILER_FROM", "Match Live TV <noreply@matchlivetv.it>")
end
def password_reset_expiry_hours
ENV.fetch("PASSWORD_RESET_EXPIRY_HOURS", "2").to_i
end
end
end

View File

@@ -73,9 +73,12 @@ Rails.application.routes.draw do
get "replay/:id", to: "public/replay#show", as: :public_replay
root to: "public/pages#home"
get "sitemap.xml", to: "public/sitemap#show", defaults: { format: :xml }
scope module: :public, as: :public do
get "funzionalita", to: "pages#features", as: :features
get "faq", to: "pages#faq", as: :faq
get "pallavolo-giovanile", to: "pages#pallavolo", as: :pallavolo
get "prezzi", to: "pages#pricing", as: :prezzi
get "pricing", to: redirect("/prezzi")
get "privacy", to: "pages#privacy", as: :privacy
@@ -85,6 +88,10 @@ Rails.application.routes.draw do
get "login", to: "sessions#new"
post "login", to: "sessions#create"
delete "logout", to: "sessions#destroy"
get "password/forgot", to: "password_resets#new", as: :password_forgot
post "password/forgot", to: "password_resets#create"
get "password/reset", to: "password_resets#edit", as: :password_reset
patch "password/reset", to: "password_resets#update"
get "teams/new", to: "teams#new"
post "teams", to: "teams#create"
get "teams/:id/dashboard", to: "teams#dashboard", as: :team_dashboard