Files
panel/docs/install/environment-variables.md
2026-04-09 19:24:51 +03:00

28 KiB

sidebar_position
sidebar_position
10

Environment Variables

:::warning

To change environment variables, you must recreate the Remnawave containers.
Just restarting the containers does not replace the environment within the container!

In order to recreate the container using docker compose, run docker compose down && docker compose up -d.

:::

Change environment variables

You can change environment variables by editing the .env file. Most likely it is located in /opt/remnawave.

cd /opt/remnawave && nano .env

Ports

Variable Description Default
APP_PORT The port to run the Remnawave Panel on 3000
METRICS_PORT The port to run Metrics endpoints 3001
Example
APP_PORT=3000
METRICS_PORT=3001

Scaling API

Number of API instances to run.

Possible values:

  • max (start instances on all cores)
  • <number> (start instances on a specific number of cores)
  • -1 (start instances on all cores - 1)

Leave it on the default value to start only 1 instance.

Most users will not need to change this value but it can help achieve better performance with 40k+ users.

:::warning Do not set this value to a number greater than the number of CPU cores in your machine. :::

Variable Description Default
API_INSTANCES The number of API instances to run 1
Example
API_INSTANCES=1

Redis

Variable Description Default Required
REDIS_HOST The host of the Redis server remnawave-redis Yes
REDIS_PORT The port of the Redis server 6379 Yes
REDIS_DB The database of the Redis server 0 No
REDIS_PASSWORD The password of the Redis server No
REDIS_SOCKET The socket of the Redis server No
Example
REDIS_HOST=remnawave-redis
REDIS_PORT=6379

Database

Variables below are not used by Remnawave, but by the database container.

Variable Description Default Required
POSTGRES_USER The username of the Postgres server postgres No
POSTGRES_PASSWORD The password of the Postgres server postgres No
POSTGRES_DB The database of the Postgres server postgres No

Remnawave uses PostgreSQL URL to connect to the database.


postgresql://{user}:{password}@{host}:{port}/{database}

DATABASE_URL="postgresql://postgres:postgres@remnawave-db:5432/postgres"
Example
POSTGRES_USER=postgres
POSTGRES_PASSWORD=postgres
POSTGRES_DB=postgres

DATABASE_URL="postgresql://postgres:postgres@remnawave-db:5432/postgres"

Secret keys

It is recommended to use a random string generator to create secrets with a minimum length of 64 characters.

:::danger

Do not use the default credentials in production. Make sure to generate strong secrets!

:::

openssl rand -hex 64
Variable Description Default Required
JWT_AUTH_SECRET The secret key for the auth JWT change_me Yes
JWT_API_TOKENS_SECRET The secret key for the API tokens JWT change_me Yes
Example
JWT_AUTH_SECRET=strong_secret_key
JWT_API_TOKENS_SECRET=strong_secret_key

Telegram Notifications

Each notification variable uses the unified format: chat_id:thread_id, where thread_id is optional.

Variable Description Default Possible values
IS_TELEGRAM_NOTIFICATIONS_ENABLED Disable/Enable Telegram notifications false true, false
TELEGRAM_BOT_TOKEN The token for the Telegram bot
TELEGRAM_BOT_API_ROOT Custom Telegram Bot API root URL (optional) https://api.telegram.org
TELEGRAM_BOT_PROXY Proxy for Telegram Bot (optional) protocol://user:password@host:port
TELEGRAM_NOTIFY_USERS Notifications about user events chat_id or chat_id:thread_id
TELEGRAM_NOTIFY_NODES Notifications about node events chat_id or chat_id:thread_id
TELEGRAM_NOTIFY_CRM Notifications about CRM events chat_id or chat_id:thread_id
TELEGRAM_NOTIFY_SERVICE Notifications about service events chat_id or chat_id:thread_id
TELEGRAM_NOTIFY_TBLOCKER Notifications about Torrent Blocker events chat_id or chat_id:thread_id

:::note Telegram Group Chat ID always starts with -100. :::

Example

# Disable/Enable Telegram notifications
IS_TELEGRAM_NOTIFICATIONS_ENABLED=false

# Telegram bot token
TELEGRAM_BOT_TOKEN=change_me

# Optional: proxy for Telegram Bot
# TELEGRAM_BOT_PROXY=socks5://user:password@host:port

