Environment Variables
Required
Section titled “Required”| Variable | Description |
|---|---|
COOLIFY_URL | Coolify instance URL |
COOLIFY_TOKEN | API authentication token |
Auto-Generated
Section titled “Auto-Generated”| Variable | Description |
|---|---|
COOLIFY_PROJECT_UUID | Set automatically by coolify:provision |
Optional
Section titled “Optional”| Variable | Default | Description |
|---|---|---|
COOLIFY_TEAM_ID | null | Team for multi-team setups |
COOLIFY_GITHUB_APP_UUID | null | GitHub App for repo listing |
COOLIFY_PATH | coolify | Dashboard URI path |
COOLIFY_DOMAIN | null | Dashboard subdomain |
COOLIFY_POLLING_INTERVAL | 10 | Dashboard refresh (seconds) |
COOLIFY_CACHE_TTL | 30 | API cache duration (seconds) |
COOLIFY_TIMEOUT | 60 | API timeout (seconds) |
COOLIFY_NOTIFICATION_EMAIL | null | Deploy notification email |
COOLIFY_LOG_CHANNEL | stack | Log channel for events |
Docker Configuration
Section titled “Docker Configuration”| Variable | Default | Description |
|---|---|---|
COOLIFY_PHP_VERSION | 8.4 | PHP version (8.3 or 8.4) |
COOLIFY_USE_BASE_IMAGE | true | Use pre-built base images for fast builds |
COOLIFY_AUTO_MIGRATE | true | Run migrations on container startup |
COOLIFY_DB_WAIT_TIMEOUT | 30 | Seconds to wait for DB before migrating |
COOLIFY_HEALTH_CHECK_PATH | /up | Health endpoint |
COOLIFY_NGINX_MAX_BODY_SIZE | 35M | Nginx body limit |
COOLIFY_UPLOAD_MAX_FILESIZE | 30M | PHP upload limit |
COOLIFY_POST_MAX_SIZE | 35M | PHP POST limit |
COOLIFY_PHP_MEMORY_LIMIT | 256M | PHP memory limit |
COOLIFY_PHP_MAX_EXECUTION_TIME | 60 | PHP timeout |
Base Image Behavior
Section titled “Base Image Behavior”When COOLIFY_USE_BASE_IMAGE=true (default):
- Uses pre-built images from
ghcr.io/stumason/laravel-coolify-base - Build time: ~2-3 minutes
- Automatically selects
-nodevariant ifpackage.jsonexists
When COOLIFY_USE_BASE_IMAGE=false:
- Builds from
php:x.x-fpm-bookwormdirectly - Build time: ~12 minutes
- Use this if you need custom PHP extensions
Kick Integration
Section titled “Kick Integration”These control how Laravel Coolify connects to Laravel Kick on your deployed apps.
| Variable | Default | Description |
|---|---|---|
COOLIFY_KICK_ENABLED | true | Enable Kick integration |
COOLIFY_KICK_CACHE_TTL | 60 | Cache Kick config lookups (seconds) |
COOLIFY_KICK_TIMEOUT | 10 | Kick API timeout (seconds) |
On Your Deployed App
Section titled “On Your Deployed App”These are set in your application’s Coolify environment (not your local .env):
| Variable | Description |
|---|---|
KICK_ENABLED | Set to true to enable Kick endpoints |
KICK_TOKEN | Authentication token for Kick API |
KICK_PREFIX | Optional, defaults to kick |
How Application Lookup Works
Section titled “How Application Lookup Works”Only COOLIFY_PROJECT_UUID is stored in your .env. All other resource UUIDs (applications, databases, etc.) are fetched from the Coolify API.
When you run commands like coolify:deploy, the package automatically finds your application by matching your local git repository URL with applications in Coolify.