APP_NAME="Radio Platform API"
APP_ENV=local
APP_KEY=base64:7o2RKuY3DElN8W5Q52RTqeXCdwXBB2kyT8iv4FBa3JM=
APP_DEBUG=true
APP_URL=http://localhost:8100
FRONTEND_URL=http://localhost:3100

APP_LOCALE=en
APP_FALLBACK_LOCALE=en
APP_FAKER_LOCALE=en_US

APP_MAINTENANCE_DRIVER=file
# APP_MAINTENANCE_STORE=database

PHP_CLI_SERVER_WORKERS=4

BCRYPT_ROUNDS=12

LOG_CHANNEL=stack
LOG_STACK=single
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug

DB_CONNECTION=mariadb
DB_HOST=127.0.0.1
DB_PORT=3307
DB_DATABASE=radio_platform
DB_USERNAME=radio_platform
DB_PASSWORD=your_strong_password
DB_CHARSET=utf8mb4
DB_COLLATION=utf8mb4_unicode_ci

# Comma-separated public frontend origins allowed to call /api/* in development.
CORS_ALLOWED_ORIGINS=http://localhost:3100
SANCTUM_STATEFUL_DOMAINS=localhost:3100,localhost:8100
SESSION_SECURE_COOKIE=false
REGISTRATION_ENABLED=true

# Google sign-in (Phase 6.0A.1). One OAuth client per independently deployed
# station. Leave GOOGLE_AUTH_ENABLED=false (or any credential empty) to hide the
# button and reject initiation. The redirect URI must exactly match a URI
# registered on the Google Cloud OAuth client:
#   local:      http://localhost:8000/auth/google/callback
#   production: https://api.<station-domain>/auth/google/callback
# Never expose GOOGLE_CLIENT_SECRET to the Nuxt application.
GOOGLE_AUTH_ENABLED=true
GOOGLE_CLIENT_ID=261100907068-em27287nos63ggtu12q91irnaguvjnqa.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=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
GOOGLE_REDIRECT_URI="${APP_URL}/auth/google/callback"
# Linking or unlinking Google requires a session authenticated this recently.
SOCIAL_AUTH_RECENT_SECONDS=900
SOCIAL_AUTH_HTTP_TIMEOUT=15

SESSION_DRIVER=database
SESSION_COOKIE=radio_platform_session
SESSION_LIFETIME=120
SESSION_ENCRYPT=false
SESSION_PATH=/
SESSION_DOMAIN=null

BROADCAST_CONNECTION=pusher
PUSHER_APP_ID=2204961
PUSHER_APP_KEY=f3487534bda9174ec999
PUSHER_APP_SECRET=45cd8be74f6728f9a377
PUSHER_APP_CLUSTER=ap1

# Optional MapLibre style URLs for the listener map. Leave empty to use the
# built-in OpenStreetMap raster style (no API key required).
# NUXT_PUBLIC_MAP_STYLE_LIGHT=https://example.com/map-light-style.json
# NUXT_PUBLIC_MAP_STYLE_DARK=https://example.com/map-dark-style.json

FILESYSTEM_DISK=local
STAFF_MEDIA_DISK=public
STATION_TIMEZONE=UTC

# Auth branding defaults. Station Settings overrides these after first save.
STATION_NAME="Radio Platform"
STATION_TAGLINE="Independent radio, around the clock."
STATION_AUTH_HEADLINE="Turn up the signal."
STATION_AUTH_DESCRIPTION="Sign in to your listener account, join the station community, and pick up where you left off."
# STATION_AUTH_FOOTER="Broadcasting independently since 2026."
STATION_PRIMARY_COLOR="#6254ee"
STATION_SECONDARY_COLOR="#0284c7"
STATION_BACKGROUND_COLOR="#0b1020"

STATION_SURFACE_COLOR="#ffffff"
# Optional approved font IDs: modern-sans, geometric-sans, humanist-serif,
# editorial-serif, mono. Leave empty to inherit the selected public theme.
# STATION_HEADING_FONT=editorial-serif
# STATION_BODY_FONT=modern-sans

STATION_AUTH_BACKGROUND_STYLE=gradient
STATION_AUTH_GRADIENT_STYLE=diagonal
STATION_AUTH_OVERLAY_INTENSITY=50
STATION_BRANDING_DISK=public
STATION_BRANDING_CACHE_SECONDS=300

# Public website theme. Station Settings can select any installed theme; this is
# the deployment fallback and documented initial selection.
STATION_THEME=kizzfm
# Comma-separated allowlist of themes included in this deployment build.
STATION_THEMES=default,kizzfm,heartbeatfm
# Short cache for the public now-playing projection.
STATION_PUBLIC_RADIO_CACHE_SECONDS=15

PROGRAM_MEDIA_DISK=public
PROFILE_MEDIA_DISK=public
CONTENT_MEDIA_DISK=public
BLOG_MEDIA_DISK=public
BLOG_REVISION_LIMIT=20
IMAGE_DRIVER="Intervention\\Image\\Drivers\\Gd\\Driver"
IMAGE_MAX_UPLOAD_KB=5120
IMAGE_MAX_SOURCE_PIXELS=20000000
IMAGE_MAX_SOURCE_DIMENSION=6000
IMAGE_QUALITY_STEP=6

REWARDS_TIMEZONE=UTC
REWARDS_LEVEL_BASE_XP=100
REWARDS_MAX_ADMIN_ADJUSTMENT=1000000
REWARDS_DAILY_REPEATABLE_POINTS_CAP=500
REWARDS_DUPLICATE_CHAT_WINDOW_SECONDS=300

