Skip to content

comunidadehubconnect/dockerchatwoot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 

Repository files navigation

Seja bem-vindo ao Guia de Instalação Docker Chatwoot 🚀

👉 Participe da Comunidade HubConnect 👈



Caso não tenha Portainer e Traefix instalado, siga primeira etapa

Instalando Portainer e Traefix

Atualizando Dependências

Atualize os repositórios do Ubuntu executando o seguinte comando:

sudo apt update && apt upgrade -y

Instale o Docker em sua VPS

sudo apt install docker.io -y

Instalando Portainer

docker swarm init
nano traefik.yml
version: "3.8"

services:

  traefik:
    image: traefik:v2.11.0
    command:
      - "--api.dashboard=true"
      - "--providers.docker.swarmMode=true"
      - "--providers.docker.endpoint=unix:///var/run/docker.sock"
      - "--providers.docker.exposedbydefault=false"
      - "--providers.docker.network=ecosystem_network"
      - "--entrypoints.web.address=:80"
      - "--entrypoints.web.http.redirections.entryPoint.to=websecure"
      - "--entrypoints.web.http.redirections.entryPoint.scheme=https"
      - "--entrypoints.web.http.redirections.entrypoint.permanent=true"
      - "--entrypoints.websecure.address=:443"
      - "--certificatesresolvers.letsencryptresolver.acme.httpchallenge=true"
      - "--certificatesresolvers.letsencryptresolver.acme.httpchallenge.entrypoint=web"
      - "--certificatesresolvers.letsencryptresolver.acme.email=contato@seudominio.com.br"
      - "--certificatesresolvers.letsencryptresolver.acme.storage=/etc/traefik/letsencrypt/acme.json"
      - "--log.level=DEBUG"
      - "--log.format=common"
      - "--log.filePath=/var/log/traefik/traefik.log"
      - "--accesslog=true"
      - "--accesslog.filepath=/var/log/traefik/access-log"
    deploy:
      placement:
        constraints:
          - node.role == manager
      labels:
        - "traefik.enable=true"
        - "traefik.http.middlewares.redirect-https.redirectscheme.scheme=https"
        - "traefik.http.middlewares.redirect-https.redirectscheme.permanent=true"
        - "traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`)"
        - "traefik.http.routers.http-catchall.entrypoints=web"
        - "traefik.http.routers.http-catchall.middlewares=redirect-https@docker"
        - "traefik.http.routers.http-catchall.priority=1"
    volumes:
      - "/var/run/docker.sock:/var/run/docker.sock:ro"
      - "traefik_certificates_volume:/etc/traefik/letsencrypt"
    ports:
      - target: 80
        published: 80
        mode: host
      - target: 443
        published: 443
        mode: host
    networks:
      - ecosystem_network

volumes:
  traefik_certificates_volume:
    external: true
    name: traefik_certificates_volume

networks:
  ecosystem_network:
    external: true
    name: ecosystem_network
nano portainer.yml
version: "3.8"

services:

  agent:
    image: portainer/agent:latest
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /var/lib/docker/volumes:/var/lib/docker/volumes
    networks:
      - ecosystem_network
    deploy:
      mode: global
      placement:
        constraints: [node.platform.os == linux]

  portainer:
    image: portainer/portainer-ce:latest
    command: -H tcp://tasks.agent:9001 --tlsskipverify
    volumes:
      - portainer_volume:/data
    networks:
      - ecosystem_network
    deploy:
      mode: replicated
      replicas: 1
      placement:
        constraints: [node.role == manager]
      labels:
        - "traefik.enable=true"
        - "traefik.docker.network=ecosystem_network"
        - "traefik.http.routers.portainer.rule=Host(`painel.seudominio.com.br`)"
        - "traefik.http.routers.portainer.entrypoints=websecure"
        - "traefik.http.routers.portainer.priority=1"
        - "traefik.http.routers.portainer.tls.certresolver=letsencryptresolver"
        - "traefik.http.routers.portainer.service=portainer"
        - "traefik.http.services.portainer.loadbalancer.server.port=9000"

networks:
  ecosystem_network:
    external: true
    attachable: true
    name: ecosystem_network

volumes:
  portainer_volume:
    external: true
    name: portainer_volume
docker network create --driver=overlay ecosystem_network
docker stack deploy --prune --resolve-image always -c traefik.yml traefik
docker stack deploy --prune --resolve-image always -c portainer.yml portainer

Acesse URL de seu Site e Crie Usuario

Postgres

Adicione Stack abaixo, Stack > add stack

image

version: "3.8"

