# Linux Package Configuration

The Bindplane Linux packages can be configured before installation. This configuration is optional. Users with advanced requirements can use this configuration to customize the installation behavior.

### Configuration File Location

Before installing the Bindplane package, you can create a configuration file at one of the following locations:

* Debian-based distributions: `/etc/default/bindplane`
* RHEL-based distributions: `/etc/sysconfig/bindplane`

The package supports either file location on all platforms. Choose the location that best matches your distribution's conventions.

{% hint style="warning" %}
**IMPORTANT**

The configuration file must be created and configured **before** the initial package installation. Modifying the configuration file after installation may lead to undefined behavior.
{% endhint %}

### File Permissions

The configuration file should have the following permissions:

* Owner: `root`
* Group: `root`
* Permissions: `0640` (readable by root and group, writable only by root)

The configuration file is read by your package manager, not the Bindplane service. It unnecessary for it to be readable by unprivileged users.

### Configuration Options

#### BINDPLANE\_SKIP\_RUNTIME\_USER\_CREATION

Controls whether the package creates the `bindplane` user and group during installation. This option is useful if you have advanced user requirements, such as specific uid and gid or you are integrating with an external authentication system such as LDAP.

* **Default**: `false`
* **Values**: `true` or `false`

When set to `true`, the package will skip creating the `bindplane` user and group. In this case, you must create the user and group manually before installation.

The following commands create the `bindplane` user and group:

```bash
groupadd bindplane
useradd \
  --shell /sbin/nologin \
  --system bindplane \
  -g bindplane
```

You can verify this parameter is working correctly by inspecting the output from the package installation.

The following is logged when skipping user and group creation:

> BINDPLANE\_SKIP\_RUNTIME\_USER\_CREATION is set to true, skipping user and group creation

#### BINDPLANE\_CONFIG\_HOME

Specifies the directory where Bindplane stores its persistent data.

* **Default**: `/var/lib/bindplane`
* **Values**: Any valid directory path

This directory contains:

* Prometheus data
* Offline agent updates
* Other persistent state required by Bindplane

Choose a location that meets your storage and backup requirements before installation.

You can verify this parameter is working correctly by checking the Systemd service file for the Bindplane service.

Read the Systemd service file for the Bindplane service:

```bash
sudo systemctl cat bindplane
```

The output will contain an environment variable for `BINDPLANE_CONFIG_HOME` matching the value you set in the configuration file.

```ini
[Unit]
Description=Bindplane is an observability pipeline that gives you the ability to collect, refine, and ship metrics, logs, and traces to any destination.
After=network.target
Documentation=https://bindplane.com/docs/getting-started/quickstart-guide

[Service]
Type=simple
User=bindplane
Group=bindplane
WorkingDirectory=/opt/bindplane/data
Environment="BINDPLANE_CONFIG_HOME=/opt/bindplane/data"
ExecStart=/usr/local/bin/bindplane serve --config /etc/bindplane/config.yaml
LimitNOFILE=65000

Restart=always
TimeoutSec=120
RestartSec=5s

[Install]
WantedBy=multi-user.target
```

#### BINDPLANE\_USER and BINDPLANE\_GROUP

Controls the runtime user and group. Usually used in conjunction with `BDOT_UNPRIVILEGED`.

{% hint style="info" %}
**NOTE**

This configuration option is supported as of Bindplane version v1.94.0.
{% endhint %}

### Example Configuration

Here's an example configuration file:

```ini
# Skip user creation for LDAP integration
BINDPLANE_SKIP_RUNTIME_USER_CREATION=true

# Store Bindplane data in a custom location
BINDPLANE_CONFIG_HOME=/opt/bindplane/data

# Set runtime user and group to "bpserveru" and "bpserverg"
BINDPLANE_USER=bpserveru
BINDPLANE_GROUP=bpserverg
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.bindplane.com/configuration/bindplane/linux-package-configuration.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