# Notifications (format: chat_id or chat_id:thread_id)
TELEGRAM_NOTIFY_USERS=change_me
TELEGRAM_NOTIFY_NODES=change_me
TELEGRAM_NOTIFY_CRM=change_me
TELEGRAM_NOTIFY_SERVICE=change_me
TELEGRAM_NOTIFY_TBLOCKER=change_me

Domains

Variable Description Default Required
FRONT_END_DOMAIN The domain of the Remnawave Panel. Used to set CORS headers. * Yes
Variable Description Default Required
SUB_PUBLIC_DOMAIN The domain and path of public subscription URL example.com/api/sub Yes
Variable Description Default Required
PANEL_DOMAIN Panel domain for generating direct links (e.g. in Telegram notifications with inline buttons) No

SUB_PUBLIC_DOMAIN is used to set the public subscription URL in RestAPI responses/UI in dashboard.

:::tip

If you are using with panel, just set to yourpanel.com/api/sub :::

Example
FRONT_END_DOMAIN=yourpanel.com
SUB_PUBLIC_DOMAIN=yourpanel.com/api/sub
PANEL_DOMAIN=yourpanel.com

Documentation

Variable Description Default Possible values
IS_DOCS_ENABLED Disable/Enable documentation false true, false

IS_DOCS_ENABLED is used to disable/enable the documentation.

:::tip You can use the API Keys page in the admin dashboard (when IS_DOCS_ENABLED is set to true) for a quick link to the documentation. :::

Variable Description Default
SWAGGER_PATH The path to the Swagger UI /docs
SCALAR_PATH The path to the Scalar UI /scalar
Example
IS_DOCS_ENABLED=true
SWAGGER_PATH=/docs
SCALAR_PATH=/scalar

Prometheus Metrics

:::tip

You can generate a random password for the metrics using the following command:

openssl rand -hex 64

:::

Variable Description Default
METRICS_USER The user for the metrics admin
METRICS_PASS The password for the metrics change_me
Example
METRICS_USER=admin
METRICS_PASS=change_me

Sample Prometheus config:

global:
    # scrape_interval: 15s
    scrape_timeout: 10s
    evaluation_interval: 15s
scrape_configs:
    - job_name: 'remnawave'
      scheme: http
      metrics_path: /metrics
      static_configs:
          - targets: ['remnawave:3001']
      scrape_interval: 30s
      basic_auth:
          username: admin
          password: change_me

You can use the ready-made Grafana dashboard to visualize collected metrics: Remnawave Panel Dashboard

Prometheus Metrics sample
# HELP remnawave_node_online_users Number of online users on a node
# TYPE remnawave_node_online_users gauge
remnawave_node_online_users{node_uuid="d86d8c63-944c-4398-9cf4-c3882a54a5d5",app="remnawave"} 0
remnawave_node_online_users{node_uuid="966e6378-ec47-4998-939e-123d9616b1dd",app="remnawave"} 0
remnawave_node_online_users{node_uuid="ed1727fd-5cdc-4ebb-8a24-71823714f6ad",app="remnawave"} 0
remnawave_node_online_users{node_uuid="e31adcc0-5edb-463f-ba2e-9f3cb5ac69cf",app="remnawave"} 0

# HELP remnawave_node_status Node connection status (1 - connected, 0 - disconnected)
# TYPE remnawave_node_status gauge
remnawave_node_status{node_uuid="d86d8c63-944c-4398-9cf4-c3882a54a5d5",app="remnawave"} 0
remnawave_node_status{node_uuid="966e6378-ec47-4998-939e-123d9616b1dd",app="remnawave"} 0
remnawave_node_status{node_uuid="ed1727fd-5cdc-4ebb-8a24-71823714f6ad",app="remnawave"} 1
remnawave_node_status{node_uuid="e31adcc0-5edb-463f-ba2e-9f3cb5ac69cf",app="remnawave"} 1

# HELP remnawave_users_status Counter for users statuses, updated every 1 minute
# TYPE remnawave_users_status gauge
remnawave_users_status{status="ACTIVE",app="remnawave"} 80000
remnawave_users_status{status="DISABLED",app="remnawave"} 4
remnawave_users_status{status="LIMITED",app="remnawave"} 0
remnawave_users_status{status="EXPIRED",app="remnawave"} 4

