# ============================================================================= # 应用核心(config/app.php) # ============================================================================= # 应用显示名(邮件发件人名、日志等会引用) APP_NAME=Lottery # 运行环境:local / staging / production(影响缓存、调试与安全策略) APP_ENV=local # 应用密钥;留空时执行 php artisan key:generate 生成(勿提交真实值到 Git) APP_KEY= # 是否输出详细错误页与堆栈(生产环境务必为 false) APP_DEBUG=true # 应用根 URL(生成链接、邮件、部分驱动依赖;与 php artisan serve 端口一致时带上 :8000) APP_URL=http://localhost:8000 # ============================================================================= # 语言与假数据(config/app.php) # ============================================================================= # PHP 应用默认语言代码 APP_LOCALE=en # 翻译缺失时的回退语言 APP_FALLBACK_LOCALE=en # Faker 造数用的区域(如 zh_CN、en_US) APP_FAKER_LOCALE=en_US # ============================================================================= # 维护模式(config/app.php) # ============================================================================= # 维护模式驱动:file(写 storage/framework/down)或可使用其他存储 APP_MAINTENANCE_DRIVER=file # 使用 database 驱动维护状态时的存储配置(与 file 二选一场景下再取消注释) # APP_MAINTENANCE_STORE=database # 内置 PHP 开发服务器 worker 数量(多核本机可酌情打开) # PHP_CLI_SERVER_WORKERS=4 # ============================================================================= # 密码哈希(config/hashing.php) # ============================================================================= # bcrypt 迭代轮数;越大越慢越安全,测试环境可略低 BCRYPT_ROUNDS=12 # ============================================================================= # 日志(config/logging.php) # ============================================================================= # 默认日志通道名,对应下方 LOG_STACK 中的通道之一 LOG_CHANNEL=stack # stack 通道所包含的子通道,逗号分隔,如 single、daily LOG_STACK=single # 弃用警告单独输出到的通道;null 表示忽略 LOG_DEPRECATIONS_CHANNEL=null # 日志级别:debug / info / notice / warning / error / critical / alert / emergency LOG_LEVEL=debug # ============================================================================= # 数据库(config/database.php) # ============================================================================= # 连接名:pgsql / mysql / sqlite 等 DB_CONNECTION=pgsql # 数据库主机 DB_HOST=127.0.0.1 # 数据库端口(PostgreSQL 默认 5432) DB_PORT=5432 # 数据库名 DB_DATABASE=lottery # 数据库用户名(示例留空,本机按实际填写) DB_USERNAME= # 数据库密码(示例留空) DB_PASSWORD= # 完整数据库 URL,若设置可覆盖上述分散配置(一般留空) # DB_URL= # ============================================================================= # Session(config/session.php) # ============================================================================= # 会话驱动:file / cookie / database / redis 等 SESSION_DRIVER=redis # 会话存活时间(分钟) SESSION_LIFETIME=120 # 是否加密会话数据 SESSION_ENCRYPT=false # Cookie 路径,一般根路径 / SESSION_PATH=/ # Cookie 域;单域本地开发常用 null SESSION_DOMAIN=null # ============================================================================= # 广播与文件(config/broadcasting.php、config/filesystems.php) # ============================================================================= # 广播驱动:null / log / reverb(大厅 WebSocket 快照推荐) / pusher 等 # 使用 reverb 时另开终端:php artisan reverb:start(与 php artisan serve 并行) # 大厅 draw.countdown 每秒需跑调度:php artisan schedule:work(或等同),勿仅用每分钟 cron BROADCAST_CONNECTION=reverb # Laravel Reverb(config/reverb.php);玩家端 Echo:NEXT_PUBLIC_REVERB_APP_KEY/HOST/PORT/SCHEME(与 REVERB_* 对齐) REVERB_APP_ID= REVERB_APP_KEY= REVERB_APP_SECRET= REVERB_HOST=localhost REVERB_PORT=8080 REVERB_SCHEME=http # 默认文件存储盘:local / s3 等 FILESYSTEM_DISK=local # ============================================================================= # 队列与缓存(config/queue.php、config/cache.php) # ============================================================================= # 队列驱动:sync(同步)/ database / redis 等;本地常用 database QUEUE_CONNECTION=redis # 缓存存储:file / database / redis 等;与 Redis 赔付池等能力对接前可用 database CACHE_STORE=redis # 缓存键全局前缀;多环境共 Redis 时可用于隔离,一般可留空使用框架默认 # CACHE_PREFIX= # ============================================================================= # Memcached(config/cache.php;未用可保持默认) # ============================================================================= MEMCACHED_HOST=127.0.0.1 # ============================================================================= # Redis(config/database.php 中 redis 连接) # ============================================================================= # Redis 客户端扩展:phpredis / predis REDIS_CLIENT=phpredis REDIS_HOST=127.0.0.1 # Redis 密码;无认证填 null REDIS_PASSWORD=null REDIS_PORT=6379 # 默认 Redis 逻辑库编号(与 session/queue 共用连接时注意规划) REDIS_DB=0 # 专用于 cache 连接的逻辑库编号(config 中 default 与 cache 两套连接) REDIS_CACHE_DB=1 # ============================================================================= # 邮件(config/mail.php) # ============================================================================= # 邮件驱动:smtp / log(仅写日志)等 MAIL_MAILER=log # TLS 方案等(smtp+URL 时用;一般用框架默认) MAIL_SCHEME=null MAIL_HOST=127.0.0.1 MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null # 默认发件人邮箱 MAIL_FROM_ADDRESS="hello@example.com" # 默认发件显示名(可引用 APP_NAME) MAIL_FROM_NAME="${APP_NAME}" # ============================================================================= # AWS S3 等(config/filesystems.php;未用 S3 可留空) # ============================================================================= # IAM 访问键 ID(仅在使用 S3/队列等 AWS 能力时必填) AWS_ACCESS_KEY_ID= # IAM Secret AWS_SECRET_ACCESS_KEY= AWS_DEFAULT_REGION=us-east-1 AWS_BUCKET= # 兼容 MinIO 等路径风格 Endpoint 时使用 true AWS_USE_PATH_STYLE_ENDPOINT=false # ============================================================================= # 前端 Vite(vite 构建时注入) # ============================================================================= # 供前端读取的应用名,通常与 APP_NAME 一致 VITE_APP_NAME="${APP_NAME}" # ============================================================================= # 彩票业务(config/lottery.php、database/seeders;密钥仅写本机 .env) # ============================================================================= # 默认结算币种(产品约定,如 NPR) LOTTERY_DEFAULT_CURRENCY=NPR # lottery_settings 表读缓存 TTL(秒);调小更易立即看到后台改值,调大减库压 LOTTERY_SETTINGS_CACHE_TTL=60 # 开发绕过:Authorization: Bearer dev:{players.id};仅当 APP_ENV 为 local 或 testing 且为 true 时生效(PHPUnit 依赖 testing),生产务必 false LOTTERY_PLAYER_AUTH_DEV_BYPASS=false # 未来期缓冲条数(draw_time>now 的期数,分钟 tick 会补足);测试可 6–12,生产可 48+ LOTTERY_DRAW_BUFFER_AHEAD=8 # 校验主站 JWT 的算法(与签发方一致) LOTTERY_JWT_ALGORITHM=HS256 # JWT 内表示站点编码的 claim 名 LOTTERY_JWT_CLAIM_SITE_CODE=site_code # JWT 内表示主站玩家标识的 claim 名 LOTTERY_JWT_CLAIM_SITE_PLAYER_ID=site_player_id # JWT 允许的最长有效窗(秒):exp-iat 不得超过此值;默认 300(5 分钟) LOTTERY_JWT_MAX_TTL_SECONDS=300 # 是否要求 JWT 含 iat(建议 true,与短效 Token 策略一致) LOTTERY_JWT_REQUIRE_IAT=true # 可选:32 字节 AES 密钥再 Base64;用于 URL 传递的密文 Token 解包为内层 JWT # LOTTERY_PLAYER_TOKEN_AES_KEY= # 管理端登录:Sanctum PAT 有效天数(签发时刻起),至少 1;到期需重新登录 ADMIN_API_TOKEN_TTL_DAYS=7 # 主站站点根 URL(SSO、跳转等) MAIN_SITE_BASE_URL= # 主站 JWT 验签密钥(与主站约定,勿泄露) MAIN_SITE_SSO_JWT_SECRET= # 主站钱包接口基地址 MAIN_SITE_WALLET_API_URL= # 主站钱包接口访问密钥 MAIN_SITE_WALLET_API_KEY= # 主站钱包 HTTP 超时(秒) MAIN_SITE_WALLET_TIMEOUT=10 # db:seed 演示玩家钱包:可用余额(最小货币单位,整数) DEV_SEED_WALLET_BALANCE_MINOR=125000 # db:seed 演示玩家钱包:冻结余额(最小货币单位,整数) DEV_SEED_WALLET_FROZEN_MINOR=0 # Sanctum SPA 场景:与 API 不同端口的前端域名列表,逗号分隔,用于有状态 Cookie 鉴权 SANCTUM_STATEFUL_DOMAINS=