Configuration¶
calServer v2 configuration is primarily managed through environment variables in the .env file of the Laravel container.
Environment Variables¶
Database¶
| Variable | Description | Example |
|---|---|---|
DB_HOST |
MySQL hostname | mysql |
DB_PORT |
MySQL port | 3306 |
DB_DATABASE |
Database name | calserver |
DB_USERNAME |
Database user | calserver |
DB_PASSWORD |
Database password | <DB-PASSWORD> |
DB_PREFIX |
Table prefix | thermo_ |
Redis¶
| Variable | Description | Example |
|---|---|---|
REDIS_HOST |
Redis hostname | redis |
REDIS_PORT |
Redis port | 6379 |
REDIS_PASSWORD |
Redis password | null |
Broadcasting / Pusher (Live Updates)¶
Live grid updates are off by default. New notifications and their counters are polled once a minute instead; that needs no permanent process and works behind reverse proxies that block WebSockets. Without a broadcaster, lists show other users' changes only after a reload.
| Variable | Description | Default |
|---|---|---|
BROADCAST_CONNECTION |
Broadcaster: null (off), log, redis or pusher |
null (container), log (Laravel default) |
PUSHER_APP_ID |
Pusher Application ID | — |
PUSHER_APP_KEY |
Pusher App Key | — |
PUSHER_APP_SECRET |
Pusher App Secret | — |
PUSHER_APP_CLUSTER |
Pusher Cluster (e.g. eu) |
eu |
Pusher needs a package that is not shipped
BROADCAST_CONNECTION=pusher only takes effect when all three credentials
are set and pusher/pusher-php-server is installed. If anything is
missing, calServer selects the null driver instead of queueing broadcast
jobs that are certain to fail. When the credentials are there and only the
package is missing, the reason is shown under Administration →
Operations → Queue.
DMS (Document Management)¶
| Variable | Description | Default |
|---|---|---|
DMS_INBOX_ENABLED |
Automatic inbox processing. Stays off while calServer V1 runs alongside: both would empty the same folder | false |
DMS_INBOX_SCHEDULE |
How often the run is due (Laravel scheduler method, e.g. everyFiveMinutes, hourly) |
everyFiveMinutes |
DMS_INBOX_ARCHIVE |
Move imported source files to {inbox}/_archive instead of deleting them. false is the V1 behaviour |
true |
DMS_STORAGE_MODE |
Where the DMS store lives: own (its own tree under storage/app) or v1-tree (V2 keeps writing in the V1 file manager tree) |
own |
DMS_PATH |
DMS store, overrides the mode. Path inside the container; leave empty to let the mode apply | derived from the mode |
DMS_INBOX_PATH |
Inbox, overrides the mode. A container path as well | derived from the mode |
DMS_CERT_IMPORT_PATH |
Staging area for certificate import, deliberately not a subfolder of the inbox | storage/app/certificate-imports |
FILE_MANAGER_PATH |
Host path of the file manager tree, i.e. the mount source. Not to be confused with the target inside the container (/app/storage/app/filemanager) |
none, must be set |
FILEMANAGER_MOUNT_MODE |
How the file manager volume is mounted. Derived, do not set: deploy.sh writes the line into .env from DMS_STORAGE_MODE on every run |
ro or rw |
FILEMANAGER_MOUNT_MODE_PIN |
Pins the mount mode deliberately against the storage mode. Stays put and wins over the derivation | empty |
Which mode fits when, and how the documents of an existing V1 are brought over, is covered under Operations → File storage.
General¶
| Variable | Description | Default |
|---|---|---|
APP_ENV |
Environment | production |
APP_DEBUG |
Debug mode | false |
APP_URL |
Base URL | https://your-instance.example.com |
Nginx Proxy Routing¶
URL routing is handled via the Nginx proxy:
# calServer v1 (default)
location / {
proxy_pass http://calserver:8080;
}
# API v2
location /api/v2/ {
proxy_pass http://calserver-api-v2:8081;
}
# Frontend v2
location /v2/ {
proxy_pass http://calserver-frontend:3000;
}
Scheduler¶
The Laravel scheduler must be activated in the container:
In Docker, this is automatically managed via Supervisor.