{"id":13529111,"url":"https://github.com/livecycle/preevy","last_synced_at":"2025-09-29T00:32:42.324Z","repository":{"id":145162370,"uuid":"605549525","full_name":"livecycle/preevy","owner":"livecycle","description":"Quickly deploy preview environments to the cloud!","archived":false,"fork":false,"pushed_at":"2025-09-14T10:09:05.000Z","size":25002,"stargazers_count":2152,"open_issues_count":53,"forks_count":86,"subscribers_count":13,"default_branch":"main","last_synced_at":"2025-09-18T16:45:48.237Z","etag":null,"topics":["awesome","awesome-list","aws","cli","devops","docker","docker-compose","ephemeral-environments","hacktoberfest","pr-environments","preview-environment"],"latest_commit_sha":null,"homepage":"https://preevy.dev","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/livecycle.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"contributing.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"security.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-02-23T11:51:49.000Z","updated_at":"2025-09-18T11:52:39.000Z","dependencies_parsed_at":"2023-11-15T09:25:12.641Z","dependency_job_id":"e16f0a30-4f90-41e7-a99d-11a8723ef76a","html_url":"https://github.com/livecycle/preevy","commit_stats":null,"previous_names":[],"tags_count":46,"template":false,"template_full_name":null,"purl":"pkg:github/livecycle/preevy","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livecycle%2Fpreevy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livecycle%2Fpreevy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livecycle%2Fpreevy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livecycle%2Fpreevy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/livecycle","download_url":"https://codeload.github.com/livecycle/preevy/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/livecycle%2Fpreevy/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276863371,"owners_count":25717961,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-25T02:00:09.612Z","response_time":80,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["awesome","awesome-list","aws","cli","devops","docker","docker-compose","ephemeral-environments","hacktoberfest","pr-environments","preview-environment"],"created_at":"2024-08-01T07:00:33.309Z","updated_at":"2025-09-29T00:32:42.318Z","avatar_url":"https://github.com/livecycle.png","language":"TypeScript","funding_links":[],"categories":["TypeScript","Developer Workflow","cli","Development with Docker","PaaS"],"sub_categories":["Wrappers"],"readme":"\u003ch1 align=\"center\"\u003e\n  \u003ca href=\"https://preevy.dev\" target=\"_blank\" rel=\"noopener noreferrer\"\u003e\n    \u003cpicture\u003e\n      \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"site/static/img/logo-dark.svg\"\u003e\n      \u003cimg width=\"80\" src=\"site/static/img/logo-light.svg\"\u003e\n    \u003c/picture\u003e\n  \u003c/a\u003e\n  \u003cbr /\u003e\n  Preevy\n\u003c/h1\u003e\n\u003cp align=\"center\"\u003e \u003cem\u003eProvision preview environments with minimal configuration\u003c/em\u003e \u003cspan\u003e\u0026#8226;\u003c/span\u003e\n \u003cb\u003emade by \u003ca href=\"https://livecycle.io/\"\u003eLivecycle\u003c/a\u003e\u003c/b\u003e\n\u003c/p\u003e\n\u003cdiv align=\"center\"\u003e\n\n![GitHub](https://img.shields.io/github/license/livecycle/preevy) ![GitHub last commit](https://img.shields.io/github/last-commit/livecycle/preevy) [![Version](https://img.shields.io/npm/v/preevy.svg)](https://npmjs.org/package/preevy)\n\n\u003c/div\u003e\n\n\u003cbr /\u003e\n\n\u003e We recently launched the [Livecycle Docker Extension](https://hub.docker.com/extensions/livecycle/docker-extension). Now you can share local environments instantly. Get feedback while your code is still in flight. Check it out [here](https://open.docker.com/extensions/marketplace?extensionId=livecycle/docker-extension)\n\nhttps://github.com/Pradumnasaraf/preevy/assets/51878265/a699a356-f524-48fc-9b6d-49f2e42e7ec7\n\n\u003c!--lint disable no-multiple-toplevel-headings--\u003e\n# Preevy\n\nPreevy is a Command Line Interface (CLI) tool designed to simplify the process of creating ephemeral preview environments from Dockerized applications. Integrate Preevy into your CI flow to deploy Pull Requests as preview environments, using your existing cloud provider or Kubernetes cluster.\n\nPreevy makes use of affordable VMs from [AWS Lightsail](https://aws.amazon.com/free/compute/lightsail), [Google Cloud](https://cloud.google.com/compute/), [Microsoft Azure](https://azure.microsoft.com/en-us/products/virtual-machines), or any [Kubernetes cluster](https://preevy.dev/drivers/kube-pod).\n\nPreevy can deploy your app with public or protected access, on the public internet or inside your existing private network.\n\nDeploying a preview environment per Pull Request offers a range of benefits:\n\n- 🌍 **Universal Access**: Just by sharing a URL, you can allow anyone to try your product revision on any device.\n\n- 📩 **Effortless Asynchronous Updates**: Keep non-technical stakeholders in the loop without coordinating synchronous meetings.\n\n- 🎨 **Hassle-free Design Reviews**: Designers can verify implementation independently, minimizing interruptions.\n\n- 🚀 **Parallel E2E Tests**: Use external test agents against preview environments to expedite the testing process.\n\n- 💡 **Streamlined Feedback Cycle**: Preview environments let your team engage with and feedback on new features early in the pipeline.\n\n- 🧪 **Non-production Experimentation**: Develop and share unique versions of your product for presentations, examples, or tests.\n\n- 🔐 **Secure Collaboration**: Generate private sandboxes to share with external stakeholders, ensuring secure collaborative efforts.\n\n\\\nVisit The full documentation here: https://preevy.dev/\n\n\u003c!-- omit from toc --\u003e\n## Contents\n\n\u003c!--lint disable double-link--\u003e\n- [What](#what)\n- [Why](#why)\n- [Getting started](#getting-started)\n  - [Prerequisites](#prerequisites)\n  - [Install the Preevy CLI](#install-the-preevy-cli)\n  - [Set up a profile](#set-up-a-profile)\n  - [Deploy your first environment](#deploy-your-first-environment)\n  - [Update your environment](#update-your-environment)\n  - [List and remove your environment](#list-and-remove-your-environment)\n- [Service URLs](#service-urls)\n- [Under the hood](#under-the-hood)\n  - [CLI](#cli)\n  - [Tunnel server](#tunnel-server)\n- [CI Integration](#ci-integration)\n  - [Faster builds in CI](#faster-builds-in-ci)\n  - [Example repos](#example-repos)\n- [Security](#security)\n  - [Private environments](#private-environments)\n  - [Exposure of preview environments](#exposure-of-preview-environments)\n  - [Livecycle access to data](#livecycle-access-to-data)\n  - [Network isolation](#network-isolation)\n- [Configuration](#configuration)\n  - [Preevy Profile](#preevy-profile)\n  - [Compose files](#compose-files)\n  - [`x-preevy`: Preevy-specific configuration in the Compose file(s)](#x-preevy-preevy-specific-configuration-in-the-compose-files)\n- [Plugins](#plugins-1)\n  - [Default plugins](#default-plugins)\n  - [Enabling or disabling plugins](#enabling-or-disabling-plugins)\n- [Docs and support](#docs-and-support)\n- [Telemetry](#telemetry)\n\u003c!--lint enable double-link--\u003e\n\n## What\n\nPreevy can take any [Docker-Compose](https://docs.docker.com/compose/) application definition and with a single `up` command perform the following:\n\n- Provision and configure a virtual machine (VM) on your cloud, or a Pod on your Kubernetes cluster.\n- Build your application on the VM/Pod or on any BuildKit builder (optional)\n- Deploy your application on the VM/Pod.\n- Expose each service of your application to the web with a user-friendly public HTTPS URL without any DNS/Certificate configuration.\n\nThese environments can be managed using the Preevy command-line interface (CLI) and can be easily updated or destroyed when necessary.\nWhile Preevy can be used for sharing local environments with your team, its primary goal is to implement preview environments for pull requests. Therefore, it's designed to be easily integrated into CI/CD flows.\n\n## Why\n\nAt Livecycle, we believe that preview environments are an integral part of any development flow, in any engineering team.\nThese non-production, ephemeral environments, created for every Pull Request, can significantly improve PR workflows.\nIn recent years, preview environments have become increasingly popular, with some PaaS providers even offering deeply integrated preview environments.\nHowever, setting up preview environments can be a complex and costly task, which is why many teams have been hesitant to implement them.\nPreevy is designed to simplify this task and provide a framework for provisioning and utilizing preview environments to optimize the PR flow.\nYou can read more about the story and philosophy behind Preevy [here](https://preevy.dev/intro/motivation).\n\n## Getting started\n\n### Prerequisites\n\n#### Required software\n\n- Node.js [v18 or greater](https://nodejs.org/en/download) on Mac, Linux or Windows.\n- Docker CLI with the default Docker Compose and [BuildX](https://github.com/docker/buildx#installing) plug ins. The Docker CLI is included with the [Docker Engine installation](https://docs.docker.com/engine/install/) and can also be [installed separately](https://docs.docker.com/compose/install/).\n- To use Kubernetes as a deploy runtime: [kubectl](https://kubernetes.io/docs/tasks/tools/#kubectl).\n\n#### Your Docker Compose app\n\nIf you don't have an existing Docker Compose app, check out [Awesome Compose](https://github.com/docker/awesome-compose) - a curated list of Compose samples, from React to Minecraft.\n\n#### Your cloud provider or Kubernetes cluster\n\n\u003c!--lint disable double-link--\u003e\nPreevy deploys your app to one of the supported [deploy runtimes](https://preevy.dev/deploy-runtimes/).\n\u003c!--lint enable double-link--\u003e\n\nChoose the cloud provider or Kubernetes cluster you're going to use and configure access credentials for it:\n\n- For AWS: use `aws configure`. See [AWS lightsail credentials configurations](https://preevy.dev/deploy-runtimes/aws-lightsail#credentials-configuration).\n- For GCP: use `gcloud auth application-default login`. See [GCP credentials configuration](https://preevy.dev/deploy-runtimes/gcp-gce#credentials-configuration)\n- For Azure: use `az login`. See [Azure credentials configuration](https://preevy.dev/deploy-runtimes/azure#credentials-configuration)\n- For Kubernetes: See [Kubernetes credentials configuration](https://preevy.dev/deploy-runtimes/kube-pod#requirements)\n\n***Note*** Preevy only uses your credentials when you run the Preevy CLI to set up and connect to your environments. Your credentials are not sent or stored anywhere outside of your computer.\n\n##### Local Kubernetes server using Docker Desktop\n\nIf you don't have an existing cloud account or prefer to try Preevy first locally, you can use the [Docker Desktop Kubernetes server](https://docs.docker.com/desktop/kubernetes/). Go to: `Docker Settings` -\u003e `Kubernetes` -\u003e `Enable Kubernetes`.\n\n### Install the Preevy CLI\n\n```bash\nnpm install -g preevy\n```\n\nOr use `npx` to run the CLI without installing it:\n\n```bash\nnpx preevy \u003ccommand\u003e\n```\n\n### Set up a profile\n\n```bash\npreevy init\n```\n\nPreevy will ask you to select a deploy target and a storage location for your profile. You can start by storing the profile locally.\n\n### Deploy your first environment\n\nFrom the same directory where your `docker-compose.yml` or `compose.yml` file is located, run the command below:\n\n```bash\npreevy up\n```\n\n**Note:** Preevy uses the git repo at the current directory to calculate a stable environment ID for your project. Make sure a git repo is initialized (with at least one commit), or add the `--id` flag to explicitly specify the environment ID.\n\nAccess and share your new preview environment at the `*.livecycle.run` links provided in the command output.\n\n### Update your environment\n\nCode changed? Re-run `preevy up` to quickly sync the preview environment with your changes on the existing VM or Kubernetes Pod.\n\n### List and remove your environment\n\nRun `preevy ls` to show all environments in your deploy target which are linked to your profile.\n\nRun `preevy down` to remove your environment. Preevy will delete the VM or Kubernetes Pod.\n\n## Service URLs\n\nEvery Compose service is exposed individually with a generated URL in the following format:\n`https://{service}-{[port]}-{env-id}-{client-id}.{tunnel-server-domain}`. If the service exposes a single port, the `port` part is omitted. See [here](https://livecycle.io/blogs/preevy-proxy-service-1/) for a more detailed explanation.\n\n\u003c!--lint disable awesome-list-item--\u003e\n- `env-id` is automatically generated from the Compose project and Git branch, or can be explicitly specified using the `--id` flag of the `preevy up` command.\n- `client-id` is a random identifier based on the profile's public tunneling SSH key (generated in `preevy init`).\n- `tunnel-service-domain` is where the tunnel service is hosted. It can be specified using the `--tunnel-url` flag of the `preevy up` command, and defaults to Livecycle's hosted service at `*.livecycle.run`.\n\u003c!--lint enable awesome-list-item--\u003e\n\n## Under the hood\n\nPreevy has two main components:\n\n### [CLI](https://github.com/livecycle/preevy/tree/main/packages/cli)\n\nThe CLI is a Node.js program responsible for:\n\n- Provisioning and tearing down VMs.\n- Exposing environments' state and URLs to the end user.\n- Storing and accessing profile data (settings, keys, etc).\n- Setting up a VM with Docker tooling.\n- Syncing Compose source code and local volumes.\n- Running the Compose app, augmented with a daemon for connecting to the tunneling service.\n\n### [Tunnel server](https://github.com/livecycle/preevy/tree/main/tunnel-server)\n\nThe tunnel server is a Node.js base server responsible for exposing friendly HTTPS URLs for the Compose services.\n\nA free public instance is hosted by Livecycle on `livecycle.run`, and it can be self-hosted as well.\n\nA public Docker/OCI image is available: `ghcr.io/livecycle/preevy/tunnel-server`\n\nTo host your own Tunnel Server instance, see the [deployment guide](tunnel-server/deployment/k8s/README.md).\n\n## CI Integration\n\nPreevy is designed to work seamlessly with your CI, by importing a shared preview profile from [AWS S3](https://aws.amazon.com/s3/) [Google Cloud Storage (GCS)](https://cloud.google.com/storage/) and [Azure Blob Storage (AZBlob)](https://azure.microsoft.com/en-us/products/storage/blobs/).\n\nProfiles are created using `preevy init`. Choose a S3/GCS/AZBlob URL for storing the profile - Preevy will create a bucket if one doesn't exist.\n\nIf you already have a locally stored Preevy Profile, it can be migrated to remote storage using [`preevy profile cp`](https://github.com/livecycle/preevy/blob/main/packages/cli/docs/profile.md#preevy-profile-cp)\n\nOnce the profile is created, it can be imported to the CI runtime using `preevy init --from \u003cprofile-url\u003e`\n\n[Examples](https://preevy.dev/ci)\n\n### Faster builds in CI\n\nCheck out our [documentation](https://preevy.dev/recipes/faster-build) to find out how to speed up your builds and reduce the costs of your preview environments by running Preevy with BuildKit Builders in CI.\n\n### Example repos\n\n#### GitHub Actions\n\n- [Preevy on Kubernetes using Google Cloud GKE and GAR](https://github.com/livecycle/preevy-gha-gke-demo)\n- [Preevy on Google Cloud VMs](https://github.com/livecycle/preevy-gha-gce-demo)\n\n#### Shortcut for setting up a cost-efficient Kubernetes cluster on AWS EKS\n\nDon't have a Kubernetes cluster? See an [example repo](https://github.com/livecycle/preevy-terraform-eks-example) for setting up [AWS EKS](https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html) using Terraform. The example includes [Karpenter](https://karpenter.sh/) which can reduce the cost of running Preview Environments by automatically expanding and shrinking your cluster using [EC2 Spot Instances](https://aws.amazon.com/ec2/spot/pricing/)\n\n\n## Security\n\nIn case you find a security issue or have something you would like to discuss, refer to our [security policy](https://github.com/livecycle/preevy/blob/main/security.md#reporting-security-issues).\n\n### Private environments\n\nPreevy can add an authentication layer to your provisioned environments. When you configure your service as [private](https://preevy.dev/recipes/private-services/) the Tunnel Server restricts access based on a pre-shared secret or a Livecycle login (SSO via Google/Microsoft/GitHub).\n\n### Exposure of preview environments\n\nServices on provisioned environments are not exposed directly, but rather via a [tunnel](https://livecycle.io/blogs/preevy-proxy-service-2/) created by the tunneling server.\n\n### Livecycle access to data\n\nWhen you use Preevy, Livecycle does not get access to your credentials or code. Preevy only uses your cloud provider or Kubernetes credentials to provision and connect to environments - it does not send or store the credentials.\n\nEncrypted traffic to and from your environments goes through Preevy's [Tunnel Server](https://preevy.dev/tunnel-server). Livecycle hosts the default Tunnel Server at livecycle.run which is available as part of Livecycle's SaaS offering. Like most SaaS providers, we keep logs for monitoring and troubleshooting purposes which include metadata of the requests. The Tunnel Server code is part of the Preevy OSS project; you can run it on your own infrastructure and specify the its address via the `--tunnel-url` flag.\n\n### Network isolation\n\nThe Tunnel Server can be deployed on your private network (e.g. VPC), which access to your environments at the network level.\n\n## Configuration\n\nPreevy loads its configuration from the following sources, in order:\n\n\u003c!--lint disable double-link--\u003e\n- The Preevy Profile\n- Compose files ([Preevy-specific](#preevy-specific-compose-file), then [project](#project-compose-files))\n- Command-line arguments\n\u003c!--lint enable double-link--\u003e\n\n### Preevy Profile\n\nThe Preevy profile is created by the `init` command and can be stored locally or remotely on your cloud provider. A profile is required to create environments. The profile includes the following:\n\n\u003c!--lint disable double-link--\u003e\n- A tunneling key, that is used to identify your services when connecting to the [Tunnel Server](#tunnel-server).\n- The default driver to use for provisioning environments.\n- Default driver options to use per driver (e.g. AWS region, K8s namespace).\n- Driver state whose contents depend on the specific driver.\n\u003c!--lint enable double-link--\u003e\n\nProfiles can be migrated to a different storage location using `preevy profile cp`.\n\nThe `default` profile can be overridden using the global command line argument `--profile`.\n\n\u003csub\u003e\u003csup\u003eNote: The profile currently combines context and state, and [some changes are planned](https://github.com/livecycle/preevy/issues/329).\u003c/sup\u003e\u003c/sub\u003e\n\n### Compose files\n\nPreevy extracts its runtime settings from the [Compose file](https://docs.docker.com/compose/compose-file/03-compose-file/).\n\n#### Project Compose files\n\nJust like with the `docker compose` CLI, you can use the global `--file | -f` command line argument to specify the path(s) for the Compose file. If not specified, the [default loading order](https://docs.docker.com/compose/reference/#use--f-to-specify-name-and-path-of-one-or-more-compose-files) is used. Multiple files are [supported](https://docs.docker.com/compose/extends/#multiple-compose-files).\n\n#### Preevy-specific Compose file\n\nIn addition to the project compose files, an optional Preevy-specific Compose file can be used. Preevy attempts to load files named `compose.preevy.yaml`, `compose.preevy.yml`, `docker-compose.preevy.yaml` or `docker-compose.preevy.yml`. If one of these exists, it is loaded BEFORE the project composes file(s). The name of the Preevy-specific compose file can be overridden by specifying the argument `--system-compose-file`.\n\n### `x-preevy`: Preevy-specific configuration in the Compose file(s)\n\nA `x-preevy` top-level element can be added to the Compose file(s).\n\n```yaml\nservices:\n  ...\nx-preevy:\n  driver: lightsail\n  drivers:\n    lightsail:\n      region: eu-central-1\n    kube-pod:\n      context: dev-cluster\n  plugins:\n    ...\n```\n\nThe following properties are supported, all of them optional:\n\n#### `driver`\n\n\u003c!--lint disable double-link--\u003e\nOverride the default [driver](https://preevy.dev/deploy-runtimes/) to use for this Compose project.\nAvailable values: `lightsail`, `gce`, `azure`, `kube-pod`.\n\u003c!--lint enable double-link--\u003e\n\nThis value can be overridden per command execution using the `--driver` CLI flag.\n\n#### `drivers`\n\n\u003c!--lint disable double-link--\u003e\nOverride the default options per driver for this Compose project. See the [specific driver documentation](https://preevy.dev/deploy-runtimes/).\n\u003c!--lint enable double-link--\u003e\n\nThese values can be overridden per command execution using the specific driver CLI flags, e.g. `--lightsail-bundle-id=2xlarge_2_0`\n\nExample:\n\n```yaml\nx-preevy:\n  drivers:\n    lightsail:\n      bundle-id: large_2_0\n    kube-pod:\n      context: dev-cluster\n```\n\n#### `plugins`\n\n\u003c!--lint disable double-link--\u003e\nSee [Plugins](#plugins) below.\n\u003c!--lint enable double-link--\u003e\n\n## Plugins\n\nPlugins are a way to extend Preevy's functionality via externally-published NPM packages.\n\nA plugin can add hooks that execute code in response to events. It can also define new commands, and add flags to existing commands to customize their behavior.\n\n### Default plugins\n\nThe [GitHub integration plugin](packages/plugin-github) packaged as `@preevy/plugin-github` is bundled with Preevy and enabled by default.\n\n### Enabling or disabling plugins\n\n#### From the Docker Compose file\n\n\u003c!--lint disable double-link--\u003e\nPlugins can be configured in the [Preevy configuration](#x-preevy-preevy-specific-configuration-in-the-compose-files) section of your Compose file. Add a `plugins` section to the `x-preevy` top-level element:\n\u003c!--lint enable double-link--\u003e\n\n```yaml\nservices:\n  ...\nx-preevy:\n  plugins:\n    - module: '@preevy/plugin-github'\n      disabled: false # optional, set to true to disable plugin\n      # ...additional plugin-specific configuration goes here\n```\n\nSee the [included GitHub integration plugin](packages/plugin-github/README.md) for a detailed example.\n\n#### From the environment\n\nPlugins can be enabled or disabled by setting the `PREEVY_ENABLE_PLUGINS` and `PREEVY_DISABLE_PLUGINS` environment variables to a comma-separated list of packages.\n\nExample: To disable the default GitHub integration plugin, set `PREEVY_DISABLE_PLUGINS=@preevy/plugin-github`.\n\n#### From the CLI flags\n\nSpecify the global `--enable-plugin=\u003cmodule\u003e` and `--disable-plugin=\u003cmodule\u003e` flags to enable or disable plugins per command execution. CLI flags take priority over the Docker Compose and environment configuration.\n\n## Docs and support\n\nRead about Preevy's components and learn how to use them in our [documentation](https://preevy.dev/).\n\nAsk a question or join our [Livecycle Community](https://community.livecycle.io) to get support.\n\n## Telemetry\n\nThe Preevy CLI collects telemetry data to help us understand product usage and direct future development.\n\nThe data collected is *anonymous* and cannot be used to uniquely identify a user.\nAccess to the data is limited to Livecycle's employees and not shared with 3rd parties.\n\nTo see the collected data, set the environment variable `PREEVY_TELEMETRY_FILE` to a filename.\n\nWe appreciate the usage data sent to us as - it's the most basic and raw type of feedback we get from our users. However, if you are concerned about sending out data, you may choose to disable telemetry.\n\nTelemetry collection can be disabled by setting the environment variable `PREEVY_DISABLE_TELEMETRY` to `1` or `true`.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flivecycle%2Fpreevy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flivecycle%2Fpreevy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flivecycle%2Fpreevy/lists"}