# HELP remnawave_users_online_stats Counter for online stats of distinct users, updated every 1 minute
# TYPE remnawave_users_online_stats gauge
remnawave_users_online_stats{metricType="onlineNow",app="remnawave"} 0
remnawave_users_online_stats{metricType="lastDay",app="remnawave"} 0
remnawave_users_online_stats{metricType="lastWeek",app="remnawave"} 1
remnawave_users_online_stats{metricType="neverOnline",app="remnawave"} 80002

# HELP remnawave_users_total Total number of users, updated every 1 minute
# TYPE remnawave_users_total gauge
remnawave_users_total{type="all",app="remnawave"} 80008

# HELP remnawave_node_inbound_upload_bytes Inbound upload bytes, updated every 30 seconds
# TYPE remnawave_node_inbound_upload_bytes counter
remnawave_node_inbound_upload_bytes{node_uuid="e31adcc0-5edb-463f-ba2e-9f3cb5ac69cf",tag="VLESS_TCP_REALITY",app="remnawave"} 1778
remnawave_node_inbound_upload_bytes{node_uuid="e31adcc0-5edb-463f-ba2e-9f3cb5ac69cf",tag="REMNAWAVE_API_INBOUND",app="remnawave"} 583

# HELP remnawave_node_inbound_download_bytes Inbound download bytes, updated every 30 seconds
# TYPE remnawave_node_inbound_download_bytes counter
remnawave_node_inbound_download_bytes{node_uuid="e31adcc0-5edb-463f-ba2e-9f3cb5ac69cf",tag="VLESS_TCP_REALITY",app="remnawave"} 5439
remnawave_node_inbound_download_bytes{node_uuid="e31adcc0-5edb-463f-ba2e-9f3cb5ac69cf",tag="REMNAWAVE_API_INBOUND",app="remnawave"} 1043

# HELP remnawave_node_outbound_upload_bytes Outbound upload bytes, updated every 30 seconds
# TYPE remnawave_node_outbound_upload_bytes counter
remnawave_node_outbound_upload_bytes{node_uuid="e31adcc0-5edb-463f-ba2e-9f3cb5ac69cf",tag="BLOCK",app="remnawave"} 0
remnawave_node_outbound_upload_bytes{node_uuid="e31adcc0-5edb-463f-ba2e-9f3cb5ac69cf",tag="DIRECT",app="remnawave"} 1740

# HELP remnawave_node_outbound_download_bytes Outbound download bytes, updated every 30 seconds
# TYPE remnawave_node_outbound_download_bytes counter
remnawave_node_outbound_download_bytes{node_uuid="e31adcc0-5edb-463f-ba2e-9f3cb5ac69cf",tag="BLOCK",app="remnawave"} 0
remnawave_node_outbound_download_bytes{node_uuid="e31adcc0-5edb-463f-ba2e-9f3cb5ac69cf",tag="DIRECT",app="remnawave"} 5437

# HELP remnawave_process_rss_bytes Process resident set size in bytes.
# TYPE remnawave_process_rss_bytes gauge
remnawave_process_rss_bytes{instance_id="0",instance_name="processor",app="remnawave"} 178515968
remnawave_process_rss_bytes{instance_id="0",instance_name="api",app="remnawave"} 247222272
remnawave_process_rss_bytes{instance_id="0",instance_name="scheduler",app="remnawave"} 178470912
remnawave_process_rss_bytes{instance_id="1",instance_name="api",app="remnawave"} 248770560

# HELP remnawave_process_heap_used_bytes Process heap used in bytes.
# TYPE remnawave_process_heap_used_bytes gauge
remnawave_process_heap_used_bytes{instance_id="0",instance_name="processor",app="remnawave"} 79360240
remnawave_process_heap_used_bytes{instance_id="0",instance_name="api",app="remnawave"} 84165184
remnawave_process_heap_used_bytes{instance_id="0",instance_name="scheduler",app="remnawave"} 79288240
remnawave_process_heap_used_bytes{instance_id="1",instance_name="api",app="remnawave"} 82517568

# HELP remnawave_process_heap_total_bytes Process total heap size in bytes.
# TYPE remnawave_process_heap_total_bytes gauge
remnawave_process_heap_total_bytes{instance_id="0",instance_name="processor",app="remnawave"} 90984448
remnawave_process_heap_total_bytes{instance_id="0",instance_name="api",app="remnawave"} 89411584
remnawave_process_heap_total_bytes{instance_id="0",instance_name="scheduler",app="remnawave"} 95440896
remnawave_process_heap_total_bytes{instance_id="1",instance_name="api",app="remnawave"} 93343744

