Skip to content

Environment Variables Setup

🌐 Network

PORT

Set the application port for incoming connections.

Default: 5000

BIND

Define the application bind address for network interfaces.

Default: 0.0.0.0

NO_ZEROCONF

Disable zeroconf networking features. Zeroconf is useful for ObscreenOS users only.

Default: false

💬 Language & Localization

SETTING_LANG

Force a specific language for the application.

Default: (disabled)

SETTING_TIMEZONE

Force a specific timezone for the application.

Default: (disabled) # must be a valid timezone string e.g. 'Europe/Paris'

FALLBACK_LANG

Specify the fallback language if the primary is unavailable.

Default: en

LANGS_WHITELIST

Specify languages that users can manage.

Default: (disabled) # must be an array of strings e.g. "['en','fr','de']" - check list

🗄️ Database

DATABASE_ENGINE

Specify the database engine to be used.

Default: sqlite [possible values: sqlite, postgresql]

DATABASE_DSN

Define the Data Source Name for database connections.

Default: sqlite:///%application_dir%/data/db/obscreen.db

DATABASE_HOST

Set the host address for the database server.

Default: (disabled)

DATABASE_PORT

Define the port number for the database server.

Default: (disabled)

DATABASE_USER

Specify the username for database authentication.

Default: (disabled)

DATABASE_PASSWORD

Provide the password for database authentication.

Default: (disabled)

DATABASE_NAME

Set the name of the database to connect to.

Default: (disabled)

DATABASE_SCHEMA

Define the database schema to be used.

Default: (disabled)

📋 Logging

LOG_FILE

Specify the file path for logging output.

Default: (disabled)

LOG_LEVEL

Set the logging level (e.g., DEBUG, INFO, WARN).

Default: INFO [possible values: DEBUG, INFO, WARN, ERROR, CRITICAL]

LOG_STDOUT

Enable logging to standard output.

Default: false [possible values: true, false]

🔒 System & Security

SAFE_MODE

Enable safe mode with authentication disabled.

Default: false

EXPOSE_SYSTEM

Display system information.

Default: true

EXTERNAL_ONLY

Restrict content display to external URLs only.

Default: false

AUTH_MASTER_PASSWORD

Set a master password for authentication purposes. You still need to have a valid username to be able to login.

Default: (disabled)

📂 Directories

DATA_MOUNTPOINT

Define the directory for data mountpoints.

Default: %application_dir%/data

EXTERNAL_STORAGE_MOUNTPOINT

Set the directory for external storage mountpoints.

Default: %application_dir%/var/run/storage

🎨 Overriding in-app Settings

In-app Settings are stored in the database, but some settings are editable using environment variables.

What are Frozen Variables?

A frozen variable is an in-app setting that has been overridden by an environment variable. Once frozen, the setting cannot be changed from within the app until the environment variable is removed. If you unfreeze the variable, it will revert to the last value it held while frozen.

To create a frozen variable, prefix its name with FROZEN_VAR_ followed by the actual variable name. For example, to freeze EXTERNAL_URL and DEFAULT_SLIDE_TIME_WITH_SECONDS, use:

bash
FROZEN_VAR_EXTERNAL_URL=https://example.com
FROZEN_VAR_DEFAULT_SLIDE_TIME_WITH_SECONDS=true

How to identify frozen variable names?

You can identify frozen variable names on the settings page. Hover over a setting to reveal a link icon. Click the icon, and the page will refresh with the corresponding variable name highlighted. You can then find the variable name in the highlight URL parameter.