Skip to content
16 changes: 16 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,8 @@ EVOAI_CRM_API_TOKEN=6e10e689-58ce-4416-bf0d-f5818bf2dcf8
RAILS_ENV=development
RAILS_MAX_THREADS=5
FRONTEND_URL=http://localhost:5173
# Public URL of the auth service accessible from the browser (used for ActiveStorage avatar URLs)
AUTH_SERVICE_URL=http://localhost:3001

# Doorkeeper JWT (OAuth2 tokens)
DOORKEEPER_JWT_SECRET_KEY=a]i9F#k2$Lm7Nq0R!sT4uW6xZ8bD1eG3hJ5oP7rV9yAcE2fH4jM6pS8vX0zB3dK5nQ7tU9wY1
Expand Down Expand Up @@ -232,6 +234,20 @@ VITE_TINYMCE_API_KEY=no-api-key
# =============================================================================
# OPTIONAL — Cloud Storage (default: local filesystem)
# =============================================================================
# To use Cloudflare R2, AWS S3, MinIO or any S3-compatible service:
# 1. Set ACTIVE_STORAGE_SERVICE=s3_compatible (both auth and CRM services use this var)
# 2. Fill in the bucket credentials below
# 3. Configure your bucket's CORS policy to allow GET from your frontend domain
# (this must be done in the storage provider's dashboard — not in this file)
#
# Example for Cloudflare R2:
# ACTIVE_STORAGE_SERVICE=s3_compatible
# STORAGE_BUCKET_NAME=my-bucket
# STORAGE_ACCESS_KEY_ID=<R2 Access Key ID>
# STORAGE_SECRET_ACCESS_KEY=<R2 Secret Access Key>
# STORAGE_REGION=auto
# STORAGE_ENDPOINT=https://<account-id>.r2.cloudflarestorage.com
#
# STORAGE_BUCKET_NAME=
# STORAGE_ACCESS_KEY_ID=
# STORAGE_SECRET_ACCESS_KEY=
Expand Down
9 changes: 8 additions & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -56,12 +56,14 @@ services:
RAILS_ENV: ${RAILS_ENV:-development}
REDIS_URL: redis://:${REDIS_PASSWORD:-evoai_redis_pass}@redis:6379/1
POSTGRES_HOST: postgres
volumes:
- ./evo-auth-service-community/storage:/rails/storage
depends_on:
postgres:
condition: service_healthy
redis:
condition: service_healthy
command: bash -c "bundle install && bundle exec rails db:prepare && bundle exec rails s -p 3001 -b 0.0.0.0"
command: bash -c "rm -f /rails/tmp/pids/server.pid && bundle install && bundle exec rails db:prepare && bundle exec rails s -p 3001 -b 0.0.0.0"
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3001/health"]
interval: 30s
Expand Down Expand Up @@ -115,6 +117,9 @@ services:
- crm_bundle:/usr/local/bundle
- crm_node_modules:/app/node_modules
- crm_cache:/app/tmp/cache
# /app/storage is already shared between evo-crm and evo-crm-sidekiq through
# the project bind above — no additional named volume needed (a named volume
# here would mask the bind and break host visibility of ActiveStorage blobs).
depends_on:
postgres:
condition: service_healthy
Expand Down Expand Up @@ -155,6 +160,8 @@ services:
- crm_bundle:/usr/local/bundle
- crm_node_modules:/app/node_modules
- crm_cache:/app/tmp/cache
# See evo-crm above — /app/storage is shared via the project bind, no named
# volume needed (and one here would mask the bind, hiding blobs from host).
depends_on:
postgres:
condition: service_healthy
Expand Down
2 changes: 1 addition & 1 deletion evo-ai-crm-community
2 changes: 1 addition & 1 deletion evo-ai-frontend-community
2 changes: 1 addition & 1 deletion evo-auth-service-community
2 changes: 1 addition & 1 deletion evolution-api
2 changes: 1 addition & 1 deletion evolution-go
Loading