Configuration Reference
User-facing settings for normal operation are separated from advanced implementation controls.
For Docker deployments, substitution variables in docker-compose.yml are the normal user-facing entry point. Internal Backend tuning variables are intentionally not presented as ordinary configuration.
Compose settings
| Setting | Purpose | Default |
|---|---|---|
VYLINE_IMAGE | Container image to run | ghcr.io/tqmane/vyline:latest |
VYLINE_BIND_ADDRESS | Host address exposed by the published port | 0.0.0.0 |
VYLINE_PORT | Host-side web port | 3000 |
VYLINE_DATA_PATH | Host path mounted at /app/data | ./data |
VYLINE_STORAGE_PATH | Host path mounted at /app/storage | ./storage |
VYLINE_LAN_ACCESS | LAN/subdevice access behavior | false |
VYLINE_TRUST_REMOTE_OWNER | Treat a remote browser on a protected transport as owner | false |
TZ | Container timezone | Asia/Tokyo |
# Example: publish only on localhost
VYLINE_BIND_ADDRESS=127.0.0.1
VYLINE_PORT=3000
docker compose up -d
pull_policy: always, restart: unless-stopped, init: true, and stop_grace_period: 30s are fixed in the Compose file.
Normal Backend settings
| Variable | Meaning | Default |
|---|---|---|
PORT | Backend listen port | 3001; Compose sets 3000 |
VYLINE_HOST | Backend listen address | Normally loopback; Compose uses 0.0.0.0 |
VYLINE_DATA_DIR | Root for account state, settings, DB, logs, backups, and related data | Backend data; Compose uses /app/data |
VYLINE_STORAGE_DIR | Root for cache, saved media, and related storage | Backend storage; Compose uses /app/storage |
VYLINE_CDN_CACHE_DIR | Override path for CDN cache such as stickers | VYLINE_STORAGE_DIR/cache/cdn-cache |
VYLINE_MEDIA_CACHE_DIR | Compatibility setting for saved media when VYLINE_MEDIA_STORAGE_DIR is unset | VYLINE_STORAGE_DIR/saved-media |
VYLINE_CORS_ORIGIN | Allowed CORS origins, comma-separated | http://localhost:5173 |
VYLINE_STATIC_DIR | Frontend build served by Backend | Vyline/apps/desktop/dist |
VYLINE_DEVICE | Protocol device mode | IOSIPAD |
See Access Model for the meaning of VYLINE_LAN_ACCESS and VYLINE_TRUST_REMOTE_OWNER. They are authentication/trust settings, separate from the bind address.
Advanced implementation settings
The following variables are read by Backend but normally do not need to be set for a Compose deployment. Use them only when deliberately changing paths or API operation.
| Variable | Purpose | Default |
|---|---|---|
VYLINE_PUBLIC_HOST | Explicit external host used for subdevice pairing | Resolved from request data when unset |
VYLINE_API_ADMIN_SECRET | Authentication for administration APIs such as token operations; admin APIs are disabled when unset | Unset |
VYLINE_OPENAPI_PATH | Override YAML file served at /openapi.yaml | Repository-root openapi.yaml |
VYLINE_MAX_REQUEST_BODY_BYTES | HTTP request-body limit | Same value as the backup storage limit |
VYLINE_PLUGIN_DIR | Plugin directory | VYLINE_DATA_DIR/plugins |
VYLINE_LOG_DIR | Diagnostic and message-log directory | VYLINE_DATA_DIR/logs |
VYLINE_BACKUP_DIR | VylineBackup snapshot directory | VYLINE_DATA_DIR/backups |
VYLINE_MEDIA_STORAGE_DIR | Saved-media directory | VYLINE_STORAGE_DIR/saved-media |
VYLINE_ICON_CACHE_DIR | Override path for icon cache | VYLINE_STORAGE_DIR/cache/icons |
VYLINE_MEDIA_INDEX_PATH | Path to the media-index SQLite database | VYLINE_STORAGE_DIR/media-index.sqlite |
Internal tuning variables
Variables such as VYLINE_SQLITE_*, VYLINE_BACKUP_HEAVY_*, and VYLINE_CONTACT_*_TIMEOUT_MS are implementation knobs for performance, capacity, and diagnostics. Their values may change with code and tests, so this page does not freeze them as user-facing configuration. Inspect the relevant module when one of these controls is needed.
For user-facing configuration, use docker-compose.yml and .env.example. For advanced settings, use the implementation under Vyline/backend/src. Recreate the container after changing Compose environment variables.