Repository navigation
Expand file tree
/
Copy path.env.example
More file actions
109 lines (85 loc) · 3.44 KB
/
Copy path.env.example
File metadata and controls
109 lines (85 loc) · 3.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
# Production hardening (recommended):
# APP_DEBUG=false
# SANCTUM_STATEFUL_DOMAINS=yourportal.com,www.yourportal.com
# FRONTEND_URL=https://yourportal.com
# CORS_ALLOWED_ORIGINS=https://yourportal.com (comma-separated; omit wildcard in prod when using credentials)
# Optionally expire SPA tokens (minutes); portal cookie max-age should align.
# SANCTUM_EXPIRATION=43200
APP_KEY=
APP_DEBUG=true
APP_URL=http://localhost
# Used for Sanctum stateful domains + CORS when tightening allowed origins (comma-separated).
FRONTEND_URL=http://localhost:3000
# Optional: override cookie/session domain allowlist for the SPA (defaults include localhost / Vite URLs).
# SANCTUM_STATEFUL_DOMAINS=localhost,localhost:3000,127.0.0.1,127.0.0.1:3000
APP_LOCALE=en
APP_FALLBACK_LOCALE=en
APP_FAKER_LOCALE=en_US
APP_MAINTENANCE_DRIVER=file
BCRYPT_ROUNDS=12
LOG_CHANNEL=stack
LOG_STACK=single
LOG_DEPRECATIONS_CHANNEL=null
LOG_LEVEL=debug
LOG_SUPPORT_DAYS=14
# Sail: use pgsql service hostname from compose (laravel.test container)
DB_CONNECTION=pgsql
DB_HOST=pgsql
DB_PORT=5432
DB_DATABASE=laravel
DB_USERNAME=sail
DB_PASSWORD=password
SESSION_DRIVER=database
SESSION_LIFETIME=120
SESSION_ENCRYPT=false
SESSION_PATH=/
SESSION_DOMAIN=null
# Use pusher driver with Soketi (Pusher-compatible).
BROADCAST_CONNECTION=pusher
FILESYSTEM_DISK=local
# Local: `sync` runs jobs inline (no worker). Use `redis` + the `queue` compose service or `sail artisan queue:work --tries=3`.
QUEUE_CONNECTION=sync
# Crash ticks: false = ShouldBroadcast (needs worker when QUEUE_CONNECTION=redis). true = ShouldBroadcastNow (in-process).
CRASH_BROADCAST_IMMEDIATE=false
# Filament admin bootstrap (required for AdminSeeder on first deploy):
# ADMIN_PASSWORD=
CACHE_STORE=database
REDIS_CLIENT=phpredis
REDIS_HOST=redis
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_MAILER=log
MAIL_FROM_ADDRESS="hello@example.com"
MAIL_FROM_NAME="${APP_NAME}"
# --- Soketi / Pusher-compatible (least privilege: separate app per environment) ---
# Never commit real production secrets. Soketi reads SOKETI_DEFAULT_* from compose; Laravel uses these same values to sign broadcasts.
# The KEY is public (sent to browsers); keep SECRET server-only.
PUSHER_APP_ID=local-crashx
PUSHER_APP_KEY=local-crashx-key
PUSHER_APP_SECRET=local-crashx-secret
# Hostname of the Soketi container on the Docker network (not localhost).
PUSHER_HOST=soketi
PUSHER_PORT=6001
PUSHER_SCHEME=http
PUSHER_APP_CLUSTER=mt1
# Soketi container (compose defaults to 0 for lighter local dev; set 1 only when debugging websockets)
SOKETI_DEBUG=0
# Optional: omit for default light stack (laravel + db + redis only). For queues + Soketi:
# COMPOSE_PROFILES=realtime
# One-time welcome credit (cents), applied only when the first verified deposit is recorded server-side — not at signup (see WalletDepositCreditService).
FIRST_DEPOSIT_BONUS_MINOR=5000
# Legacy alias — used if FIRST_DEPOSIT_BONUS_MINOR is unset
# SIGNUP_BONUS_MINOR=5000
# VIP ladder: cents deposited per 1 XP (default 100 = $1 deposited → 1 XP)
VIP_XP_PER_DEPOSIT_MINOR=100
# Default when X-Tenant-Slug header is omitted (must match a tenants.slug row)
DEFAULT_TENANT_SLUG=crashx
# Optional: shared secret for incoming webhooks (verify HMAC in middleware).
WEBHOOK_DEMO_SECRET=
# Comma-separated; align with FRONTEND_URL / portal origin (required when not using "*").
CORS_ALLOWED_ORIGINS=http://localhost:3000
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_DEFAULT_REGION=us-east-1
AWS_BUCKET=
VITE_APP_NAME="${APP_NAME}"