Seja bem-vindo ao Guia de Instalação Docker Chatwoot 🚀
👉 Participe da Comunidade HubConnect 👈
Instalando Portainer e Traefix
Atualize os repositórios do Ubuntu executando o seguinte comando:
sudo apt update && apt upgrade -yInstale o Docker em sua VPS
sudo apt install docker.io -yInstalando Portainer
docker swarm initnano traefik.ymlversion: "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_networknano portainer.ymlversion: "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_volumedocker network create --driver=overlay ecosystem_networkdocker stack deploy --prune --resolve-image always -c traefik.yml traefikdocker stack deploy --prune --resolve-image always -c portainer.yml portainerAcesse URL de seu Site e Crie Usuario
Postgres
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_networkDepois clique em DEPLOY
Acesse portainer, vá até contaneir Postgres, crie banco de dados
psql -U postgresr45796yv3bhub9w4f3ga3ikxmxos648rcreate 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
Colocamos o nome da stack (recomendo deixar redis)
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: truee pronto, o redis esta instalado e funcionando na sua VPS
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_networkDepois clique em DEPLOY
bundle exec rails db:chatwoot_prepareAcesse: seudominio.com.
Faça seu cadastro
Pronto tudo Funcionando ✅😎