SHOP_NICKNAME_COOLDOWN_DAYS=7
SHOP_PROHIBITED_NAMES=

AZURACAST_BASE_URL=https://radio.kizzfmuk90-9.com/
AZURACAST_STATION_ID=1
AZURACAST_API_KEY=0a65d43103ce1452:b644f8b3455f3efc16f4ae73008dd767
AZURACAST_TIMEOUT=15
AZURACAST_CONNECT_TIMEOUT=5
AZURACAST_RETRIES=2
AZURACAST_RETRY_DELAY_MS=200
AZURACAST_STREAM_TIMEOUT=60
# Optional exact-host allowlist. Empty means only the AZURACAST_BASE_URL host.
AZURACAST_ALLOWED_HOSTS=
# Never enable these in production. They exist for an isolated local/test station.
AZURACAST_ALLOW_INSECURE_HTTP=true
AZURACAST_ALLOW_PRIVATE_NETWORKS=true
AZURACAST_CAPABILITY_CACHE_SECONDS=86400
# Application limit in KB. PHP upload_max_filesize/post_max_size must be at least this large.
AZURACAST_MAX_UPLOAD_KB=512000
AZURACAST_ALLOWED_AUDIO_EXTENSIONS=mp3,flac,ogg,oga,opus,wav,aac,m4a,wma,aiff,aif,ape
AZURACAST_SERVICE_COOLDOWN_SECONDS=30
AZURACAST_SERVICE_GLOBAL_COOLDOWN_SECONDS=10
RADIO_AUDIT_RETENTION_DAYS=365

RADIO_LISTENER_LIVE_CACHE_SECONDS=5
RADIO_LISTENER_HISTORY_DEFAULT_DAYS=7
RADIO_LISTENER_HISTORY_MAX_DAYS=31
RADIO_LISTENER_HISTORY_CACHE_SECONDS=300
RADIO_LISTENER_HISTORY_MAX_SESSIONS=10000
RADIO_LISTENER_EXPORT_MAX_ROWS=5000

# Optional direct DJ source-connection overrides (used when Cloudflare/proxy fronts AZURACAST_BASE_URL).
AZURACAST_DJ_HOST=217.216.47.43
AZURACAST_DJ_PORT=8005
AZURACAST_DJ_MOUNT="/"
AZURACAST_DJ_TLS=
# Dedicated secret for authenticating AzuraCast live_connect/live_disconnect webhooks.
AZURACAST_WEBHOOK_SECRET=
AZURACAST_WEBHOOK_USER=

# Radio Provider Selection (Phase 5.0H).
# Allowed values: "azuracast" or "centovacast". Defaults to "azuracast".
RADIO_PROVIDER=centovacast
# Optional public stream URL (used by CentovaCast deployments or as a generic fallback).
RADIO_STREAM_URL=https://streaming04.liveboxstream.uk/proxy/coleen/stream
RADIO_STREAM_FORMAT=mp3
RADIO_FALLBACK_ARTWORK=

# Optional public album-art enrichment. When AzuraCast has no cover art, the API
# CentovaCast public stream details RPC (include the client username):
# https://streaming01.example.com/rpc/<username>/streaminfo.get
CENTOVACAST_STREAMINFO_URL=https://streaming04.liveboxstream.uk/rpc/coleen/streaminfo.get
CENTOVACAST_TIMEOUT=5
CENTOVACAST_CONNECT_TIMEOUT=3
CENTOVACAST_CACHE_SECONDS=20
# Optional public album-art enrichment. When the provider has no cover art, the
# API looks up a high-resolution cover on the iTunes Search API and caches it.
RADIO_ALBUM_ART_ENABLED=true
RADIO_ALBUM_ART_COUNTRY=PH
RADIO_ALBUM_ART_SIZE=600
RADIO_ALBUM_ART_TIMEOUT=3
RADIO_ALBUM_ART_CONNECT_TIMEOUT=2
RADIO_ALBUM_ART_CACHE_SECONDS=604800
RADIO_ALBUM_ART_MISS_CACHE_SECONDS=3600

CHAT_ENABLED=true
CHAT_GUEST_READ_ALLOWED=false
CHAT_VERIFIED_EMAIL_REQUIRED=true
CHAT_MAX_MESSAGE_LENGTH=500
CHAT_OWNER_DELETE_WINDOW_SECONDS=15
CHAT_ROOM_DESCRIPTION="A welcoming place to connect with the station community."
CHAT_COMMUNITY_RULES="Be respectful and keep conversations constructive.|Protect your privacy and the privacy of others.|Follow moderator guidance and report concerns responsibly."

# Comma-separated, deployment-owned basic moderation terms.
CHAT_PROHIBITED_WORDS=
CHAT_PRESENCE_IDLE_AFTER=1800
CHAT_PRESENCE_OFFLINE_AFTER=2400
CHAT_PRESENCE_TTL=3600
QUEUE_CONNECTION=database

CACHE_STORE=database
# CACHE_PREFIX=

MEMCACHED_HOST=127.0.0.1

REDIS_CLIENT=phpredis
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

MAIL_MAILER=log
MAIL_SCHEME=null
MAIL_HOST=127.0.0.1
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_FROM_ADDRESS="hello@example.com"
MAIL_FROM_NAME="${APP_NAME}"

AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
AWS_USE_PATH_STYLE_ENDPOINT=false

VITE_APP_NAME="${APP_NAME}"

STAFF_MEDIA_DISK=public

SUPER_ADMIN_NAME="Thom Garcia"
SUPER_ADMIN_EMAIL="thomgarcia06@gmail.com"
SUPER_ADMIN_PASSWORD="password@1234"
SUPER_ADMIN_RESET_PASSWORD=false
