> ## Documentation Index
> Fetch the complete documentation index at: https://docs.flipt.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Licensing

> This document describes how to configure licensing for Flipt v2 and how it works.

Flipt v2 is licensed under the [Fair Core License](https://fcl.dev/) (FCL).

Most of the features in Flipt v2 are available in the free edition, however some features are only available after purchasing a commercial license.

See our [licensing](/v2/licensing) documentation for more information on the license and frequently asked questions.

## License Configuration

You can configure the license key in the Flipt v2 configuration file or via environment variables.

<Tabs>
  <Tab title="Configuration YAML">
    ```yaml theme={null}
    license:
      key: "your-license-key"
      # Optional: Path to offline license file for annual licenses
      file: "/path/to/license.lic"
      # Optional: Stable machine fingerprint for container environments
      machine_id: "your-stable-machine-id"
    ```
  </Tab>

  <Tab title="Environment Variables">
    ```bash theme={null}
    FLIPT_LICENSE_KEY="your-license-key"
    # Optional: Path to offline license file for annual licenses
    FLIPT_LICENSE_FILE="/path/to/license.lic"
    # Optional: Stable machine fingerprint for container environments
    FLIPT_LICENSE_MACHINE_ID="your-stable-machine-id"
    ```
  </Tab>
</Tabs>

<Note>
  You'll need to restart your Flipt v2 instance for the license configuration to
  take effect.
</Note>

## Machine ID in Container Environments

Flipt identifies the host machine during license validation. In containerd-based Kubernetes clusters and serverless container runtimes, automatic machine ID detection can fail because files such as `/etc/machine-id` or Docker-specific cgroup paths might not be available.

If this happens, Flipt starts with Pro features disabled and logs an error similar to:

```text theme={null}
license is invalid; additional features are disabled. {"error": "machineid: machineid: no machine-id found"}
```

Set `license.machine_id` or `FLIPT_LICENSE_MACHINE_ID` to a stable value for the deployment. Use the same value across restarts for the same licensed deployment, and use a different value for separate deployments that should count as different machines.

```yaml config.yaml theme={null}
license:
  key: "your-license-key"
  machine_id: "flipt-production-us-east-1"
```

For Kubernetes, store the value in a Secret and expose it as an environment variable:

```yaml theme={null}
apiVersion: v1
kind: Secret
metadata:
  name: flipt-license
type: Opaque
stringData:
  machine-id: "flipt-production-us-east-1"
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: flipt
spec:
  # ...
  template:
    spec:
      containers:
        - name: flipt
          env:
            - name: FLIPT_LICENSE_MACHINE_ID
              valueFrom:
                secretKeyRef:
                  name: flipt-license
                  key: machine-id
```

<Note>
  `license.machine_id` overrides automatic machine ID detection. It does not
  change the license key or bypass license validation.
</Note>

## Acquiring a License

You can get a 14 day trial license for the Pro edition by purchasing a [monthly](https://getflipt.co/pro/monthly) license. Note that trials are only available for monthly licenses, not [annual](https://getflipt.co/pro/annual) licenses.

The license will be emailed to you after checkout. After the trial period, you will need to provide a payment method to continue using the Pro edition.

### License Types

Flipt v2 supports both **monthly** and **annual** commercial licenses:

* **Monthly licenses**: Require continuous internet connectivity for validation
* **Annual licenses**: Support offline validation using license files for air-gapped environments

<Tip>
  Choose [monthly](https://getflipt.co/pro/monthly) for standard subscription or
  [annual](https://getflipt.co/pro/annual) for offline validation support. You
  can also purchase a license by contacting us at
  [support@flipt.io](mailto:support@flipt.io).
</Tip>

### Trial Expiration

If you do not provide a payment method after the trial period, the license will expire and your Flipt v2 instance(s) will revert to the free edition.

This means that you will lose functionality such as [Merge Proposals](/v2/introduction#merge-proposals), [Commit Signing](/v2/configuration/commit-signing), and other paid features.

### License Renewal

Paid licenses will be renewed automatically based on your subscription type (monthly or annual). You can cancel the subscription at any time.

<Warning>
  Cancellations take effect immediately and you will lose access to paid
  features. You will be prorated for the remaining time in your current billing
  cycle.
</Warning>

See our [licensing](/v2/licensing) documentation for more information on how to cancel your subscription.

## License Validation

Flipt v2 will validate the license key on startup. If the license key is invalid, Flipt v2 will start with paid features disabled.

You'll see a message in the logs indicating that the license key is invalid.

### Continuous Validation

Flipt v2 will continuously validate the license key every 12 hours.

For monthly licensing this means that you will **need to have an active network connection from the Flipt v2 instance to the internet** to validate the license key.

### Offline License Validation

For **annual license purchases**, Flipt v2 supports offline license validation using cryptographically signed license files. This allows you to run Flipt v2 in air-gapped environments without internet connectivity.

To use offline validation:

1. Purchase an annual license
2. Download the provided license file (.lic)
3. Configure the `file` path in your license configuration
4. Restart your Flipt v2 instance

<Note>
  Offline license validation is only available for annual license purchases.
  Monthly licenses require continuous internet connectivity for validation.
</Note>

### License Expiration

If the license key expires, the Flipt v2 instance will continue to run but will be unable to access paid features.