services:

  postgresql:
    image: bitnami/postgresql:15
    restart: always
    environment:
      POSTGRESQL_USERNAME: postgres
      POSTGRESQL_PASSWORD: r45796yv3bhub9w4f3ga3ikxmxos648r
    networks:
      - ecosystem_network
    ports:
      - 5432:5432
    volumes:
      - postgresql_volume:/bitnami/postgresql
      - postgresql_config_volume:/opt/bitnami/postgresql/conf
    deploy:
    

volumes:
  postgresql_volume:
    external: true
    name: postgresql_volume
  postgresql_config_volume:
    external: true
    name: postgresql_config_volume
    
networks:
  ecosystem_network:
    external: true
    name: ecosystem_network

Depois clique em DEPLOY

image

Acesse portainer, vá até contaneir Postgres, crie banco de dados

image

image

psql -U postgres
r45796yv3bhub9w4f3ga3ikxmxos648r
create database chatwoot;

Redis Para instalar o redis vamos fazer as mesmas etapas que fizemos no postgres: Vamos para aba Stacks e depois em add Stack

image

Colocamos o nome da stack (recomendo deixar redis)

image

Cole a stack do redis abaixo no seu portainer:

version: '3.7'

services:
  redis:
    image: redis:latest
    command: [
      "redis-server",
      "--appendonly",
      "yes",
      "--port",
      "6379"
    ]
    volumes:
      - redis_data:/data
    networks:
      - ecosystem_network
    deploy:
      placement:
        constraints:
          - node.role == manager

volumes:
  redis_data:
    external: true
    name: redis_woofedcrm_data

networks:
  ecosystem_network:
    external: true

image

e pronto, o redis esta instalado e funcionando na sua VPS

Adicione Stack abaixo, Stack > add stack

image

Lembre de Alterar os dados

version: "3.8"

x-base: &base
  image: chatwoot/chatwoot:latest
  restart: 'no'
  command: echo 'OK'
  environment:
    ENABLE_ACCOUNT_SIGNUP: "false"
    REDIS_URL: redis://redis:6379/0
    POSTGRES_HOST: postgresql
    POSTGRES_USERNAME: postgres
    POSTGRES_PASSWORD: r45796yv3bhub9w4f3ga3ikxmxos648r
    POSTGRES_DATABASE: chatwoot
    SECRET_KEY_BASE: a7094a88032d106067b60b72e5aed6af
    FRONTEND_URL: https://sudominio.com.br
    DEFAULT_LOCALE: 'pt_BR'
    INSTALLATION_ENV: docker
    NODE_ENV: production
    RAILS_ENV: production
    DISABLE_TELEMETRY: "true"
    MAILER_SENDER_EMAIL: contato@seudominio.com.br
    SMTP_DOMAIN: seudominio.com.br
    SMTP_ADDRESS: mail.seudominio.com.br
    SMTP_PORT: 587
    SMTP_USERNAME: contato@seudominio.com.br
    SMTP_PASSWORD: Senha SMTP
    SMTP_AUTHENTICATION: login
    SMTP_ENABLE_STARTTLS_AUTO: "true"
    SMTP_OPENSSL_VERIFY_MODE: peer
    MAILER_INBOUND_EMAIL_DOMAIN: seudominio.com.br
  networks:
    - ecosystem_network

services:

  migrate:
    <<: *base
    restart: "no"
    deploy:
      replicas: 0
      restart_policy:
        condition: none
    command: ['bundle', 'exec', 'rails', 'db:migrate']

  chatwoot:
    <<: *base
    command: ['bundle', 'exec', 'rails', 's', '-p', '3000', '-b', '0.0.0.0']
    restart: always
    networks:
      - ecosystem_network
    volumes:
      - chatwoot_assets:/app/public
    deploy:
      labels:
        - traefik.enable=true
        - traefik.http.routers.chatwoot.rule=Host(`sudominio.com.br`)
        - traefik.http.routers.chatwoot.entrypoints=websecure
        - traefik.http.routers.chatwoot.tls.certresolver=letsencryptresolver
        - traefik.http.services.chatwoot.loadbalancer.server.port=3000
        - traefik.http.services.chatwoot.loadbalancer.passHostHeader=true

  chatwoot_worker:
    <<: *base
    command: ['bundle', 'exec', 'sidekiq', '-C', 'config/sidekiq.yml']
    restart: always
    networks:
      - ecosystem_network
    volumes:
      - chatwoot_assets:/app/public

volumes:
  chatwoot_assets:
    external: true
    name: chatwoot_assets

networks:
  ecosystem_network:
    external: true
    name: ecosystem_network

Depois clique em DEPLOY

image

bundle exec rails db:chatwoot_prepare

Acesse: seudominio.com.

Faça seu cadastro

Pronto tudo Funcionando ✅😎

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors