File size: 2,286 Bytes
4327358
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
services:
  waha:
    restart: always
    image: devlikeapro/waha-plus
    ports:
      - '127.0.0.1:3000:3000/tcp'
    volumes:
      - './sessions:/app/.sessions' # required for WAHA Core only
      - './media:/app/.media'
    env_file:
      - .waha.env
    depends_on:
      - postgres
      - redis
      - chatwoot
      - chatwoot-sidekiq
    logging:
      driver: 'json-file'
      options:
        max-size: '100m'
        max-file: '10'
    dns:
      - 1.1.1.1
      - 8.8.8.8

  base: &base
    image: chatwoot/chatwoot:v4.3.0
    env_file: .chatwoot.env ## Change this file for customized env variables
    volumes:
      - chatwoot_storage:/app/storage
    logging:
      driver: 'json-file'
      options:
        max-size: '100m'
        max-file: '10'

  chatwoot:
    <<: *base
    depends_on:
      - postgres
      - redis
    ports:
      - '127.0.0.1:3009:3009'
    environment:
      - NODE_ENV=production
      - RAILS_ENV=production
      - INSTALLATION_ENV=docker
    entrypoint: docker/entrypoints/rails.sh
    command: ['bundle', 'exec', 'rails', 's', '-p', '3009', '-b', '0.0.0.0']
    restart: always

  chatwoot-sidekiq:
    <<: *base
    depends_on:
      - postgres
      - redis
    environment:
      - NODE_ENV=production
      - RAILS_ENV=production
      - INSTALLATION_ENV=docker
    command: ['bundle', 'exec', 'sidekiq', '-C', 'config/sidekiq.yml']
    restart: always

  postgres:
    image: pgvector/pgvector:pg16
    restart: always
    ports:
      - '127.0.0.1:5432:5432'
    volumes:
      - chatwoot_pg_data:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=chatwoot
      - POSTGRES_USER=postgres
      # Please provide your own password.
      - POSTGRES_PASSWORD=postgres
      - POSTGRES_HOST_AUTH_METHOD=trust

  redis:
    image: redis:alpine
    restart: always
    command:
      - 'sh'
      - '-c'
      - >
        redis-server --bind 0.0.0.0 --port 6379 --requirepass
        ${REDIS_PASSWORD:-redis} --timeout 300 --tcp-keepalive 60 --save 900 1
        --save 300 10 --save 60 10000 --appendonly yes --appendfsync everysec
    env_file: .chatwoot.env
    volumes:
      - chatwoot_redis:/data
    ports:
      - '127.0.0.1:6379:6379'

volumes:
  chatwoot_pg_data: {}
  chatwoot_redis: {}
  chatwoot_storage: {}