Complete environment and source token catalog
This appendix is generated from the Plainwire 2.0 source tree. It lists every PLAINWIRE_* token found in the snapshot, including normal operator settings, build helpers, browser globals, and test-only names.
Do not copy this table into
.env. Most installations should use the upstream.env.exampleplus the subsystem guides. This catalog exists so obscure knobs are not invisible.
Catalog size: 187 tokens. Upstream .env.example contains 144 configured names.
Core and public runtime#
| Name | Example/default | Purpose | Source |
|---|---|---|---|
PLAINWIRE_ADAPTIVE_SCREEN |
false | Advanced core and public runtime setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:112<br>src/pw_client_config.erl:10<br>src/pw_admin_runtime.erl:58 |
PLAINWIRE_ALLOW_STATIC_TURN_CREDENTIALS |
false | Compatibility/security exception. Allows static TURN username/password credentials in production. Default false. Prefer short-lived coturn shared-secret or Cloudflare credentials. | src/pw_rtc_config.erl:57 |
PLAINWIRE_APP_NAME |
Plainwire | Public client behavior. these values are served at runtime, so one build can be reused across deployments without rebuilding the Elm bundle. | README.md:122<br>.env.example:9<br>src/pw_client_config.erl:13 |
PLAINWIRE_DEFAULT_THEME |
system | Advanced core and public runtime setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.development.example:14<br>README.md:123<br>.env.example:10 |
PLAINWIRE_ENC_KEY |
secret / unset | Generate with: openssl rand -base64 32 | .env.example:34<br>scripts/install-openrc-release.sh:129<br>src/pw_crypto.erl:4 |
PLAINWIRE_ENV |
production | Public production deployment | .env.development.example:2<br>README.md:110<br>.env.example:2 |
PLAINWIRE_IDLE_TIMEOUT_MS |
600000 | Advanced core and public runtime setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:15<br>src/pw_client_config.erl:23 |
PLAINWIRE_INSTANCE_DESCRIPTION |
"A fast, self-hosted place to talk." | Advanced core and public runtime setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:86<br>src/pw_client_config.erl:19 |
PLAINWIRE_KRISP_ENABLED |
false | Optional, licensed Krisp bits live in priv/static/krisp (see its README) | .env.example:82<br>src/pw_admin_runtime.erl:56<br>src/pw_rtc_config.erl:38 |
PLAINWIRE_MAX_SESSIONS_PER_USER |
32 | Advanced core and public runtime setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:17<br>scripts/install-openrc-release.sh:156<br>src/pw_db.erl:4369 |
PLAINWIRE_PBKDF2_ITERS |
160000 | Advanced core and public runtime setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:35<br>src/pw_app.erl:149<br>src/pw_util.erl:85 |
PLAINWIRE_PUBLIC_URL |
https://chat.example.com | Advanced core and public runtime setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.development.example:3<br>README.md:111<br>.env.example:3 |
PLAINWIRE_REGISTRATION_ENABLED |
true | Public instance identity and sign-up policy | README.md:124<br>.env.example:85<br>src/pw_client_config.erl:86 |
PLAINWIRE_SESSION_DAYS |
30 | Advanced core and public runtime setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:16<br>scripts/install-openrc-release.sh:155<br>src/pw_util.erl:292 |
PLAINWIRE_SOURCE_REPOSITORY |
https://github.com/Plainwire-development/Plainwire | Repository shown by the first-run tour and Help surfaces. HTTPS only. | .env.development.example:24<br>README.md:134<br>.env.example:88 |
Database#
| Name | Example/default | Purpose | Source |
|---|---|---|---|
PLAINWIRE_ALLOW_INSECURE_DB |
source-managed / unset | Compatibility/security exception. Explicit production exception for PostgreSQL without TLS. Use only when the DB path is fully trusted, such as a private same-host/container network. | scripts/install-openrc-release.sh:137<br>deploy/README.md:30<br>src/pw_app.erl:130 |
PLAINWIRE_DB_HOST |
database.internal | Advanced database setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.development.example:6<br>README.md:116<br>.env.example:19 |
PLAINWIRE_DB_IDLE_TX_TIMEOUT_MS |
15000 | Advanced database setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:29<br>src/pw_db.erl:692 |
PLAINWIRE_DB_LOCK_TIMEOUT_MS |
5000 | Advanced database setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:30<br>src/pw_db.erl:693 |
PLAINWIRE_DB_MAX_QUEUE |
250 | Advanced database setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:27<br>src/pw_db.erl:160 |
PLAINWIRE_DB_NAME |
plainwire | Advanced database setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.development.example:10<br>README.md:120<br>.env.example:23 |
PLAINWIRE_DB_PASS |
secret / unset | Advanced database setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.development.example:9<br>README.md:119<br>.env.example:22 |
PLAINWIRE_DB_POOL_SIZE |
20 | Start near 2x CPU cores, then watch postgres and tune it | .env.development.example:12<br>.env.example:26<br>scripts/install-openrc-release.sh:138 |
PLAINWIRE_DB_PORT |
5432 | Advanced database setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.development.example:7<br>README.md:117<br>.env.example:20 |
PLAINWIRE_DB_SLOW_MS |
250 | Advanced database setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:31<br>src/pw_db.erl:176 |
PLAINWIRE_DB_SSL |
true | Advanced database setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.development.example:11<br>.env.example:24<br>scripts/install-openrc-release.sh:136 |
PLAINWIRE_DB_STATEMENT_TIMEOUT_MS |
15000 | Advanced database setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:28<br>src/pw_db.erl:691 |
PLAINWIRE_DB_USER |
plainwire | Advanced database setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.development.example:8<br>README.md:118<br>.env.example:21 |
PLAINWIRE_POSTGRES_SERVICE |
source-managed / unset | OpenRC installer override naming the PostgreSQL service to manage/discover. Not used by normal app runtime. | scripts/install-openrc-release.sh:19<br>scripts/install-openrc-release.sh:35 |
Uploads and media#
| Name | Example/default | Purpose | Source |
|---|---|---|---|
PLAINWIRE_ALLOW_ARBITRARY_MEDIA |
false | Compatibility/security exception. Compatibility override allowing remote media outside the normal production restrictions. Default false. Avoid in production unless the egress risk is understood. | scripts/install-openrc-release.sh:152<br>src/pw_media.erl:396 |
PLAINWIRE_ALLOW_UNSIGNED_MEDIA_TOKENS |
false | Compatibility/security exception. Compatibility override for unsigned media tokens in production. Default false. Do not enable as a routine deployment setting. | src/pw_media.erl:312 |
PLAINWIRE_COMPRESS_OVERSIZE_UPLOADS |
true | Advanced uploads and media setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:13<br>scripts/install-openrc-release.sh:143<br>src/pw_client_config.erl:24 |
PLAINWIRE_FILE_REQUESTS_PER_MINUTE |
1200 | Advanced uploads and media setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:64<br>src/pw_file_hdl.erl:24 |
PLAINWIRE_MEDIA_ALLOWED_HOSTS |
cdn.example.com | Trusted image/CDN hosts only. keep egress filtering too | .env.example:38<br>scripts/install-openrc-release.sh:151<br>src/pw_media.erl:394 |
PLAINWIRE_MEDIA_FETCH_CONCURRENCY |
24 | Advanced uploads and media setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:39<br>scripts/install-openrc-release.sh:153<br>src/pw_media.erl:275 |
PLAINWIRE_MEDIA_QUALITY |
auto | Optional numeric diagnostics. Build with scripts/build-media-quality.sh. auto uses the worker if installed; off disables server analysis. | .env.example:111<br>src/pw_client_config.erl:9<br>src/pw_admin_runtime.erl:57 |
PLAINWIRE_MEDIA_QUALITY_BIN |
source-managed / unset | Absolute path override for the optional native media-quality executable. | src/pw_media_quality.erl:25<br>docs/CALL_HEALTH.md:18 |
PLAINWIRE_MEDIA_REQUESTS_PER_MINUTE |
1200 | Authenticated avatar/file-heavy screens get a generous per-user/IP burst budget | .env.example:63<br>src/pw_media_hdl.erl:25 |
PLAINWIRE_MEDIA_SIGNING_KEY |
secret / unset | Optional dedicated media-token signing key. Keep secret. Source install helpers generate/configure it when needed. | scripts/install-openrc-release.sh:130<br>src/pw_crypto.erl:76 |
PLAINWIRE_PROFILE_IMAGE_MAX_BYTES |
16777216 | Advanced uploads and media setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:12<br>scripts/install-openrc-release.sh:142<br>src/pw_client_config.erl:108 |
PLAINWIRE_UPLOAD_CONCURRENCY |
64 | Advanced uploads and media setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:46<br>scripts/install-openrc-release.sh:147<br>src/pw_upload_gc.erl:100 |
PLAINWIRE_UPLOAD_DIR |
/var/lib/plainwire/uploads | Streamed attachments need durable storage and a 250 MB proxy limit on /api/uploads | .env.development.example:13<br>.env.example:42<br>scripts/install-openrc-release.sh:139 |
PLAINWIRE_UPLOAD_IMAGE_MAX_DIMENSION |
4096 | Advanced uploads and media setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:14<br>scripts/install-openrc-release.sh:144<br>src/pw_client_config.erl:25 |
PLAINWIRE_UPLOAD_INFLIGHT_BYTES |
1073741824 | Big uploads add up. put a ceiling on the pile. | .env.example:49<br>scripts/install-openrc-release.sh:149<br>src/pw_upload_gc.erl:102 |
PLAINWIRE_UPLOAD_MAX_BYTES |
262144000 | Advanced uploads and media setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:43<br>scripts/install-openrc-release.sh:140<br>deploy/README.md:34 |
PLAINWIRE_UPLOAD_MAX_FILES |
10 | Advanced uploads and media setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:11<br>scripts/install-openrc-release.sh:141<br>src/pw_client_config.erl:22 |
PLAINWIRE_UPLOAD_QUOTA_BYTES |
1073741824 | Advanced uploads and media setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:44<br>scripts/install-openrc-release.sh:145<br>src/pw_db.erl:4078 |
PLAINWIRE_UPLOAD_RETENTION_DAYS |
90 | Advanced uploads and media setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:45<br>scripts/install-openrc-release.sh:146<br>src/pw_upload_gc.erl:138 |
PLAINWIRE_UPLOAD_USER_CONCURRENCY |
4 | Advanced uploads and media setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:47<br>scripts/install-openrc-release.sh:148<br>src/pw_upload_gc.erl:101 |
PLAINWIRE_UPLOAD_USER_INFLIGHT_BYTES |
536870912 | Advanced uploads and media setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:50<br>scripts/install-openrc-release.sh:150<br>src/pw_upload_gc.erl:103 |
HTTP and WebSocket#
| Name | Example/default | Purpose | Source |
|---|---|---|---|
PLAINWIRE_ALLOWED_ORIGINS |
source-managed / unset | Comma-separated WebSocket origin allowlist. If unset, Plainwire derives the normal production origin from the public URL. Set explicitly for unusual multi-origin deployments. | scripts/install-openrc-release.sh:126<br>src/pw_ws.erl:506 |
PLAINWIRE_HTTP_ACCEPTORS |
100 | Cowboy/ranch capacity; proxy and file-descriptor limits need to agree | .env.example:53<br>src/pw_sup.erl:83 |
PLAINWIRE_HTTP_CONNECT_TIMEOUT_MS |
2500 | Advanced http and websocket setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:61<br>src/pw_http_fetch.erl:52<br>src/pw_http_fetch.erl:151 |
PLAINWIRE_HTTP_FETCH_TIMEOUT_MS |
8000 | Bounded upstream media/embed fetches: slow/dead avatar hosts must not stall UI lists | .env.example:60<br>src/pw_http_fetch.erl:51<br>src/pw_http_fetch.erl:150 |
PLAINWIRE_HTTP_IDLE_TIMEOUT_MS |
60000 | Advanced http and websocket setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:55<br>src/pw_sup.erl:108 |
PLAINWIRE_HTTP_MAX_CONNECTIONS |
100000 | Advanced http and websocket setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:54<br>src/pw_admin_runtime.erl:51<br>src/pw_sup.erl:84 |
PLAINWIRE_HTTP_MAX_KEEPALIVE |
1000 | Advanced http and websocket setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:57<br>src/pw_sup.erl:110 |
PLAINWIRE_HTTP_REQUEST_TIMEOUT_MS |
30000 | Advanced http and websocket setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:56<br>src/pw_sup.erl:109 |
PLAINWIRE_TRUSTED_PROXIES |
<<"127.0.0.1/32,::1/128">> | Trusted reverse-proxy CIDRs. Default source value is 127.0.0.1/32,::1/128. Keep narrow. |
src/pw_util.erl:336 |
PLAINWIRE_TRUST_PROXY |
true | Advanced http and websocket setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.development.example:5<br>README.md:114<br>.env.example:5 |
PLAINWIRE_WS_HARD_QUEUE |
2000 | Advanced http and websocket setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:68<br>src/pw_ws.erl:338 |
PLAINWIRE_WS_SOFT_QUEUE |
500 | Slow clients do not get to fill the BEAM mailbox forever | .env.example:67<br>src/pw_ws.erl:337 |
Realtime and TURN#
| Name | Example/default | Purpose | Source |
|---|---|---|---|
PLAINWIRE_CALL_RING_MS |
source-managed / unset | Call ring timeout. Defaults to the server ring constant and is clamped between 10000 and 120000 ms. | src/pw_hub.erl:598 |
PLAINWIRE_CF_ACCOUNT_ID |
source-managed / unset | Optional monthly usage guard. When account ID is present, unknown/stale usage prevents new credentials. Analytics is delayed; this is NOT a billing cap. | .env.example:104<br>scripts/install-openrc-release.sh:59<br>scripts/install-openrc-release.sh:161 |
PLAINWIRE_CF_ANALYTICS_API_TOKEN |
secret / unset | Advanced realtime and turn setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:105<br>scripts/install-openrc-release.sh:60<br>scripts/install-openrc-release.sh:162 |
PLAINWIRE_CF_TURN_API_TOKEN |
secret / unset | Advanced realtime and turn setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:101<br>scripts/install-openrc-release.sh:58<br>scripts/install-openrc-release.sh:160 |
PLAINWIRE_CF_TURN_KEY_ID |
secret / unset | Cloudflare TURN takes priority when BOTH values are set. Keep tokens private. A Cloudflare Tunnel token is a different credential and will not work here. | .env.example:100<br>scripts/install-openrc-release.sh:57<br>scripts/install-openrc-release.sh:159 |
PLAINWIRE_CF_USAGE_CHECK_INTERVAL_MS |
300000 | Advanced realtime and turn setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:107<br>src/pw_cf_turn.erl:70<br>docs/CLOUDFLARE_TURN.md:26 |
PLAINWIRE_ICE_TRANSPORT_POLICY |
<<"all">> | WebRTC ICE policy. all is normal. relay forces TURN and is useful for controlled relay tests. |
src/pw_rtc_config.erl:14<br>test/pw_rtc_config_tests.erl:51<br>docs/CLOUDFLARE_TURN.md:35 |
PLAINWIRE_REQUIRE_TURN |
true | Advanced realtime and turn setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | README.md:178<br>.env.example:78<br>scripts/install-openrc-release.sh:165 |
PLAINWIRE_RTC_CONFIG |
source-managed / unset | Browser global holding fetched ICE configuration. Not a server environment variable. | priv/static/elm-bridge.js:1307<br>priv/static/elm-bridge.js:1471 |
PLAINWIRE_RTC_RECONNECT_GRACE_MS |
15000 | Advanced realtime and turn setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:79<br>src/pw_hub.erl:841<br>test/pw_hub_tests.erl:296 |
PLAINWIRE_STUN_URLS |
source-managed / unset | Comma-separated STUN URL override. Source default includes Google public STUN at stun:stun.l.google.com:19302. |
src/pw_rtc_config.erl:10<br>test/pw_rtc_config_tests.erl:27<br>test/pw_rtc_config_tests.erl:49 |
PLAINWIRE_TURN_CREDENTIAL |
secret / unset | Static TURN credential compatibility setting. Production requires the explicit static-credential override. Prefer short-lived credentials. | src/pw_rtc_config.erl:91<br>src/pw_rtc_config.erl:112<br>test/pw_rtc_config_tests.erl:30 |
PLAINWIRE_TURN_MONTHLY_LIMIT_BYTES |
950000000000 | Advanced realtime and turn setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:106<br>src/pw_cf_turn.erl:121<br>docs/CLOUDFLARE_TURN.md:25 |
PLAINWIRE_TURN_SECRET |
secret / unset | Advanced realtime and turn setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | README.md:177<br>.env.example:75<br>scripts/install-openrc-release.sh:56 |
PLAINWIRE_TURN_TTL_SECONDS |
3600 | Advanced realtime and turn setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:77<br>scripts/install-openrc-release.sh:164<br>src/pw_cf_turn.erl:31 |
PLAINWIRE_TURN_URLS |
turn:turn.example.com:3478?transport=udp,turn:turn.example.com:3478?transport=tcp,turns:turn.example.com:5349?transport=tcp | Coturn: use-auth-secret, the same static-auth-secret, and a realm | README.md:176<br>.env.example:74<br>scripts/install-openrc-release.sh:55 |
PLAINWIRE_TURN_USERNAME |
plainwire | Advanced realtime and turn setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:76<br>scripts/install-openrc-release.sh:163<br>src/pw_rtc_config.erl:90 |
PLAINWIRE_VOICE_MAX_PARTICIPANTS |
8 | Voice room participant cap. Default 8, clamped to 2 through 32. | src/pw_hub.erl:21 |
PLAINWIRE_VOICE_MAX_SHARES |
2 | Concurrent screen-share cap. Default 2, clamped to 1 through 8. | src/pw_hub.erl:22 |
Admin control plane#
| Name | Example/default | Purpose | Source |
|---|---|---|---|
PLAINWIRE_ADMIN_ACCEPTORS |
10 | Advanced admin control plane setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:127<br>src/pw_sup.erl:45 |
PLAINWIRE_ADMIN_ALLOW_REMOTE |
false | Remote production access is deliberately opt-in and requires HTTPS + secure cookies. | README.md:274<br>.env.example:135<br>src/pw_app.erl:78 |
PLAINWIRE_ADMIN_BIND |
127.0.0.1 | Loopback is the safe default. Put an HTTPS reverse proxy in front for remote use. | README.md:270<br>.env.example:125<br>src/pw_app.erl:44 |
PLAINWIRE_ADMIN_BOOTSTRAP_TOKEN |
secret / unset | Sensitive bootstrap token name recognized by storage/config sanitization. Treat as secret. Prefer the documented enrollment/recovery flow rather than inventing a permanent admin key. | src/pw_storage_sanitize.erl:65 |
PLAINWIRE_ADMIN_COOKIE_SECURE |
true | Advanced admin control plane setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:139<br>src/pw_app.erl:90<br>src/pw_admin_api.erl:323 |
PLAINWIRE_ADMIN_ENABLED |
false | Optional service-operator control plane. This is for the configured Plainwire HOST, not for moderators inside individual Plainwire servers. It has a separate listener and separate operator sessions. Source code contains no admin key. | README.md:269<br>.env.example:123<br>src/pw_app.erl:41 |
PLAINWIRE_ADMIN_ENROLLMENT_MINUTES |
60 | Advanced admin control plane setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:130<br>src/pw_admin_api.erl:330 |
PLAINWIRE_ADMIN_IDLE_TIMEOUT_MS |
30000 | Admin HTTP listener idle timeout. Default 30000 ms, clamped to 5000 through 120000. | src/pw_sup.erl:65 |
PLAINWIRE_ADMIN_LOCAL_RECOVERY |
false | Emergency only: generate one host-local owner recovery token on startup. Requires loopback bind. Remove after recovery. | README.md:264<br>.env.example:137<br>src/pw_app.erl:48 |
PLAINWIRE_ADMIN_MAX_CONNECTIONS |
2000 | Advanced admin control plane setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:128<br>src/pw_sup.erl:46 |
PLAINWIRE_ADMIN_MAX_KEEPALIVE |
200 | Maximum admin listener keepalive count. Default 200, clamped to 1 through 2000. | src/pw_sup.erl:67 |
PLAINWIRE_ADMIN_PORT |
8090 | Advanced admin control plane setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | README.md:271<br>.env.example:126<br>src/pw_sup.erl:43 |
PLAINWIRE_ADMIN_PUBLIC_URL |
https://control.example.com | Advanced admin control plane setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | README.md:274<br>.env.example:138<br>src/pw_admin_runtime.erl:46 |
PLAINWIRE_ADMIN_REQUEST_TIMEOUT_MS |
15000 | Admin listener request timeout. Default 15000 ms, clamped to 5000 through 60000. | src/pw_sup.erl:66 |
PLAINWIRE_ADMIN_SECRET_FILE |
/var/lib/plainwire/admin-instance.key | Production defaults to /var/lib/plainwire/admin-instance.key. Keep this file private and persistent; it binds operator verification keys to this instance. | .env.example:133<br>src/pw_app.erl:64<br>src/pw_admin_identity.erl:142 |
PLAINWIRE_ADMIN_SESSION_HOURS |
12 | Advanced admin control plane setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:129<br>src/pw_admin_api.erl:326 |
Redis#
| Name | Example/default | Purpose | Source |
|---|---|---|---|
PLAINWIRE_NODE_ID |
source-managed / unset | Stable and unique per running node when using Redis-backed presence across nodes. | .env.example:146<br>src/pw_redis.erl:100<br>docs/REDIS.md:13 |
PLAINWIRE_REDIS_DB |
0 | Advanced redis setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:152<br>src/pw_redis.erl:179 |
PLAINWIRE_REDIS_ENABLED |
false | Optional Redis real-time accelerator. Redis is never a durable authority. When Redis is disabled or unreachable, Plainwire falls back to its existing local ETS presence/rate-limit behavior and continues serving messages normally. | .env.example:144<br>src/pw_redis.erl:429<br>docs/REDIS.md:27 |
PLAINWIRE_REDIS_HOST |
127.0.0.1 | Advanced redis setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:147<br>src/pw_redis.erl:173 |
PLAINWIRE_REDIS_PASSWORD |
secret / unset | Advanced redis setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:151<br>src/pw_redis.erl:178<br>src/pw_storage_sanitize.erl:65 |
PLAINWIRE_REDIS_PORT |
6379 | Advanced redis setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:148<br>src/pw_redis.erl:174 |
PLAINWIRE_REDIS_PREFIX |
plainwire | Advanced redis setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:153<br>src/pw_redis.erl:403<br>test/pw_redis_tests.erl:26 |
PLAINWIRE_REDIS_TIMEOUT_MS |
80 | Advanced redis setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:154<br>src/pw_redis.erl:433 |
PLAINWIRE_REDIS_TLS |
false | Advanced redis setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:155<br>src/pw_redis.erl:175 |
PLAINWIRE_REDIS_TLS_INSECURE |
false | Compatibility/security exception. Emergency/private-network compatibility only. Keep false on public networks. | .env.example:157<br>src/pw_redis.erl:176 |
PLAINWIRE_REDIS_USERNAME |
source-managed / unset | Optional Redis 6+ ACL user. If set, password is required and AUTH username password is used. | .env.example:150<br>src/pw_redis.erl:177<br>test/browser/integrations-contract.mjs:53 |
Scylla and message storage#
| Name | Example/default | Purpose | Source |
|---|---|---|---|
PLAINWIRE_INSTANCE_ID |
source-managed / unset | Stable per instance is recommended; otherwise a boot nonce intentionally makes concurrent local instances distinct and they probe separate generator slots. | .env.example:210<br>src/pw_message_id.erl:233 |
PLAINWIRE_MESSAGE_BACKEND |
postgres | Optional ScyllaDB high-volume message/event storage. PostgreSQL remains the relational authority. Keep postgres for small/self-hosted installations. Use dual only while migrating; see docs/SCYLLA.md. |
.env.example:162<br>src/pw_scylla_config.erl:8<br>docs/CLUSTERING.md:7 |
PLAINWIRE_MESSAGE_ID_CLOCK_ROLLBACK_MS |
2000 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:207<br>src/pw_message_id.erl:48 |
PLAINWIRE_MESSAGE_NODE_ID |
auto | auto claims one of 64 short-lived PostgreSQL-backed generator slots. |
.env.example:206<br>src/pw_message_id.erl:202<br>src/pw_message_id.erl:241 |
PLAINWIRE_SCYLLA_BACKFILL_BATCH |
250 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:197<br>src/pw_storage_migration.erl:12 |
PLAINWIRE_SCYLLA_BACKFILL_CONCURRENCY |
8 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:198<br>src/pw_storage_migration.erl:13 |
PLAINWIRE_SCYLLA_BACKFILL_MAX_ROWS |
0 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:199<br>src/pw_storage_migration.erl:14 |
PLAINWIRE_SCYLLA_BUCKET_POLICY |
month | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:185<br>src/pw_scylla_config.erl:55<br>docs/SCYLLA.md:92 |
PLAINWIRE_SCYLLA_CACHE_TTL_MS |
20000 | Scylla-side message cache TTL. Default 20000 ms, clamped to 1000 through 300000. | src/pw_scylla_config.erl:39 |
PLAINWIRE_SCYLLA_CA_FILE |
source-managed / unset | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:170<br>scripts/scylla-migrate:44<br>scripts/scylla-migrate:68 |
PLAINWIRE_SCYLLA_CERT_FILE |
source-managed / unset | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:171<br>scripts/scylla-migrate:45<br>scripts/scylla-migrate:69 |
PLAINWIRE_SCYLLA_CONNECT_TIMEOUT_MS |
5000 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:178<br>src/pw_scylla_config.erl:32 |
PLAINWIRE_SCYLLA_CONSISTENCY |
local_quorum | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:174<br>src/pw_scylla_config.erl:46<br>docs/SCYLLA.md:87 |
PLAINWIRE_SCYLLA_CONTACT_POINTS |
127.0.0.1 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:164<br>scripts/scylla-migrate:7<br>scripts/scylla-migrate:14 |
PLAINWIRE_SCYLLA_DELIVERY_RETENTION_DAYS |
90 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:188<br>src/pw_scylla_config.erl:41<br>docs/SCYLLA.md:130 |
PLAINWIRE_SCYLLA_DRIVER_QUEUE |
32768 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:177<br>src/pw_scylla_config.erl:31 |
PLAINWIRE_SCYLLA_ENABLED |
false | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:163<br>src/pw_scylla_config.erl:5<br>docs/SCYLLA.md:82 |
PLAINWIRE_SCYLLA_EVENT_RETENTION_DAYS |
365 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:187<br>src/pw_scylla_config.erl:40<br>docs/SCYLLA.md:129 |
PLAINWIRE_SCYLLA_HISTORY_BUCKETS |
36 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:186<br>src/pw_message_store_scylla.erl:593<br>docs/SCYLLA.md:128 |
PLAINWIRE_SCYLLA_IO_THREADS |
2 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:176<br>src/pw_scylla_config.erl:30<br>docs/SCYLLA.md:89 |
PLAINWIRE_SCYLLA_KEYSPACE |
plainwire | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:166<br>scripts/scylla-migrate:9<br>scripts/scylla-migrate:15 |
PLAINWIRE_SCYLLA_KEY_FILE |
source-managed / unset | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:172<br>scripts/scylla-migrate:46<br>scripts/scylla-migrate:70 |
PLAINWIRE_SCYLLA_LOCAL_DC |
datacenter1 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:173<br>scripts/scylla-migrate:10<br>scripts/scylla-migrate:16 |
PLAINWIRE_SCYLLA_MAX_INFLIGHT |
256 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:181<br>src/pw_scylla_config.erl:35<br>docs/SCYLLA.md:114 |
PLAINWIRE_SCYLLA_MAX_PAGE_SCAN_ROWS |
4096 | Upper bound for rows scanned while serving a paged Scylla history request. Default 4096 in the Scylla message store. | src/pw_message_store_scylla.erl:602 |
PLAINWIRE_SCYLLA_MAX_PARTITION_INFLIGHT |
8 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:182<br>src/pw_scylla_config.erl:36<br>docs/SCYLLA.md:115 |
PLAINWIRE_SCYLLA_MAX_PARTITION_QUEUE |
128 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:184<br>src/pw_scylla_config.erl:38<br>docs/SCYLLA.md:117 |
PLAINWIRE_SCYLLA_MAX_QUEUE |
4096 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:183<br>src/pw_scylla_config.erl:37<br>docs/SCYLLA.md:116 |
PLAINWIRE_SCYLLA_MIGRATION_MODE |
manual | Migration behavior selector. Source default is manual. Use the documented storage migration commands rather than changing this casually. |
src/pw_scylla_config.erl:63 |
PLAINWIRE_SCYLLA_OPERATION_TIMEOUT_MS |
8000 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:180<br>src/pw_scylla_config.erl:34<br>docs/SCYLLA.md:91 |
PLAINWIRE_SCYLLA_PARITY_SAMPLE_ROWS |
500 | Rows sampled by parity checks. Default 500, clamped to 50 through 5000. | src/pw_storage_migration.erl:71 |
PLAINWIRE_SCYLLA_PASSWORD |
secret / unset | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:168<br>scripts/scylla-migrate:43<br>scripts/scylla-migrate:50 |
PLAINWIRE_SCYLLA_POOL_SIZE |
2 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:175<br>src/pw_scylla_config.erl:29<br>docs/SCYLLA.md:88 |
PLAINWIRE_SCYLLA_PORT |
9042 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:165<br>scripts/scylla-migrate:8<br>scripts/scylla-migrate:21 |
PLAINWIRE_SCYLLA_RECONCILE_INTERVAL_MS |
300000 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:189<br>src/pw_storage_reconciler.erl:12<br>docs/SCYLLA.md:248 |
PLAINWIRE_SCYLLA_RECONCILE_ROWS |
500 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:190<br>src/pw_storage_migration.erl:249<br>docs/SCYLLA.md:249 |
PLAINWIRE_SCYLLA_REPLICATION_FACTOR |
source-managed / unset | Replication factor used by the explicit Scylla migration script when creating schema. Script default is 1 and is only suitable for a single-node/lab topology. | scripts/scylla-migrate:11<br>scripts/scylla-migrate:17<br>docs/SCYLLA.md:39 |
PLAINWIRE_SCYLLA_REQUEST_TIMEOUT_MS |
5000 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:179<br>src/pw_scylla_config.erl:33<br>docs/SCYLLA.md:90 |
PLAINWIRE_SCYLLA_SHADOW_SAMPLE_ROWS |
200 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:196<br>src/pw_storage_migration.erl:150<br>docs/SCYLLA.md:253 |
PLAINWIRE_SCYLLA_TLS |
false | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:169<br>scripts/scylla-migrate:55<br>scripts/scylla-migrate:80 |
PLAINWIRE_SCYLLA_USERNAME |
source-managed / unset | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:167<br>scripts/scylla-migrate:42<br>scripts/scylla-migrate:49 |
PLAINWIRE_SCYLLA_VERIFY_AFTER_ID |
0 | Starting message ID for storage verification. Default 0. | src/pw_storage_migration.erl:51 |
PLAINWIRE_SCYLLA_VERIFY_LIMIT |
1000 | Maximum rows for a verification batch. Default 1000, clamped to 1 through 5000. | src/pw_storage_migration.erl:52 |
PLAINWIRE_SCYLLA_WRITE_INTENT_BUCKETS |
512 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:195<br>src/pw_message_store_scylla.erl:590<br>docs/SCYLLA.md:252 |
PLAINWIRE_SCYLLA_WRITE_INTENT_GRACE_MS |
300000 | Crash-recovery journal for Scylla-authoritative writes. Intents older than this grace are reconciled against PostgreSQL before cleanup. | .env.example:193<br>src/pw_storage_migration.erl:197<br>docs/SCYLLA.md:250 |
PLAINWIRE_SCYLLA_WRITE_INTENT_RECONCILE_ROWS |
500 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:194<br>src/pw_storage_migration.erl:190<br>docs/SCYLLA.md:251 |
PLAINWIRE_STORAGE_OUTBOX_BATCH |
25 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:201<br>src/pw_storage_outbox.erl:26<br>src/pw_storage_outbox.erl:229 |
PLAINWIRE_STORAGE_OUTBOX_CONCURRENCY |
8 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:202<br>src/pw_storage_outbox.erl:27<br>src/pw_storage_outbox.erl:230 |
PLAINWIRE_STORAGE_OUTBOX_FAILED_RETENTION_DAYS |
30 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:204<br>src/pw_db.erl:3119<br>docs/SCYLLA.md:258 |
PLAINWIRE_STORAGE_OUTBOX_INTERVAL_MS |
250 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:200<br>src/pw_storage_outbox.erl:25<br>docs/SCYLLA.md:254 |
PLAINWIRE_STORAGE_OUTBOX_RETENTION_DAYS |
7 | Advanced scylla and message storage setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:203<br>src/pw_db.erl:3118<br>docs/SCYLLA.md:257 |
Webhooks and integrations#
| Name | Example/default | Purpose | Source |
|---|---|---|---|
PLAINWIRE_BOT_TOKEN |
secret / unset | Example environment variable used by the Erlang bot SDK documentation. It is not a core Plainwire server setting. | sdk/erlang/README.md:10 |
PLAINWIRE_GITHUB_CACHE_TTL_MS |
source-managed / unset | Cache public GitHub metadata for two minutes with a token (ten minutes without). Override only when you have a reason; values are clamped to 30s..1h. | README.md:145<br>.env.example:96<br>src/pw_github.erl:512 |
PLAINWIRE_GITHUB_TOKEN |
secret / unset | Plainwire Source uses the public GitHub REST API through the server. A token is optional, but recommended on busy public instances because it raises GitHub's upstream rate limit. Prefer a token with no repository permissions; Plainwire still filters responses to public-safe metadata. It is never returned to the browser. | README.md:144<br>.env.example:93<br>src/pw_github.erl:505 |
PLAINWIRE_KLIPY_API_KEY |
source-managed / unset | Optional KLIPY GIF search. The key stays on the server and is never sent to clients. | .env.development.example:18<br>README.md:155<br>.env.example:115 |
PLAINWIRE_KLIPY_CONTENT_FILTER |
medium | Advanced webhooks and integrations setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.development.example:19<br>README.md:156<br>.env.example:116 |
PLAINWIRE_KLIPY_COUNTRY |
US | Advanced webhooks and integrations setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.development.example:20<br>README.md:157<br>.env.example:117 |
PLAINWIRE_KLIPY_LOCALE |
en_US | Advanced webhooks and integrations setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.development.example:21<br>README.md:158<br>.env.example:118 |
PLAINWIRE_WEBHOOK_ALLOW_HTTP |
false | Compatibility/security exception. Allows plain HTTP webhook targets. Default false. Keep false for normal production internet egress. | src/pw_outbound_url.erl:53 |
PLAINWIRE_WEBHOOK_CONCURRENCY |
8 | Webhook dispatcher concurrency. Default 8, clamped to 1 through 32. | src/pw_webhook_dispatcher.erl:24 |
PLAINWIRE_WEBHOOK_DELIVERED_RETENTION_DAYS |
7 | Advanced webhooks and integrations setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:214<br>src/pw_db.erl:3217 |
PLAINWIRE_WEBHOOK_FAILED_RETENTION_DAYS |
30 | Advanced webhooks and integrations setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:215<br>src/pw_db.erl:3218 |
PLAINWIRE_WEBHOOK_TIMEOUT_MS |
8000 | Advanced webhooks and integrations setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:212<br>src/pw_webhook_dispatcher.erl:16<br>src/pw_webhook_dispatcher.erl:114 |
PLAINWIRE_WEBHOOK_WORKER_TIMEOUT_MS |
13000 | Advanced webhooks and integrations setting present in the Plainwire 2.0 source. Keep the source default unless the subsystem guide or a measured production need calls for an override. | .env.example:213<br>src/pw_webhook_dispatcher.erl:17 |
Build, development, and internal#
| Name | Example/default | Purpose | Source |
|---|---|---|---|
PLAINWIRE_APP_USER |
source-managed / unset | OpenRC install/update helper override for the Unix account that owns the Plainwire checkout. Not an application runtime setting. | scripts/install-openrc-release.sh:13<br>scripts/install-openrc-release.sh:14<br>scripts/update-openrc-release.sh:9 |
PLAINWIRE_ASSET_VERSION |
source-managed / unset | Optional runtime asset fingerprint override. Normally let Plainwire derive its asset version from the build. | src/pw_client_config.erl:45<br>test/pw_client_config_tests.erl:35<br>docs/UI_REFRESH.md:3 |
PLAINWIRE_BUILD_MEDIA_QUALITY |
source-managed / unset | Release helper switch controlling whether the optional native media-quality worker is built. Defaults to 0 in packaging scripts. | scripts/package-release.sh:4<br>scripts/release-check.sh:4 |
PLAINWIRE_BUILD_PROFILE |
source-managed / unset | Release helper rebar profile override. Packaging scripts default it to default. |
scripts/package-release.sh:4<br>scripts/release-check.sh:4 |
PLAINWIRE_CLIENT_CONFIG |
source-managed / unset | Browser global populated by bootstrap code. This is not a server environment variable to set in .env. |
priv/static/elm-bridge.js:14<br>priv/static/bootstrap.js:37 |
PLAINWIRE_DEBUG |
source-managed / unset | Browser/test debug flag. Not a normal server environment variable. | test/browser/rtc.mjs:40<br>priv/static/elm-bridge.js:1342 |
PLAINWIRE_DEV_DB_DIR |
source-managed / unset | Development PostgreSQL helper data directory. Defaults below XDG data home or ~/.local/share/plainwire/postgres. |
scripts/dev-db.sh:4 |
PLAINWIRE_DEV_DB_LOG |
source-managed / unset | Development database helper log path. Defaults to postgres.log under the helper socket directory. |
scripts/dev-db.sh:6 |
PLAINWIRE_DEV_DB_SOCKET_DIR |
source-managed / unset | Development database helper socket directory. Defaults to the parent of the development DB data directory. | scripts/dev-db.sh:5 |
PLAINWIRE_HOST |
source-managed / unset | Hostname variable consumed by the upstream Caddy example. It is a proxy-template variable, not the Plainwire public URL setting. | deploy/Caddyfile:1<br>deploy/Caddyfile:2<br>deploy/README.md:34 |
PLAINWIRE_RELEASE_BIN |
source-managed / unset | Path to an installed relx plainwire_relay executable used by migration/benchmark helper scripts for RPC. |
scripts/storage-migrate:6<br>scripts/storage-migrate:9<br>scripts/storage-bench:5 |
PLAINWIRE_TEST_BOOL |
true | Internal EUnit fixture for environment parsing tests. Do not configure in production. | test/pw_util_tests.erl:35<br>test/pw_util_tests.erl:36<br>test/pw_util_tests.erl:37 |
PLAINWIRE_TEST_CQLSH_LOG |
source-managed / unset | Browser/tool test fixture used to capture fake cqlsh invocations. Do not configure in production. |
test/browser/storage-tools.mjs:14<br>test/browser/storage-tools.mjs:20 |
PLAINWIRE_TEST_NATIVE |
source-managed / unset | Test switch enabling native media-quality integration tests. Do not configure in production. | Makefile:115<br>test/pw_media_quality_tests.erl:53<br>docs/CALL_HEALTH.md:12 |
PLAINWIRE_VERSION__ |
source-managed / unset | Build-time HTML placeholder token, not an environment variable. | scripts/build-haml.sh:9<br>scripts/verify-source.sh:39<br>scripts/verify-source.sh:40 |
Regenerate after an upstream upgrade#
python3 scripts/rebuild-env-reference.py /path/to/Plainwire
python3 scripts/build-site.py
Review the diff. A new variable is not automatically a setting operators should change. Document its operational meaning before using it in production.