# HELP remnawave_process_external_bytes Process external memory in bytes (C++ objects bound to JS).
# TYPE remnawave_process_external_bytes gauge
remnawave_process_external_bytes{instance_id="0",instance_name="processor",app="remnawave"} 4040229
remnawave_process_external_bytes{instance_id="0",instance_name="api",app="remnawave"} 4066479
remnawave_process_external_bytes{instance_id="0",instance_name="scheduler",app="remnawave"} 4021582
remnawave_process_external_bytes{instance_id="1",instance_name="api",app="remnawave"} 7595484

# HELP remnawave_process_array_buffers_bytes Process ArrayBuffers memory in bytes.
# TYPE remnawave_process_array_buffers_bytes gauge
remnawave_process_array_buffers_bytes{instance_id="0",instance_name="processor",app="remnawave"} 197378
remnawave_process_array_buffers_bytes{instance_id="0",instance_name="api",app="remnawave"} 222529
remnawave_process_array_buffers_bytes{instance_id="0",instance_name="scheduler",app="remnawave"} 171671
remnawave_process_array_buffers_bytes{instance_id="1",instance_name="api",app="remnawave"} 3751534

# HELP remnawave_process_event_loop_delay_ms Mean event loop delay in milliseconds.
# TYPE remnawave_process_event_loop_delay_ms gauge
remnawave_process_event_loop_delay_ms{instance_id="0",instance_name="processor",app="remnawave"} 20.104262477732792
remnawave_process_event_loop_delay_ms{instance_id="0",instance_name="api",app="remnawave"} 20.102243096774195
remnawave_process_event_loop_delay_ms{instance_id="0",instance_name="scheduler",app="remnawave"} 20.095705651821863
remnawave_process_event_loop_delay_ms{instance_id="1",instance_name="api",app="remnawave"} 20.109312

# HELP remnawave_process_event_loop_p99_ms Event loop delay p99 in milliseconds.
# TYPE remnawave_process_event_loop_p99_ms gauge
remnawave_process_event_loop_p99_ms{instance_id="0",instance_name="processor",app="remnawave"} 20.627455
remnawave_process_event_loop_p99_ms{instance_id="0",instance_name="api",app="remnawave"} 20.316159
remnawave_process_event_loop_p99_ms{instance_id="0",instance_name="scheduler",app="remnawave"} 20.414463
remnawave_process_event_loop_p99_ms{instance_id="1",instance_name="api",app="remnawave"} 20.381695

# HELP remnawave_process_active_handles Number of active resource handles.
# TYPE remnawave_process_active_handles gauge
remnawave_process_active_handles{instance_id="0",instance_name="processor",app="remnawave"} 145
remnawave_process_active_handles{instance_id="0",instance_name="api",app="remnawave"} 29
remnawave_process_active_handles{instance_id="0",instance_name="scheduler",app="remnawave"} 48
remnawave_process_active_handles{instance_id="1",instance_name="api",app="remnawave"} 29

# HELP remnawave_process_uptime_seconds Process uptime in seconds.
# TYPE remnawave_process_uptime_seconds gauge
remnawave_process_uptime_seconds{instance_id="0",instance_name="processor",app="remnawave"} 264694.362842572
remnawave_process_uptime_seconds{instance_id="0",instance_name="api",app="remnawave"} 264694.512636422
remnawave_process_uptime_seconds{instance_id="0",instance_name="scheduler",app="remnawave"} 264694.569192717
remnawave_process_uptime_seconds{instance_id="1",instance_name="api",app="remnawave"} 264694.753156229

# HELP remnawave_node_network_rx_bytes_per_sec Node network receive speed in bytes per second
# TYPE remnawave_node_network_rx_bytes_per_sec gauge
remnawave_node_network_rx_bytes_per_sec{node_uuid="ed1727fd-5cdc-4ebb-8a24-71823714f6ad",app="remnawave"} 197.8021978021978
remnawave_node_network_rx_bytes_per_sec{node_uuid="e31adcc0-5edb-463f-ba2e-9f3cb5ac69cf",app="remnawave"} 197.60479041916167

