Seja bem-vindo ao Guia de Instalação Docker Metabase 🚀
👉 Participe da Comunidade HubConnect 👈
Instalando Portainer e Traefix
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
version: "3.8"
services:
postgresql:
image: bitnami/postgresql:16
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
Acesse portainer, vá até contaneir Postgres, crie banco de dados
psql -U postgres
create database metabase;
Lembre de Alterar os dados
version: '3.9'
services:
metabase:
image: metabase/metabase:latest
restart: always
networks:
- ecosystem_network
volumes:
- metabase_data:/metabase-data
- /dev/urandom:/dev/random:ro
environment:
MB_DB_TYPE: postgres
MB_DB_DBNAME: metabase
MB_DB_PORT: 5432
MB_DB_USER: postgresuser
MB_DB_PASS: postgrespass
MB_DB_HOST: postgres
deploy:
labels:
- traefik.enable=true
- traefik.http.routers.metabase.rule=Host(`metabase.dominio.com.br`)
- traefik.http.routers.metabase.entrypoints=websecure
- traefik.http.routers.metabase.priority=1
- traefik.http.routers.metabase.tls.certresolver=letsencryptresolver
- traefik.http.routers.metabase.service=metabase
- traefik.http.services.metabase.loadbalancer.server.port=3000
- traefik.http.services.metabase.loadbalancer.passHostHeader=true
networks:
ecosystem_network:
external: true
attachable: true
volumes:
metabase_data:
Depois clique em DEPLOY
Acesse: seudominio.com.
Pronto tudo Funcionando ✅😎