From 16c8b685838881b56fbc9f7ae57a295480ddd4ec Mon Sep 17 00:00:00 2001 From: Julien Bourdeau Date: Thu, 23 Jan 2025 16:42:42 +0100 Subject: [PATCH 1/4] feat(docker): refactor env variable to .env file for dev --- .env.development.example | 53 +++++++++ .gitignore | 1 + docker-compose.dev.yml | 242 +++------------------------------------ 3 files changed, 71 insertions(+), 225 deletions(-) create mode 100644 .env.development.example diff --git a/.env.development.example b/.env.development.example new file mode 100644 index 000000000..9c606063e --- /dev/null +++ b/.env.development.example @@ -0,0 +1,53 @@ +LAGO_API_URL=https://api.lago.dev +LAGO_FRONT_URL=https://app.lago.dev + +# Feature flags +LAGO_SIDEKIQ_WEB=true +LAGO_CLICKHOUSE_ENABLED=true +LAGO_CLICKHOUSE_MIGRATIONS_ENABLED=true +LAGO_DISABLE_SEGMENT=true +LAGO_DISABLE_WALLET_REFRESH=true +LAGO_USE_AWS_S3=false + +# DB Seeding +LAGO_CREATE_ORG=true +LAGO_ORG_USER_EMAIL=email@example.com +LAGO_ORG_USER_PASSWORD=password +LAGO_ORG_NAME=Acme + +# Accessories (DB, pdf, kafka) +POSTGRES_USER=lago +POSTGRES_DB=lago +POSTGRES_PASSWORD=changeme +DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB} +REDIS_URL=redis://redis:6379 +LAGO_REDIS_CACHE_URL=redis://redis:6379 +LAGO_PDF_URL=http://pdf:3000 +LAGO_KAFKA_BOOTSTRAP_SERVERS=redpanda:9092 +LAGO_KAFKA_RAW_EVENTS_TOPIC=events-raw +LAGO_KAFKA_ENRICHED_EVENTS_TOPIC=events_enriched +LAGO_KAFKA_CLICKHOUSE_CONSUMER_GROUP=clickhouse + +# Misc +LAGO_FROM_EMAIL=noreply@getlago.com +LAGO_PARALLEL_THREADS_COUNT=4 + +# Use dedicated services to process certain queues +# If you enable one, make sure the related service is started +# Ex: SIDEKIQ_WEBHOOK=true means `api-webhook-worker` must be running or webhooks-related jobs won't be processed +SIDEKIQ_EVENTS=false +SIDEKIQ_PDFS=false +SIDEKIQ_BILLING=false +SIDEKIQ_CLOCK=false +SIDEKIQ_WEBHOOK=false + +# External API keys +LAGO_LICENSE="35be6ead-a590-4593-9a45-01f62c248faa" +NANGO_SECRET_KEY= +SEGMENT_WRITE_KEY= + +# Salts and similar +SECRET_KEY_BASE=your-secret-key-base-hex-64 +LAGO_ENCRYPTION_PRIMARY_KEY=your-encrpytion-primary-key +LAGO_ENCRYPTION_DETERMINISTIC_KEY=your-encrpytion-deterministic-key +LAGO_ENCRYPTION_KEY_DERIVATION_SALT=your-encrpytion-derivation-salt diff --git a/.gitignore b/.gitignore index 79a18b7e6..99ee7754d 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ *.code-workspace .DS_Store .env +.env.development .rsa_private.pem .vscode /extra/ssl/certbot diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 9f48ea4f5..f92d40490 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -92,40 +92,12 @@ services: dockerfile: $LAGO_PATH/api/Dockerfile.dev volumes: - $LAGO_PATH/api:/app:delegated + env_file: + - .env.development environment: - - LAGO_API_URL=https://api.lago.dev - - DATABASE_URL=postgresql://${POSTGRES_USER:-lago}:${POSTGRES_PASSWORD:-changeme}@db:5432/${POSTGRES_DB:-lago} - - DATABASE_TEST_URL=postgresql://${POSTGRES_USER:-lago}:${POSTGRES_PASSWORD:-changeme}@db:5432/${POSTGRES_DB:-lago_test} - - REDIS_URL=redis://redis:6379 - - SECRET_KEY_BASE=${SECRET_KEY_BASE:-your-secret-key-base-hex-64} - - LAGO_FRONT_URL=${LAGO_FRONT_URL:-https://app.lago.dev} - - LAGO_ENCRYPTION_PRIMARY_KEY=${ENCRYPTION_PRIMARY_KEY:-your-encrpytion-primary-key} - - LAGO_ENCRYPTION_DETERMINISTIC_KEY=${ENCRYPTION_DETERMINISTIC_KEY:-your-encrpytion-deterministic-key} - - LAGO_ENCRYPTION_KEY_DERIVATION_SALT=${ENCRYPTION_KEY_DERIVATION_SALT:-your-encrpytion-derivation-salt} - - LAGO_USE_AWS_S3=${LAGO_USE_AWS_S3:-false} - - LAGO_PARALLEL_THREADS_COUNT=${LAGO_PARALLEL_THREADS_COUNT:-4} - - LAGO_PDF_URL=${LAGO_PDF_URL:-http://pdf:3000} - - LAGO_REDIS_CACHE_URL=redis://redis:6379 - - SEGMENT_WRITE_KEY=${SEGMENT_WRITE_KEY:-} - - LAGO_DISABLE_SEGMENT=${LAGO_DISABLE_SEGMENT:-} - - LAGO_DISABLE_WALLET_REFRESH=${LAGO_DISABLE_WALLET_REFRESH:-} - - LAGO_LICENSE=${LAGO_LICENSE:-} - - LAGO_FROM_EMAIL=${LAGO_FROM_EMAIL:-noreply@getlago.com} - - LAGO_SIDEKIQ_WEB=true - - SIDEKIQ_EVENTS=true - - SIDEKIQ_PDFS=true - - SIDEKIQ_BILLING=true - - SIDEKIQ_CLOCK=true - - SIDEKIQ_WEBHOOK=true - - LAGO_CLICKHOUSE_ENABLED=true - - LAGO_CLICKHOUSE_MIGRATIONS_ENABLED=true - - LAGO_KAFKA_BOOTSTRAP_SERVERS=redpanda:9092 - - LAGO_KAFKA_RAW_EVENTS_TOPIC=events-raw - - LAGO_KAFKA_ENRICHED_EVENTS_TOPIC=events_enriched - - LAGO_KAFKA_CLICKHOUSE_CONSUMER_GROUP=clickhouse + - DATABASE_TEST_URL=postgresql://${POSTGRES_USER:-lago}:${POSTGRES_PASSWORD:-changeme}@db:5432/lago_test - GOOGLE_AUTH_CLIENT_ID=${GOOGLE_AUTH_CLIENT_ID:-} - GOOGLE_AUTH_CLIENT_SECRET=${GOOGLE_AUTH_CLIENT_SECRET:-} - - NANGO_SECRET_KEY=${NANGO_SECRET_KEY:-} labels: - "traefik.enable=true" - "traefik.http.routers.api_http.rule=Host(`api.lago.dev`)" @@ -150,36 +122,8 @@ services: dockerfile: $LAGO_PATH/api/Dockerfile.dev volumes: - $LAGO_PATH/api:/app:delegated - environment: - - LAGO_API_URL=https://api.lago.dev - - DATABASE_URL=postgresql://${POSTGRES_USER:-lago}:${POSTGRES_PASSWORD:-changeme}@db:5432/${POSTGRES_DB:-lago} - - REDIS_URL=redis://redis:6379 - - SECRET_KEY_BASE=${SECRET_KEY_BASE:-your-secret-key-base-hex-64} - - LAGO_ENCRYPTION_PRIMARY_KEY=${ENCRYPTION_PRIMARY_KEY:-your-encrpytion-primary-key} - - LAGO_ENCRYPTION_DETERMINISTIC_KEY=${ENCRYPTION_DETERMINISTIC_KEY:-your-encrpytion-deterministic-key} - - LAGO_ENCRYPTION_KEY_DERIVATION_SALT=${ENCRYPTION_KEY_DERIVATION_SALT:-your-encrpytion-derivation-salt} - - LAGO_USE_AWS_S3=${LAGO_USE_AWS_S3:-false} - - LAGO_FRONT_URL=${LAGO_FRONT_URL:-https://app.lago.dev} - - LAGO_PARALLEL_THREADS_COUNT=${LAGO_PARALLEL_THREADS_COUNT:-4} - - LAGO_PDF_URL=${LAGO_PDF_URL:-http://pdf:3000} - - LAGO_REDIS_CACHE_URL=redis://redis:6379 - - SEGMENT_WRITE_KEY=${SEGMENT_WRITE_KEY:-} - - LAGO_DISABLE_SEGMENT=${LAGO_DISABLE_SEGMENT:-} - - LAGO_DISABLE_WALLET_REFRESH=${LAGO_DISABLE_WALLET_REFRESH:-} - - LAGO_FROM_EMAIL=${LAGO_FROM_EMAIL:-noreply@getlago.com} - - SIDEKIQ_EVENTS=true - - SIDEKIQ_PDFS=true - - SIDEKIQ_BILLING=true - - SIDEKIQ_CLOCK=true - - SIDEKIQ_WEBHOOK=true - - LAGO_CLICKHOUSE_ENABLED=true - - LAGO_CLICKHOUSE_MIGRATIONS_ENABLED=true - - LAGO_KAFKA_BOOTSTRAP_SERVERS=redpanda:9092 - - LAGO_KAFKA_RAW_EVENTS_TOPIC=events_raw - - LAGO_KAFKA_ENRICHED_EVENTS_TOPIC=events_enriched - - LAGO_KAFKA_CLICKHOUSE_CONSUMER_GROUP=clickhouse - - NANGO_SECRET_KEY=${NANGO_SECRET_KEY:-} - - LAGO_LICENSE=${LAGO_LICENSE:-} + env_file: + - .env.development api-events-worker: image: api_dev @@ -193,35 +137,8 @@ services: dockerfile: $LAGO_PATH/api/Dockerfile.dev volumes: - $LAGO_PATH/api:/app:delegated - environment: - - LAGO_API_URL=https://api.lago.dev - - DATABASE_URL=postgresql://${POSTGRES_USER:-lago}:${POSTGRES_PASSWORD:-changeme}@db:5432/${POSTGRES_DB:-lago} - - REDIS_URL=redis://redis:6379 - - SECRET_KEY_BASE=${SECRET_KEY_BASE:-your-secret-key-base-hex-64} - - LAGO_ENCRYPTION_PRIMARY_KEY=${ENCRYPTION_PRIMARY_KEY:-your-encrpytion-primary-key} - - LAGO_ENCRYPTION_DETERMINISTIC_KEY=${ENCRYPTION_DETERMINISTIC_KEY:-your-encrpytion-deterministic-key} - - LAGO_ENCRYPTION_KEY_DERIVATION_SALT=${ENCRYPTION_KEY_DERIVATION_SALT:-your-encrpytion-derivation-salt} - - LAGO_USE_AWS_S3=${LAGO_USE_AWS_S3:-false} - - LAGO_FRONT_URL=${LAGO_FRONT_URL:-https://app.lago.dev} - - LAGO_PARALLEL_THREADS_COUNT=${LAGO_PARALLEL_THREADS_COUNT:-4} - - LAGO_PDF_URL=${LAGO_PDF_URL:-http://pdf:3000} - - LAGO_REDIS_CACHE_URL=redis://redis:6379 - - SEGMENT_WRITE_KEY=${SEGMENT_WRITE_KEY:-} - - LAGO_DISABLE_SEGMENT=${LAGO_DISABLE_SEGMENT:-} - - LAGO_DISABLE_WALLET_REFRESH=${LAGO_DISABLE_WALLET_REFRESH:-} - - LAGO_FROM_EMAIL=${LAGO_FROM_EMAIL:-noreply@getlago.com} - - SIDEKIQ_EVENTS=true - - SIDEKIQ_BILLING=true - - SIDEKIQ_CLOCK=true - - SIDEKIQ_WEBHOOK=true - - LAGO_CLICKHOUSE_ENABLED=true - - LAGO_CLICKHOUSE_MIGRATIONS_ENABLED=true - - LAGO_KAFKA_BOOTSTRAP_SERVERS=redpanda:9092 - - LAGO_KAFKA_RAW_EVENTS_TOPIC=events-raw - - LAGO_KAFKA_ENRICHED_EVENTS_TOPIC=events_enriched - - LAGO_KAFKA_CLICKHOUSE_CONSUMER_GROUP=clickhouse - - NANGO_SECRET_KEY=${NANGO_SECRET_KEY:-} - - LAGO_LICENSE=${LAGO_LICENSE:-} + env_file: + - .env.development api-pdfs-worker: image: api_dev @@ -235,34 +152,8 @@ services: dockerfile: $LAGO_PATH/api/Dockerfile.dev volumes: - $LAGO_PATH/api:/app:delegated - environment: - - LAGO_API_URL=https://api.lago.dev - - DATABASE_URL=postgresql://${POSTGRES_USER:-lago}:${POSTGRES_PASSWORD:-changeme}@db:5432/${POSTGRES_DB:-lago} - - REDIS_URL=redis://redis:6379 - - SECRET_KEY_BASE=${SECRET_KEY_BASE:-your-secret-key-base-hex-64} - - LAGO_ENCRYPTION_PRIMARY_KEY=${ENCRYPTION_PRIMARY_KEY:-your-encrpytion-primary-key} - - LAGO_ENCRYPTION_DETERMINISTIC_KEY=${ENCRYPTION_DETERMINISTIC_KEY:-your-encrpytion-deterministic-key} - - LAGO_ENCRYPTION_KEY_DERIVATION_SALT=${ENCRYPTION_KEY_DERIVATION_SALT:-your-encrpytion-derivation-salt} - - LAGO_USE_AWS_S3=${LAGO_USE_AWS_S3:-false} - - LAGO_FRONT_URL=${LAGO_FRONT_URL:-https://app.lago.dev} - - LAGO_PARALLEL_THREADS_COUNT=${LAGO_PARALLEL_THREADS_COUNT:-4} - - LAGO_PDF_URL=${LAGO_PDF_URL:-http://pdf:3000} - - LAGO_REDIS_CACHE_URL=redis://redis:6379 - - SEGMENT_WRITE_KEY=${SEGMENT_WRITE_KEY:-} - - LAGO_DISABLE_SEGMENT=${LAGO_DISABLE_SEGMENT:-} - - LAGO_DISABLE_WALLET_REFRESH=${LAGO_DISABLE_WALLET_REFRESH:-} - - LAGO_FROM_EMAIL=${LAGO_FROM_EMAIL:-noreply@getlago.com} - - SIDEKIQ_PDFS=true - - SIDEKIQ_CLOCK=true - - SIDEKIQ_WEBHOOK=true - - LAGO_CLICKHOUSE_ENABLED=true - - LAGO_CLICKHOUSE_MIGRATIONS_ENABLED=true - - LAGO_KAFKA_BOOTSTRAP_SERVERS=redpanda:9092 - - LAGO_KAFKA_RAW_EVENTS_TOPIC=events-raw - - LAGO_KAFKA_ENRICHED_EVENTS_TOPIC=events_enriched - - LAGO_KAFKA_CLICKHOUSE_CONSUMER_GROUP=clickhouse - - NANGO_SECRET_KEY=${NANGO_SECRET_KEY:-} - - LAGO_LICENSE=${LAGO_LICENSE:-} + env_file: + - .env.development api-billing-worker: image: api_dev @@ -276,35 +167,8 @@ services: dockerfile: $LAGO_PATH/api/Dockerfile.dev volumes: - $LAGO_PATH/api:/app:delegated - environment: - - LAGO_API_URL=https://api.lago.dev - - DATABASE_URL=postgresql://${POSTGRES_USER:-lago}:${POSTGRES_PASSWORD:-changeme}@db:5432/${POSTGRES_DB:-lago} - - REDIS_URL=redis://redis:6379 - - SECRET_KEY_BASE=${SECRET_KEY_BASE:-your-secret-key-base-hex-64} - - LAGO_ENCRYPTION_PRIMARY_KEY=${ENCRYPTION_PRIMARY_KEY:-your-encrpytion-primary-key} - - LAGO_ENCRYPTION_DETERMINISTIC_KEY=${ENCRYPTION_DETERMINISTIC_KEY:-your-encrpytion-deterministic-key} - - LAGO_ENCRYPTION_KEY_DERIVATION_SALT=${ENCRYPTION_KEY_DERIVATION_SALT:-your-encrpytion-derivation-salt} - - LAGO_USE_AWS_S3=${LAGO_USE_AWS_S3:-false} - - LAGO_FRONT_URL=${LAGO_FRONT_URL:-https://app.lago.dev} - - LAGO_PARALLEL_THREADS_COUNT=${LAGO_PARALLEL_THREADS_COUNT:-4} - - LAGO_PDF_URL=${LAGO_PDF_URL:-http://pdf:3000} - - LAGO_REDIS_CACHE_URL=redis://redis:6379 - - SEGMENT_WRITE_KEY=${SEGMENT_WRITE_KEY:-} - - LAGO_DISABLE_SEGMENT=${LAGO_DISABLE_SEGMENT:-} - - LAGO_DISABLE_WALLET_REFRESH=${LAGO_DISABLE_WALLET_REFRESH:-} - - LAGO_FROM_EMAIL=${LAGO_FROM_EMAIL:-noreply@getlago.com} - - SIDEKIQ_PDFS=true - - SIDEKIQ_BILLING=true - - SIDEKIQ_CLOCK=true - - SIDEKIQ_WEBHOOK=true - - LAGO_CLICKHOUSE_ENABLED=true - - LAGO_CLICKHOUSE_MIGRATIONS_ENABLED=true - - LAGO_KAFKA_BOOTSTRAP_SERVERS=redpanda:9092 - - LAGO_KAFKA_RAW_EVENTS_TOPIC=events-raw - - LAGO_KAFKA_ENRICHED_EVENTS_TOPIC=events_enriched - - LAGO_KAFKA_CLICKHOUSE_CONSUMER_GROUP=clickhouse - - NANGO_SECRET_KEY=${NANGO_SECRET_KEY:-} - - LAGO_LICENSE=${LAGO_LICENSE:-} + env_file: + - .env.development api-clock-worker: image: api_dev @@ -318,35 +182,8 @@ services: dockerfile: $LAGO_PATH/api/Dockerfile.dev volumes: - $LAGO_PATH/api:/app:delegated - environment: - - LAGO_API_URL=https://api.lago.dev - - DATABASE_URL=postgresql://${POSTGRES_USER:-lago}:${POSTGRES_PASSWORD:-changeme}@db:5432/${POSTGRES_DB:-lago} - - REDIS_URL=redis://redis:6379 - - SECRET_KEY_BASE=${SECRET_KEY_BASE:-your-secret-key-base-hex-64} - - LAGO_ENCRYPTION_PRIMARY_KEY=${ENCRYPTION_PRIMARY_KEY:-your-encrpytion-primary-key} - - LAGO_ENCRYPTION_DETERMINISTIC_KEY=${ENCRYPTION_DETERMINISTIC_KEY:-your-encrpytion-deterministic-key} - - LAGO_ENCRYPTION_KEY_DERIVATION_SALT=${ENCRYPTION_KEY_DERIVATION_SALT:-your-encrpytion-derivation-salt} - - LAGO_USE_AWS_S3=${LAGO_USE_AWS_S3:-false} - - LAGO_FRONT_URL=${LAGO_FRONT_URL:-https://app.lago.dev} - - LAGO_PARALLEL_THREADS_COUNT=${LAGO_PARALLEL_THREADS_COUNT:-4} - - LAGO_PDF_URL=${LAGO_PDF_URL:-http://pdf:3000} - - LAGO_REDIS_CACHE_URL=redis://redis:6379 - - SEGMENT_WRITE_KEY=${SEGMENT_WRITE_KEY:-} - - LAGO_DISABLE_SEGMENT=${LAGO_DISABLE_SEGMENT:-} - - LAGO_DISABLE_WALLET_REFRESH=${LAGO_DISABLE_WALLET_REFRESH:-} - - LAGO_FROM_EMAIL=${LAGO_FROM_EMAIL:-noreply@getlago.com} - - SIDEKIQ_PDFS=true - - SIDEKIQ_BILLING=true - - SIDEKIQ_CLOCK=true - - SIDEKIQ_WEBHOOK=true - - LAGO_CLICKHOUSE_ENABLED=true - - LAGO_CLICKHOUSE_MIGRATIONS_ENABLED=true - - LAGO_KAFKA_BOOTSTRAP_SERVERS=redpanda:9092 - - LAGO_KAFKA_RAW_EVENTS_TOPIC=events-raw - - LAGO_KAFKA_ENRICHED_EVENTS_TOPIC=events_enriched - - LAGO_KAFKA_CLICKHOUSE_CONSUMER_GROUP=clickhouse - - NANGO_SECRET_KEY=${NANGO_SECRET_KEY:-} - - LAGO_LICENSE=${LAGO_LICENSE:-} + env_file: + - .env.development api-webhook-worker: image: api_dev @@ -360,35 +197,8 @@ services: dockerfile: $LAGO_PATH/api/Dockerfile.dev volumes: - $LAGO_PATH/api:/app:delegated - environment: - - LAGO_API_URL=https://api.lago.dev - - DATABASE_URL=postgresql://${POSTGRES_USER:-lago}:${POSTGRES_PASSWORD:-changeme}@db:5432/${POSTGRES_DB:-lago} - - REDIS_URL=redis://redis:6379 - - SECRET_KEY_BASE=${SECRET_KEY_BASE:-your-secret-key-base-hex-64} - - LAGO_ENCRYPTION_PRIMARY_KEY=${ENCRYPTION_PRIMARY_KEY:-your-encrpytion-primary-key} - - LAGO_ENCRYPTION_DETERMINISTIC_KEY=${ENCRYPTION_DETERMINISTIC_KEY:-your-encrpytion-deterministic-key} - - LAGO_ENCRYPTION_KEY_DERIVATION_SALT=${ENCRYPTION_KEY_DERIVATION_SALT:-your-encrpytion-derivation-salt} - - LAGO_USE_AWS_S3=${LAGO_USE_AWS_S3:-false} - - LAGO_FRONT_URL=${LAGO_FRONT_URL:-https://app.lago.dev} - - LAGO_PARALLEL_THREADS_COUNT=${LAGO_PARALLEL_THREADS_COUNT:-4} - - LAGO_PDF_URL=${LAGO_PDF_URL:-http://pdf:3000} - - LAGO_REDIS_CACHE_URL=redis://redis:6379 - - SEGMENT_WRITE_KEY=${SEGMENT_WRITE_KEY:-} - - LAGO_DISABLE_SEGMENT=${LAGO_DISABLE_SEGMENT:-} - - LAGO_DISABLE_WALLET_REFRESH=${LAGO_DISABLE_WALLET_REFRESH:-} - - LAGO_FROM_EMAIL=${LAGO_FROM_EMAIL:-noreply@getlago.com} - - SIDEKIQ_PDFS=true - - SIDEKIQ_BILLING=true - - SIDEKIQ_CLOCK=true - - SIDEKIQ_WEBHOOK=true - - LAGO_CLICKHOUSE_ENABLED=true - - LAGO_CLICKHOUSE_MIGRATIONS_ENABLED=true - - LAGO_KAFKA_BOOTSTRAP_SERVERS=redpanda:9092 - - LAGO_KAFKA_RAW_EVENTS_TOPIC=events-raw - - LAGO_KAFKA_ENRICHED_EVENTS_TOPIC=events_enriched - - LAGO_KAFKA_CLICKHOUSE_CONSUMER_GROUP=clickhouse - - NANGO_SECRET_KEY=${NANGO_SECRET_KEY:-} - - LAGO_LICENSE=${LAGO_LICENSE:-} + env_file: + - .env.development api-clock: image: api_dev @@ -402,26 +212,8 @@ services: dockerfile: $LAGO_PATH/api/Dockerfile.dev volumes: - $LAGO_PATH/api:/app:delegated - environment: - - LAGO_API_URL=https://api.lago.dev - - DATABASE_URL=postgresql://${POSTGRES_USER:-lago}:${POSTGRES_PASSWORD:-changeme}@db:5432/${POSTGRES_DB:-lago} - - REDIS_URL=redis://redis:6379 - - SECRET_KEY_BASE=${SECRET_KEY_BASE:-your-secret-key-base-hex-64} - - LAGO_ENCRYPTION_PRIMARY_KEY=${ENCRYPTION_PRIMARY_KEY:-your-encrpytion-primary-key} - - LAGO_ENCRYPTION_DETERMINISTIC_KEY=${ENCRYPTION_DETERMINISTIC_KEY:-your-encrpytion-deterministic-key} - - LAGO_ENCRYPTION_KEY_DERIVATION_SALT=${ENCRYPTION_KEY_DERIVATION_SALT:-your-encrpytion-derivation-salt} - - SEGMENT_WRITE_KEY=${SEGMENT_WRITE_KEY:-} - - LAGO_DISABLE_SEGMENT=${LAGO_DISABLE_SEGMENT:-} - - LAGO_DISABLE_WALLET_REFRESH=${LAGO_DISABLE_WALLET_REFRESH:-} - - LAGO_CLICKHOUSE_ENABLED=true - - LAGO_CLICKHOUSE_MIGRATIONS_ENABLED=true - - LAGO_KAFKA_BOOTSTRAP_SERVERS=redpanda:9092 - - LAGO_KAFKA_RAW_EVENTS_TOPIC=events-raw - - LAGO_KAFKA_ENRICHED_EVENTS_TOPIC=events_enriched - - LAGO_KAFKA_CLICKHOUSE_CONSUMER_GROUP=clickhouse - - NANGO_SECRET_KEY=${NANGO_SECRET_KEY:-} - - LAGO_LICENSE=${LAGO_LICENSE:-} - - SIDEKIQ_CLOCK=true + env_file: + - .env.development pdf: image: getlago/lago-gotenberg:7 From 91e18ef8caa4d86b86cd5a74cb18c7a9f58da8b7 Mon Sep 17 00:00:00 2001 From: Julien Bourdeau Date: Thu, 23 Jan 2025 17:14:10 +0100 Subject: [PATCH 2/4] group worker definition --- docker-compose.dev.yml | 62 ++++-------------------------------------- 1 file changed, 6 insertions(+), 56 deletions(-) diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index f92d40490..6a411e5be 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -110,7 +110,7 @@ services: - "traefik.http.routers.api.tls=true" - "traefik.http.services.api.loadbalancer.server.port=3000" - api-worker: + api-worker: &api_worker image: api_dev container_name: lago_api_worker restart: unless-stopped @@ -126,79 +126,29 @@ services: - .env.development api-events-worker: - image: api_dev + <<: *api_worker container_name: lago_api_events_worker_dev - depends_on: - - api - restart: unless-stopped command: bash -c "bundle install && ./scripts/start.events.worker.sh" - build: - context: ./api - dockerfile: $LAGO_PATH/api/Dockerfile.dev - volumes: - - $LAGO_PATH/api:/app:delegated - env_file: - - .env.development api-pdfs-worker: - image: api_dev + <<: *api_worker container_name: lago_api_pdfs_worker_dev - depends_on: - - api - restart: unless-stopped command: bash -c "bundle install && ./scripts/start.pdfs.worker.sh" - build: - context: ./api - dockerfile: $LAGO_PATH/api/Dockerfile.dev - volumes: - - $LAGO_PATH/api:/app:delegated - env_file: - - .env.development api-billing-worker: - image: api_dev + <<: *api_worker container_name: lago_api_billing_worker_dev - depends_on: - - api - restart: unless-stopped command: bash -c "bundle install && ./scripts/start.billing.worker.sh" - build: - context: ./api - dockerfile: $LAGO_PATH/api/Dockerfile.dev - volumes: - - $LAGO_PATH/api:/app:delegated - env_file: - - .env.development api-clock-worker: - image: api_dev + <<: *api_worker container_name: lago_api_clock_worker_dev - depends_on: - - api - restart: unless-stopped command: bash -c "bundle install && ./scripts/start.clock.worker.sh" - build: - context: ./api - dockerfile: $LAGO_PATH/api/Dockerfile.dev - volumes: - - $LAGO_PATH/api:/app:delegated - env_file: - - .env.development api-webhook-worker: - image: api_dev + <<: *api_worker container_name: lago_api_webhook_worker_dev - depends_on: - - api - restart: unless-stopped command: bash -c "bundle install && ./scripts/start.webhook.worker.sh" - build: - context: ./api - dockerfile: $LAGO_PATH/api/Dockerfile.dev - volumes: - - $LAGO_PATH/api:/app:delegated - env_file: - - .env.development api-clock: image: api_dev From 84b6eef71aa24fb25c41b7077dcbc4a25deaa958 Mon Sep 17 00:00:00 2001 From: Julien Bourdeau Date: Thu, 23 Jan 2025 17:14:46 +0100 Subject: [PATCH 3/4] Use multiple env files to handle defaults --- .env.development.example => .env.development.default | 0 docker-compose.dev.yml | 12 +++++++++--- 2 files changed, 9 insertions(+), 3 deletions(-) rename .env.development.example => .env.development.default (100%) diff --git a/.env.development.example b/.env.development.default similarity index 100% rename from .env.development.example rename to .env.development.default diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 6a411e5be..e7ce96f6b 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -93,7 +93,9 @@ services: volumes: - $LAGO_PATH/api:/app:delegated env_file: - - .env.development + - path: ./.env.development.default + - path: ./.env.development + required: false environment: - DATABASE_TEST_URL=postgresql://${POSTGRES_USER:-lago}:${POSTGRES_PASSWORD:-changeme}@db:5432/lago_test - GOOGLE_AUTH_CLIENT_ID=${GOOGLE_AUTH_CLIENT_ID:-} @@ -123,7 +125,9 @@ services: volumes: - $LAGO_PATH/api:/app:delegated env_file: - - .env.development + - path: ./.env.development.default + - path: ./.env.development + required: false api-events-worker: <<: *api_worker @@ -163,7 +167,9 @@ services: volumes: - $LAGO_PATH/api:/app:delegated env_file: - - .env.development + - path: ./.env.development.default + - path: ./.env.development + required: false pdf: image: getlago/lago-gotenberg:7 From 16eb537d255710da8c88ba267d7c322d3caf142d Mon Sep 17 00:00:00 2001 From: Julien Bourdeau Date: Tue, 28 Jan 2025 14:59:59 +0100 Subject: [PATCH 4/4] Add LAGO_LICENSE_URL --- .env.development.default | 1 + 1 file changed, 1 insertion(+) diff --git a/.env.development.default b/.env.development.default index 9c606063e..816ab2d3a 100644 --- a/.env.development.default +++ b/.env.development.default @@ -23,6 +23,7 @@ DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGR REDIS_URL=redis://redis:6379 LAGO_REDIS_CACHE_URL=redis://redis:6379 LAGO_PDF_URL=http://pdf:3000 +LAGO_LICENSE_URL=http://license:3000 LAGO_KAFKA_BOOTSTRAP_SERVERS=redpanda:9092 LAGO_KAFKA_RAW_EVENTS_TOPIC=events-raw LAGO_KAFKA_ENRICHED_EVENTS_TOPIC=events_enriched