> For the complete documentation index, see [llms.txt](https://docs.layeronecloud.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.layeronecloud.com/platform/reference/environment-variables.md).

# Environment variables

Grouped by subsystem. Defaults in brackets.

Grouped by subsystem. Defaults in brackets. `README.md` holds the deployment order and the full production checklist.

**Core / deployment**

```
DJANGO_SETTINGS_MODULE=config.settings.production
SECRET_KEY                     shared by every process in an environment
DATABASE_URL                   shared PostgreSQL
REDIS_URL                      cache + Celery broker/result backend
ALLOWED_HOSTS
DEBUG                          [False in production]
LAYERONE_PROCESS_TYPE          all | web | worker | beat | remote-monitor  [all]
RUN_DEPLOY_RELEASE             [true]
RUN_COLLECTSTATIC              [true]
APP_BASE_URL                   [https://layeronecloud.com in production]
FIELD_ENCRYPTION_KEY           set before any SECRET_KEY rotation
EMERGENCY_RESET_TOKEN          arms break-glass recovery; remove after use
TRUSTED_PROXY_HOPS             appending proxies in front of the app  [1]
TIME_ZONE                      [America/New_York]
```

**Email**

```
EMAIL_CLOUDFLARE_ACCOUNT_ID
EMAIL_CLOUDFLARE_API_TOKEN     needs "Email Sending: Edit"
DEFAULT_FROM_EMAIL
EMAIL_TASKS_ALWAYS_EAGER       [true for single-service web deployments]
ALLOW_CONSOLE_EMAIL_BACKEND    escape hatch for the console-backend guard
```

**Billing and provisioning**

```
BILLING_PROVISIONING_ENABLED
BILLING_PROVISIONING_LIVE                      [False locally, true in production]
BILLING_MAINTENANCE_ENABLED
BILLING_MAINTENANCE_LIVE
BILLING_MAINTENANCE_INTERVAL_SECONDS           [300]
BILLING_UNPAID_ORDER_RETENTION_DAYS            [3]
SUSPENDED_VM_CHECK_INTERVAL_SECONDS            [300]
SUSPENSION_RECONCILIATION_INTERVAL_SECONDS     [daily]
ORDER_RECOVERY_INTERVAL_SECONDS                [900]
PROVISIONING_STALE_LOCK_TIMEOUT_SECONDS        [900]
PROVISIONING_AUTO_RETRY_MAX_RETRIES            [3]
PROVISIONING_AUTO_RETRY_DELAY_SECONDS          [300]
PROXMOX_STORAGE_LOCK_MAX_ATTEMPTS              [500]
PROXMOX_STORAGE_LOCK_RETRY_DELAY_SECONDS       [30]
PROXMOX_VM_LOCK_MAX_ATTEMPTS                   [8]
PROXMOX_VM_LOCK_RETRY_DELAY_SECONDS            [5]
PROXMOX_VM_LOCK_IN_STEP_WAIT_SECONDS           [45]
PROXMOX_VM_LOCK_POLL_SECONDS                   [2]
GUEST_AGENT_PING_TIMEOUT_SECONDS               [240]
GUEST_AGENT_EXEC_TIMEOUT_SECONDS               [300]
OPERATOR_RESIZE_TASK_WAIT_SECONDS              [15]
```

**API metering**

```
API_INCLUDED_REQUESTS_PER_MONTH   [5000]
API_OVERAGE_UNIT_REQUESTS         [100000]
API_OVERAGE_RATE_PER_UNIT         [1.00]
```

**Monitoring, agents and metrics**

```
STATUS_MONITOR_WORKER_GROUP     group-1 | group-2 | group-3  (monitor hosts only)
MONITOR_DISPATCH_INTERVAL_SECONDS              [30]
STALE_COVERAGE_INTERVAL_MULTIPLIER
STALE_COVERAGE_MINIMUM_SECONDS
PING_PACKET_COUNT                              [5]
PING_DEGRADED_LOSS_PERCENT                     [50]
AGENT_API_PSK                   temporary compatibility fallback only
AGENT_ONLINE_SECONDS                           [300]
SERVICE_CHECKIN_REGION
SERVICE_KILL_ON_SIGNAL                         [true]
VM_METRICS_RETENTION_DAYS
VM_IO_HIGH_IOPS_THRESHOLD                      [1500]
VM_IO_HIGH_LATENCY_US                          [20000]
NODE_IO_WAIT_HIGH_PERCENT                      [10.0]
VM_IO_DOMINANT_SHARE_PERCENT                   [40.0]
VM_IO_ABUSE_REVIEW_INTERVALS                   [12]
```

**Web hosting**

```
WEBHOSTING_PROVISIONING_POLL_INTERVAL_SECONDS              [5]
WEBHOSTING_PROVISIONING_POLL_TIMEOUT_SECONDS               [900]
WEBHOSTING_MANAGEMENT_DISPATCH_INTERVAL_SECONDS            [15]
WEBHOSTING_MANAGEMENT_SUBMITTED_NO_PROGRESS_TIMEOUT_SECONDS [120]
WEBHOSTING_MANAGEMENT_RUNNING_NO_PROGRESS_TIMEOUT_SECONDS   [120]
WEBHOSTING_ACCOUNT_ACCESS_CACHE_SECONDS                    [30]
WEBHOSTING_NODE_SYNC_INTERVAL_SECONDS                      [30]
WEBHOSTING_NODE_SYNC_LIMIT                                 [10]
WEBHOSTING_CERTIFICATE_RENEWAL_INTERVAL_SECONDS            [3600]
WEBHOSTING_CUSTOMER_DNS_DISPATCH_INTERVAL_SECONDS          [15]
```

**Application platform**

```
PAAS_APP_DOMAIN                [apps.layeronecloud.com]  <slug>.<domain>
PAAS_IMAGE_REGISTRY            built images, referenced by digest
PAAS_BUILD_TIMEOUT_SECONDS     [1800]
PAAS_NETWORK_SUPERNET          [10.128.0.0/12]  one subnet per project
PAAS_NETWORK_PREFIX_LENGTH     [24]
PAAS_INTERNAL_DOMAIN           [internal]  <app>.internal
PAAS_GITHUB_CLIENT_ID          absent disables GitHub deploys entirely
PAAS_GITHUB_CLIENT_SECRET
PAAS_GITHUB_WEBHOOK_SECRET     absent disables build-on-push; unsigned
                               deliveries are refused, never trusted
PAAS_GITHUB_TIMEOUT_SECONDS    [10]  outbound calls to api.github.com
```

**Campaigns, MFA, tickets, Aegis**

```
CAMPAIGN_DISPATCH_INTERVAL_SECONDS  [300]
MFA_CHALLENGE_MAX_ATTEMPTS          [5]
MFA_PENDING_TIMEOUT_SECONDS
WEBAUTHN_RP_ID / WEBAUTHN_ORIGIN    set to the public site in production
TICKET_ATTACHMENT_MAX_BYTES
TICKETING_URL_PREFIX                [ticketing]  standalone ticketing mount
L1_PULSAR_DDOS_SYNC / L1_PULSAR_DDOS_SYNC_SECONDS   (monitor side)
L1_PULSAR_AEGIS_LIVE_SYNC                            (monitor side)
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.layeronecloud.com/platform/reference/environment-variables.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
