bottleneckcrm/docker-compose.yml
Ashwin f8f7dc0c11 feat: add email templates for assigned contacts, leads, and opportunities
- Created new email templates for notifying users when a contact, lead, or opportunity is assigned to them.
- Added a health check HTML template for server status.
- Introduced magic link email templates for sign-in codes and links.
- Implemented a new root email template for consistent styling across emails.
- Updated packaging tests to ensure all templates are included in the wheel.
- Modified settings to remove project-level template directories, ensuring templates are sourced from app directories.
- Added new templates for goal milestones and stale deals alerts in the opportunity module.
- Bumped version to 1.3.0 and updated dependencies in the project configuration.
- Enhanced Dockerfile for better build management and added .dockerignore for cleaner builds.
- Introduced CSAT rating functionality in the frontend with corresponding tests.
2026-08-12 20:19:53 +05:30

108 lines
2.7 KiB
YAML

services:
db:
image: postgres:16-alpine
env_file:
- .env.docker
# Optional local overrides (gitignored); values here win over .env.docker.
- path: .env.docker.local
required: false
volumes:
- postgres_data:/var/lib/postgresql/data
- ./docker/postgres/init-rls-user.sql:/docker-entrypoint-initdb.d/init-rls-user.sql:ro
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 5s
timeout: 3s
retries: 5
ports:
- "5432:5432"
redis:
image: redis:7-alpine
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 5s
timeout: 3s
retries: 5
ports:
- "6379:6379"
backend:
build:
context: .
dockerfile: Dockerfile
env_file:
- .env.docker
# Optional local overrides (gitignored); values here win over .env.docker.
- path: .env.docker.local
required: false
volumes:
- ./backend:/app
- ./docker/backend/entrypoint.sh:/entrypoint.sh:ro
ports:
- "8000:8000"
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
command: /bin/bash /entrypoint.sh
celery-worker:
build:
context: .
dockerfile: Dockerfile
env_file:
- .env.docker
# Optional local overrides (gitignored); values here win over .env.docker.
- path: .env.docker.local
required: false
volumes:
- ./backend:/app
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
command: celery -A crm worker --loglevel=info
celery-beat:
build:
context: .
dockerfile: Dockerfile
env_file:
- .env.docker
# Optional local overrides (gitignored); values here win over .env.docker.
- path: .env.docker.local
required: false
volumes:
- ./backend:/app
depends_on:
db:
condition: service_healthy
redis:
condition: service_healthy
command: celery -A crm beat --loglevel=info
frontend:
build:
context: ./frontend
dockerfile: Dockerfile
# frontend/Dockerfile is multi-stage and its LAST stage is the production
# server. Without this, compose would build that instead and run a
# prebuilt bundle against the source mount below, which never reloads.
target: dev
env_file:
- .env.docker
# Optional local overrides (gitignored); values here win over .env.docker.
- path: .env.docker.local
required: false
volumes:
- ./frontend:/app
- frontend_node_modules:/app/node_modules
ports:
- "5173:5173"
volumes:
postgres_data:
frontend_node_modules: