4.1 KiB
4.1 KiB
Configuration
RenewCMS reads its configuration from environment variables. On startup it also loads a .env file from the working directory (or its parent) if one exists. Real environment variables take precedence over .env.
Copy .env.example to .env to get started. When a required variable is missing, the server refuses to start and names the variable.
Variables
Required
| Name | Description | Example |
|---|---|---|
PUBLIC_URL |
Public base URL of the site, including scheme and no trailing slash. Used for links in emails and in the startup log. | https://cms.example.com |
JWT_SECRET |
Secret used to sign the auth JWT. Use a long random value; changing it logs everyone out. | openssl rand -hex 32 |
SMTP_EMAIL |
Sender address and SMTP username. | noreply@example.com |
SMTP_PASSWORD |
SMTP password. | |
SMTP_HOST |
SMTP server host. | smtp.example.com |
SMTP_PORT |
SMTP server port. | 465 |
Optional
| Name | Default | Description |
|---|---|---|
ENVIRONMENT |
production |
production or development. In production the auth cookie is Secure, so it is only sent over HTTPS. development turns on HTTP request logging. |
PORT |
8080 |
Port the HTTP server listens on (all interfaces). |
DB_FILE |
./data/renewcms.db |
Path to the SQLite database file. Missing parent directories are created. The schema is migrated automatically at startup. |
UPLOAD_DIR |
./data/uploads |
Directory where uploaded images are stored. |
CORS_ALLOWED_ORIGINS |
(empty) | Semicolon-separated list of origins allowed to call the API. When empty, no CORS headers are sent. That is the right setting whenever the SPA is served by RenewCMS itself (production) or through the Vite proxy (development). |
Relative paths are resolved against the process's working directory. In production, use absolute paths (see deployment.md).
Adding a variable
- Read it in the code where it is needed (infrastructure or
api/, neverinternal/domain). - Register it in
cmd/server/main.go: add it torequiredEnvVarsif it is required, or toenvDefaultsif it has a default. - Add it to
.env.exampleand to the tables above.
Never hardcode a secret, and never commit .env.