diff --git a/.env.development.default b/.env.development.default new file mode 100644 index 00000000..816ab2d3 --- /dev/null +++ b/.env.development.default @@ -0,0 +1,54 @@ +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_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 +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 79a18b7e..99ee7754 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 9f48ea4f..e7ce96f6 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -92,40 +92,14 @@ services: dockerfile: $LAGO_PATH/api/Dockerfile.dev volumes: - $LAGO_PATH/api:/app:delegated + env_file: + - path: ./.env.development.default + - path: ./.env.development + required: false 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`)" @@ -138,7 +112,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 @@ -150,245 +124,35 @@ 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: + - path: ./.env.development.default + - path: ./.env.development + required: false 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 - 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:-} 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 - 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:-} 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 - 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:-} 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 - 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:-} 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 - 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:-} api-clock: image: api_dev @@ -402,26 +166,10 @@ 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: + - path: ./.env.development.default + - path: ./.env.development + required: false pdf: image: getlago/lago-gotenberg:7