# HELP remnawave_node_network_tx_bytes_per_sec Node network transmit speed in bytes per second
# TYPE remnawave_node_network_tx_bytes_per_sec gauge
remnawave_node_network_tx_bytes_per_sec{node_uuid="ed1727fd-5cdc-4ebb-8a24-71823714f6ad",app="remnawave"} 197.8021978021978
remnawave_node_network_tx_bytes_per_sec{node_uuid="e31adcc0-5edb-463f-ba2e-9f3cb5ac69cf",app="remnawave"} 197.60479041916167

# HELP remnawave_node_network_rx_bytes_total Node network total received bytes since boot from default interface
# TYPE remnawave_node_network_rx_bytes_total gauge
remnawave_node_network_rx_bytes_total{node_uuid="ed1727fd-5cdc-4ebb-8a24-71823714f6ad",app="remnawave"} 1812802415
remnawave_node_network_rx_bytes_total{node_uuid="e31adcc0-5edb-463f-ba2e-9f3cb5ac69cf",app="remnawave"} 28468345531

# HELP remnawave_node_network_tx_bytes_total Node network total transmitted bytes since boot from default interface
# TYPE remnawave_node_network_tx_bytes_total gauge
remnawave_node_network_tx_bytes_total{node_uuid="ed1727fd-5cdc-4ebb-8a24-71823714f6ad",app="remnawave"} 1528776659
remnawave_node_network_tx_bytes_total{node_uuid="e31adcc0-5edb-463f-ba2e-9f3cb5ac69cf",app="remnawave"} 18385221081

# HELP remnawave_node_memory_total_bytes Node total memory in bytes
# TYPE remnawave_node_memory_total_bytes gauge
remnawave_node_memory_total_bytes{node_uuid="ed1727fd-5cdc-4ebb-8a24-71823714f6ad",app="remnawave"} 32853663744
remnawave_node_memory_total_bytes{node_uuid="e31adcc0-5edb-463f-ba2e-9f3cb5ac69cf",app="remnawave"} 1008193536

# HELP remnawave_node_memory_free_bytes Node free memory in bytes
# TYPE remnawave_node_memory_free_bytes gauge
remnawave_node_memory_free_bytes{node_uuid="ed1727fd-5cdc-4ebb-8a24-71823714f6ad",app="remnawave"} 31891734528
remnawave_node_memory_free_bytes{node_uuid="e31adcc0-5edb-463f-ba2e-9f3cb5ac69cf",app="remnawave"} 540762112

# HELP remnawave_node_uptime_seconds Node OS uptime in seconds
# TYPE remnawave_node_uptime_seconds gauge
remnawave_node_uptime_seconds{node_uuid="ed1727fd-5cdc-4ebb-8a24-71823714f6ad",app="remnawave"} 1655366.32
remnawave_node_uptime_seconds{node_uuid="e31adcc0-5edb-463f-ba2e-9f3cb5ac69cf",app="remnawave"} 2171673.48

# HELP remnawave_node_cpu_count Node CPU count
# TYPE remnawave_node_cpu_count gauge
remnawave_node_cpu_count{node_uuid="ed1727fd-5cdc-4ebb-8a24-71823714f6ad",app="remnawave"} 16
remnawave_node_cpu_count{node_uuid="e31adcc0-5edb-463f-ba2e-9f3cb5ac69cf",app="remnawave"} 1

# HELP remnawave_node_system_info Node system info
# TYPE remnawave_node_system_info gauge
remnawave_node_system_info{node_uuid="ed1727fd-5cdc-4ebb-8a24-71823714f6ad",arch="x64",cpu_model="AMD EPYC-Genoa Processor",hostname="remnanode",platform="linux",release="6.8.0-52-generic",version="#53-Ubuntu SMP PREEMPT_DYNAMIC Sat Jan 11 00:06:25 UTC 2025",app="remnawave"} 1
remnawave_node_system_info{node_uuid="e31adcc0-5edb-463f-ba2e-9f3cb5ac69cf",arch="x64",cpu_model="Intel Core Processor (Broadwell, IBRS)",hostname="remnanode",platform="linux",release="6.8.0-101-generic",version="#101-Ubuntu SMP PREEMPT_DYNAMIC Mon Feb  9 10:15:05 UTC 2026",app="remnawave"} 1

