.env.example to .env and customize the values for your environment.
Application Settings
The name of your panel instance. This appears in the UI, emails, and page titles.
Application environment. Set to
production for production deployments or development for local development.Enable debug mode for additional logging. Only enable in development.
URLs and Authentication
The primary URL where your panel is accessible (e.g.,
https://panel.example.com).This must match your actual domain for authentication to work properly.
Comma-separated list of trusted origins for authentication. Usually matches
BETTER_AUTH_URL.Public URL for the application. Should match
BETTER_AUTH_URL.Public-facing URL for the panel (e.g.,
https://panel.example.com).Internal URL for server-to-server communication within Docker or local network.
Port number the application listens on.
URL for the paste service used for sharing logs and configuration.
Security
Secret key for authentication and session encryption. Must be at least 32 characters in production.Generate a secure secret:
Initial Admin Setup
These variables configure the initial admin account created viaPOST /api/system/seed.
Secret key required to access the seed endpoint. Generate with:
Email address for the initial admin account.
Password for the initial admin account.
Username for the initial admin account.
Display name for the initial admin account.
Database
XyraPanel requires PostgreSQL 14 or higher.PostgreSQL connection string. Format:Example:
Docker-Only Variables
These variables configure the PostgreSQL container indocker-compose.yml. They must match the credentials in DATABASE_URL.
PostgreSQL username for Docker container.
PostgreSQL password for Docker container.
PostgreSQL database name for Docker container.
PM2 Configuration
Optional PM2 process manager overrides.Number of PM2 instances to run. Set to
1 for low-memory hosts.Uncomment this variable only if you need to override the default from
ecosystem.config.cjs.Maximum memory before PM2 restarts the process (e.g., “1G”, “512M”).
HTTP Cache
XyraPanel includes server-side HTTP caching for improved performance.Enable or disable HTTP caching.
Default cache max-age in seconds for most endpoints.
Default stale-while-revalidate time in seconds.
Cache max-age for dashboard endpoints (seconds).
Stale-while-revalidate time for dashboard (seconds).
Cache max-age for admin dashboard endpoints (seconds).
Stale-while-revalidate time for admin dashboard (seconds).
Cache max-age for admin node endpoints (seconds).
Stale-while-revalidate time for admin nodes (seconds).
Request Limits
Maximum request body size in megabytes.
Maximum file upload size in megabytes.
Next Steps
Redis Configuration
Configure Redis for caching and rate limiting
Security Settings
Configure CORS, CSP, and rate limiting
Email Configuration
Set up email notifications
Captcha Setup
Configure captcha providers