# Lotty A/B Platform [![wakatime](https://wakatime.com/badge/user/cb406c1c-8eb4-4829-b9f9-816a0d284d7e/project/072eef64-ba2e-4a95-a5bb-62e22186eb22.svg)](https://wakatime.com/badge/user/cb406c1c-8eb4-4829-b9f9-816a0d284d7e/project/072eef64-ba2e-4a95-a5bb-62e22186eb22) Service for managing A/B testing experiments. Drive your tests without breaking user experience!_) ## 📋 Instructions ### Dedicated services setup [Backend](./src/backend/README.md) ### Setup with docker compose #### Warning Please note that by default containers will use ports 80 (reverse proxy) and range 14601-14611 (for direct access to containers), so there is must be no listeners on this ports range. You can customize the ports in [.env.template](./.env.template). #### 0. Prerequisites - [Docker](https://www.docker.com/) (latest version recommended) - [Docker compose](https://www.docker.com/) (latest version recommended) - Cloned repository #### 1. Configuration - Docker compose configuration files are stored in [deploy/compose](./deploy/compose). - Configuration files for containers are stored in [infrastrucutre/configs](./infrastrucutre/configs). Env could be customized by creating `.env` file in each service config directory, it will automatically override the default values from `.env.template`. - Ports on which containers will be accessible are defined in [.env.template](./.env.template). This could be customized by creating `.env` file in the root directory and patching the following lines compose you are running: ```yaml x-defaults: &defaults project_directory: ./ env_file: - ./.env.template - ./.env # add this ``` #### 2. Choosing compose configuration - [compose.yaml](./compose.yaml) - default configuration with base services included. - [compose.prod.yaml](./compose.prod.yaml) - configuration for production environment with full observability stack. #### 3. Running compose configuration To run the compose configuration, use the following command: ```bash docker compose -f compose.yaml up # OR docker compose -f compose.prod.yaml up ``` Thats it, project is already preconfigured for running, so no changes before running this are required.