# HELP remnawave_node_basic_info Node basic info
# TYPE remnawave_node_basic_info gauge
remnawave_node_basic_info{node_uuid="d86d8c63-944c-4398-9cf4-c3882a54a5d5",node_name="tester-1",node_country_emoji="🏴‍☠️",provider_name="Test",tags="",app="remnawave"} 1
remnawave_node_basic_info{node_uuid="966e6378-ec47-4998-939e-123d9616b1dd",node_name="tester-2",node_country_emoji="🏴‍☠️",provider_name="Test",tags="",app="remnawave"} 1
remnawave_node_basic_info{node_uuid="ed1727fd-5cdc-4ebb-8a24-71823714f6ad",node_name="tester-3",node_country_emoji="🏴‍☠️",provider_name="Test",tags="",app="remnawave"} 1
remnawave_node_basic_info{node_uuid="e31adcc0-5edb-463f-ba2e-9f3cb5ac69cf",node_name="tester-4",node_country_emoji="🏴‍☠️",provider_name="Test",tags="",app="remnawave"} 1

Webhook

Variable Description Default Possible values
WEBHOOK_ENABLED Enable/Disable webhook notifications false true, false
WEBHOOK_URL The URL of the webhook, can be http:// or https://
WEBHOOK_SECRET_HEADER Key for signature, at least 32 characters long. Only a-z, 0-9, A-Z are allowed.

:::tip

You can generate a random password for the webhook secret using the following command:

openssl rand -hex 64

:::

Example
WEBHOOK_ENABLED=true
WEBHOOK_URL=https://your-server.com/webhook-path
WEBHOOK_SECRET_HEADER=strong_secret_key

Bandwidth usage notifications

Variable Description Default Possible values
BANDWIDTH_USAGE_NOTIFICATIONS_ENABLED Enable/Disable bandwidth usage notifications false true, false
BANDWIDTH_USAGE_NOTIFICATIONS_THRESHOLD The threshold for bandwidth usage notifications. Only in ASC order (example: [60, 80]), must be valid array of integer(min: 25, max: 95) numbers. No more than 5 values.
Example
BANDWIDTH_USAGE_NOTIFICATIONS_ENABLED=true
BANDWIDTH_USAGE_NOTIFICATIONS_THRESHOLD=[60, 80]

Not Connected Users Notifications

Variable Description Default Possible values
NOT_CONNECTED_USERS_NOTIFICATIONS_ENABLED Enable/Disable not connected users notifications false true, false
NOT_CONNECTED_USERS_NOTIFICATIONS_AFTER_HOURS The hours after which to send notifications for users who haven't connected. Only in ASC order (example: [6, 12, 24]), must be valid array of integer(min: 1, max: 168) numbers. No more than 3 values.
Example
### Not connected users notification (webhook, telegram)
NOT_CONNECTED_USERS_NOTIFICATIONS_ENABLED=false
# Only in ASC order (example: [6, 12, 24]), must be valid array of integer(min: 1, max: 168) numbers. No more than 3 values.
# Each value represents HOURS passed after user creation (user.createdAt)
NOT_CONNECTED_USERS_NOTIFICATIONS_AFTER_HOURS=[6, 24, 48]

Miscellaneous

Variable Description Default Possible values
SHORT_UUID_LENGTH The length of the generated short UUID (subscription). Min. length 16 and max. length 64 16
IS_HTTP_LOGGING_ENABLED Enable/Disable HTTP logging false true, false
ENABLE_DEBUG_LOGS Enable/Disable debug logs false true, false
JWT_AUTH_LIFETIME The lifetime of the auth JWT in hours. Possible values from 12 to 168. 12
SERVICE_CLEAN_USAGE_HISTORY Enable/Disable cleaning of usage history false true, false
SERVICE_DISABLE_USER_USAGE_RECORDS Disable recording of user usage data false true, false
USER_USAGE_IGNORE_BELOW_BYTES Ignore user usage below this threshold (in bytes, max 1048576) 0
Example
SHORT_UUID_LENGTH=16
IS_HTTP_LOGGING_ENABLED=true
ENABLE_DEBUG_LOGS=false
JWT_AUTH_LIFETIME=12
SERVICE_CLEAN_USAGE_HISTORY=false
SERVICE_DISABLE_USER_USAGE_RECORDS=false
USER_USAGE_IGNORE_BELOW_BYTES=0
````